1%language=ANSI-C 2%define hash-function-name is_reserved_hash 3%define lookup-function-name is_reserved_word 4%{ 5struct resword; 6static const struct resword *is_reserved_word(register const char *str, register unsigned int len); 7%} 8struct resword { const char *name; int token; } 9%% 10EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW 11EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW 12EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW 13EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW 14EXPORT_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__volatile, VOLATILE_KEYW 27__volatile__, VOLATILE_KEYW 28# According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO 29_Bool, BOOL_KEYW 30_restrict, RESTRICT_KEYW 31__restrict__, RESTRICT_KEYW 32restrict, RESTRICT_KEYW 33asm, ASM_KEYW 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 38auto, AUTO_KEYW 39char, CHAR_KEYW 40const, CONST_KEYW 41double, DOUBLE_KEYW 42enum, ENUM_KEYW 43extern, EXTERN_KEYW 44float, FLOAT_KEYW 45inline, INLINE_KEYW 46int, INT_KEYW 47long, LONG_KEYW 48register, REGISTER_KEYW 49short, SHORT_KEYW 50signed, SIGNED_KEYW 51static, STATIC_KEYW 52struct, STRUCT_KEYW 53typedef, TYPEDEF_KEYW 54union, UNION_KEYW 55unsigned, UNSIGNED_KEYW 56void, VOID_KEYW 57volatile, VOLATILE_KEYW 58typeof, TYPEOF_KEYW 59__typeof__, TYPEOF_KEYW 60