mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-01 11:21:51 +00:00
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 <ulfalizer@gmail.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
33ca1a2486
commit
52aede4ba5
1 changed files with 44 additions and 1 deletions
|
@ -74,17 +74,60 @@ enum {
|
||||||
S_DEF_COUNT
|
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 {
|
struct symbol {
|
||||||
|
/* The next symbol in the same bucket in the symbol hash table */
|
||||||
struct symbol *next;
|
struct symbol *next;
|
||||||
|
|
||||||
|
/* The name of the symbol, e.g. "FOO" for 'config FOO' */
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
|
/* S_BOOLEAN, S_TRISTATE, ... */
|
||||||
enum symbol_type type;
|
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;
|
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];
|
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;
|
tristate visible;
|
||||||
|
|
||||||
|
/* SYMBOL_* flags */
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
|
/* List of properties. See prop_type. */
|
||||||
struct property *prop;
|
struct property *prop;
|
||||||
|
|
||||||
|
/* Dependencies from enclosing menus, choices, and ifs */
|
||||||
struct expr_value dir_dep;
|
struct expr_value dir_dep;
|
||||||
|
|
||||||
|
/* Reverse dependencies through being selected by other symbols */
|
||||||
struct expr_value rev_dep;
|
struct expr_value rev_dep;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* "Weak" reverse dependencies through being implied by other symbols
|
||||||
|
*/
|
||||||
struct expr_value implied;
|
struct expr_value implied;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -133,7 +176,7 @@ enum prop_type {
|
||||||
P_UNKNOWN,
|
P_UNKNOWN,
|
||||||
P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
|
P_PROMPT, /* prompt "foo prompt" or "BAZ Value" */
|
||||||
P_COMMENT, /* text associated with a comment */
|
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_DEFAULT, /* default y */
|
||||||
P_CHOICE, /* choice value */
|
P_CHOICE, /* choice value */
|
||||||
P_SELECT, /* select BAR */
|
P_SELECT, /* select BAR */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue