forked from mirrors/linux
		
	Remove gperf usage from toolchain
It turns out that gperf-3.1 changed types in the generated code in ways that aren't even trivially detectable without having to generate a test-file. It's just not worth using tools and libraries from clowns that don't understand or care about compatibility. So get rid of gperf. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									58d4e450a4
								
							
						
					
					
						commit
						bb3290d916
					
				
					 15 changed files with 151 additions and 663 deletions
				
			
		| 
						 | 
					@ -259,5 +259,4 @@ wakeup.bin
 | 
				
			||||||
wakeup.elf
 | 
					wakeup.elf
 | 
				
			||||||
wakeup.lds
 | 
					wakeup.lds
 | 
				
			||||||
zImage*
 | 
					zImage*
 | 
				
			||||||
zconf.hash.c
 | 
					 | 
				
			||||||
zoffset.h
 | 
					zoffset.h
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,6 +9,6 @@ HOSTCFLAGS_parse.tab.o := -I$(src)
 | 
				
			||||||
HOSTCFLAGS_lex.lex.o := -I$(src)
 | 
					HOSTCFLAGS_lex.lex.o := -I$(src)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# dependencies on generated files need to be listed explicitly
 | 
					# dependencies on generated files need to be listed explicitly
 | 
				
			||||||
$(obj)/lex.lex.o: $(obj)/keywords.hash.c $(obj)/parse.tab.h
 | 
					$(obj)/lex.lex.o: $(obj)/parse.tab.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean-files	:= keywords.hash.c lex.lex.c parse.tab.c parse.tab.h
 | 
					clean-files	:= lex.lex.c parse.tab.c parse.tab.h
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										74
									
								
								scripts/genksyms/keywords.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								scripts/genksyms/keywords.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,74 @@
 | 
				
			||||||
 | 
					static struct resword {
 | 
				
			||||||
 | 
						const char *name;
 | 
				
			||||||
 | 
						int token;
 | 
				
			||||||
 | 
					} keywords[] = {
 | 
				
			||||||
 | 
						{ "EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW },
 | 
				
			||||||
 | 
						{ "EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW },
 | 
				
			||||||
 | 
						{ "EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW },
 | 
				
			||||||
 | 
						{ "EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW },
 | 
				
			||||||
 | 
						{ "EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW },
 | 
				
			||||||
 | 
						{ "__asm", ASM_KEYW },
 | 
				
			||||||
 | 
						{ "__asm__", ASM_KEYW },
 | 
				
			||||||
 | 
						{ "__attribute", ATTRIBUTE_KEYW },
 | 
				
			||||||
 | 
						{ "__attribute__", ATTRIBUTE_KEYW },
 | 
				
			||||||
 | 
						{ "__const", CONST_KEYW },
 | 
				
			||||||
 | 
						{ "__const__", CONST_KEYW },
 | 
				
			||||||
 | 
						{ "__extension__", EXTENSION_KEYW },
 | 
				
			||||||
 | 
						{ "__inline", INLINE_KEYW },
 | 
				
			||||||
 | 
						{ "__inline__", INLINE_KEYW },
 | 
				
			||||||
 | 
						{ "__signed", SIGNED_KEYW },
 | 
				
			||||||
 | 
						{ "__signed__", SIGNED_KEYW },
 | 
				
			||||||
 | 
						{ "__typeof", TYPEOF_KEYW },
 | 
				
			||||||
 | 
						{ "__typeof__", TYPEOF_KEYW },
 | 
				
			||||||
 | 
						{ "__volatile", VOLATILE_KEYW },
 | 
				
			||||||
 | 
						{ "__volatile__", VOLATILE_KEYW },
 | 
				
			||||||
 | 
						{ "__builtin_va_list", VA_LIST_KEYW },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// According to rth, c99 defines "_Bool", __restrict", __restrict__", "restrict".  KAO
 | 
				
			||||||
 | 
						{ "_Bool", BOOL_KEYW },
 | 
				
			||||||
 | 
						{ "_restrict", RESTRICT_KEYW },
 | 
				
			||||||
 | 
						{ "__restrict__", RESTRICT_KEYW },
 | 
				
			||||||
 | 
						{ "restrict", RESTRICT_KEYW },
 | 
				
			||||||
 | 
						{ "asm", ASM_KEYW },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// attribute commented out in modutils 2.4.2.  People are using 'attribute' as a
 | 
				
			||||||
 | 
						// field name which breaks the genksyms parser.  It is not a gcc keyword anyway.
 | 
				
			||||||
 | 
						// KAO. },
 | 
				
			||||||
 | 
						// { "attribute", ATTRIBUTE_KEYW },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{ "auto", AUTO_KEYW },
 | 
				
			||||||
 | 
						{ "char", CHAR_KEYW },
 | 
				
			||||||
 | 
						{ "const", CONST_KEYW },
 | 
				
			||||||
 | 
						{ "double", DOUBLE_KEYW },
 | 
				
			||||||
 | 
						{ "enum", ENUM_KEYW },
 | 
				
			||||||
 | 
						{ "extern", EXTERN_KEYW },
 | 
				
			||||||
 | 
						{ "float", FLOAT_KEYW },
 | 
				
			||||||
 | 
						{ "inline", INLINE_KEYW },
 | 
				
			||||||
 | 
						{ "int", INT_KEYW },
 | 
				
			||||||
 | 
						{ "long", LONG_KEYW },
 | 
				
			||||||
 | 
						{ "register", REGISTER_KEYW },
 | 
				
			||||||
 | 
						{ "short", SHORT_KEYW },
 | 
				
			||||||
 | 
						{ "signed", SIGNED_KEYW },
 | 
				
			||||||
 | 
						{ "static", STATIC_KEYW },
 | 
				
			||||||
 | 
						{ "struct", STRUCT_KEYW },
 | 
				
			||||||
 | 
						{ "typedef", TYPEDEF_KEYW },
 | 
				
			||||||
 | 
						{ "typeof", TYPEOF_KEYW },
 | 
				
			||||||
 | 
						{ "union", UNION_KEYW },
 | 
				
			||||||
 | 
						{ "unsigned", UNSIGNED_KEYW },
 | 
				
			||||||
 | 
						{ "void", VOID_KEYW },
 | 
				
			||||||
 | 
						{ "volatile", VOLATILE_KEYW },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NR_KEYWORDS (sizeof(keywords)/sizeof(struct resword))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int is_reserved_word(register const char *str, register unsigned int len)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
						for (i = 0; i < NR_KEYWORDS; i++) {
 | 
				
			||||||
 | 
							struct resword *r = keywords + i;
 | 
				
			||||||
 | 
							int l = strlen(r->name);
 | 
				
			||||||
 | 
							if (len == l && !memcmp(str, r->name, len))
 | 
				
			||||||
 | 
								return r->token;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return -1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,61 +0,0 @@
 | 
				
			||||||
%language=ANSI-C
 | 
					 | 
				
			||||||
%define hash-function-name is_reserved_hash
 | 
					 | 
				
			||||||
%define lookup-function-name is_reserved_word
 | 
					 | 
				
			||||||
%{
 | 
					 | 
				
			||||||
struct resword;
 | 
					 | 
				
			||||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
 | 
					 | 
				
			||||||
%}
 | 
					 | 
				
			||||||
struct resword { const char *name; int token; }
 | 
					 | 
				
			||||||
%%
 | 
					 | 
				
			||||||
EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
 | 
					 | 
				
			||||||
EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
 | 
					 | 
				
			||||||
EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
 | 
					 | 
				
			||||||
EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
 | 
					 | 
				
			||||||
EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
 | 
					 | 
				
			||||||
__asm, ASM_KEYW
 | 
					 | 
				
			||||||
__asm__, ASM_KEYW
 | 
					 | 
				
			||||||
__attribute, ATTRIBUTE_KEYW
 | 
					 | 
				
			||||||
__attribute__, ATTRIBUTE_KEYW
 | 
					 | 
				
			||||||
__const, CONST_KEYW
 | 
					 | 
				
			||||||
__const__, CONST_KEYW
 | 
					 | 
				
			||||||
__extension__, EXTENSION_KEYW
 | 
					 | 
				
			||||||
__inline, INLINE_KEYW
 | 
					 | 
				
			||||||
__inline__, INLINE_KEYW
 | 
					 | 
				
			||||||
__signed, SIGNED_KEYW
 | 
					 | 
				
			||||||
__signed__, SIGNED_KEYW
 | 
					 | 
				
			||||||
__typeof, TYPEOF_KEYW
 | 
					 | 
				
			||||||
__typeof__, TYPEOF_KEYW
 | 
					 | 
				
			||||||
__volatile, VOLATILE_KEYW
 | 
					 | 
				
			||||||
__volatile__, VOLATILE_KEYW
 | 
					 | 
				
			||||||
__builtin_va_list, VA_LIST_KEYW
 | 
					 | 
				
			||||||
# According to rth, c99 defines _Bool, __restrict, __restrict__, restrict.  KAO
 | 
					 | 
				
			||||||
_Bool, BOOL_KEYW
 | 
					 | 
				
			||||||
_restrict, RESTRICT_KEYW
 | 
					 | 
				
			||||||
__restrict__, RESTRICT_KEYW
 | 
					 | 
				
			||||||
restrict, RESTRICT_KEYW
 | 
					 | 
				
			||||||
asm, ASM_KEYW
 | 
					 | 
				
			||||||
# attribute commented out in modutils 2.4.2.  People are using 'attribute' as a
 | 
					 | 
				
			||||||
# field name which breaks the genksyms parser.  It is not a gcc keyword anyway.
 | 
					 | 
				
			||||||
# KAO.
 | 
					 | 
				
			||||||
#   attribute, ATTRIBUTE_KEYW
 | 
					 | 
				
			||||||
auto, AUTO_KEYW
 | 
					 | 
				
			||||||
char, CHAR_KEYW
 | 
					 | 
				
			||||||
const, CONST_KEYW
 | 
					 | 
				
			||||||
double, DOUBLE_KEYW
 | 
					 | 
				
			||||||
enum, ENUM_KEYW
 | 
					 | 
				
			||||||
extern, EXTERN_KEYW
 | 
					 | 
				
			||||||
float, FLOAT_KEYW
 | 
					 | 
				
			||||||
inline, INLINE_KEYW
 | 
					 | 
				
			||||||
int, INT_KEYW
 | 
					 | 
				
			||||||
long, LONG_KEYW
 | 
					 | 
				
			||||||
register, REGISTER_KEYW
 | 
					 | 
				
			||||||
short, SHORT_KEYW
 | 
					 | 
				
			||||||
signed, SIGNED_KEYW
 | 
					 | 
				
			||||||
static, STATIC_KEYW
 | 
					 | 
				
			||||||
struct, STRUCT_KEYW
 | 
					 | 
				
			||||||
typedef, TYPEDEF_KEYW
 | 
					 | 
				
			||||||
typeof, TYPEOF_KEYW
 | 
					 | 
				
			||||||
union, UNION_KEYW
 | 
					 | 
				
			||||||
unsigned, UNSIGNED_KEYW
 | 
					 | 
				
			||||||
void, VOID_KEYW
 | 
					 | 
				
			||||||
volatile, VOLATILE_KEYW
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,230 +0,0 @@
 | 
				
			||||||
/* ANSI-C code produced by gperf version 3.0.4 */
 | 
					 | 
				
			||||||
/* Command-line: gperf -t --output-file scripts/genksyms/keywords.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/genksyms/keywords.gperf  */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
 | 
					 | 
				
			||||||
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
 | 
					 | 
				
			||||||
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
 | 
					 | 
				
			||||||
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
 | 
					 | 
				
			||||||
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
 | 
					 | 
				
			||||||
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
 | 
					 | 
				
			||||||
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
 | 
					 | 
				
			||||||
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
 | 
					 | 
				
			||||||
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
 | 
					 | 
				
			||||||
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
 | 
					 | 
				
			||||||
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
 | 
					 | 
				
			||||||
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
 | 
					 | 
				
			||||||
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
 | 
					 | 
				
			||||||
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
 | 
					 | 
				
			||||||
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
 | 
					 | 
				
			||||||
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
 | 
					 | 
				
			||||||
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
 | 
					 | 
				
			||||||
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
 | 
					 | 
				
			||||||
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
 | 
					 | 
				
			||||||
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
 | 
					 | 
				
			||||||
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
 | 
					 | 
				
			||||||
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
 | 
					 | 
				
			||||||
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
 | 
					 | 
				
			||||||
/* The character set is not based on ISO-646.  */
 | 
					 | 
				
			||||||
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#line 4 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct resword;
 | 
					 | 
				
			||||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
 | 
					 | 
				
			||||||
#line 8 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
struct resword { const char *name; int token; };
 | 
					 | 
				
			||||||
/* maximum key range = 98, duplicates = 0 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef __GNUC__
 | 
					 | 
				
			||||||
__inline
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#ifdef __cplusplus
 | 
					 | 
				
			||||||
inline
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
static unsigned int
 | 
					 | 
				
			||||||
is_reserved_hash (register const char *str, register unsigned int len)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  static const unsigned char asso_values[] =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101,   0,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101,  15, 101, 101, 101,
 | 
					 | 
				
			||||||
        0, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101,   0, 101,   0,   0,   5,
 | 
					 | 
				
			||||||
       25,  20,  55,  30, 101,  15, 101, 101,  10,   0,
 | 
					 | 
				
			||||||
       10,  40,  10, 101,  10,   5,   0,  10,  15, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
 | 
					 | 
				
			||||||
      101, 101, 101, 101, 101, 101
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef __GNUC__
 | 
					 | 
				
			||||||
__inline
 | 
					 | 
				
			||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
 | 
					 | 
				
			||||||
__attribute__ ((__gnu_inline__))
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
const struct resword *
 | 
					 | 
				
			||||||
is_reserved_word (register const char *str, register unsigned int len)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  enum
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TOTAL_KEYWORDS = 47,
 | 
					 | 
				
			||||||
      MIN_WORD_LENGTH = 3,
 | 
					 | 
				
			||||||
      MAX_WORD_LENGTH = 24,
 | 
					 | 
				
			||||||
      MIN_HASH_VALUE = 3,
 | 
					 | 
				
			||||||
      MAX_HASH_VALUE = 100
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  static const struct resword wordlist[] =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      {""}, {""}, {""},
 | 
					 | 
				
			||||||
#line 36 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"asm", ASM_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 15 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__asm", ASM_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 16 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__asm__", ASM_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""},
 | 
					 | 
				
			||||||
#line 27 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__typeof__", TYPEOF_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 19 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__const", CONST_KEYW},
 | 
					 | 
				
			||||||
#line 18 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__attribute__", ATTRIBUTE_KEYW},
 | 
					 | 
				
			||||||
#line 20 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__const__", CONST_KEYW},
 | 
					 | 
				
			||||||
#line 25 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__signed__", SIGNED_KEYW},
 | 
					 | 
				
			||||||
#line 54 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"static", STATIC_KEYW},
 | 
					 | 
				
			||||||
#line 30 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__builtin_va_list", VA_LIST_KEYW},
 | 
					 | 
				
			||||||
#line 49 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"int", INT_KEYW},
 | 
					 | 
				
			||||||
#line 42 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"char", CHAR_KEYW},
 | 
					 | 
				
			||||||
#line 43 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"const", CONST_KEYW},
 | 
					 | 
				
			||||||
#line 55 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"struct", STRUCT_KEYW},
 | 
					 | 
				
			||||||
#line 34 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__restrict__", RESTRICT_KEYW},
 | 
					 | 
				
			||||||
#line 35 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"restrict", RESTRICT_KEYW},
 | 
					 | 
				
			||||||
#line 12 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
 | 
					 | 
				
			||||||
#line 23 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__inline__", INLINE_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 29 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__volatile__", VOLATILE_KEYW},
 | 
					 | 
				
			||||||
#line 10 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
 | 
					 | 
				
			||||||
#line 33 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"_restrict", RESTRICT_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 17 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__attribute", ATTRIBUTE_KEYW},
 | 
					 | 
				
			||||||
#line 11 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
 | 
					 | 
				
			||||||
#line 21 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__extension__", EXTENSION_KEYW},
 | 
					 | 
				
			||||||
#line 45 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"enum", ENUM_KEYW},
 | 
					 | 
				
			||||||
#line 13 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW},
 | 
					 | 
				
			||||||
#line 46 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"extern", EXTERN_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 24 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__signed", SIGNED_KEYW},
 | 
					 | 
				
			||||||
#line 14 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
 | 
					 | 
				
			||||||
#line 58 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"union", UNION_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""},
 | 
					 | 
				
			||||||
#line 22 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__inline", INLINE_KEYW},
 | 
					 | 
				
			||||||
#line 41 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"auto", AUTO_KEYW},
 | 
					 | 
				
			||||||
#line 28 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__volatile", VOLATILE_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""},
 | 
					 | 
				
			||||||
#line 59 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"unsigned", UNSIGNED_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 52 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"short", SHORT_KEYW},
 | 
					 | 
				
			||||||
#line 48 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"inline", INLINE_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 61 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"volatile", VOLATILE_KEYW},
 | 
					 | 
				
			||||||
#line 50 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"long", LONG_KEYW},
 | 
					 | 
				
			||||||
#line 32 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"_Bool", BOOL_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""},
 | 
					 | 
				
			||||||
#line 51 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"register", REGISTER_KEYW},
 | 
					 | 
				
			||||||
#line 60 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"void", VOID_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 44 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"double", DOUBLE_KEYW},
 | 
					 | 
				
			||||||
      {""},
 | 
					 | 
				
			||||||
#line 26 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"__typeof", TYPEOF_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""},
 | 
					 | 
				
			||||||
#line 53 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"signed", SIGNED_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""}, {""}, {""},
 | 
					 | 
				
			||||||
#line 57 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"typeof", TYPEOF_KEYW},
 | 
					 | 
				
			||||||
#line 56 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"typedef", TYPEDEF_KEYW},
 | 
					 | 
				
			||||||
      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
 | 
					 | 
				
			||||||
      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
 | 
					 | 
				
			||||||
      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
 | 
					 | 
				
			||||||
#line 47 "scripts/genksyms/keywords.gperf"
 | 
					 | 
				
			||||||
      {"float", FLOAT_KEYW}
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      register int key = is_reserved_hash (str, len);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (key <= MAX_HASH_VALUE && key >= 0)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          register const char *s = wordlist[key].name;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          if (*str == *s && !strcmp (str + 1, s + 1))
 | 
					 | 
				
			||||||
            return &wordlist[key];
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -94,7 +94,7 @@ MC_TOKEN		([~%^&*+=|<>/-]=)|(&&)|("||")|(->)|(<<)|(>>)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Bring in the keyword recognizer.  */
 | 
					/* Bring in the keyword recognizer.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "keywords.hash.c"
 | 
					#include "keywords.c"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Macros to append to our phrase collection list.  */
 | 
					/* Macros to append to our phrase collection list.  */
 | 
				
			||||||
| 
						 | 
					@ -186,10 +186,10 @@ repeat:
 | 
				
			||||||
	case IDENT:
 | 
						case IDENT:
 | 
				
			||||||
	  APP;
 | 
						  APP;
 | 
				
			||||||
	  {
 | 
						  {
 | 
				
			||||||
	    const struct resword *r = is_reserved_word(yytext, yyleng);
 | 
						    int r = is_reserved_word(yytext, yyleng);
 | 
				
			||||||
	    if (r)
 | 
						    if (r >= 0)
 | 
				
			||||||
	      {
 | 
						      {
 | 
				
			||||||
		switch (token = r->token)
 | 
							switch (token = r)
 | 
				
			||||||
		  {
 | 
							  {
 | 
				
			||||||
		  case ATTRIBUTE_KEYW:
 | 
							  case ATTRIBUTE_KEYW:
 | 
				
			||||||
		    lexstate = ST_ATTRIBUTE;
 | 
							    lexstate = ST_ATTRIBUTE;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1905,7 +1905,7 @@ void yyfree (void * ptr )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Bring in the keyword recognizer.  */
 | 
					/* Bring in the keyword recognizer.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "keywords.hash.c"
 | 
					#include "keywords.c"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Macros to append to our phrase collection list.  */
 | 
					/* Macros to append to our phrase collection list.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1995,10 +1995,10 @@ repeat:
 | 
				
			||||||
	case IDENT:
 | 
						case IDENT:
 | 
				
			||||||
	  APP;
 | 
						  APP;
 | 
				
			||||||
	  {
 | 
						  {
 | 
				
			||||||
	    const struct resword *r = is_reserved_word(yytext, yyleng);
 | 
						    int r = is_reserved_word(yytext, yyleng);
 | 
				
			||||||
	    if (r)
 | 
						    if (r >= 0)
 | 
				
			||||||
	      {
 | 
						      {
 | 
				
			||||||
		switch (token = r->token)
 | 
							switch (token = r)
 | 
				
			||||||
		  {
 | 
							  {
 | 
				
			||||||
		  case ATTRIBUTE_KEYW:
 | 
							  case ATTRIBUTE_KEYW:
 | 
				
			||||||
		    lexstate = ST_ATTRIBUTE;
 | 
							    lexstate = ST_ATTRIBUTE;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								scripts/kconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								scripts/kconfig/.gitignore
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -5,7 +5,6 @@ config*
 | 
				
			||||||
*.lex.c
 | 
					*.lex.c
 | 
				
			||||||
*.tab.c
 | 
					*.tab.c
 | 
				
			||||||
*.tab.h
 | 
					*.tab.h
 | 
				
			||||||
zconf.hash.c
 | 
					 | 
				
			||||||
*.moc
 | 
					*.moc
 | 
				
			||||||
gconf.glade.h
 | 
					gconf.glade.h
 | 
				
			||||||
*.pot
 | 
					*.pot
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -191,7 +191,7 @@ gconf-objs	:= gconf.o zconf.tab.o
 | 
				
			||||||
hostprogs-y := conf nconf mconf kxgettext qconf gconf
 | 
					hostprogs-y := conf nconf mconf kxgettext qconf gconf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
clean-files	:= qconf.moc .tmp_qtcheck .tmp_gtkcheck
 | 
					clean-files	:= qconf.moc .tmp_qtcheck .tmp_gtkcheck
 | 
				
			||||||
clean-files	+= zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
 | 
					clean-files	+= zconf.tab.c zconf.lex.c gconf.glade.h
 | 
				
			||||||
clean-files     += config.pot linux.pot
 | 
					clean-files     += config.pot linux.pot
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
 | 
					# Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
 | 
				
			||||||
| 
						 | 
					@ -280,7 +280,7 @@ $(obj)/.tmp_gtkcheck:
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c
 | 
					$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(obj)/qconf.o: $(obj)/qconf.moc
 | 
					$(obj)/qconf.o: $(obj)/qconf.moc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										54
									
								
								scripts/kconfig/kconf_id.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								scripts/kconfig/kconf_id.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,54 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static struct kconf_id kconf_id_array[] = {
 | 
				
			||||||
 | 
						{ "mainmenu",		T_MAINMENU,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "menu",		T_MENU,			TF_COMMAND },
 | 
				
			||||||
 | 
						{ "endmenu",		T_ENDMENU,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "source",		T_SOURCE,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "choice",		T_CHOICE,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "endchoice",		T_ENDCHOICE,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "comment",		T_COMMENT,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "config",		T_CONFIG,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "menuconfig",		T_MENUCONFIG,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "help",		T_HELP,			TF_COMMAND },
 | 
				
			||||||
 | 
						{ "---help---",		T_HELP,			TF_COMMAND },
 | 
				
			||||||
 | 
						{ "if",			T_IF,			TF_COMMAND|TF_PARAM },
 | 
				
			||||||
 | 
						{ "endif",		T_ENDIF,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "depends",		T_DEPENDS,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "optional",		T_OPTIONAL,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "default",		T_DEFAULT,		TF_COMMAND, S_UNKNOWN },
 | 
				
			||||||
 | 
						{ "prompt",		T_PROMPT,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "tristate",		T_TYPE,			TF_COMMAND, S_TRISTATE },
 | 
				
			||||||
 | 
						{ "def_tristate",	T_DEFAULT,		TF_COMMAND, S_TRISTATE },
 | 
				
			||||||
 | 
						{ "bool",		T_TYPE,			TF_COMMAND, S_BOOLEAN },
 | 
				
			||||||
 | 
						{ "boolean",		T_TYPE,			TF_COMMAND, S_BOOLEAN },
 | 
				
			||||||
 | 
						{ "def_bool",		T_DEFAULT,		TF_COMMAND, S_BOOLEAN },
 | 
				
			||||||
 | 
						{ "int",		T_TYPE,			TF_COMMAND, S_INT },
 | 
				
			||||||
 | 
						{ "hex",		T_TYPE,			TF_COMMAND, S_HEX },
 | 
				
			||||||
 | 
						{ "string",		T_TYPE,			TF_COMMAND, S_STRING },
 | 
				
			||||||
 | 
						{ "select",		T_SELECT,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "imply",		T_IMPLY,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "range",		T_RANGE,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "visible",		T_VISIBLE,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "option",		T_OPTION,		TF_COMMAND },
 | 
				
			||||||
 | 
						{ "on",			T_ON,			TF_PARAM },
 | 
				
			||||||
 | 
						{ "modules",		T_OPT_MODULES,		TF_OPTION },
 | 
				
			||||||
 | 
						{ "defconfig_list",	T_OPT_DEFCONFIG_LIST,	TF_OPTION },
 | 
				
			||||||
 | 
						{ "env",		T_OPT_ENV,		TF_OPTION },
 | 
				
			||||||
 | 
						{ "allnoconfig_y",	T_OPT_ALLNOCONFIG_Y,	TF_OPTION },
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) {
 | 
				
			||||||
 | 
							struct kconf_id *id = kconf_id_array+i;
 | 
				
			||||||
 | 
							int l = strlen(id->name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (len == l && !memcmp(str, id->name, len))
 | 
				
			||||||
 | 
								return id;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return NULL;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -62,7 +62,7 @@ enum conf_def_mode {
 | 
				
			||||||
#define T_OPT_ALLNOCONFIG_Y	4
 | 
					#define T_OPT_ALLNOCONFIG_Y	4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct kconf_id {
 | 
					struct kconf_id {
 | 
				
			||||||
	int name;
 | 
						const char *name;
 | 
				
			||||||
	int token;
 | 
						int token;
 | 
				
			||||||
	unsigned int flags;
 | 
						unsigned int flags;
 | 
				
			||||||
	enum symbol_type stype;
 | 
						enum symbol_type stype;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,50 +0,0 @@
 | 
				
			||||||
%language=ANSI-C
 | 
					 | 
				
			||||||
%define hash-function-name kconf_id_hash
 | 
					 | 
				
			||||||
%define lookup-function-name kconf_id_lookup
 | 
					 | 
				
			||||||
%define string-pool-name kconf_id_strings
 | 
					 | 
				
			||||||
%compare-strncmp
 | 
					 | 
				
			||||||
%enum
 | 
					 | 
				
			||||||
%pic
 | 
					 | 
				
			||||||
%struct-type
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct kconf_id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
%%
 | 
					 | 
				
			||||||
mainmenu,	T_MAINMENU,	TF_COMMAND
 | 
					 | 
				
			||||||
menu,		T_MENU,		TF_COMMAND
 | 
					 | 
				
			||||||
endmenu,	T_ENDMENU,	TF_COMMAND
 | 
					 | 
				
			||||||
source,		T_SOURCE,	TF_COMMAND
 | 
					 | 
				
			||||||
choice,		T_CHOICE,	TF_COMMAND
 | 
					 | 
				
			||||||
endchoice,	T_ENDCHOICE,	TF_COMMAND
 | 
					 | 
				
			||||||
comment,	T_COMMENT,	TF_COMMAND
 | 
					 | 
				
			||||||
config,		T_CONFIG,	TF_COMMAND
 | 
					 | 
				
			||||||
menuconfig,	T_MENUCONFIG,	TF_COMMAND
 | 
					 | 
				
			||||||
help,		T_HELP,		TF_COMMAND
 | 
					 | 
				
			||||||
---help---,	T_HELP,		TF_COMMAND
 | 
					 | 
				
			||||||
if,		T_IF,		TF_COMMAND|TF_PARAM
 | 
					 | 
				
			||||||
endif,		T_ENDIF,	TF_COMMAND
 | 
					 | 
				
			||||||
depends,	T_DEPENDS,	TF_COMMAND
 | 
					 | 
				
			||||||
optional,	T_OPTIONAL,	TF_COMMAND
 | 
					 | 
				
			||||||
default,	T_DEFAULT,	TF_COMMAND, S_UNKNOWN
 | 
					 | 
				
			||||||
prompt,		T_PROMPT,	TF_COMMAND
 | 
					 | 
				
			||||||
tristate,	T_TYPE,		TF_COMMAND, S_TRISTATE
 | 
					 | 
				
			||||||
def_tristate,	T_DEFAULT,	TF_COMMAND, S_TRISTATE
 | 
					 | 
				
			||||||
bool,		T_TYPE,		TF_COMMAND, S_BOOLEAN
 | 
					 | 
				
			||||||
boolean,	T_TYPE,		TF_COMMAND, S_BOOLEAN
 | 
					 | 
				
			||||||
def_bool,	T_DEFAULT,	TF_COMMAND, S_BOOLEAN
 | 
					 | 
				
			||||||
int,		T_TYPE,		TF_COMMAND, S_INT
 | 
					 | 
				
			||||||
hex,		T_TYPE,		TF_COMMAND, S_HEX
 | 
					 | 
				
			||||||
string,		T_TYPE,		TF_COMMAND, S_STRING
 | 
					 | 
				
			||||||
select,		T_SELECT,	TF_COMMAND
 | 
					 | 
				
			||||||
imply,		T_IMPLY,	TF_COMMAND
 | 
					 | 
				
			||||||
range,		T_RANGE,	TF_COMMAND
 | 
					 | 
				
			||||||
visible,	T_VISIBLE,	TF_COMMAND
 | 
					 | 
				
			||||||
option,		T_OPTION,	TF_COMMAND
 | 
					 | 
				
			||||||
on,		T_ON,		TF_PARAM
 | 
					 | 
				
			||||||
modules,	T_OPT_MODULES,	TF_OPTION
 | 
					 | 
				
			||||||
defconfig_list,	T_OPT_DEFCONFIG_LIST,TF_OPTION
 | 
					 | 
				
			||||||
env,		T_OPT_ENV,	TF_OPTION
 | 
					 | 
				
			||||||
allnoconfig_y,	T_OPT_ALLNOCONFIG_Y,TF_OPTION
 | 
					 | 
				
			||||||
%%
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,297 +0,0 @@
 | 
				
			||||||
/* ANSI-C code produced by gperf version 3.0.4 */
 | 
					 | 
				
			||||||
/* Command-line: gperf -t --output-file scripts/kconfig/zconf.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/kconfig/zconf.gperf  */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
 | 
					 | 
				
			||||||
      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
 | 
					 | 
				
			||||||
      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
 | 
					 | 
				
			||||||
      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
 | 
					 | 
				
			||||||
      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
 | 
					 | 
				
			||||||
      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
 | 
					 | 
				
			||||||
      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
 | 
					 | 
				
			||||||
      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
 | 
					 | 
				
			||||||
      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
 | 
					 | 
				
			||||||
      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
 | 
					 | 
				
			||||||
      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
 | 
					 | 
				
			||||||
      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
 | 
					 | 
				
			||||||
      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
 | 
					 | 
				
			||||||
      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
 | 
					 | 
				
			||||||
      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
 | 
					 | 
				
			||||||
      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
 | 
					 | 
				
			||||||
      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
 | 
					 | 
				
			||||||
      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
 | 
					 | 
				
			||||||
      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
 | 
					 | 
				
			||||||
      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
 | 
					 | 
				
			||||||
      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
 | 
					 | 
				
			||||||
      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
 | 
					 | 
				
			||||||
      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
 | 
					 | 
				
			||||||
/* The character set is not based on ISO-646.  */
 | 
					 | 
				
			||||||
#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#line 10 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
struct kconf_id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
 | 
					 | 
				
			||||||
/* maximum key range = 71, duplicates = 0 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#ifdef __GNUC__
 | 
					 | 
				
			||||||
__inline
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
#ifdef __cplusplus
 | 
					 | 
				
			||||||
inline
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
static unsigned int
 | 
					 | 
				
			||||||
kconf_id_hash (register const char *str, register unsigned int len)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  static const unsigned char asso_values[] =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73,  0, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 10, 25, 25,
 | 
					 | 
				
			||||||
       0,  0,  0,  5,  0,  0, 73, 73,  5,  0,
 | 
					 | 
				
			||||||
      10,  5, 45, 73, 20, 20,  0, 15, 15, 73,
 | 
					 | 
				
			||||||
      20,  0, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
 | 
					 | 
				
			||||||
      73, 73, 73, 73, 73, 73
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  register int hval = len;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  switch (hval)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        hval += asso_values[(unsigned char)str[2]];
 | 
					 | 
				
			||||||
      /*FALLTHROUGH*/
 | 
					 | 
				
			||||||
      case 2:
 | 
					 | 
				
			||||||
      case 1:
 | 
					 | 
				
			||||||
        hval += asso_values[(unsigned char)str[0]];
 | 
					 | 
				
			||||||
        break;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  return hval + asso_values[(unsigned char)str[len - 1]];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct kconf_id_strings_t
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    char kconf_id_strings_str2[sizeof("if")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str3[sizeof("int")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str5[sizeof("endif")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str7[sizeof("default")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str8[sizeof("tristate")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str9[sizeof("endchoice")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str10[sizeof("---help---")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str12[sizeof("def_tristate")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str13[sizeof("def_bool")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str14[sizeof("defconfig_list")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str17[sizeof("on")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str18[sizeof("optional")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str21[sizeof("option")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str22[sizeof("endmenu")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str23[sizeof("mainmenu")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str25[sizeof("menuconfig")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str27[sizeof("modules")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str28[sizeof("allnoconfig_y")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str29[sizeof("menu")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str31[sizeof("select")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str32[sizeof("comment")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str33[sizeof("env")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str35[sizeof("range")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str36[sizeof("choice")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str39[sizeof("bool")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str41[sizeof("source")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str42[sizeof("visible")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str43[sizeof("hex")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str46[sizeof("config")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str47[sizeof("boolean")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str50[sizeof("imply")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str51[sizeof("string")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str54[sizeof("help")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str56[sizeof("prompt")];
 | 
					 | 
				
			||||||
    char kconf_id_strings_str72[sizeof("depends")];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
static const struct kconf_id_strings_t kconf_id_strings_contents =
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "if",
 | 
					 | 
				
			||||||
    "int",
 | 
					 | 
				
			||||||
    "endif",
 | 
					 | 
				
			||||||
    "default",
 | 
					 | 
				
			||||||
    "tristate",
 | 
					 | 
				
			||||||
    "endchoice",
 | 
					 | 
				
			||||||
    "---help---",
 | 
					 | 
				
			||||||
    "def_tristate",
 | 
					 | 
				
			||||||
    "def_bool",
 | 
					 | 
				
			||||||
    "defconfig_list",
 | 
					 | 
				
			||||||
    "on",
 | 
					 | 
				
			||||||
    "optional",
 | 
					 | 
				
			||||||
    "option",
 | 
					 | 
				
			||||||
    "endmenu",
 | 
					 | 
				
			||||||
    "mainmenu",
 | 
					 | 
				
			||||||
    "menuconfig",
 | 
					 | 
				
			||||||
    "modules",
 | 
					 | 
				
			||||||
    "allnoconfig_y",
 | 
					 | 
				
			||||||
    "menu",
 | 
					 | 
				
			||||||
    "select",
 | 
					 | 
				
			||||||
    "comment",
 | 
					 | 
				
			||||||
    "env",
 | 
					 | 
				
			||||||
    "range",
 | 
					 | 
				
			||||||
    "choice",
 | 
					 | 
				
			||||||
    "bool",
 | 
					 | 
				
			||||||
    "source",
 | 
					 | 
				
			||||||
    "visible",
 | 
					 | 
				
			||||||
    "hex",
 | 
					 | 
				
			||||||
    "config",
 | 
					 | 
				
			||||||
    "boolean",
 | 
					 | 
				
			||||||
    "imply",
 | 
					 | 
				
			||||||
    "string",
 | 
					 | 
				
			||||||
    "help",
 | 
					 | 
				
			||||||
    "prompt",
 | 
					 | 
				
			||||||
    "depends"
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
 | 
					 | 
				
			||||||
#ifdef __GNUC__
 | 
					 | 
				
			||||||
__inline
 | 
					 | 
				
			||||||
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
 | 
					 | 
				
			||||||
__attribute__ ((__gnu_inline__))
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
const struct kconf_id *
 | 
					 | 
				
			||||||
kconf_id_lookup (register const char *str, register unsigned int len)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  enum
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      TOTAL_KEYWORDS = 35,
 | 
					 | 
				
			||||||
      MIN_WORD_LENGTH = 2,
 | 
					 | 
				
			||||||
      MAX_WORD_LENGTH = 14,
 | 
					 | 
				
			||||||
      MIN_HASH_VALUE = 2,
 | 
					 | 
				
			||||||
      MAX_HASH_VALUE = 72
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  static const struct kconf_id wordlist[] =
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 26 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2,		T_IF,		TF_COMMAND|TF_PARAM},
 | 
					 | 
				
			||||||
#line 37 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3,		T_TYPE,		TF_COMMAND, S_INT},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 27 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5,		T_ENDIF,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 30 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7,	T_DEFAULT,	TF_COMMAND, S_UNKNOWN},
 | 
					 | 
				
			||||||
#line 32 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8,	T_TYPE,		TF_COMMAND, S_TRISTATE},
 | 
					 | 
				
			||||||
#line 20 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9,	T_ENDCHOICE,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 25 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10,	T_HELP,		TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 33 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12,	T_DEFAULT,	TF_COMMAND, S_TRISTATE},
 | 
					 | 
				
			||||||
#line 36 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13,	T_DEFAULT,	TF_COMMAND, S_BOOLEAN},
 | 
					 | 
				
			||||||
#line 47 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14,	T_OPT_DEFCONFIG_LIST,TF_OPTION},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 45 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17,		T_ON,		TF_PARAM},
 | 
					 | 
				
			||||||
#line 29 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18,	T_OPTIONAL,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 44 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21,		T_OPTION,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 17 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22,	T_ENDMENU,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 15 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23,	T_MAINMENU,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 23 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25,	T_MENUCONFIG,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 46 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27,	T_OPT_MODULES,	TF_OPTION},
 | 
					 | 
				
			||||||
#line 49 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28,	T_OPT_ALLNOCONFIG_Y,TF_OPTION},
 | 
					 | 
				
			||||||
#line 16 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29,		T_MENU,		TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 40 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31,		T_SELECT,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 21 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32,	T_COMMENT,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 48 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33,		T_OPT_ENV,	TF_OPTION},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 42 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35,		T_RANGE,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 19 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36,		T_CHOICE,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 34 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39,		T_TYPE,		TF_COMMAND, S_BOOLEAN},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 18 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41,		T_SOURCE,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 43 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42,	T_VISIBLE,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 38 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43,		T_TYPE,		TF_COMMAND, S_HEX},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 22 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46,		T_CONFIG,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 35 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47,	T_TYPE,		TF_COMMAND, S_BOOLEAN},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 41 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str50,		T_IMPLY,	TF_COMMAND},
 | 
					 | 
				
			||||||
#line 39 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51,		T_TYPE,		TF_COMMAND, S_STRING},
 | 
					 | 
				
			||||||
      {-1}, {-1},
 | 
					 | 
				
			||||||
#line 24 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54,		T_HELP,		TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1},
 | 
					 | 
				
			||||||
#line 31 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56,		T_PROMPT,	TF_COMMAND},
 | 
					 | 
				
			||||||
      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
 | 
					 | 
				
			||||||
      {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
 | 
					 | 
				
			||||||
#line 28 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72,	T_DEPENDS,	TF_COMMAND}
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      register int key = kconf_id_hash (str, len);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      if (key <= MAX_HASH_VALUE && key >= 0)
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
          register int o = wordlist[key].name;
 | 
					 | 
				
			||||||
          if (o >= 0)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
              register const char *s = o + kconf_id_strings;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
 | 
					 | 
				
			||||||
                return &wordlist[key];
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#line 50 "scripts/kconfig/zconf.gperf"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					@ -209,8 +209,8 @@ int zconfparse (void);
 | 
				
			||||||
/* Copy the second part of user declarations.  */
 | 
					/* Copy the second part of user declarations.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Include zconf.hash.c here so it can see the token constants. */
 | 
					/* Include kconf_id.c here so it can see the token constants. */
 | 
				
			||||||
#include "zconf.hash.c"
 | 
					#include "kconf_id.c"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1515,7 +1515,7 @@ yyreduce:
 | 
				
			||||||
  case 12:
 | 
					  case 12:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
	zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name);
 | 
						zconf_error("unexpected option \"%s\"", (yyvsp[-2].id)->name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
| 
						 | 
					@ -2268,13 +2268,13 @@ static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtok
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (id->token != endtoken) {
 | 
						if (id->token != endtoken) {
 | 
				
			||||||
		zconf_error("unexpected '%s' within %s block",
 | 
							zconf_error("unexpected '%s' within %s block",
 | 
				
			||||||
			kconf_id_strings + id->name, zconf_tokenname(starttoken));
 | 
								id->name, zconf_tokenname(starttoken));
 | 
				
			||||||
		zconfnerrs++;
 | 
							zconfnerrs++;
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (current_menu->file != current_file) {
 | 
						if (current_menu->file != current_file) {
 | 
				
			||||||
		zconf_error("'%s' in different file than '%s'",
 | 
							zconf_error("'%s' in different file than '%s'",
 | 
				
			||||||
			kconf_id_strings + id->name, zconf_tokenname(starttoken));
 | 
								id->name, zconf_tokenname(starttoken));
 | 
				
			||||||
		fprintf(stderr, "%s:%d: location of the '%s'\n",
 | 
							fprintf(stderr, "%s:%d: location of the '%s'\n",
 | 
				
			||||||
			current_menu->file->name, current_menu->lineno,
 | 
								current_menu->file->name, current_menu->lineno,
 | 
				
			||||||
			zconf_tokenname(starttoken));
 | 
								zconf_tokenname(starttoken));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,8 +101,8 @@ static struct menu *current_menu, *current_entry;
 | 
				
			||||||
} if_entry menu_entry choice_entry
 | 
					} if_entry menu_entry choice_entry
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%{
 | 
					%{
 | 
				
			||||||
/* Include zconf.hash.c here so it can see the token constants. */
 | 
					/* Include zconf_id.c here so it can see the token constants. */
 | 
				
			||||||
#include "zconf.hash.c"
 | 
					#include "kconf_id.c"
 | 
				
			||||||
%}
 | 
					%}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
%%
 | 
					%%
 | 
				
			||||||
| 
						 | 
					@ -119,7 +119,7 @@ stmt_list:
 | 
				
			||||||
	| stmt_list T_WORD error T_EOL	{ zconf_error("unknown statement \"%s\"", $2); }
 | 
						| stmt_list T_WORD error T_EOL	{ zconf_error("unknown statement \"%s\"", $2); }
 | 
				
			||||||
	| stmt_list option_name error T_EOL
 | 
						| stmt_list option_name error T_EOL
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	zconf_error("unexpected option \"%s\"", kconf_id_strings + $2->name);
 | 
						zconf_error("unexpected option \"%s\"", $2->name);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
	| stmt_list error T_EOL		{ zconf_error("invalid statement"); }
 | 
						| stmt_list error T_EOL		{ zconf_error("invalid statement"); }
 | 
				
			||||||
;
 | 
					;
 | 
				
			||||||
| 
						 | 
					@ -551,13 +551,13 @@ static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtok
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (id->token != endtoken) {
 | 
						if (id->token != endtoken) {
 | 
				
			||||||
		zconf_error("unexpected '%s' within %s block",
 | 
							zconf_error("unexpected '%s' within %s block",
 | 
				
			||||||
			kconf_id_strings + id->name, zconf_tokenname(starttoken));
 | 
								id->name, zconf_tokenname(starttoken));
 | 
				
			||||||
		zconfnerrs++;
 | 
							zconfnerrs++;
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if (current_menu->file != current_file) {
 | 
						if (current_menu->file != current_file) {
 | 
				
			||||||
		zconf_error("'%s' in different file than '%s'",
 | 
							zconf_error("'%s' in different file than '%s'",
 | 
				
			||||||
			kconf_id_strings + id->name, zconf_tokenname(starttoken));
 | 
								id->name, zconf_tokenname(starttoken));
 | 
				
			||||||
		fprintf(stderr, "%s:%d: location of the '%s'\n",
 | 
							fprintf(stderr, "%s:%d: location of the '%s'\n",
 | 
				
			||||||
			current_menu->file->name, current_menu->lineno,
 | 
								current_menu->file->name, current_menu->lineno,
 | 
				
			||||||
			zconf_tokenname(starttoken));
 | 
								zconf_tokenname(starttoken));
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue