~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/scripts/tkparse.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * tkparse.h
  3  */
  4 
  5 /*
  6  * Token types (mostly statement types).
  7  */
  8 
  9 enum e_token
 10 {
 11     token_UNKNOWN,
 12     token_bool, 
 13     token_choice_header,
 14     token_choice_item,
 15     token_comment, 
 16     token_define_bool,
 17     token_define_hex,
 18     token_define_int,
 19     token_define_string,
 20     token_define_tristate,
 21     token_dep_bool,
 22     token_dep_mbool,
 23     token_dep_tristate,
 24     token_else, 
 25     token_endmenu,
 26     token_fi, 
 27     token_hex,
 28     token_if, 
 29     token_int,
 30     token_mainmenu_name, 
 31     token_mainmenu_option, 
 32     token_source,
 33     token_string,
 34     token_then,
 35     token_tristate, 
 36     token_unset,
 37 };
 38 
 39 /*
 40  * Operator types for conditionals.
 41  */
 42 
 43 enum operator
 44 {
 45     op_eq,
 46     op_neq,
 47     op_and,
 48     op_and1,
 49     op_or,
 50     op_bang,
 51     op_lparen,
 52     op_rparen,
 53     op_constant,
 54     op_variable,
 55     op_true,
 56     op_false,
 57     op_nuked
 58 };
 59 
 60 /*
 61  * Conditions come in linked lists.
 62  * Some operators take strings:
 63  *
 64  *   op_constant   "foo"
 65  *   op_variable   "$ARCH", "$CONFIG_PMAC", "$CONFIG_EXPERIMENTAL"
 66  *
 67  * Most "$..." constructs refer to a variable which is defined somewhere
 68  * in the script.  Note that it is legal to test variables which are never
 69  * defined, such as variables that are meaningful only on other architectures.
 70  */
 71 
 72 struct condition
 73 {
 74     struct condition *  next;
 75     enum operator       op;
 76     const char *        str;            /* op_constant */
 77     int                 nameindex;      /* op_variable */
 78 };
 79 
 80 /*
 81  * Dependency list for dep_bool, dep_mbool, dep_tristate
 82  */
 83 
 84 struct dependency
 85 {
 86     char *              name;
 87     struct dependency * next;
 88 };
 89 
 90 /*
 91  * A statement from a config.in file
 92  */
 93 
 94 struct kconfig
 95 {
 96     struct kconfig *    next;
 97     enum e_token        token;
 98     int                 nameindex;
 99     char *              label;
100     char *              value;
101     struct condition *  cond;
102     struct dependency * depend;         /* token_dep_tristate */
103     struct kconfig *    cfg_parent;     /* token_choice_item */
104 
105     /* used only in tkgen.c */
106     int                 menu_number;
107     int                 menu_line;
108     struct kconfig *    menu_next;
109 };
110 
111 struct variable
112 {
113     char *      name;
114     char        defined;
115     char        global_written;
116 };
117 
118 extern struct variable vartable[];
119 extern int max_varnum;
120 
121 /*
122  * Prototypes
123  */
124 
125 extern void fix_conditionals ( struct kconfig * scfg );         /* tkcond.c */
126 extern void dump_tk_script   ( struct kconfig * scfg );         /* tkgen.c  */
127 extern int get_varnum        ( char * name );                   /* tkparse.c */
128 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.