xref: /openbmc/u-boot/scripts/kconfig/kconf_id.c (revision e91610da7c8a9fe42f3e5a75f06c3d1a0cb5f815)
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