linux/scripts/kconfig
Masahiro Yamada 980c9e198f kconfig: convert linked list of files to hash table
Currently, a linked list is used to keep track of all the Kconfig
files that have ever been parsed. Every time the "source" statement
is encountered, the linked list is traversed to check if the file has
been opened before. This prevents the same file from being recorded
in include/config/auto.conf.cmd again.

Given 1500+ Kconfig files parsed, a hashtable is now a more optimal
data structure.

By the way, you may wonder why we check this in the first place.
It matters only when the same file is included multiple times.
In old days, such a use case was forbidden, but commit f094f8a1b2
("kconfig: allow multiple inclusion of the same file") provided a bit
more flexibility. Of course, it is almost hypothetical...

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2024-02-20 20:44:48 +09:00
..
lxdialog kconfig: menuconfig: simplify global jump key assignment 2023-07-25 00:59:32 +09:00
tests kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
.gitignore kconfig: Update all declared targets 2023-01-13 16:29:52 +09:00
array_size.h kconfig: move ARRAY_SIZE to a header 2024-02-19 18:20:41 +09:00
conf.c kconfig: WERROR unmet symbol dependency 2023-12-29 22:25:20 +09:00
confdata.c kconfig: call env_write_dep() right after yyparse() 2024-02-19 18:20:40 +09:00
expr.c kconfig: remove unreachable printf() 2023-12-28 16:22:47 +09:00
expr.h kconfig: split list_head into a separate header 2024-02-19 18:20:41 +09:00
gconf-cfg.sh kconfig: refactor Makefile to reduce process forks 2022-12-13 22:29:10 +09:00
gconf.c kconfig: gconfig: correct program name in help text 2023-07-12 23:46:57 +09:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
hashtable.h kconfig: add macros useful for hashtable 2024-02-19 18:20:41 +09:00
images.c kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
images.h kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
internal.h kconfig: remove zconf_curname() and zconf_lineno() 2024-02-19 18:20:40 +09:00
lexer.l kconfig: change file_lookup() to return the file name 2024-02-19 18:20:41 +09:00
list_types.h kconfig: import more list macros and inline functions 2024-02-19 18:20:41 +09:00
list.h kconfig: import more list macros and inline functions 2024-02-19 18:20:41 +09:00
lkc_proto.h kconfig: split preprocessor prototypes into preprocess.h 2024-02-19 18:20:40 +09:00
lkc.h kconfig: move strhash() to util.c as a global function 2024-02-20 20:36:15 +09:00
Makefile kconfig: Use KCONFIG_CONFIG instead of .config 2023-12-28 16:22:47 +09:00
mconf-cfg.sh kconfig: refactor Makefile to reduce process forks 2022-12-13 22:29:10 +09:00
mconf.c kconfig: split list_head into a separate header 2024-02-19 18:20:41 +09:00
menu.c kconfig: split list_head into a separate header 2024-02-19 18:20:41 +09:00
merge_config.sh scripts: merge_config: Fix typo in variable name. 2023-03-23 15:27:40 +09:00
mnconf-common.c kconfig: factor out common code shared by mconf and nconf 2023-12-10 15:34:37 +09:00
mnconf-common.h kconfig: factor out common code shared by mconf and nconf 2023-12-10 15:34:37 +09:00
nconf-cfg.sh kconfig: refactor Makefile to reduce process forks 2022-12-13 22:29:10 +09:00
nconf.c kconfig: split list_head into a separate header 2024-02-19 18:20:41 +09:00
nconf.gui.c kconfig: nconf: Add search jump feature 2023-08-13 21:29:41 +09:00
nconf.h kconfig: nconf: Add search jump feature 2023-08-13 21:29:41 +09:00
parser.y kconfig: do not delay the cur_filename update 2024-02-19 18:20:40 +09:00
preprocess.c kconfig: move ARRAY_SIZE to a header 2024-02-19 18:20:41 +09:00
preprocess.h kconfig: split preprocessor prototypes into preprocess.h 2024-02-19 18:20:40 +09:00
qconf-cfg.sh kconfig: port qconf to work with Qt6 in addition to Qt5 2023-08-16 12:06:29 +09:00
qconf.cc kconfig: associate struct menu with file name directly 2024-02-19 18:20:40 +09:00
qconf.h kconfig: qconf: remove Y, M, N columns 2020-09-25 00:37:13 +09:00
streamline_config.pl streamline_config.pl: handle also ${CONFIG_FOO} 2023-06-08 11:11:32 +09:00
symbol.c kconfig: move strhash() to util.c as a global function 2024-02-20 20:36:15 +09:00
util.c kconfig: convert linked list of files to hash table 2024-02-20 20:44:48 +09:00