Commit 6dd85ff1 authored by Masahiro Yamada's avatar Masahiro Yamada

kconfig: change "modules" from sub-option to first-level attribute

Now "modules" is the only member of the "option" property.

Remove "option", and move "modules" to the top level property.
Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent ab838577
...@@ -223,16 +223,10 @@ applicable everywhere (see syntax). ...@@ -223,16 +223,10 @@ applicable everywhere (see syntax).
the indentation level, this means it ends at the first line which has the indentation level, this means it ends at the first line which has
a smaller indentation than the first line of the help text. a smaller indentation than the first line of the help text.
- misc options: "option" <symbol>[=<value>] - module attribute: "modules"
This declares the symbol to be used as the MODULES symbol, which
Various less common options can be defined via this option syntax, enables the third modular state for all config symbols.
which can modify the behaviour of the menu entry and its config At most one symbol may have the "modules" option set.
symbol. These options are currently possible:
- "modules"
This declares the symbol to be used as the MODULES symbol, which
enables the third modular state for all config symbols.
At most one symbol may have the "modules" option set.
Menu dependencies Menu dependencies
----------------- -----------------
......
...@@ -2042,7 +2042,7 @@ config MODULE_SIG_FORMAT ...@@ -2042,7 +2042,7 @@ config MODULE_SIG_FORMAT
menuconfig MODULES menuconfig MODULES
bool "Enable loadable module support" bool "Enable loadable module support"
option modules modules
help help
Kernel modules are small pieces of compiled code which can Kernel modules are small pieces of compiled code which can
be inserted in the running kernel, rather than being be inserted in the running kernel, rather than being
......
...@@ -112,7 +112,6 @@ n [A-Za-z0-9_-] ...@@ -112,7 +112,6 @@ n [A-Za-z0-9_-]
"menuconfig" return T_MENUCONFIG; "menuconfig" return T_MENUCONFIG;
"modules" return T_MODULES; "modules" return T_MODULES;
"on" return T_ON; "on" return T_ON;
"option" return T_OPTION;
"optional" return T_OPTIONAL; "optional" return T_OPTIONAL;
"prompt" return T_PROMPT; "prompt" return T_PROMPT;
"range" return T_RANGE; "range" return T_RANGE;
......
...@@ -95,7 +95,6 @@ void menu_add_visibility(struct expr *dep); ...@@ -95,7 +95,6 @@ void menu_add_visibility(struct expr *dep);
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep); struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep); void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep); void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
void menu_add_option_modules(void);
void menu_finalize(struct menu *parent); void menu_finalize(struct menu *parent);
void menu_set_type(int type); void menu_set_type(int type);
......
...@@ -211,14 +211,6 @@ void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep) ...@@ -211,14 +211,6 @@ void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep)
menu_add_prop(type, expr_alloc_symbol(sym), dep); menu_add_prop(type, expr_alloc_symbol(sym), dep);
} }
void menu_add_option_modules(void)
{
if (modules_sym)
zconf_error("symbol '%s' redefines option 'modules' already defined by symbol '%s'",
current_entry->sym->name, modules_sym->name);
modules_sym = current_entry->sym;
}
static int menu_validate_number(struct symbol *sym, struct symbol *sym2) static int menu_validate_number(struct symbol *sym, struct symbol *sym2)
{ {
return sym2->type == S_INT || sym2->type == S_HEX || return sym2->type == S_INT || sym2->type == S_HEX ||
......
...@@ -69,7 +69,6 @@ static struct menu *current_menu, *current_entry; ...@@ -69,7 +69,6 @@ static struct menu *current_menu, *current_entry;
%token T_MODULES %token T_MODULES
%token T_ON %token T_ON
%token T_OPEN_PAREN %token T_OPEN_PAREN
%token T_OPTION
%token T_OPTIONAL %token T_OPTIONAL
%token T_PLUS_EQUAL %token T_PLUS_EQUAL
%token T_PROMPT %token T_PROMPT
...@@ -216,9 +215,12 @@ config_option: T_RANGE symbol symbol if_expr T_EOL ...@@ -216,9 +215,12 @@ config_option: T_RANGE symbol symbol if_expr T_EOL
printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
}; };
config_option: T_OPTION T_MODULES T_EOL config_option: T_MODULES T_EOL
{ {
menu_add_option_modules(); if (modules_sym)
zconf_error("symbol '%s' redefines option 'modules' already defined by symbol '%s'",
current_entry->sym->name, modules_sym->name);
modules_sym = current_entry->sym;
}; };
/* choice entry */ /* choice entry */
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
config MODULES config MODULES
bool "Enable loadable module support" bool "Enable loadable module support"
option modules modules
default y default y
choice choice
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
config MODULES config MODULES
def_bool y def_bool y
option modules modules
config DEP config DEP
tristate tristate
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
config MODULES config MODULES
def_bool y def_bool y
option modules modules
choice choice
prompt "Choice" prompt "Choice"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment