kconfig: Document the 'symbol' struct
PATCH 1/1 kconfig: Document the 'symbol' struct
Visibility and choices in particular might be a bit tricky to figure out.
Also fix existing comment to point out that P_MENU is also used for menus.
Signed-off-by Ulf Magnusson <[email protected]>
--- scripts/kconfig/expr.h | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-)
scripts/kconfig/expr.h +44 -1
@@ -74,17 +74,60 @@ enum { S_DEF_COUNT }; +/* +* Represents a configuration symbol. +* +* Choices are represented as a special kind of symbol and have the +* SYMBOL_CHOICE bit set in 'flags'. +*/ struct symbol { +/* The next symbol in the same bucket in the symbol hash table */ struct symbol *next; + +/* The name of the symbol, e.g. "FOO" for 'config FOO' */ char *name; + +/* S_BOOLEAN, S_TRISTATE, ... */ enum symbol_type type; + +/* +* The calculated value of the symbol. The SYMBOL_VALID bit is set in +* 'flags' when this is up to date. Note that this value might differ +* from the user value set in e.g. a .config file, due to visibility. +*/ struct symbol_value curr; + +/* +* Values for the symbol provided from outside. def[S_DEF_USER] holds +* the .config value. +*/ struct symbol_value def[S_DEF_COUNT ]; + +/* +* An upper bound on the tristate value the user can set for the symbol +* if it is a boolean or tristate. Calculated from prompt dependencies, +* which also inherit dependencies from enclosing menus, choices, and +* ifs. If 'n', the user value will be ignored. +* +* Symbols lacking prompts always have visibility 'n'. +*/ tristate visible; + +/* SYMBOL_* flags */ int flags; + +/* List of properties. See prop_type. */ struct property *prop; + +/* Dependencies from enclosing menus, choices, and ifs */ struct expr_value dir_dep; + +/* Reverse dependencies through being selected by other symbols */ struct expr_value rev_dep; + +/* +* "Weak" reverse dependencies through being implied by other symbols +*/ struct expr_value implied; };
@@ -133,7 +176,7 @@ enum prop_type {P_UNKNOWN ,P_PROMPT ,/* prompt "foo prompt" or "BAZ Value" */ P_COMMENT ,/* text associated with a comment */ -P_MENU ,/* prompt associated with a menuconfig option */ +P_MENU ,/* prompt associated with a menu or menuconfig symbol */ P_DEFAULT ,/* default y */ P_CHOICE ,/* choice value */ P_SELECT, /* select BAR */
Signature · 1 line
2.7.4
Quoted 86 lines · Ulf Magnusson
Visibility and choices in particular might be a bit tricky to figure out.
Also fix existing comment to point out that
P_MENUis also used for menus.Signed-off-by Ulf Magnusson <[email protected]>--- scripts/kconfig/expr.h | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-)scripts/kconfig/expr.h +44
-2@@ -74,17 +74,60 @@ enum { S_DEF_COUNT }; +/* +* Represents a configuration symbol. +* +* Choices are represented as a special kind of symbol and have the +* SYMBOL_CHOICE bit set in 'flags'. +*/ struct symbol { +/* The next symbol in the same bucket in the symbol hash table */ struct symbol *next; + +/* The name of the symbol, e.g. "FOO" for 'config FOO' */ char *name; + +/* S_BOOLEAN, S_TRISTATE, ... */ enum symbol_type type; + +/* +* The calculated value of the symbol. The SYMBOL_VALID bit is set in +* 'flags' when this is up to date. Note that this value might differ +* from the user value set in e.g. a .config file, due to visibility. +*/ struct symbol_value curr; + +/* +* Values for the symbol provided from outside. def[S_DEF_USER] holds +* the .config value. +*/ struct symbol_value def[S_DEF_COUNT ]; + +/* +* An upper bound on the tristate value the user can set for the symbol +* if it is a boolean or tristate. Calculated from prompt dependencies, +* which also inherit dependencies from enclosing menus, choices, and +* ifs. If 'n', the user value will be ignored. +* +* Symbols lacking prompts always have visibility 'n'. +*/ tristate visible; + +/* SYMBOL_* flags */ int flags; + +/* List of properties. See prop_type. */ struct property *prop; + +/* Dependencies from enclosing menus, choices, and ifs */ struct expr_value dir_dep; + +/* Reverse dependencies through being selected by other symbols */ struct expr_value rev_dep; + +/* +* "Weak" reverse dependencies through being implied by other symbols +*/ struct expr_value implied; };@@ -133,7 +176,7 @@ enum prop_type {P_UNKNOWN ,P_PROMPT ,/* prompt "foo prompt" or "BAZ Value" */ P_COMMENT ,/* text associated with a comment */ -P_MENU ,/* prompt associated with a menuconfig option */ +P_MENU ,/* prompt associated with a menu or menuconfig symbol */ P_DEFAULT ,/* default y */ P_CHOICE ,/* choice value */ P_SELECT, /* select BAR */ --
Quoted 2 lines
2.7.4
Adding some CCs just because I forgot. No panic.
Cheers,
Ulf
2017-10-04 14:48 GMT+09:00 Ulf Magnusson <[email protected]>:
Quoted 7 lines
Visibility and choices in particular might be a bit tricky to figure out.
Also fix existing comment to point out that
P_MENUis also used for menus.Signed-off-by Ulf Magnusson <[email protected]>
Applied to linux-kbuild/kconfig.
Thanks!
Signature · 2 lines
Best Regards Masahiro Yamada