diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/genksyms/Makefile | 4 | ||||
-rw-r--r-- | scripts/genksyms/keywords.c | 74 | ||||
-rw-r--r-- | scripts/genksyms/keywords.gperf | 61 | ||||
-rw-r--r-- | scripts/genksyms/keywords.hash.c_shipped | 230 | ||||
-rw-r--r-- | scripts/genksyms/lex.l | 8 | ||||
-rw-r--r-- | scripts/genksyms/lex.lex.c_shipped | 8 | ||||
-rw-r--r-- | scripts/kconfig/.gitignore | 1 | ||||
-rw-r--r-- | scripts/kconfig/Makefile | 4 | ||||
-rw-r--r-- | scripts/kconfig/kconf_id.c | 54 | ||||
-rw-r--r-- | scripts/kconfig/lkc.h | 2 | ||||
-rw-r--r-- | scripts/kconfig/zconf.gperf | 50 | ||||
-rw-r--r-- | scripts/kconfig/zconf.hash.c_shipped | 297 | ||||
-rw-r--r-- | scripts/kconfig/zconf.tab.c_shipped | 10 | ||||
-rw-r--r-- | scripts/kconfig/zconf.y | 10 |
14 files changed, 151 insertions, 662 deletions
diff --git a/scripts/genksyms/Makefile b/scripts/genksyms/Makefile index aca33b98bf63..3c23bab3367b 100644 --- a/scripts/genksyms/Makefile +++ b/scripts/genksyms/Makefile | |||
@@ -9,6 +9,6 @@ HOSTCFLAGS_parse.tab.o := -I$(src) | |||
9 | HOSTCFLAGS_lex.lex.o := -I$(src) | 9 | HOSTCFLAGS_lex.lex.o := -I$(src) |
10 | 10 | ||
11 | # dependencies on generated files need to be listed explicitly | 11 | # dependencies on generated files need to be listed explicitly |
12 | $(obj)/lex.lex.o: $(obj)/keywords.hash.c $(obj)/parse.tab.h | 12 | $(obj)/lex.lex.o: $(obj)/parse.tab.h |
13 | 13 | ||
14 | clean-files := keywords.hash.c lex.lex.c parse.tab.c parse.tab.h | 14 | clean-files := lex.lex.c parse.tab.c parse.tab.h |
diff --git a/scripts/genksyms/keywords.c b/scripts/genksyms/keywords.c new file mode 100644 index 000000000000..9f40bcd17d07 --- /dev/null +++ b/scripts/genksyms/keywords.c | |||
@@ -0,0 +1,74 @@ | |||
1 | static struct resword { | ||
2 | const char *name; | ||
3 | int token; | ||
4 | } keywords[] = { | ||
5 | { "EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW }, | ||
6 | { "EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW }, | ||
7 | { "EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW }, | ||
8 | { "EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW }, | ||
9 | { "EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW }, | ||
10 | { "__asm", ASM_KEYW }, | ||
11 | { "__asm__", ASM_KEYW }, | ||
12 | { "__attribute", ATTRIBUTE_KEYW }, | ||
13 | { "__attribute__", ATTRIBUTE_KEYW }, | ||
14 | { "__const", CONST_KEYW }, | ||
15 | { "__const__", CONST_KEYW }, | ||
16 | { "__extension__", EXTENSION_KEYW }, | ||
17 | { "__inline", INLINE_KEYW }, | ||
18 | { "__inline__", INLINE_KEYW }, | ||
19 | { "__signed", SIGNED_KEYW }, | ||
20 | { "__signed__", SIGNED_KEYW }, | ||
21 | { "__typeof", TYPEOF_KEYW }, | ||
22 | { "__typeof__", TYPEOF_KEYW }, | ||
23 | { "__volatile", VOLATILE_KEYW }, | ||
24 | { "__volatile__", VOLATILE_KEYW }, | ||
25 | { "__builtin_va_list", VA_LIST_KEYW }, | ||
26 | |||
27 | // According to rth, c99 defines "_Bool", __restrict", __restrict__", "restrict". KAO | ||
28 | { "_Bool", BOOL_KEYW }, | ||
29 | { "_restrict", RESTRICT_KEYW }, | ||
30 | { "__restrict__", RESTRICT_KEYW }, | ||
31 | { "restrict", RESTRICT_KEYW }, | ||
32 | { "asm", ASM_KEYW }, | ||
33 | |||
34 | // attribute commented out in modutils 2.4.2. People are using 'attribute' as a | ||
35 | // field name which breaks the genksyms parser. It is not a gcc keyword anyway. | ||
36 | // KAO. }, | ||
37 | // { "attribute", ATTRIBUTE_KEYW }, | ||
38 | |||
39 | { "auto", AUTO_KEYW }, | ||
40 | { "char", CHAR_KEYW }, | ||
41 | { "const", CONST_KEYW }, | ||
42 | { "double", DOUBLE_KEYW }, | ||
43 | { "enum", ENUM_KEYW }, | ||
44 | { "extern", EXTERN_KEYW }, | ||
45 | { "float", FLOAT_KEYW }, | ||
46 | { "inline", INLINE_KEYW }, | ||
47 | { "int", INT_KEYW }, | ||
48 | { "long", LONG_KEYW }, | ||
49 | { "register", REGISTER_KEYW }, | ||
50 | { "short", SHORT_KEYW }, | ||
51 | { "signed", SIGNED_KEYW }, | ||
52 | { "static", STATIC_KEYW }, | ||
53 | { "struct", STRUCT_KEYW }, | ||
54 | { "typedef", TYPEDEF_KEYW }, | ||
55 | { "typeof", TYPEOF_KEYW }, | ||
56 | { "union", UNION_KEYW }, | ||
57 | { "unsigned", UNSIGNED_KEYW }, | ||
58 | { "void", VOID_KEYW }, | ||
59 | { "volatile", VOLATILE_KEYW }, | ||
60 | }; | ||
61 | |||
62 | #define NR_KEYWORDS (sizeof(keywords)/sizeof(struct resword)) | ||
63 | |||
64 | static int is_reserved_word(register const char *str, register unsigned int len) | ||
65 | { | ||
66 | int i; | ||
67 | for (i = 0; i < NR_KEYWORDS; i++) { | ||
68 | struct resword *r = keywords + i; | ||
69 | int l = strlen(r->name); | ||
70 | if (len == l && !memcmp(str, r->name, len)) | ||
71 | return r->token; | ||
72 | } | ||
73 | return -1; | ||
74 | } | ||
diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf deleted file mode 100644 index bd4c4b235588..000000000000 --- a/scripts/genksyms/keywords.gperf +++ /dev/null | |||
@@ -1,61 +0,0 @@ | |||
1 | %language=ANSI-C | ||
2 | %define hash-function-name is_reserved_hash | ||
3 | %define lookup-function-name is_reserved_word | ||
4 | %{ | ||
5 | struct resword; | ||
6 | static const struct resword *is_reserved_word(register const char *str, register unsigned int len); | ||
7 | %} | ||
8 | struct resword { const char *name; int token; } | ||
9 | %% | ||
10 | EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW | ||
11 | EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW | ||
12 | EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW | ||
13 | EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW | ||
14 | EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW | ||
15 | __asm, ASM_KEYW | ||
16 | __asm__, ASM_KEYW | ||
17 | __attribute, ATTRIBUTE_KEYW | ||
18 | __attribute__, ATTRIBUTE_KEYW | ||
19 | __const, CONST_KEYW | ||
20 | __const__, CONST_KEYW | ||
21 | __extension__, EXTENSION_KEYW | ||
22 | __inline, INLINE_KEYW | ||
23 | __inline__, INLINE_KEYW | ||
24 | __signed, SIGNED_KEYW | ||
25 | __signed__, SIGNED_KEYW | ||
26 | __typeof, TYPEOF_KEYW | ||
27 | __typeof__, TYPEOF_KEYW | ||
28 | __volatile, VOLATILE_KEYW | ||
29 | __volatile__, VOLATILE_KEYW | ||
30 | __builtin_va_list, VA_LIST_KEYW | ||
31 | # According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO | ||
32 | _Bool, BOOL_KEYW | ||
33 | _restrict, RESTRICT_KEYW | ||
34 | __restrict__, RESTRICT_KEYW | ||
35 | restrict, RESTRICT_KEYW | ||
36 | asm, ASM_KEYW | ||
37 | # attribute commented out in modutils 2.4.2. People are using 'attribute' as a | ||
38 | # field name which breaks the genksyms parser. It is not a gcc keyword anyway. | ||
39 | # KAO. | ||
40 | # attribute, ATTRIBUTE_KEYW | ||
41 | auto, AUTO_KEYW | ||
42 | char, CHAR_KEYW | ||
43 | const, CONST_KEYW | ||
44 | double, DOUBLE_KEYW | ||
45 | enum, ENUM_KEYW | ||
46 | extern, EXTERN_KEYW | ||
47 | float, FLOAT_KEYW | ||
48 | inline, INLINE_KEYW | ||
49 | int, INT_KEYW | ||
50 | long, LONG_KEYW | ||
51 | register, REGISTER_KEYW | ||
52 | short, SHORT_KEYW | ||
53 | signed, SIGNED_KEYW | ||
54 | static, STATIC_KEYW | ||
55 | struct, STRUCT_KEYW | ||
56 | typedef, TYPEDEF_KEYW | ||
57 | typeof, TYPEOF_KEYW | ||
58 | union, UNION_KEYW | ||
59 | unsigned, UNSIGNED_KEYW | ||
60 | void, VOID_KEYW | ||
61 | volatile, VOLATILE_KEYW | ||
diff --git a/scripts/genksyms/keywords.hash.c_shipped b/scripts/genksyms/keywords.hash.c_shipped deleted file mode 100644 index 738018ba7375..000000000000 --- a/scripts/genksyms/keywords.hash.c_shipped +++ /dev/null | |||
@@ -1,230 +0,0 @@ | |||
1 | /* ANSI-C code produced by gperf version 3.0.4 */ | ||
2 | /* 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 */ | ||
3 | |||
4 | #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | ||
5 | && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | ||
6 | && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | ||
7 | && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | ||
8 | && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | ||
9 | && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | ||
10 | && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | ||
11 | && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ | ||
12 | && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ | ||
13 | && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ | ||
14 | && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ | ||
15 | && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ | ||
16 | && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ | ||
17 | && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ | ||
18 | && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ | ||
19 | && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ | ||
20 | && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ | ||
21 | && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ | ||
22 | && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ | ||
23 | && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ | ||
24 | && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ | ||
25 | && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
26 | && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
27 | /* The character set is not based on ISO-646. */ | ||
28 | #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | ||
29 | #endif | ||
30 | |||
31 | #line 4 "scripts/genksyms/keywords.gperf" | ||
32 | |||
33 | struct resword; | ||
34 | static const struct resword *is_reserved_word(register const char *str, register unsigned int len); | ||
35 | #line 8 "scripts/genksyms/keywords.gperf" | ||
36 | struct resword { const char *name; int token; }; | ||
37 | /* maximum key range = 98, duplicates = 0 */ | ||
38 | |||
39 | #ifdef __GNUC__ | ||
40 | __inline | ||
41 | #else | ||
42 | #ifdef __cplusplus | ||
43 | inline | ||
44 | #endif | ||
45 | #endif | ||
46 | static unsigned int | ||
47 | is_reserved_hash (register const char *str, register unsigned int len) | ||
48 | { | ||
49 | static const unsigned char asso_values[] = | ||
50 | { | ||
51 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
52 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
53 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
54 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
55 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
56 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
57 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, | ||
58 | 101, 101, 101, 101, 101, 101, 15, 101, 101, 101, | ||
59 | 0, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
60 | 101, 101, 101, 101, 101, 0, 101, 0, 0, 5, | ||
61 | 25, 20, 55, 30, 101, 15, 101, 101, 10, 0, | ||
62 | 10, 40, 10, 101, 10, 5, 0, 10, 15, 101, | ||
63 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
64 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
65 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
66 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
67 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
68 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
69 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
70 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
71 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
72 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
73 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
74 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
75 | 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, | ||
76 | 101, 101, 101, 101, 101, 101 | ||
77 | }; | ||
78 | return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; | ||
79 | } | ||
80 | |||
81 | #ifdef __GNUC__ | ||
82 | __inline | ||
83 | #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ | ||
84 | __attribute__ ((__gnu_inline__)) | ||
85 | #endif | ||
86 | #endif | ||
87 | const struct resword * | ||
88 | is_reserved_word (register const char *str, register unsigned int len) | ||
89 | { | ||
90 | enum | ||
91 | { | ||
92 | TOTAL_KEYWORDS = 47, | ||
93 | MIN_WORD_LENGTH = 3, | ||
94 | MAX_WORD_LENGTH = 24, | ||
95 | MIN_HASH_VALUE = 3, | ||
96 | MAX_HASH_VALUE = 100 | ||
97 | }; | ||
98 | |||
99 | static const struct resword wordlist[] = | ||
100 | { | ||
101 | {""}, {""}, {""}, | ||
102 | #line 36 "scripts/genksyms/keywords.gperf" | ||
103 | {"asm", ASM_KEYW}, | ||
104 | {""}, | ||
105 | #line 15 "scripts/genksyms/keywords.gperf" | ||
106 | {"__asm", ASM_KEYW}, | ||
107 | {""}, | ||
108 | #line 16 "scripts/genksyms/keywords.gperf" | ||
109 | {"__asm__", ASM_KEYW}, | ||
110 | {""}, {""}, | ||
111 | #line 27 "scripts/genksyms/keywords.gperf" | ||
112 | {"__typeof__", TYPEOF_KEYW}, | ||
113 | {""}, | ||
114 | #line 19 "scripts/genksyms/keywords.gperf" | ||
115 | {"__const", CONST_KEYW}, | ||
116 | #line 18 "scripts/genksyms/keywords.gperf" | ||
117 | {"__attribute__", ATTRIBUTE_KEYW}, | ||
118 | #line 20 "scripts/genksyms/keywords.gperf" | ||
119 | {"__const__", CONST_KEYW}, | ||
120 | #line 25 "scripts/genksyms/keywords.gperf" | ||
121 | {"__signed__", SIGNED_KEYW}, | ||
122 | #line 54 "scripts/genksyms/keywords.gperf" | ||
123 | {"static", STATIC_KEYW}, | ||
124 | #line 30 "scripts/genksyms/keywords.gperf" | ||
125 | {"__builtin_va_list", VA_LIST_KEYW}, | ||
126 | #line 49 "scripts/genksyms/keywords.gperf" | ||
127 | {"int", INT_KEYW}, | ||
128 | #line 42 "scripts/genksyms/keywords.gperf" | ||
129 | {"char", CHAR_KEYW}, | ||
130 | #line 43 "scripts/genksyms/keywords.gperf" | ||
131 | {"const", CONST_KEYW}, | ||
132 | #line 55 "scripts/genksyms/keywords.gperf" | ||
133 | {"struct", STRUCT_KEYW}, | ||
134 | #line 34 "scripts/genksyms/keywords.gperf" | ||
135 | {"__restrict__", RESTRICT_KEYW}, | ||
136 | #line 35 "scripts/genksyms/keywords.gperf" | ||
137 | {"restrict", RESTRICT_KEYW}, | ||
138 | #line 12 "scripts/genksyms/keywords.gperf" | ||
139 | {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW}, | ||
140 | #line 23 "scripts/genksyms/keywords.gperf" | ||
141 | {"__inline__", INLINE_KEYW}, | ||
142 | {""}, | ||
143 | #line 29 "scripts/genksyms/keywords.gperf" | ||
144 | {"__volatile__", VOLATILE_KEYW}, | ||
145 | #line 10 "scripts/genksyms/keywords.gperf" | ||
146 | {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW}, | ||
147 | #line 33 "scripts/genksyms/keywords.gperf" | ||
148 | {"_restrict", RESTRICT_KEYW}, | ||
149 | {""}, | ||
150 | #line 17 "scripts/genksyms/keywords.gperf" | ||
151 | {"__attribute", ATTRIBUTE_KEYW}, | ||
152 | #line 11 "scripts/genksyms/keywords.gperf" | ||
153 | {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, | ||
154 | #line 21 "scripts/genksyms/keywords.gperf" | ||
155 | {"__extension__", EXTENSION_KEYW}, | ||
156 | #line 45 "scripts/genksyms/keywords.gperf" | ||
157 | {"enum", ENUM_KEYW}, | ||
158 | #line 13 "scripts/genksyms/keywords.gperf" | ||
159 | {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW}, | ||
160 | #line 46 "scripts/genksyms/keywords.gperf" | ||
161 | {"extern", EXTERN_KEYW}, | ||
162 | {""}, | ||
163 | #line 24 "scripts/genksyms/keywords.gperf" | ||
164 | {"__signed", SIGNED_KEYW}, | ||
165 | #line 14 "scripts/genksyms/keywords.gperf" | ||
166 | {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, | ||
167 | #line 58 "scripts/genksyms/keywords.gperf" | ||
168 | {"union", UNION_KEYW}, | ||
169 | {""}, {""}, | ||
170 | #line 22 "scripts/genksyms/keywords.gperf" | ||
171 | {"__inline", INLINE_KEYW}, | ||
172 | #line 41 "scripts/genksyms/keywords.gperf" | ||
173 | {"auto", AUTO_KEYW}, | ||
174 | #line 28 "scripts/genksyms/keywords.gperf" | ||
175 | {"__volatile", VOLATILE_KEYW}, | ||
176 | {""}, {""}, | ||
177 | #line 59 "scripts/genksyms/keywords.gperf" | ||
178 | {"unsigned", UNSIGNED_KEYW}, | ||
179 | {""}, | ||
180 | #line 52 "scripts/genksyms/keywords.gperf" | ||
181 | {"short", SHORT_KEYW}, | ||
182 | #line 48 "scripts/genksyms/keywords.gperf" | ||
183 | {"inline", INLINE_KEYW}, | ||
184 | {""}, | ||
185 | #line 61 "scripts/genksyms/keywords.gperf" | ||
186 | {"volatile", VOLATILE_KEYW}, | ||
187 | #line 50 "scripts/genksyms/keywords.gperf" | ||
188 | {"long", LONG_KEYW}, | ||
189 | #line 32 "scripts/genksyms/keywords.gperf" | ||
190 | {"_Bool", BOOL_KEYW}, | ||
191 | {""}, {""}, | ||
192 | #line 51 "scripts/genksyms/keywords.gperf" | ||
193 | {"register", REGISTER_KEYW}, | ||
194 | #line 60 "scripts/genksyms/keywords.gperf" | ||
195 | {"void", VOID_KEYW}, | ||
196 | {""}, | ||
197 | #line 44 "scripts/genksyms/keywords.gperf" | ||
198 | {"double", DOUBLE_KEYW}, | ||
199 | {""}, | ||
200 | #line 26 "scripts/genksyms/keywords.gperf" | ||
201 | {"__typeof", TYPEOF_KEYW}, | ||
202 | {""}, {""}, | ||
203 | #line 53 "scripts/genksyms/keywords.gperf" | ||
204 | {"signed", SIGNED_KEYW}, | ||
205 | {""}, {""}, {""}, {""}, | ||
206 | #line 57 "scripts/genksyms/keywords.gperf" | ||
207 | {"typeof", TYPEOF_KEYW}, | ||
208 | #line 56 "scripts/genksyms/keywords.gperf" | ||
209 | {"typedef", TYPEDEF_KEYW}, | ||
210 | {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
211 | {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
212 | {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, | ||
213 | #line 47 "scripts/genksyms/keywords.gperf" | ||
214 | {"float", FLOAT_KEYW} | ||
215 | }; | ||
216 | |||
217 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
218 | { | ||
219 | register int key = is_reserved_hash (str, len); | ||
220 | |||
221 | if (key <= MAX_HASH_VALUE && key >= 0) | ||
222 | { | ||
223 | register const char *s = wordlist[key].name; | ||
224 | |||
225 | if (*str == *s && !strcmp (str + 1, s + 1)) | ||
226 | return &wordlist[key]; | ||
227 | } | ||
228 | } | ||
229 | return 0; | ||
230 | } | ||
diff --git a/scripts/genksyms/lex.l b/scripts/genksyms/lex.l index 5235aa507ba5..5dc25ee01c77 100644 --- a/scripts/genksyms/lex.l +++ b/scripts/genksyms/lex.l | |||
@@ -94,7 +94,7 @@ MC_TOKEN ([~%^&*+=|<>/-]=)|(&&)|("||")|(->)|(<<)|(>>) | |||
94 | 94 | ||
95 | /* Bring in the keyword recognizer. */ | 95 | /* Bring in the keyword recognizer. */ |
96 | 96 | ||
97 | #include "keywords.hash.c" | 97 | #include "keywords.c" |
98 | 98 | ||
99 | 99 | ||
100 | /* Macros to append to our phrase collection list. */ | 100 | /* Macros to append to our phrase collection list. */ |
@@ -186,10 +186,10 @@ repeat: | |||
186 | case IDENT: | 186 | case IDENT: |
187 | APP; | 187 | APP; |
188 | { | 188 | { |
189 | const struct resword *r = is_reserved_word(yytext, yyleng); | 189 | int r = is_reserved_word(yytext, yyleng); |
190 | if (r) | 190 | if (r >= 0) |
191 | { | 191 | { |
192 | switch (token = r->token) | 192 | switch (token = r) |
193 | { | 193 | { |
194 | case ATTRIBUTE_KEYW: | 194 | case ATTRIBUTE_KEYW: |
195 | lexstate = ST_ATTRIBUTE; | 195 | lexstate = ST_ATTRIBUTE; |
diff --git a/scripts/genksyms/lex.lex.c_shipped b/scripts/genksyms/lex.lex.c_shipped index 985c5541aae4..d5a7474b3e57 100644 --- a/scripts/genksyms/lex.lex.c_shipped +++ b/scripts/genksyms/lex.lex.c_shipped | |||
@@ -1905,7 +1905,7 @@ void yyfree (void * ptr ) | |||
1905 | 1905 | ||
1906 | /* Bring in the keyword recognizer. */ | 1906 | /* Bring in the keyword recognizer. */ |
1907 | 1907 | ||
1908 | #include "keywords.hash.c" | 1908 | #include "keywords.c" |
1909 | 1909 | ||
1910 | /* Macros to append to our phrase collection list. */ | 1910 | /* Macros to append to our phrase collection list. */ |
1911 | 1911 | ||
@@ -1995,10 +1995,10 @@ repeat: | |||
1995 | case IDENT: | 1995 | case IDENT: |
1996 | APP; | 1996 | APP; |
1997 | { | 1997 | { |
1998 | const struct resword *r = is_reserved_word(yytext, yyleng); | 1998 | int r = is_reserved_word(yytext, yyleng); |
1999 | if (r) | 1999 | if (r >= 0) |
2000 | { | 2000 | { |
2001 | switch (token = r->token) | 2001 | switch (token = r) |
2002 | { | 2002 | { |
2003 | case ATTRIBUTE_KEYW: | 2003 | case ATTRIBUTE_KEYW: |
2004 | lexstate = ST_ATTRIBUTE; | 2004 | lexstate = ST_ATTRIBUTE; |
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore index be603c4fef62..51f1c877b543 100644 --- a/scripts/kconfig/.gitignore +++ b/scripts/kconfig/.gitignore | |||
@@ -5,7 +5,6 @@ config* | |||
5 | *.lex.c | 5 | *.lex.c |
6 | *.tab.c | 6 | *.tab.c |
7 | *.tab.h | 7 | *.tab.h |
8 | zconf.hash.c | ||
9 | *.moc | 8 | *.moc |
10 | gconf.glade.h | 9 | gconf.glade.h |
11 | *.pot | 10 | *.pot |
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile index eb8144643b78..8c12c20c55a6 100644 --- a/scripts/kconfig/Makefile +++ b/scripts/kconfig/Makefile | |||
@@ -191,7 +191,7 @@ gconf-objs := gconf.o zconf.tab.o | |||
191 | hostprogs-y := conf nconf mconf kxgettext qconf gconf | 191 | hostprogs-y := conf nconf mconf kxgettext qconf gconf |
192 | 192 | ||
193 | clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck | 193 | clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck |
194 | clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h | 194 | clean-files += zconf.tab.c zconf.lex.c gconf.glade.h |
195 | clean-files += config.pot linux.pot | 195 | clean-files += config.pot linux.pot |
196 | 196 | ||
197 | # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) | 197 | # Check that we have the required ncurses stuff installed for lxdialog (menuconfig) |
@@ -280,7 +280,7 @@ $(obj)/.tmp_gtkcheck: | |||
280 | fi | 280 | fi |
281 | endif | 281 | endif |
282 | 282 | ||
283 | $(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c | 283 | $(obj)/zconf.tab.o: $(obj)/zconf.lex.c |
284 | 284 | ||
285 | $(obj)/qconf.o: $(obj)/qconf.moc | 285 | $(obj)/qconf.o: $(obj)/qconf.moc |
286 | 286 | ||
diff --git a/scripts/kconfig/kconf_id.c b/scripts/kconfig/kconf_id.c new file mode 100644 index 000000000000..5abbc728fbc4 --- /dev/null +++ b/scripts/kconfig/kconf_id.c | |||
@@ -0,0 +1,54 @@ | |||
1 | |||
2 | static struct kconf_id kconf_id_array[] = { | ||
3 | { "mainmenu", T_MAINMENU, TF_COMMAND }, | ||
4 | { "menu", T_MENU, TF_COMMAND }, | ||
5 | { "endmenu", T_ENDMENU, TF_COMMAND }, | ||
6 | { "source", T_SOURCE, TF_COMMAND }, | ||
7 | { "choice", T_CHOICE, TF_COMMAND }, | ||
8 | { "endchoice", T_ENDCHOICE, TF_COMMAND }, | ||
9 | { "comment", T_COMMENT, TF_COMMAND }, | ||
10 | { "config", T_CONFIG, TF_COMMAND }, | ||
11 | { "menuconfig", T_MENUCONFIG, TF_COMMAND }, | ||
12 | { "help", T_HELP, TF_COMMAND }, | ||
13 | { "---help---", T_HELP, TF_COMMAND }, | ||
14 | { "if", T_IF, TF_COMMAND|TF_PARAM }, | ||
15 | { "endif", T_ENDIF, TF_COMMAND }, | ||
16 | { "depends", T_DEPENDS, TF_COMMAND }, | ||
17 | { "optional", T_OPTIONAL, TF_COMMAND }, | ||
18 | { "default", T_DEFAULT, TF_COMMAND, S_UNKNOWN }, | ||
19 | { "prompt", T_PROMPT, TF_COMMAND }, | ||
20 | { "tristate", T_TYPE, TF_COMMAND, S_TRISTATE }, | ||
21 | { "def_tristate", T_DEFAULT, TF_COMMAND, S_TRISTATE }, | ||
22 | { "bool", T_TYPE, TF_COMMAND, S_BOOLEAN }, | ||
23 | { "boolean", T_TYPE, TF_COMMAND, S_BOOLEAN }, | ||
24 | { "def_bool", T_DEFAULT, TF_COMMAND, S_BOOLEAN }, | ||
25 | { "int", T_TYPE, TF_COMMAND, S_INT }, | ||
26 | { "hex", T_TYPE, TF_COMMAND, S_HEX }, | ||
27 | { "string", T_TYPE, TF_COMMAND, S_STRING }, | ||
28 | { "select", T_SELECT, TF_COMMAND }, | ||
29 | { "imply", T_IMPLY, TF_COMMAND }, | ||
30 | { "range", T_RANGE, TF_COMMAND }, | ||
31 | { "visible", T_VISIBLE, TF_COMMAND }, | ||
32 | { "option", T_OPTION, TF_COMMAND }, | ||
33 | { "on", T_ON, TF_PARAM }, | ||
34 | { "modules", T_OPT_MODULES, TF_OPTION }, | ||
35 | { "defconfig_list", T_OPT_DEFCONFIG_LIST, TF_OPTION }, | ||
36 | { "env", T_OPT_ENV, TF_OPTION }, | ||
37 | { "allnoconfig_y", T_OPT_ALLNOCONFIG_Y, TF_OPTION }, | ||
38 | }; | ||
39 | |||
40 | #define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id)) | ||
41 | |||
42 | static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len) | ||
43 | { | ||
44 | int i; | ||
45 | |||
46 | for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) { | ||
47 | struct kconf_id *id = kconf_id_array+i; | ||
48 | int l = strlen(id->name); | ||
49 | |||
50 | if (len == l && !memcmp(str, id->name, len)) | ||
51 | return id; | ||
52 | } | ||
53 | return NULL; | ||
54 | } | ||
diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h index 91ca126ea080..cdcbe43e87b3 100644 --- a/scripts/kconfig/lkc.h +++ b/scripts/kconfig/lkc.h | |||
@@ -62,7 +62,7 @@ enum conf_def_mode { | |||
62 | #define T_OPT_ALLNOCONFIG_Y 4 | 62 | #define T_OPT_ALLNOCONFIG_Y 4 |
63 | 63 | ||
64 | struct kconf_id { | 64 | struct kconf_id { |
65 | int name; | 65 | const char *name; |
66 | int token; | 66 | int token; |
67 | unsigned int flags; | 67 | unsigned int flags; |
68 | enum symbol_type stype; | 68 | enum symbol_type stype; |
diff --git a/scripts/kconfig/zconf.gperf b/scripts/kconfig/zconf.gperf deleted file mode 100644 index ead02edec936..000000000000 --- a/scripts/kconfig/zconf.gperf +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | %language=ANSI-C | ||
2 | %define hash-function-name kconf_id_hash | ||
3 | %define lookup-function-name kconf_id_lookup | ||
4 | %define string-pool-name kconf_id_strings | ||
5 | %compare-strncmp | ||
6 | %enum | ||
7 | %pic | ||
8 | %struct-type | ||
9 | |||
10 | struct kconf_id; | ||
11 | |||
12 | static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len); | ||
13 | |||
14 | %% | ||
15 | mainmenu, T_MAINMENU, TF_COMMAND | ||
16 | menu, T_MENU, TF_COMMAND | ||
17 | endmenu, T_ENDMENU, TF_COMMAND | ||
18 | source, T_SOURCE, TF_COMMAND | ||
19 | choice, T_CHOICE, TF_COMMAND | ||
20 | endchoice, T_ENDCHOICE, TF_COMMAND | ||
21 | comment, T_COMMENT, TF_COMMAND | ||
22 | config, T_CONFIG, TF_COMMAND | ||
23 | menuconfig, T_MENUCONFIG, TF_COMMAND | ||
24 | help, T_HELP, TF_COMMAND | ||
25 | ---help---, T_HELP, TF_COMMAND | ||
26 | if, T_IF, TF_COMMAND|TF_PARAM | ||
27 | endif, T_ENDIF, TF_COMMAND | ||
28 | depends, T_DEPENDS, TF_COMMAND | ||
29 | optional, T_OPTIONAL, TF_COMMAND | ||
30 | default, T_DEFAULT, TF_COMMAND, S_UNKNOWN | ||
31 | prompt, T_PROMPT, TF_COMMAND | ||
32 | tristate, T_TYPE, TF_COMMAND, S_TRISTATE | ||
33 | def_tristate, T_DEFAULT, TF_COMMAND, S_TRISTATE | ||
34 | bool, T_TYPE, TF_COMMAND, S_BOOLEAN | ||
35 | boolean, T_TYPE, TF_COMMAND, S_BOOLEAN | ||
36 | def_bool, T_DEFAULT, TF_COMMAND, S_BOOLEAN | ||
37 | int, T_TYPE, TF_COMMAND, S_INT | ||
38 | hex, T_TYPE, TF_COMMAND, S_HEX | ||
39 | string, T_TYPE, TF_COMMAND, S_STRING | ||
40 | select, T_SELECT, TF_COMMAND | ||
41 | imply, T_IMPLY, TF_COMMAND | ||
42 | range, T_RANGE, TF_COMMAND | ||
43 | visible, T_VISIBLE, TF_COMMAND | ||
44 | option, T_OPTION, TF_COMMAND | ||
45 | on, T_ON, TF_PARAM | ||
46 | modules, T_OPT_MODULES, TF_OPTION | ||
47 | defconfig_list, T_OPT_DEFCONFIG_LIST,TF_OPTION | ||
48 | env, T_OPT_ENV, TF_OPTION | ||
49 | allnoconfig_y, T_OPT_ALLNOCONFIG_Y,TF_OPTION | ||
50 | %% | ||
diff --git a/scripts/kconfig/zconf.hash.c_shipped b/scripts/kconfig/zconf.hash.c_shipped deleted file mode 100644 index d51b15de074a..000000000000 --- a/scripts/kconfig/zconf.hash.c_shipped +++ /dev/null | |||
@@ -1,297 +0,0 @@ | |||
1 | /* ANSI-C code produced by gperf version 3.0.4 */ | ||
2 | /* 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 */ | ||
3 | |||
4 | #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | ||
5 | && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | ||
6 | && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | ||
7 | && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | ||
8 | && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | ||
9 | && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | ||
10 | && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | ||
11 | && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ | ||
12 | && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ | ||
13 | && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ | ||
14 | && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ | ||
15 | && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ | ||
16 | && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ | ||
17 | && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ | ||
18 | && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ | ||
19 | && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ | ||
20 | && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ | ||
21 | && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ | ||
22 | && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ | ||
23 | && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ | ||
24 | && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ | ||
25 | && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ | ||
26 | && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) | ||
27 | /* The character set is not based on ISO-646. */ | ||
28 | #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." | ||
29 | #endif | ||
30 | |||
31 | #line 10 "scripts/kconfig/zconf.gperf" | ||
32 | struct kconf_id; | ||
33 | |||
34 | static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len); | ||
35 | /* maximum key range = 71, duplicates = 0 */ | ||
36 | |||
37 | #ifdef __GNUC__ | ||
38 | __inline | ||
39 | #else | ||
40 | #ifdef __cplusplus | ||
41 | inline | ||
42 | #endif | ||
43 | #endif | ||
44 | static unsigned int | ||
45 | kconf_id_hash (register const char *str, register unsigned int len) | ||
46 | { | ||
47 | static const unsigned char asso_values[] = | ||
48 | { | ||
49 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
50 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
51 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
52 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
53 | 73, 73, 73, 73, 73, 0, 73, 73, 73, 73, | ||
54 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
55 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
56 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
57 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
58 | 73, 73, 73, 73, 73, 73, 73, 10, 25, 25, | ||
59 | 0, 0, 0, 5, 0, 0, 73, 73, 5, 0, | ||
60 | 10, 5, 45, 73, 20, 20, 0, 15, 15, 73, | ||
61 | 20, 0, 73, 73, 73, 73, 73, 73, 73, 73, | ||
62 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
63 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
64 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
65 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
66 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
67 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
68 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
69 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
70 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
71 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
72 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
73 | 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, | ||
74 | 73, 73, 73, 73, 73, 73 | ||
75 | }; | ||
76 | register int hval = len; | ||
77 | |||
78 | switch (hval) | ||
79 | { | ||
80 | default: | ||
81 | hval += asso_values[(unsigned char)str[2]]; | ||
82 | /*FALLTHROUGH*/ | ||
83 | case 2: | ||
84 | case 1: | ||
85 | hval += asso_values[(unsigned char)str[0]]; | ||
86 | break; | ||
87 | } | ||
88 | return hval + asso_values[(unsigned char)str[len - 1]]; | ||
89 | } | ||
90 | |||
91 | struct kconf_id_strings_t | ||
92 | { | ||
93 | char kconf_id_strings_str2[sizeof("if")]; | ||
94 | char kconf_id_strings_str3[sizeof("int")]; | ||
95 | char kconf_id_strings_str5[sizeof("endif")]; | ||
96 | char kconf_id_strings_str7[sizeof("default")]; | ||
97 | char kconf_id_strings_str8[sizeof("tristate")]; | ||
98 | char kconf_id_strings_str9[sizeof("endchoice")]; | ||
99 | char kconf_id_strings_str10[sizeof("---help---")]; | ||
100 | char kconf_id_strings_str12[sizeof("def_tristate")]; | ||
101 | char kconf_id_strings_str13[sizeof("def_bool")]; | ||
102 | char kconf_id_strings_str14[sizeof("defconfig_list")]; | ||
103 | char kconf_id_strings_str17[sizeof("on")]; | ||
104 | char kconf_id_strings_str18[sizeof("optional")]; | ||
105 | char kconf_id_strings_str21[sizeof("option")]; | ||
106 | char kconf_id_strings_str22[sizeof("endmenu")]; | ||
107 | char kconf_id_strings_str23[sizeof("mainmenu")]; | ||
108 | char kconf_id_strings_str25[sizeof("menuconfig")]; | ||
109 | char kconf_id_strings_str27[sizeof("modules")]; | ||
110 | char kconf_id_strings_str28[sizeof("allnoconfig_y")]; | ||
111 | char kconf_id_strings_str29[sizeof("menu")]; | ||
112 | char kconf_id_strings_str31[sizeof("select")]; | ||
113 | char kconf_id_strings_str32[sizeof("comment")]; | ||
114 | char kconf_id_strings_str33[sizeof("env")]; | ||
115 | char kconf_id_strings_str35[sizeof("range")]; | ||
116 | char kconf_id_strings_str36[sizeof("choice")]; | ||
117 | char kconf_id_strings_str39[sizeof("bool")]; | ||
118 | char kconf_id_strings_str41[sizeof("source")]; | ||
119 | char kconf_id_strings_str42[sizeof("visible")]; | ||
120 | char kconf_id_strings_str43[sizeof("hex")]; | ||
121 | char kconf_id_strings_str46[sizeof("config")]; | ||
122 | char kconf_id_strings_str47[sizeof("boolean")]; | ||
123 | char kconf_id_strings_str50[sizeof("imply")]; | ||
124 | char kconf_id_strings_str51[sizeof("string")]; | ||
125 | char kconf_id_strings_str54[sizeof("help")]; | ||
126 | char kconf_id_strings_str56[sizeof("prompt")]; | ||
127 | char kconf_id_strings_str72[sizeof("depends")]; | ||
128 | }; | ||
129 | static const struct kconf_id_strings_t kconf_id_strings_contents = | ||
130 | { | ||
131 | "if", | ||
132 | "int", | ||
133 | "endif", | ||
134 | "default", | ||
135 | "tristate", | ||
136 | "endchoice", | ||
137 | "---help---", | ||
138 | "def_tristate", | ||
139 | "def_bool", | ||
140 | "defconfig_list", | ||
141 | "on", | ||
142 | "optional", | ||
143 | "option", | ||
144 | "endmenu", | ||
145 | "mainmenu", | ||
146 | "menuconfig", | ||
147 | "modules", | ||
148 | "allnoconfig_y", | ||
149 | "menu", | ||
150 | "select", | ||
151 | "comment", | ||
152 | "env", | ||
153 | "range", | ||
154 | "choice", | ||
155 | "bool", | ||
156 | "source", | ||
157 | "visible", | ||
158 | "hex", | ||
159 | "config", | ||
160 | "boolean", | ||
161 | "imply", | ||
162 | "string", | ||
163 | "help", | ||
164 | "prompt", | ||
165 | "depends" | ||
166 | }; | ||
167 | #define kconf_id_strings ((const char *) &kconf_id_strings_contents) | ||
168 | #ifdef __GNUC__ | ||
169 | __inline | ||
170 | #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ | ||
171 | __attribute__ ((__gnu_inline__)) | ||
172 | #endif | ||
173 | #endif | ||
174 | const struct kconf_id * | ||
175 | kconf_id_lookup (register const char *str, register unsigned int len) | ||
176 | { | ||
177 | enum | ||
178 | { | ||
179 | TOTAL_KEYWORDS = 35, | ||
180 | MIN_WORD_LENGTH = 2, | ||
181 | MAX_WORD_LENGTH = 14, | ||
182 | MIN_HASH_VALUE = 2, | ||
183 | MAX_HASH_VALUE = 72 | ||
184 | }; | ||
185 | |||
186 | static const struct kconf_id wordlist[] = | ||
187 | { | ||
188 | {-1}, {-1}, | ||
189 | #line 26 "scripts/kconfig/zconf.gperf" | ||
190 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM}, | ||
191 | #line 37 "scripts/kconfig/zconf.gperf" | ||
192 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT}, | ||
193 | {-1}, | ||
194 | #line 27 "scripts/kconfig/zconf.gperf" | ||
195 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND}, | ||
196 | {-1}, | ||
197 | #line 30 "scripts/kconfig/zconf.gperf" | ||
198 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_DEFAULT, TF_COMMAND, S_UNKNOWN}, | ||
199 | #line 32 "scripts/kconfig/zconf.gperf" | ||
200 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE}, | ||
201 | #line 20 "scripts/kconfig/zconf.gperf" | ||
202 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND}, | ||
203 | #line 25 "scripts/kconfig/zconf.gperf" | ||
204 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_HELP, TF_COMMAND}, | ||
205 | {-1}, | ||
206 | #line 33 "scripts/kconfig/zconf.gperf" | ||
207 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE}, | ||
208 | #line 36 "scripts/kconfig/zconf.gperf" | ||
209 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN}, | ||
210 | #line 47 "scripts/kconfig/zconf.gperf" | ||
211 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION}, | ||
212 | {-1}, {-1}, | ||
213 | #line 45 "scripts/kconfig/zconf.gperf" | ||
214 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM}, | ||
215 | #line 29 "scripts/kconfig/zconf.gperf" | ||
216 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND}, | ||
217 | {-1}, {-1}, | ||
218 | #line 44 "scripts/kconfig/zconf.gperf" | ||
219 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND}, | ||
220 | #line 17 "scripts/kconfig/zconf.gperf" | ||
221 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND}, | ||
222 | #line 15 "scripts/kconfig/zconf.gperf" | ||
223 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_MAINMENU, TF_COMMAND}, | ||
224 | {-1}, | ||
225 | #line 23 "scripts/kconfig/zconf.gperf" | ||
226 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND}, | ||
227 | {-1}, | ||
228 | #line 46 "scripts/kconfig/zconf.gperf" | ||
229 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION}, | ||
230 | #line 49 "scripts/kconfig/zconf.gperf" | ||
231 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPT_ALLNOCONFIG_Y,TF_OPTION}, | ||
232 | #line 16 "scripts/kconfig/zconf.gperf" | ||
233 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND}, | ||
234 | {-1}, | ||
235 | #line 40 "scripts/kconfig/zconf.gperf" | ||
236 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND}, | ||
237 | #line 21 "scripts/kconfig/zconf.gperf" | ||
238 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND}, | ||
239 | #line 48 "scripts/kconfig/zconf.gperf" | ||
240 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION}, | ||
241 | {-1}, | ||
242 | #line 42 "scripts/kconfig/zconf.gperf" | ||
243 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND}, | ||
244 | #line 19 "scripts/kconfig/zconf.gperf" | ||
245 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND}, | ||
246 | {-1}, {-1}, | ||
247 | #line 34 "scripts/kconfig/zconf.gperf" | ||
248 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39, T_TYPE, TF_COMMAND, S_BOOLEAN}, | ||
249 | {-1}, | ||
250 | #line 18 "scripts/kconfig/zconf.gperf" | ||
251 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND}, | ||
252 | #line 43 "scripts/kconfig/zconf.gperf" | ||
253 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND}, | ||
254 | #line 38 "scripts/kconfig/zconf.gperf" | ||
255 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX}, | ||
256 | {-1}, {-1}, | ||
257 | #line 22 "scripts/kconfig/zconf.gperf" | ||
258 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND}, | ||
259 | #line 35 "scripts/kconfig/zconf.gperf" | ||
260 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN}, | ||
261 | {-1}, {-1}, | ||
262 | #line 41 "scripts/kconfig/zconf.gperf" | ||
263 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str50, T_IMPLY, TF_COMMAND}, | ||
264 | #line 39 "scripts/kconfig/zconf.gperf" | ||
265 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING}, | ||
266 | {-1}, {-1}, | ||
267 | #line 24 "scripts/kconfig/zconf.gperf" | ||
268 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54, T_HELP, TF_COMMAND}, | ||
269 | {-1}, | ||
270 | #line 31 "scripts/kconfig/zconf.gperf" | ||
271 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56, T_PROMPT, TF_COMMAND}, | ||
272 | {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, | ||
273 | {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, | ||
274 | #line 28 "scripts/kconfig/zconf.gperf" | ||
275 | {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72, T_DEPENDS, TF_COMMAND} | ||
276 | }; | ||
277 | |||
278 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | ||
279 | { | ||
280 | register int key = kconf_id_hash (str, len); | ||
281 | |||
282 | if (key <= MAX_HASH_VALUE && key >= 0) | ||
283 | { | ||
284 | register int o = wordlist[key].name; | ||
285 | if (o >= 0) | ||
286 | { | ||
287 | register const char *s = o + kconf_id_strings; | ||
288 | |||
289 | if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0') | ||
290 | return &wordlist[key]; | ||
291 | } | ||
292 | } | ||
293 | } | ||
294 | return 0; | ||
295 | } | ||
296 | #line 50 "scripts/kconfig/zconf.gperf" | ||
297 | |||
diff --git a/scripts/kconfig/zconf.tab.c_shipped b/scripts/kconfig/zconf.tab.c_shipped index 65b7515a577c..a22b285d759f 100644 --- a/scripts/kconfig/zconf.tab.c_shipped +++ b/scripts/kconfig/zconf.tab.c_shipped | |||
@@ -209,8 +209,8 @@ int zconfparse (void); | |||
209 | /* Copy the second part of user declarations. */ | 209 | /* Copy the second part of user declarations. */ |
210 | 210 | ||
211 | 211 | ||
212 | /* Include zconf.hash.c here so it can see the token constants. */ | 212 | /* Include kconf_id.c here so it can see the token constants. */ |
213 | #include "zconf.hash.c" | 213 | #include "kconf_id.c" |
214 | 214 | ||
215 | 215 | ||
216 | 216 | ||
@@ -1515,7 +1515,7 @@ yyreduce: | |||
1515 | case 12: | 1515 | case 12: |
1516 | 1516 | ||
1517 | { | 1517 | { |
1518 | zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name); | 1518 | zconf_error("unexpected option \"%s\"", (yyvsp[-2].id)->name); |
1519 | } | 1519 | } |
1520 | 1520 | ||
1521 | break; | 1521 | break; |
@@ -2268,13 +2268,13 @@ static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtok | |||
2268 | { | 2268 | { |
2269 | if (id->token != endtoken) { | 2269 | if (id->token != endtoken) { |
2270 | zconf_error("unexpected '%s' within %s block", | 2270 | zconf_error("unexpected '%s' within %s block", |
2271 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); | 2271 | id->name, zconf_tokenname(starttoken)); |
2272 | zconfnerrs++; | 2272 | zconfnerrs++; |
2273 | return false; | 2273 | return false; |
2274 | } | 2274 | } |
2275 | if (current_menu->file != current_file) { | 2275 | if (current_menu->file != current_file) { |
2276 | zconf_error("'%s' in different file than '%s'", | 2276 | zconf_error("'%s' in different file than '%s'", |
2277 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); | 2277 | id->name, zconf_tokenname(starttoken)); |
2278 | fprintf(stderr, "%s:%d: location of the '%s'\n", | 2278 | fprintf(stderr, "%s:%d: location of the '%s'\n", |
2279 | current_menu->file->name, current_menu->lineno, | 2279 | current_menu->file->name, current_menu->lineno, |
2280 | zconf_tokenname(starttoken)); | 2280 | zconf_tokenname(starttoken)); |
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 001305fa080b..c8f396c3b190 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y | |||
@@ -101,8 +101,8 @@ static struct menu *current_menu, *current_entry; | |||
101 | } if_entry menu_entry choice_entry | 101 | } if_entry menu_entry choice_entry |
102 | 102 | ||
103 | %{ | 103 | %{ |
104 | /* Include zconf.hash.c here so it can see the token constants. */ | 104 | /* Include zconf_id.c here so it can see the token constants. */ |
105 | #include "zconf.hash.c" | 105 | #include "kconf_id.c" |
106 | %} | 106 | %} |
107 | 107 | ||
108 | %% | 108 | %% |
@@ -119,7 +119,7 @@ stmt_list: | |||
119 | | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } | 119 | | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); } |
120 | | stmt_list option_name error T_EOL | 120 | | stmt_list option_name error T_EOL |
121 | { | 121 | { |
122 | zconf_error("unexpected option \"%s\"", kconf_id_strings + $2->name); | 122 | zconf_error("unexpected option \"%s\"", $2->name); |
123 | } | 123 | } |
124 | | stmt_list error T_EOL { zconf_error("invalid statement"); } | 124 | | stmt_list error T_EOL { zconf_error("invalid statement"); } |
125 | ; | 125 | ; |
@@ -551,13 +551,13 @@ static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtok | |||
551 | { | 551 | { |
552 | if (id->token != endtoken) { | 552 | if (id->token != endtoken) { |
553 | zconf_error("unexpected '%s' within %s block", | 553 | zconf_error("unexpected '%s' within %s block", |
554 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); | 554 | id->name, zconf_tokenname(starttoken)); |
555 | zconfnerrs++; | 555 | zconfnerrs++; |
556 | return false; | 556 | return false; |
557 | } | 557 | } |
558 | if (current_menu->file != current_file) { | 558 | if (current_menu->file != current_file) { |
559 | zconf_error("'%s' in different file than '%s'", | 559 | zconf_error("'%s' in different file than '%s'", |
560 | kconf_id_strings + id->name, zconf_tokenname(starttoken)); | 560 | id->name, zconf_tokenname(starttoken)); |
561 | fprintf(stderr, "%s:%d: location of the '%s'\n", | 561 | fprintf(stderr, "%s:%d: location of the '%s'\n", |
562 | current_menu->file->name, current_menu->lineno, | 562 | current_menu->file->name, current_menu->lineno, |
563 | zconf_tokenname(starttoken)); | 563 | zconf_tokenname(starttoken)); |