summaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/kconf_id.c
blob: f8b222cc8b874d5b4347f3dc913d24c075d9130a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49

static struct kconf_id kconf_id_array[] = {
	{ "mainmenu",		T_MAINMENU,		TF_COMMAND },
	{ "menu",		T_MENU,			TF_COMMAND },
	{ "endmenu",		T_ENDMENU,		TF_COMMAND },
	{ "source",		T_SOURCE,		TF_COMMAND },
	{ "choice",		T_CHOICE,		TF_COMMAND },
	{ "endchoice",		T_ENDCHOICE,		TF_COMMAND },
	{ "comment",		T_COMMENT,		TF_COMMAND },
	{ "config",		T_CONFIG,		TF_COMMAND },
	{ "menuconfig",		T_MENUCONFIG,		TF_COMMAND },
	{ "help",		T_HELP,			TF_COMMAND },
	{ "---help---",		T_HELP,			TF_COMMAND },
	{ "if",			T_IF,			TF_COMMAND|TF_PARAM },
	{ "endif",		T_ENDIF,		TF_COMMAND },
	{ "depends",		T_DEPENDS,		TF_COMMAND },
	{ "optional",		T_OPTIONAL,		TF_COMMAND },
	{ "default",		T_DEFAULT,		TF_COMMAND },
	{ "def_bool",		T_DEF_BOOL,		TF_COMMAND },
	{ "def_tristate",	T_DEF_TRISTATE,		TF_COMMAND },
	{ "prompt",		T_PROMPT,		TF_COMMAND },
	{ "bool",		T_BOOL,			TF_COMMAND },
	{ "tristate",		T_TRISTATE,		TF_COMMAND },
	{ "int",		T_INT,			TF_COMMAND },
	{ "hex",		T_HEX,			TF_COMMAND },
	{ "string",		T_STRING,		TF_COMMAND },
	{ "select",		T_SELECT,		TF_COMMAND },
	{ "imply",		T_IMPLY,		TF_COMMAND },
	{ "range",		T_RANGE,		TF_COMMAND },
	{ "visible",		T_VISIBLE,		TF_COMMAND },
	{ "option",		T_OPTION,		TF_COMMAND },
	{ "on",			T_ON,			TF_PARAM },
};

#define KCONF_ID_ARRAY_SIZE (sizeof(kconf_id_array)/sizeof(struct kconf_id))

static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len)
{
	int i;

	for (i = 0; i < KCONF_ID_ARRAY_SIZE; i++) {
		struct kconf_id *id = kconf_id_array+i;
		int l = strlen(id->name);

		if (len == l && !memcmp(str, id->name, len))
			return id;
	}
	return NULL;
}