diff options
author | Hauke Mehrtens <hauke@hauke-m.de> | 2019-08-03 23:11:03 +0200 |
---|---|---|
committer | Hauke Mehrtens <hauke@hauke-m.de> | 2019-08-14 20:15:48 +0200 |
commit | 4ec72687181df4b786152747c008a688c9b9b9de (patch) | |
tree | e6d4ed3374ad6d933720affb5bf3d5b6465339f1 /backport/kconf/kconf_id.c | |
parent | 02a404089c8dc993293a675255b5aad6bb21bf67 (diff) |
kconfig: Update to KConfig to version from kernel 4.17
This updates the KConfig system used in backports to the version from
kernel 4.17. In kernel 4.18 some bigger changes to the KConfig system
were introduced which are harder to backport, so start with using this
older version.
This version now generates the zconf.lex.c and zconf.tab.c files from
the original sources, newer kernel versions will delete these files in
a make clean, after that they are now regenerated. We do not ship them
by default any more, so we need lex and yacc.
The Makefile was not copied from the mainline kernel but this is written
specifically for the backports project.
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Cc: Anthony Wong <yp@anthonywong.net>
Diffstat (limited to 'backport/kconf/kconf_id.c')
-rw-r--r-- | backport/kconf/kconf_id.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/backport/kconf/kconf_id.c b/backport/kconf/kconf_id.c new file mode 100644 index 00000000..3ea9c5f9 --- /dev/null +++ b/backport/kconf/kconf_id.c @@ -0,0 +1,53 @@ + +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, S_UNKNOWN }, + { "prompt", T_PROMPT, TF_COMMAND }, + { "tristate", T_TYPE, TF_COMMAND, S_TRISTATE }, + { "def_tristate", T_DEFAULT, TF_COMMAND, S_TRISTATE }, + { "bool", T_TYPE, TF_COMMAND, S_BOOLEAN }, + { "def_bool", T_DEFAULT, TF_COMMAND, S_BOOLEAN }, + { "int", T_TYPE, TF_COMMAND, S_INT }, + { "hex", T_TYPE, TF_COMMAND, S_HEX }, + { "string", T_TYPE, TF_COMMAND, S_STRING }, + { "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 }, + { "modules", T_OPT_MODULES, TF_OPTION }, + { "defconfig_list", T_OPT_DEFCONFIG_LIST, TF_OPTION }, + { "env", T_OPT_ENV, TF_OPTION }, + { "allnoconfig_y", T_OPT_ALLNOCONFIG_Y, TF_OPTION }, +}; + +#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; +} |