kconfig: save location of config symbols

When we add a new config symbol save the file/line
so we later can refer to their location.

The information is saved as a property to a config symbol
because we may have multiple definitions of the same symbol.

This has the side-effect that a symbol always has
at least one property.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Michal Marek <mmarek@suse.cz>
This commit is contained in:
Sam Ravnborg 2010-07-31 23:35:29 +02:00 committed by Michal Marek
parent 861b4ea4cc
commit 59e89e3ddf
3 changed files with 5 additions and 0 deletions

View File

@ -132,6 +132,7 @@ enum prop_type {
P_SELECT, /* select BAR */ P_SELECT, /* select BAR */
P_RANGE, /* range 7..100 (for a symbol) */ P_RANGE, /* range 7..100 (for a symbol) */
P_ENV, /* value from environment variable */ P_ENV, /* value from environment variable */
P_SYMBOL, /* where a symbol is defined */
}; };
struct property { struct property {

View File

@ -58,6 +58,8 @@ void menu_add_entry(struct symbol *sym)
*last_entry_ptr = menu; *last_entry_ptr = menu;
last_entry_ptr = &menu->next; last_entry_ptr = &menu->next;
current_entry = menu; current_entry = menu;
if (sym)
menu_add_symbol(P_SYMBOL, sym, NULL);
} }
void menu_end_entry(void) void menu_end_entry(void)

View File

@ -961,6 +961,8 @@ const char *prop_get_type_name(enum prop_type type)
return "select"; return "select";
case P_RANGE: case P_RANGE:
return "range"; return "range";
case P_SYMBOL:
return "symbol";
case P_UNKNOWN: case P_UNKNOWN:
break; break;
} }