Hi Roman.

I have added a few comments to expr.h with the intent
of making it a bit easier to hack on the kconfig backend.

Can I request you to review the comments and add the few
missing bits.

I deleted one unused flag (SYMBOL_PRINTED) - if you
have future plans with it let me now and I will re-add it.

Thanks,
        Sam


diff --git a/scripts/kconfig/expr.h b/scripts/kconfig/expr.h
index a195986..c2153a1 100644
--- a/scripts/kconfig/expr.h
+++ b/scripts/kconfig/expr.h
@@ -63,9 +63,13 @@ enum symbol_type {
        S_UNKNOWN, S_BOOLEAN, S_TRISTATE, S_INT, S_HEX, S_STRING, S_OTHER
 };
 
+/* enum values are used as index to symbol.def[] */
 enum {
        S_DEF_USER,             /* main user value */
-       S_DEF_AUTO,
+       S_DEF_AUTO,             /* values read from auto.conf */
+       S_DEF_DEF3,             /* Reserved for UI usage */
+       S_DEF_DEF4,             /* Reserved for UI usage */
+       S_DEF_COUNT
 };
 
 struct symbol {
@@ -73,7 +77,7 @@ struct symbol {
        char *name;
        enum symbol_type type;
        struct symbol_value curr;
-       struct symbol_value def[4];
+       struct symbol_value def[S_DEF_COUNT];
        tristate visible;
        int flags;
        struct property *prop;
@@ -82,42 +86,66 @@ struct symbol {
 
 #define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = 
symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
 
-#define SYMBOL_CONST           0x0001
-#define SYMBOL_CHECK           0x0008
-#define SYMBOL_CHOICE          0x0010
-#define SYMBOL_CHOICEVAL       0x0020
-#define SYMBOL_PRINTED         0x0040
-#define SYMBOL_VALID           0x0080
-#define SYMBOL_OPTIONAL                0x0100
-#define SYMBOL_WRITE           0x0200
-#define SYMBOL_CHANGED         0x0400
-#define SYMBOL_AUTO            0x1000
-#define SYMBOL_CHECKED         0x2000
-#define SYMBOL_WARNED          0x8000
-#define SYMBOL_DEF             0x10000
-#define SYMBOL_DEF_USER                0x10000
-#define SYMBOL_DEF_AUTO                0x20000
-#define SYMBOL_DEF3            0x40000
-#define SYMBOL_DEF4            0x80000
+/* symbol.flags bits */
+#define SYMBOL_CONST           0x0001    /* symbol is const */
+#define SYMBOL_SPARE_2         0x0002
+#define SYMBOL_SPARE_4         0x0004
+#define SYMBOL_CHECK           0x0008    /* used during dependency checking */
+#define SYMBOL_CHOICE          0x0010    /* symbol represent start of a choice 
block (null name) */
+#define SYMBOL_CHOICEVAL       0x0020    /* symbol is used as a value in a 
choice block */
+#define SYMBOL_SPARE_40                0x0040
+#define SYMBOL_VALID           0x0080    /* set when symbol.curr is calculated 
(and valid) */
+#define SYMBOL_OPTIONAL                0x0100    /* a choice marked optional 
can have all values equal 'n'
+                                           * Also used for menus ? */
+#define SYMBOL_WRITE           0x0200    /* ? */
+#define SYMBOL_CHANGED         0x0400    /* ? */
+#define SYMBOL_AUTO            0x1000    /* value has been assing by kconfig 
(from environment variable or modules) */
+#define SYMBOL_CHECKED         0x2000    /* used during dependency checking */
+#define SYMBOL_WARNED          0x8000    /* set when a warning has been issued 
for this symbol */
+#define SYMBOL_DEF             0x10000   /* First bit of SYMBOL_DEF used to 
support << */
+#define SYMBOL_DEF_USER                0x10000   /* Data in 
symbol.def[S_DEF_USER] are valid */
+#define SYMBOL_DEF_AUTO                0x20000   /* Data in 
symbol.def[S_DEF_AUTO] are valid */
+#define SYMBOL_DEF3            0x40000   /* Data in symbol.def[S_DEF_DEF3] are 
valid */
+#define SYMBOL_DEF4            0x80000   /* Data in symbol.def[S_DEF_DEF4] are 
valid */
 
 #define SYMBOL_MAXLENGTH       256
 #define SYMBOL_HASHSIZE                257
 #define SYMBOL_HASHMASK                0xff
 
+/* A property represent the config options that can be associated
+ * with a config "symbol".
+ * Sample:
+ * config FOO
+ *         default y
+ *         prompt "foo prompt"
+ *         select BAR
+ * config BAZ
+ *         int "BAZ Value"
+ *         range 1..255
+ */
 enum prop_type {
-       P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, 
P_RANGE
+       P_UNKNOWN,
+       P_PROMPT,     /* prompt "foo prompt" or "BAZ Value" */
+       P_COMMENT,    /* A text associated with a comment (the prompt of the 
comment) */
+       P_MENU,       /* The prompt associated with a menuconfig option */
+       P_DEFAULT,    /* default y */
+       P_CHOICE,     /* ? */
+       P_SELECT,     /* select BAR */
+       P_RANGE       /* range 7..100 (for a symbol) */
 };
 
 struct property {
-       struct property *next;
-       struct symbol *sym;
-       enum prop_type type;
-       const char *text;
+       struct property *next;       /* next property in chained list - null if 
last */
+       struct symbol *sym;          /* the symbol for which the properti is 
associated */
+       enum prop_type type;         /* type of property */
+       const char *text;            /* the prompt value - P_PROMPT, P_MENU, 
P_COMMENT */
        struct expr_value visible;
-       struct expr *expr;
-       struct menu *menu;
-       struct file *file;
-       int lineno;
+       struct expr *expr;           /* the optional conditional part of the 
property */
+       struct menu *menu;           /* the menu the property are associated 
with
+                                     * valid for: P_SELECT, P_RANGE, P_CHOICE,
+                                     * P_PROMPT, P_DEFAULT, P_MENU, P_COMMENT 
*/
+       struct file *file;           /* In what file was this property defined 
*/
+       int lineno;                  /* At what lineno was this property 
defined */
 };
 
 #define for_all_properties(sym, st, tok) \
diff --git a/scripts/kconfig/gconf.c b/scripts/kconfig/gconf.c
index 262908c..df910cb 100644
--- a/scripts/kconfig/gconf.c
+++ b/scripts/kconfig/gconf.c
@@ -119,8 +119,6 @@ const char *dbg_print_flags(int val)
                strcat(buf, "choice/");
        if (val & SYMBOL_CHOICEVAL)
                strcat(buf, "choiceval/");
-       if (val & SYMBOL_PRINTED)
-               strcat(buf, "printed/");
        if (val & SYMBOL_VALID)
                strcat(buf, "valid/");
        if (val & SYMBOL_OPTIONAL)
-
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to