kconfig: Document the 'menu' struct
PATCH 1/1 kconfig: Document the 'menu' struct
Understanding what it represents helps a lot when reading the code, and it's not obvious, so document it.
The ROOT_MENU flag is only set and tested by the gconf and qconf front ends, so leave it undocumented here. The obvious guess for what it means is correct.
--- scripts/kconfig/expr.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)
scripts/kconfig/expr.h +45 -0
@@ -166,22 +166,67 @@ struct property {for (st = sym->prop; st; st = st->next) \if (st->text) +/* +* Represents a node in the menu tree, as seen in e.g. menuconfig (though used +* for all front ends). Each symbol, menu, etc. defined in the Kconfig files +* gets a node. A symbol defined in multiple locations gets one node at each +* location. +*/ struct menu { +/* The next menu node at the same level */ struct menu *next; + +/* The parent menu node, corresponding to e.g. a menu or choice */ struct menu *parent; + +/* The first child menu node, for e.g. menus and choices */ struct menu *list; + +/* +* The symbol associated with the menu node. Choices are implemented as +* a special kind of symbol. NULL for menus, comments, and ifs. +*/ struct symbol *sym; + +/* +* The prompt associated with the node. This holds the prompt for a +* symbol as well as the text for a menu or comment, along with the +* type (P_PROMPT, P_MENU, etc.) +*/ struct property *prompt; + +/* +* 'visible if' dependencies. If more than one is given, they will be +* ANDed together. +*/ struct expr *visibility; + +/* +* Ordinary dependencies from e.g. 'depends on' and 'if', ANDed +* together +*/ struct expr *dep; + +/* MENU_* flags */ unsigned int flags; + +/* Any help text associated with the node */ char *help; + +/* The location where the menu node appears in the Kconfig files */ struct file *file;int lineno; + +/* For use by front ends that need to store auxiliary data */ void *data; }; +/* +* Set on a menu node when the corresponding symbol changes state in some way. +* Can be checked by front ends. +*/ #define MENU_CHANGED 0x0001 +#define MENU_ROOT 0x0002struct jump_key {
Signature · 1 line
2.7.4
Quoted 85 lines · Ulf Magnusson
Understanding what it represents helps a lot when reading the code, and it's not obvious, so document it.
The
ROOT_MENUflag is only set and tested by the gconf and qconf front ends, so leave it undocumented here. The obvious guess for what it means is correct.Signed-off-by Ulf Magnusson <[email protected]>--- scripts/kconfig/expr.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+)scripts/kconfig/expr.h +45
-1@@ -166,22 +166,67 @@ struct property {for (st = sym->prop; st; st = st->next) \if (st->text) +/* +* Represents a node in the menu tree, as seen in e.g. menuconfig (though used +* for all front ends). Each symbol, menu, etc. defined in the Kconfig files +* gets a node. A symbol defined in multiple locations gets one node at each +* location. +*/ struct menu { +/* The next menu node at the same level */ struct menu *next; + +/* The parent menu node, corresponding to e.g. a menu or choice */ struct menu *parent; + +/* The first child menu node, for e.g. menus and choices */ struct menu *list; + +/* +* The symbol associated with the menu node. Choices are implemented as +* a special kind of symbol. NULL for menus, comments, and ifs. +*/ struct symbol *sym; + +/* +* The prompt associated with the node. This holds the prompt for a +* symbol as well as the text for a menu or comment, along with the +* type (P_PROMPT, P_MENU, etc.) +*/ struct property *prompt; + +/* +* 'visible if' dependencies. If more than one is given, they will be +* ANDed together. +*/ struct expr *visibility; + +/* +* Ordinary dependencies from e.g. 'depends on' and 'if', ANDed +* together +*/ struct expr *dep; + +/* MENU_* flags */ unsigned int flags; + +/* Any help text associated with the node */ char *help; + +/* The location where the menu node appears in the Kconfig files */ struct file *file;int lineno; + +/* For use by front ends that need to store auxiliary data */ void *data; }; +/* +* Set on a menu node when the corresponding symbol changes state in some way. +* Can be checked by front ends. +*/ #define MENU_CHANGED 0x0001 +#define MENU_ROOT 0x0002struct jump_key { --
Quoted 2 lines
2.7.4
Adding some CCs just because I forgot. No panic.
Cheers,
Ulf
2017-10-04 12:37 GMT+09:00 Ulf Magnusson <[email protected]>:
Quoted 8 lines
Understanding what it represents helps a lot when reading the code, and it's not obvious, so document it.
The
ROOT_MENUflag is only set and tested by the gconf and qconf front ends, so leave it undocumented here. The obvious guess for what it means is correct.Signed-off-by Ulf Magnusson <[email protected]>
Applied to linux-kbuild/kconfig.
Thanks!
Signature · 2 lines
Best Regards Masahiro Yamada