Contents of /alx-src/tags/kernel26-2.6.12-alx-r9/scripts/genksyms/keywords.c_shipped
Parent Directory
|
Revision Log
Revision 630 -
(show annotations)
(download)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File size: 4673 byte(s)
Wed Mar 4 11:03:09 2009 UTC (15 years, 3 months ago) by niro
File size: 4673 byte(s)
Tag kernel26-2.6.12-alx-r9
1 | /* ANSI-C code produced by gperf version 2.7.2 */ |
2 | /* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */ |
3 | struct resword { const char *name; int token; }; |
4 | /* maximum key range = 109, duplicates = 0 */ |
5 | |
6 | #ifdef __GNUC__ |
7 | __inline |
8 | #else |
9 | #ifdef __cplusplus |
10 | inline |
11 | #endif |
12 | #endif |
13 | static unsigned int |
14 | is_reserved_hash (register const char *str, register unsigned int len) |
15 | { |
16 | static const unsigned char asso_values[] = |
17 | { |
18 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
19 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
20 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
21 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
22 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
23 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
24 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 5, |
25 | 113, 113, 113, 113, 113, 113, 0, 113, 113, 113, |
26 | 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
27 | 113, 113, 113, 113, 113, 0, 113, 0, 113, 20, |
28 | 25, 0, 35, 30, 113, 20, 113, 113, 40, 30, |
29 | 30, 0, 0, 113, 0, 51, 0, 15, 5, 113, |
30 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
31 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
32 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
33 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
34 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
35 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
36 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
37 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
38 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
39 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
40 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
41 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
42 | 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, |
43 | 113, 113, 113, 113, 113, 113 |
44 | }; |
45 | return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; |
46 | } |
47 | |
48 | #ifdef __GNUC__ |
49 | __inline |
50 | #endif |
51 | const struct resword * |
52 | is_reserved_word (register const char *str, register unsigned int len) |
53 | { |
54 | enum |
55 | { |
56 | TOTAL_KEYWORDS = 41, |
57 | MIN_WORD_LENGTH = 3, |
58 | MAX_WORD_LENGTH = 17, |
59 | MIN_HASH_VALUE = 4, |
60 | MAX_HASH_VALUE = 112 |
61 | }; |
62 | |
63 | static const struct resword wordlist[] = |
64 | { |
65 | {""}, {""}, {""}, {""}, |
66 | {"auto", AUTO_KEYW}, |
67 | {""}, {""}, |
68 | {"__asm__", ASM_KEYW}, |
69 | {""}, |
70 | {"_restrict", RESTRICT_KEYW}, |
71 | {"__typeof__", TYPEOF_KEYW}, |
72 | {"__attribute", ATTRIBUTE_KEYW}, |
73 | {"__restrict__", RESTRICT_KEYW}, |
74 | {"__attribute__", ATTRIBUTE_KEYW}, |
75 | {""}, |
76 | {"__volatile", VOLATILE_KEYW}, |
77 | {""}, |
78 | {"__volatile__", VOLATILE_KEYW}, |
79 | {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW}, |
80 | {""}, {""}, {""}, |
81 | {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, |
82 | {"int", INT_KEYW}, |
83 | {"char", CHAR_KEYW}, |
84 | {""}, {""}, |
85 | {"__const", CONST_KEYW}, |
86 | {"__inline", INLINE_KEYW}, |
87 | {"__const__", CONST_KEYW}, |
88 | {"__inline__", INLINE_KEYW}, |
89 | {""}, {""}, {""}, {""}, |
90 | {"__asm", ASM_KEYW}, |
91 | {"extern", EXTERN_KEYW}, |
92 | {""}, |
93 | {"register", REGISTER_KEYW}, |
94 | {""}, |
95 | {"float", FLOAT_KEYW}, |
96 | {"typeof", TYPEOF_KEYW}, |
97 | {"typedef", TYPEDEF_KEYW}, |
98 | {""}, {""}, |
99 | {"_Bool", BOOL_KEYW}, |
100 | {"double", DOUBLE_KEYW}, |
101 | {""}, {""}, |
102 | {"enum", ENUM_KEYW}, |
103 | {""}, {""}, {""}, |
104 | {"volatile", VOLATILE_KEYW}, |
105 | {"void", VOID_KEYW}, |
106 | {"const", CONST_KEYW}, |
107 | {"short", SHORT_KEYW}, |
108 | {"struct", STRUCT_KEYW}, |
109 | {""}, |
110 | {"restrict", RESTRICT_KEYW}, |
111 | {""}, |
112 | {"__signed__", SIGNED_KEYW}, |
113 | {""}, |
114 | {"asm", ASM_KEYW}, |
115 | {""}, {""}, |
116 | {"inline", INLINE_KEYW}, |
117 | {""}, {""}, {""}, |
118 | {"union", UNION_KEYW}, |
119 | {""}, {""}, {""}, {""}, {""}, {""}, |
120 | {"static", STATIC_KEYW}, |
121 | {""}, {""}, {""}, {""}, {""}, {""}, |
122 | {"__signed", SIGNED_KEYW}, |
123 | {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, |
124 | {""}, {""}, {""}, {""}, {""}, |
125 | {"unsigned", UNSIGNED_KEYW}, |
126 | {""}, {""}, {""}, {""}, |
127 | {"long", LONG_KEYW}, |
128 | {""}, {""}, {""}, {""}, {""}, {""}, {""}, |
129 | {"signed", SIGNED_KEYW} |
130 | }; |
131 | |
132 | if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) |
133 | { |
134 | register int key = is_reserved_hash (str, len); |
135 | |
136 | if (key <= MAX_HASH_VALUE && key >= 0) |
137 | { |
138 | register const char *s = wordlist[key].name; |
139 | |
140 | if (*str == *s && !strcmp (str + 1, s + 1)) |
141 | return &wordlist[key]; |
142 | } |
143 | } |
144 | return 0; |
145 | } |