Commit 33ca1a24 authored by Ulf Magnusson's avatar Ulf Magnusson Committed by Masahiro Yamada

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.
Signed-off-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
parent 2c37e084
...@@ -166,22 +166,67 @@ struct property { ...@@ -166,22 +166,67 @@ struct property {
for (st = sym->prop; st; st = st->next) \ for (st = sym->prop; st; st = st->next) \
if (st->text) 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 { struct menu {
/* The next menu node at the same level */
struct menu *next; struct menu *next;
/* The parent menu node, corresponding to e.g. a menu or choice */
struct menu *parent; struct menu *parent;
/* The first child menu node, for e.g. menus and choices */
struct menu *list; 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; 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; struct property *prompt;
/*
* 'visible if' dependencies. If more than one is given, they will be
* ANDed together.
*/
struct expr *visibility; struct expr *visibility;
/*
* Ordinary dependencies from e.g. 'depends on' and 'if', ANDed
* together
*/
struct expr *dep; struct expr *dep;
/* MENU_* flags */
unsigned int flags; unsigned int flags;
/* Any help text associated with the node */
char *help; char *help;
/* The location where the menu node appears in the Kconfig files */
struct file *file; struct file *file;
int lineno; int lineno;
/* For use by front ends that need to store auxiliary data */
void *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_CHANGED 0x0001
#define MENU_ROOT 0x0002 #define MENU_ROOT 0x0002
struct jump_key { struct jump_key {
......
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