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