linux/scripts/kconfig/zconf.hash.c_shipped
<<
>>
Prefs
   1/* ANSI-C code produced by gperf version 3.0.3 */
   2/* Command-line: gperf  */
   3/* Computed positions: -k'1,3' */
   4
   5#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
   6      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
   7      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
   8      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
   9      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
  10      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
  11      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
  12      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
  13      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
  14      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
  15      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
  16      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
  17      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
  18      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
  19      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
  20      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
  21      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
  22      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
  23      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
  24      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
  25      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
  26      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
  27      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
  28/* The character set is not based on ISO-646.  */
  29#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
  30#endif
  31
  32struct kconf_id;
  33
  34static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
  35/* maximum key range = 47, duplicates = 0 */
  36
  37#ifdef __GNUC__
  38__inline
  39#else
  40#ifdef __cplusplus
  41inline
  42#endif
  43#endif
  44static unsigned int
  45kconf_id_hash (register const char *str, register unsigned int len)
  46{
  47  static unsigned char asso_values[] =
  48    {
  49      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  50      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  51      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  52      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  53      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  54      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  55      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  56      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  57      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  58      49, 49, 49, 49, 49, 49, 49, 49, 11,  5,
  59       0,  0,  5, 49,  5, 20, 49, 49,  5, 20,
  60       5,  0, 30, 49,  0, 15,  0, 10,  0, 49,
  61      25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  62      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  63      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  64      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  65      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  66      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  67      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  68      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  69      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  70      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  71      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  72      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  73      49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  74      49, 49, 49, 49, 49, 49
  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;
  89}
  90
  91struct kconf_id_strings_t
  92  {
  93    char kconf_id_strings_str2[sizeof("on")];
  94    char kconf_id_strings_str3[sizeof("env")];
  95    char kconf_id_strings_str5[sizeof("endif")];
  96    char kconf_id_strings_str6[sizeof("option")];
  97    char kconf_id_strings_str7[sizeof("endmenu")];
  98    char kconf_id_strings_str8[sizeof("optional")];
  99    char kconf_id_strings_str9[sizeof("endchoice")];
 100    char kconf_id_strings_str10[sizeof("range")];
 101    char kconf_id_strings_str11[sizeof("choice")];
 102    char kconf_id_strings_str12[sizeof("default")];
 103    char kconf_id_strings_str13[sizeof("def_bool")];
 104    char kconf_id_strings_str14[sizeof("help")];
 105    char kconf_id_strings_str15[sizeof("bool")];
 106    char kconf_id_strings_str16[sizeof("config")];
 107    char kconf_id_strings_str17[sizeof("def_tristate")];
 108    char kconf_id_strings_str18[sizeof("boolean")];
 109    char kconf_id_strings_str19[sizeof("defconfig_list")];
 110    char kconf_id_strings_str21[sizeof("string")];
 111    char kconf_id_strings_str22[sizeof("if")];
 112    char kconf_id_strings_str23[sizeof("int")];
 113    char kconf_id_strings_str26[sizeof("select")];
 114    char kconf_id_strings_str27[sizeof("modules")];
 115    char kconf_id_strings_str28[sizeof("tristate")];
 116    char kconf_id_strings_str29[sizeof("menu")];
 117    char kconf_id_strings_str31[sizeof("source")];
 118    char kconf_id_strings_str32[sizeof("comment")];
 119    char kconf_id_strings_str33[sizeof("hex")];
 120    char kconf_id_strings_str35[sizeof("menuconfig")];
 121    char kconf_id_strings_str36[sizeof("prompt")];
 122    char kconf_id_strings_str37[sizeof("depends")];
 123    char kconf_id_strings_str48[sizeof("mainmenu")];
 124  };
 125static struct kconf_id_strings_t kconf_id_strings_contents =
 126  {
 127    "on",
 128    "env",
 129    "endif",
 130    "option",
 131    "endmenu",
 132    "optional",
 133    "endchoice",
 134    "range",
 135    "choice",
 136    "default",
 137    "def_bool",
 138    "help",
 139    "bool",
 140    "config",
 141    "def_tristate",
 142    "boolean",
 143    "defconfig_list",
 144    "string",
 145    "if",
 146    "int",
 147    "select",
 148    "modules",
 149    "tristate",
 150    "menu",
 151    "source",
 152    "comment",
 153    "hex",
 154    "menuconfig",
 155    "prompt",
 156    "depends",
 157    "mainmenu"
 158  };
 159#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
 160#ifdef __GNUC__
 161__inline
 162#ifdef __GNUC_STDC_INLINE__
 163__attribute__ ((__gnu_inline__))
 164#endif
 165#endif
 166struct kconf_id *
 167kconf_id_lookup (register const char *str, register unsigned int len)
 168{
 169  enum
 170    {
 171      TOTAL_KEYWORDS = 31,
 172      MIN_WORD_LENGTH = 2,
 173      MAX_WORD_LENGTH = 14,
 174      MIN_HASH_VALUE = 2,
 175      MAX_HASH_VALUE = 48
 176    };
 177
 178  static struct kconf_id wordlist[] =
 179    {
 180      {-1}, {-1},
 181      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2,             T_ON,           TF_PARAM},
 182      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3,             T_OPT_ENV,      TF_OPTION},
 183      {-1},
 184      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5,             T_ENDIF,        TF_COMMAND},
 185      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6,             T_OPTION,       TF_COMMAND},
 186      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7,     T_ENDMENU,      TF_COMMAND},
 187      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8,     T_OPTIONAL,     TF_COMMAND},
 188      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9,     T_ENDCHOICE,    TF_COMMAND},
 189      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10,            T_RANGE,        TF_COMMAND},
 190      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11,            T_CHOICE,       TF_COMMAND},
 191      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12,    T_DEFAULT,      TF_COMMAND, S_UNKNOWN},
 192      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13,    T_DEFAULT,      TF_COMMAND, S_BOOLEAN},
 193      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14,            T_HELP,         TF_COMMAND},
 194      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15,            T_TYPE,         TF_COMMAND, S_BOOLEAN},
 195      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16,            T_CONFIG,       TF_COMMAND},
 196      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17,    T_DEFAULT,      TF_COMMAND, S_TRISTATE},
 197      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18,    T_TYPE,         TF_COMMAND, S_BOOLEAN},
 198      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19,    T_OPT_DEFCONFIG_LIST,TF_OPTION},
 199      {-1},
 200      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21,            T_TYPE,         TF_COMMAND, S_STRING},
 201      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22,            T_IF,           TF_COMMAND|TF_PARAM},
 202      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23,            T_TYPE,         TF_COMMAND, S_INT},
 203      {-1}, {-1},
 204      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26,            T_SELECT,       TF_COMMAND},
 205      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27,    T_OPT_MODULES,  TF_OPTION},
 206      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28,    T_TYPE,         TF_COMMAND, S_TRISTATE},
 207      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29,            T_MENU,         TF_COMMAND},
 208      {-1},
 209      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31,            T_SOURCE,       TF_COMMAND},
 210      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32,    T_COMMENT,      TF_COMMAND},
 211      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33,            T_TYPE,         TF_COMMAND, S_HEX},
 212      {-1},
 213      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35,    T_MENUCONFIG,   TF_COMMAND},
 214      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36,            T_PROMPT,       TF_COMMAND},
 215      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37,    T_DEPENDS,      TF_COMMAND},
 216      {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
 217      {-1},
 218      {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48,    T_MAINMENU,     TF_COMMAND}
 219    };
 220
 221  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
 222    {
 223      register int key = kconf_id_hash (str, len);
 224
 225      if (key <= MAX_HASH_VALUE && key >= 0)
 226        {
 227          register int o = wordlist[key].name;
 228          if (o >= 0)
 229            {
 230              register const char *s = o + kconf_id_strings;
 231
 232              if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] == '\0')
 233                return &wordlist[key];
 234            }
 235        }
 236    }
 237  return 0;
 238}
 239
 240