1*4882a593Smuzhiyun
2*4882a593Smuzhiyun static struct kconf_id kconf_id_array[] = {
3*4882a593Smuzhiyun { "mainmenu", T_MAINMENU, TF_COMMAND },
4*4882a593Smuzhiyun { "menu", T_MENU, TF_COMMAND },
5*4882a593Smuzhiyun { "endmenu", T_ENDMENU, TF_COMMAND },
6*4882a593Smuzhiyun { "source", T_SOURCE, TF_COMMAND },
7*4882a593Smuzhiyun { "choice", T_CHOICE, TF_COMMAND },
8*4882a593Smuzhiyun { "endchoice", T_ENDCHOICE, TF_COMMAND },
9*4882a593Smuzhiyun { "comment", T_COMMENT, TF_COMMAND },
10*4882a593Smuzhiyun { "config", T_CONFIG, TF_COMMAND },
11*4882a593Smuzhiyun { "menuconfig", T_MENUCONFIG, TF_COMMAND },
12*4882a593Smuzhiyun { "help", T_HELP, TF_COMMAND },
13*4882a593Smuzhiyun { "---help---", T_HELP, TF_COMMAND },
14*4882a593Smuzhiyun { "if", T_IF, TF_COMMAND|TF_PARAM },
15*4882a593Smuzhiyun { "endif", T_ENDIF, TF_COMMAND },
16*4882a593Smuzhiyun { "depends", T_DEPENDS, TF_COMMAND },
17*4882a593Smuzhiyun { "optional", T_OPTIONAL, TF_COMMAND },
18*4882a593Smuzhiyun { "default", T_DEFAULT, TF_COMMAND, S_UNKNOWN },
19*4882a593Smuzhiyun { "prompt", T_PROMPT, TF_COMMAND },
20*4882a593Smuzhiyun { "tristate", T_TYPE, TF_COMMAND, S_TRISTATE },
21*4882a593Smuzhiyun { "def_tristate", T_DEFAULT, TF_COMMAND, S_TRISTATE },
22*4882a593Smuzhiyun { "bool", T_TYPE, TF_COMMAND, S_BOOLEAN },
23*4882a593Smuzhiyun { "def_bool", T_DEFAULT, TF_COMMAND, S_BOOLEAN },
24*4882a593Smuzhiyun { "int", T_TYPE, TF_COMMAND, S_INT },
25*4882a593Smuzhiyun { "hex", T_TYPE, TF_COMMAND, S_HEX },
26*4882a593Smuzhiyun { "string", T_TYPE, TF_COMMAND, S_STRING },
27*4882a593Smuzhiyun { "select", T_SELECT, TF_COMMAND },
28*4882a593Smuzhiyun { "imply", T_IMPLY, TF_COMMAND },
29*4882a593Smuzhiyun { "range", T_RANGE, TF_COMMAND },
30*4882a593Smuzhiyun { "visible", T_VISIBLE, TF_COMMAND },
31*4882a593Smuzhiyun { "option", T_OPTION, TF_COMMAND },
32*4882a593Smuzhiyun { "on", T_ON, TF_PARAM },
33*4882a593Smuzhiyun { "modules", T_OPT_MODULES, TF_OPTION },
34*4882a593Smuzhiyun { "defconfig_list", T_OPT_DEFCONFIG_LIST, TF_OPTION },
35*4882a593Smuzhiyun { "env", T_OPT_ENV, TF_OPTION },
36*4882a593Smuzhiyun { "allnoconfig_y", T_OPT_ALLNOCONFIG_Y, TF_OPTION },
37*4882a593Smuzhiyun };
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun #define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id))
40*4882a593Smuzhiyun
kconf_id_lookup(register const char * str,register unsigned int len)41*4882a593Smuzhiyun static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len)
42*4882a593Smuzhiyun {
43*4882a593Smuzhiyun int i;
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) {
46*4882a593Smuzhiyun struct kconf_id *id = kconf_id_array+i;
47*4882a593Smuzhiyun int l = strlen(id->name);
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun if (len == l && !memcmp(str, id->name, len))
50*4882a593Smuzhiyun return id;
51*4882a593Smuzhiyun }
52*4882a593Smuzhiyun return NULL;
53*4882a593Smuzhiyun }
54