diff --git a/Units/simple-kconfig.d/args.ctags b/Units/simple-kconfig.d/args.ctags
new file mode 100644
index 0000000000..de0a73f9e0
--- /dev/null
+++ b/Units/simple-kconfig.d/args.ctags
@@ -0,0 +1,4 @@
+--map-Kconfig=.kconfig
+--extras=+r
+--fields=+r
+--sort=no
diff --git a/Units/simple-kconfig.d/expected.tags b/Units/simple-kconfig.d/expected.tags
new file mode 100644
index 0000000000..f82f6564a4
--- /dev/null
+++ b/Units/simple-kconfig.d/expected.tags
@@ -0,0 +1,163 @@
+Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration input.kconfig /^mainmenu "Linux\/$(ARCH) $(KERNELVERSION) Kernel Configuration"$/;" M roles:def
+scripts/Kconfig.include input.kconfig /^source "scripts\/Kconfig.include"$/;" k roles:source
+init/Kconfig input.kconfig /^source "init\/Kconfig"$/;" k roles:source
+kernel/Kconfig.freezer input.kconfig /^source "kernel\/Kconfig.freezer"$/;" k roles:source
+fs/Kconfig.binfmt input.kconfig /^source "fs\/Kconfig.binfmt"$/;" k roles:source
+mm/Kconfig input.kconfig /^source "mm\/Kconfig"$/;" k roles:source
+net/Kconfig input.kconfig /^source "net\/Kconfig"$/;" k roles:source
+drivers/Kconfig input.kconfig /^source "drivers\/Kconfig"$/;" k roles:source
+fs/Kconfig input.kconfig /^source "fs\/Kconfig"$/;" k roles:source
+security/Kconfig input.kconfig /^source "security\/Kconfig"$/;" k roles:source
+crypto/Kconfig input.kconfig /^source "crypto\/Kconfig"$/;" k roles:source
+lib/Kconfig input.kconfig /^source "lib\/Kconfig"$/;" k roles:source
+lib/Kconfig.debug input.kconfig /^source "lib\/Kconfig.debug"$/;" k roles:source
+Documentation/Kconfig input.kconfig /^source "Documentation\/Kconfig"$/;" k roles:source
+JFFS2_FS input-1.kconfig /^config JFFS2_FS$/;" c roles:def
+CONFIG_JFFS2_FS input-1.kconfig /^config JFFS2_FS$/;" c roles:def
+JFFS2_FS_DEBUG input-1.kconfig /^config JFFS2_FS_DEBUG$/;" c roles:def
+CONFIG_JFFS2_FS_DEBUG input-1.kconfig /^config JFFS2_FS_DEBUG$/;" c roles:def
+JFFS2_FS_WRITEBUFFER input-1.kconfig /^config JFFS2_FS_WRITEBUFFER$/;" c roles:def
+CONFIG_JFFS2_FS_WRITEBUFFER input-1.kconfig /^config JFFS2_FS_WRITEBUFFER$/;" c roles:def
+JFFS2_FS_WBUF_VERIFY input-1.kconfig /^config JFFS2_FS_WBUF_VERIFY$/;" c roles:def
+CONFIG_JFFS2_FS_WBUF_VERIFY input-1.kconfig /^config JFFS2_FS_WBUF_VERIFY$/;" c roles:def
+JFFS2_SUMMARY input-1.kconfig /^config JFFS2_SUMMARY$/;" c roles:def
+CONFIG_JFFS2_SUMMARY input-1.kconfig /^config JFFS2_SUMMARY$/;" c roles:def
+JFFS2_FS_XATTR input-1.kconfig /^config JFFS2_FS_XATTR$/;" c roles:def
+CONFIG_JFFS2_FS_XATTR input-1.kconfig /^config JFFS2_FS_XATTR$/;" c roles:def
+JFFS2_FS_POSIX_ACL input-1.kconfig /^config JFFS2_FS_POSIX_ACL$/;" c roles:def
+CONFIG_JFFS2_FS_POSIX_ACL input-1.kconfig /^config JFFS2_FS_POSIX_ACL$/;" c roles:def
+JFFS2_FS_SECURITY input-1.kconfig /^config JFFS2_FS_SECURITY$/;" c roles:def
+CONFIG_JFFS2_FS_SECURITY input-1.kconfig /^config JFFS2_FS_SECURITY$/;" c roles:def
+JFFS2_COMPRESSION_OPTIONS input-1.kconfig /^config JFFS2_COMPRESSION_OPTIONS$/;" c roles:def
+CONFIG_JFFS2_COMPRESSION_OPTIONS input-1.kconfig /^config JFFS2_COMPRESSION_OPTIONS$/;" c roles:def
+JFFS2_ZLIB input-1.kconfig /^config JFFS2_ZLIB$/;" c roles:def
+CONFIG_JFFS2_ZLIB input-1.kconfig /^config JFFS2_ZLIB$/;" c roles:def
+JFFS2_LZO input-1.kconfig /^config JFFS2_LZO$/;" c roles:def
+CONFIG_JFFS2_LZO input-1.kconfig /^config JFFS2_LZO$/;" c roles:def
+JFFS2_RTIME input-1.kconfig /^config JFFS2_RTIME$/;" c roles:def
+CONFIG_JFFS2_RTIME input-1.kconfig /^config JFFS2_RTIME$/;" c roles:def
+JFFS2_RUBIN input-1.kconfig /^config JFFS2_RUBIN$/;" c roles:def
+CONFIG_JFFS2_RUBIN input-1.kconfig /^config JFFS2_RUBIN$/;" c roles:def
+choice29ffa23a0104 input-1.kconfig /^choice$/;" C roles:def
+JFFS2_CMODE_NONE input-1.kconfig /^config JFFS2_CMODE_NONE$/;" c choice:choice29ffa23a0104 roles:def
+CONFIG_JFFS2_CMODE_NONE input-1.kconfig /^config JFFS2_CMODE_NONE$/;" c choice:choice29ffa23a0104 roles:def
+JFFS2_CMODE_PRIORITY input-1.kconfig /^config JFFS2_CMODE_PRIORITY$/;" c choice:choice29ffa23a0104 roles:def
+CONFIG_JFFS2_CMODE_PRIORITY input-1.kconfig /^config JFFS2_CMODE_PRIORITY$/;" c choice:choice29ffa23a0104 roles:def
+JFFS2_CMODE_SIZE input-1.kconfig /^config JFFS2_CMODE_SIZE$/;" c choice:choice29ffa23a0104 roles:def
+CONFIG_JFFS2_CMODE_SIZE input-1.kconfig /^config JFFS2_CMODE_SIZE$/;" c choice:choice29ffa23a0104 roles:def
+JFFS2_CMODE_FAVOURLZO input-1.kconfig /^config JFFS2_CMODE_FAVOURLZO$/;" c choice:choice29ffa23a0104 roles:def
+CONFIG_JFFS2_CMODE_FAVOURLZO input-1.kconfig /^config JFFS2_CMODE_FAVOURLZO$/;" c choice:choice29ffa23a0104 roles:def
+HAVE_ARCH_KGDB input-2.kconfig /^config HAVE_ARCH_KGDB$/;" c roles:def
+CONFIG_HAVE_ARCH_KGDB input-2.kconfig /^config HAVE_ARCH_KGDB$/;" c roles:def
+KGDB input-2.kconfig /^menuconfig KGDB$/;" c roles:def
+CONFIG_KGDB input-2.kconfig /^menuconfig KGDB$/;" c roles:def
+KGDB_SERIAL_CONSOLE input-2.kconfig /^config KGDB_SERIAL_CONSOLE$/;" c roles:def
+CONFIG_KGDB_SERIAL_CONSOLE input-2.kconfig /^config KGDB_SERIAL_CONSOLE$/;" c roles:def
+KGDB_TESTS input-2.kconfig /^config KGDB_TESTS$/;" c roles:def
+CONFIG_KGDB_TESTS input-2.kconfig /^config KGDB_TESTS$/;" c roles:def
+KGDB_TESTS_ON_BOOT input-2.kconfig /^config KGDB_TESTS_ON_BOOT$/;" c roles:def
+CONFIG_KGDB_TESTS_ON_BOOT input-2.kconfig /^config KGDB_TESTS_ON_BOOT$/;" c roles:def
+KGDB_TESTS_BOOT_STRING input-2.kconfig /^config KGDB_TESTS_BOOT_STRING$/;" c roles:def
+CONFIG_KGDB_TESTS_BOOT_STRING input-2.kconfig /^config KGDB_TESTS_BOOT_STRING$/;" c roles:def
+KGDB_LOW_LEVEL_TRAP input-2.kconfig /^config KGDB_LOW_LEVEL_TRAP$/;" c roles:def
+CONFIG_KGDB_LOW_LEVEL_TRAP input-2.kconfig /^config KGDB_LOW_LEVEL_TRAP$/;" c roles:def
+KGDB_KDB input-2.kconfig /^config KGDB_KDB$/;" c roles:def
+CONFIG_KGDB_KDB input-2.kconfig /^config KGDB_KDB$/;" c roles:def
+KDB_DEFAULT_ENABLE input-2.kconfig /^config KDB_DEFAULT_ENABLE$/;" c roles:def
+CONFIG_KDB_DEFAULT_ENABLE input-2.kconfig /^config KDB_DEFAULT_ENABLE$/;" c roles:def
+KDB_KEYBOARD input-2.kconfig /^config KDB_KEYBOARD$/;" c roles:def
+CONFIG_KDB_KEYBOARD input-2.kconfig /^config KDB_KEYBOARD$/;" c roles:def
+KDB_CONTINUE_CATASTROPHIC input-2.kconfig /^config KDB_CONTINUE_CATASTROPHIC$/;" c roles:def
+CONFIG_KDB_CONTINUE_CATASTROPHIC input-2.kconfig /^config KDB_CONTINUE_CATASTROPHIC$/;" c roles:def
+Networking options input-3.kconfig /^menu "Networking options"$/;" m roles:def
+net/packet/Kconfig input-3.kconfig /^source "net\/packet\/Kconfig"$/;" k menu:Networking options roles:source
+net/unix/Kconfig input-3.kconfig /^source "net\/unix\/Kconfig"$/;" k menu:Networking options roles:source
+net/tls/Kconfig input-3.kconfig /^source "net\/tls\/Kconfig"$/;" k menu:Networking options roles:source
+net/xfrm/Kconfig input-3.kconfig /^source "net\/xfrm\/Kconfig"$/;" k menu:Networking options roles:source
+net/iucv/Kconfig input-3.kconfig /^source "net\/iucv\/Kconfig"$/;" k menu:Networking options roles:source
+net/smc/Kconfig input-3.kconfig /^source "net\/smc\/Kconfig"$/;" k menu:Networking options roles:source
+net/xdp/Kconfig input-3.kconfig /^source "net\/xdp\/Kconfig"$/;" k menu:Networking options roles:source
+INET input-3.kconfig /^config INET$/;" c menu:Networking options roles:def
+CONFIG_INET input-3.kconfig /^config INET$/;" c menu:Networking options roles:def
+net/ipv4/Kconfig input-3.kconfig /^source "net\/ipv4\/Kconfig"$/;" k menu:Networking options roles:source
+net/ipv6/Kconfig input-3.kconfig /^source "net\/ipv6\/Kconfig"$/;" k menu:Networking options roles:source
+net/netlabel/Kconfig input-3.kconfig /^source "net\/netlabel\/Kconfig"$/;" k menu:Networking options roles:source
+net/mptcp/Kconfig input-3.kconfig /^source "net\/mptcp\/Kconfig"$/;" k menu:Networking options roles:source
+NETWORK_SECMARK input-3.kconfig /^config NETWORK_SECMARK$/;" c menu:Networking options roles:def
+CONFIG_NETWORK_SECMARK input-3.kconfig /^config NETWORK_SECMARK$/;" c menu:Networking options roles:def
+NET_PTP_CLASSIFY input-3.kconfig /^config NET_PTP_CLASSIFY$/;" c menu:Networking options roles:def
+CONFIG_NET_PTP_CLASSIFY input-3.kconfig /^config NET_PTP_CLASSIFY$/;" c menu:Networking options roles:def
+NETWORK_PHY_TIMESTAMPING input-3.kconfig /^config NETWORK_PHY_TIMESTAMPING$/;" c menu:Networking options roles:def
+CONFIG_NETWORK_PHY_TIMESTAMPING input-3.kconfig /^config NETWORK_PHY_TIMESTAMPING$/;" c menu:Networking options roles:def
+NETFILTER input-3.kconfig /^menuconfig NETFILTER$/;" c menu:Networking options roles:def
+CONFIG_NETFILTER input-3.kconfig /^menuconfig NETFILTER$/;" c menu:Networking options roles:def
+NETFILTER_ADVANCED input-3.kconfig /^config NETFILTER_ADVANCED$/;" c menu:Networking options roles:def
+CONFIG_NETFILTER_ADVANCED input-3.kconfig /^config NETFILTER_ADVANCED$/;" c menu:Networking options roles:def
+BRIDGE_NETFILTER input-3.kconfig /^config BRIDGE_NETFILTER$/;" c menu:Networking options roles:def
+CONFIG_BRIDGE_NETFILTER input-3.kconfig /^config BRIDGE_NETFILTER$/;" c menu:Networking options roles:def
+net/netfilter/Kconfig input-3.kconfig /^source "net\/netfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/ipv4/netfilter/Kconfig input-3.kconfig /^source "net\/ipv4\/netfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/ipv6/netfilter/Kconfig input-3.kconfig /^source "net\/ipv6\/netfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/decnet/netfilter/Kconfig input-3.kconfig /^source "net\/decnet\/netfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/bridge/netfilter/Kconfig input-3.kconfig /^source "net\/bridge\/netfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/bpfilter/Kconfig input-3.kconfig /^source "net\/bpfilter\/Kconfig"$/;" k menu:Networking options roles:source
+net/dccp/Kconfig input-3.kconfig /^source "net\/dccp\/Kconfig"$/;" k menu:Networking options roles:source
+net/sctp/Kconfig input-3.kconfig /^source "net\/sctp\/Kconfig"$/;" k menu:Networking options roles:source
+net/rds/Kconfig input-3.kconfig /^source "net\/rds\/Kconfig"$/;" k menu:Networking options roles:source
+net/tipc/Kconfig input-3.kconfig /^source "net\/tipc\/Kconfig"$/;" k menu:Networking options roles:source
+net/atm/Kconfig input-3.kconfig /^source "net\/atm\/Kconfig"$/;" k menu:Networking options roles:source
+net/l2tp/Kconfig input-3.kconfig /^source "net\/l2tp\/Kconfig"$/;" k menu:Networking options roles:source
+net/802/Kconfig input-3.kconfig /^source "net\/802\/Kconfig"$/;" k menu:Networking options roles:source
+net/bridge/Kconfig input-3.kconfig /^source "net\/bridge\/Kconfig"$/;" k menu:Networking options roles:source
+net/dsa/Kconfig input-3.kconfig /^source "net\/dsa\/Kconfig"$/;" k menu:Networking options roles:source
+net/8021q/Kconfig input-3.kconfig /^source "net\/8021q\/Kconfig"$/;" k menu:Networking options roles:source
+net/decnet/Kconfig input-3.kconfig /^source "net\/decnet\/Kconfig"$/;" k menu:Networking options roles:source
+net/llc/Kconfig input-3.kconfig /^source "net\/llc\/Kconfig"$/;" k menu:Networking options roles:source
+drivers/net/appletalk/Kconfig input-3.kconfig /^source "drivers\/net\/appletalk\/Kconfig"$/;" k menu:Networking options roles:source
+net/x25/Kconfig input-3.kconfig /^source "net\/x25\/Kconfig"$/;" k menu:Networking options roles:source
+net/lapb/Kconfig input-3.kconfig /^source "net\/lapb\/Kconfig"$/;" k menu:Networking options roles:source
+net/phonet/Kconfig input-3.kconfig /^source "net\/phonet\/Kconfig"$/;" k menu:Networking options roles:source
+net/6lowpan/Kconfig input-3.kconfig /^source "net\/6lowpan\/Kconfig"$/;" k menu:Networking options roles:source
+net/ieee802154/Kconfig input-3.kconfig /^source "net\/ieee802154\/Kconfig"$/;" k menu:Networking options roles:source
+net/mac802154/Kconfig input-3.kconfig /^source "net\/mac802154\/Kconfig"$/;" k menu:Networking options roles:source
+net/sched/Kconfig input-3.kconfig /^source "net\/sched\/Kconfig"$/;" k menu:Networking options roles:source
+net/dcb/Kconfig input-3.kconfig /^source "net\/dcb\/Kconfig"$/;" k menu:Networking options roles:source
+net/dns_resolver/Kconfig input-3.kconfig /^source "net\/dns_resolver\/Kconfig"$/;" k menu:Networking options roles:source
+net/batman-adv/Kconfig input-3.kconfig /^source "net\/batman-adv\/Kconfig"$/;" k menu:Networking options roles:source
+net/openvswitch/Kconfig input-3.kconfig /^source "net\/openvswitch\/Kconfig"$/;" k menu:Networking options roles:source
+net/vmw_vsock/Kconfig input-3.kconfig /^source "net\/vmw_vsock\/Kconfig"$/;" k menu:Networking options roles:source
+net/netlink/Kconfig input-3.kconfig /^source "net\/netlink\/Kconfig"$/;" k menu:Networking options roles:source
+net/mpls/Kconfig input-3.kconfig /^source "net\/mpls\/Kconfig"$/;" k menu:Networking options roles:source
+net/nsh/Kconfig input-3.kconfig /^source "net\/nsh\/Kconfig"$/;" k menu:Networking options roles:source
+net/hsr/Kconfig input-3.kconfig /^source "net\/hsr\/Kconfig"$/;" k menu:Networking options roles:source
+net/switchdev/Kconfig input-3.kconfig /^source "net\/switchdev\/Kconfig"$/;" k menu:Networking options roles:source
+net/l3mdev/Kconfig input-3.kconfig /^source "net\/l3mdev\/Kconfig"$/;" k menu:Networking options roles:source
+net/qrtr/Kconfig input-3.kconfig /^source "net\/qrtr\/Kconfig"$/;" k menu:Networking options roles:source
+net/ncsi/Kconfig input-3.kconfig /^source "net\/ncsi\/Kconfig"$/;" k menu:Networking options roles:source
+RPS input-3.kconfig /^config RPS$/;" c menu:Networking options roles:def
+CONFIG_RPS input-3.kconfig /^config RPS$/;" c menu:Networking options roles:def
+RFS_ACCEL input-3.kconfig /^config RFS_ACCEL$/;" c menu:Networking options roles:def
+CONFIG_RFS_ACCEL input-3.kconfig /^config RFS_ACCEL$/;" c menu:Networking options roles:def
+XPS input-3.kconfig /^config XPS$/;" c menu:Networking options roles:def
+CONFIG_XPS input-3.kconfig /^config XPS$/;" c menu:Networking options roles:def
+HWBM input-3.kconfig /^config HWBM$/;" c menu:Networking options roles:def
+CONFIG_HWBM input-3.kconfig /^config HWBM$/;" c menu:Networking options roles:def
+CGROUP_NET_PRIO input-3.kconfig /^config CGROUP_NET_PRIO$/;" c menu:Networking options roles:def
+CONFIG_CGROUP_NET_PRIO input-3.kconfig /^config CGROUP_NET_PRIO$/;" c menu:Networking options roles:def
+CGROUP_NET_CLASSID input-3.kconfig /^config CGROUP_NET_CLASSID$/;" c menu:Networking options roles:def
+CONFIG_CGROUP_NET_CLASSID input-3.kconfig /^config CGROUP_NET_CLASSID$/;" c menu:Networking options roles:def
+NET_RX_BUSY_POLL input-3.kconfig /^config NET_RX_BUSY_POLL$/;" c menu:Networking options roles:def
+CONFIG_NET_RX_BUSY_POLL input-3.kconfig /^config NET_RX_BUSY_POLL$/;" c menu:Networking options roles:def
+BQL input-3.kconfig /^config BQL$/;" c menu:Networking options roles:def
+CONFIG_BQL input-3.kconfig /^config BQL$/;" c menu:Networking options roles:def
+BPF_JIT input-3.kconfig /^config BPF_JIT$/;" c menu:Networking options roles:def
+CONFIG_BPF_JIT input-3.kconfig /^config BPF_JIT$/;" c menu:Networking options roles:def
+BPF_STREAM_PARSER input-3.kconfig /^config BPF_STREAM_PARSER$/;" c menu:Networking options roles:def
+CONFIG_BPF_STREAM_PARSER input-3.kconfig /^config BPF_STREAM_PARSER$/;" c menu:Networking options roles:def
+NET_FLOW_LIMIT input-3.kconfig /^config NET_FLOW_LIMIT$/;" c menu:Networking options roles:def
+CONFIG_NET_FLOW_LIMIT input-3.kconfig /^config NET_FLOW_LIMIT$/;" c menu:Networking options roles:def
+Network testing input-3.kconfig /^menu "Network testing"$/;" m menu:Networking options roles:def
+NET_PKTGEN input-3.kconfig /^config NET_PKTGEN$/;" c menu:Networking options""Network testing roles:def
+CONFIG_NET_PKTGEN input-3.kconfig /^config NET_PKTGEN$/;" c menu:Networking options""Network testing roles:def
+NET_DROP_MONITOR input-3.kconfig /^config NET_DROP_MONITOR$/;" c menu:Networking options""Network testing roles:def
+CONFIG_NET_DROP_MONITOR input-3.kconfig /^config NET_DROP_MONITOR$/;" c menu:Networking options""Network testing roles:def
diff --git a/Units/simple-kconfig.d/input-1.kconfig b/Units/simple-kconfig.d/input-1.kconfig
new file mode 100644
index 0000000000..b71b6427ee
--- /dev/null
+++ b/Units/simple-kconfig.d/input-1.kconfig
@@ -0,0 +1,189 @@
+# SPDX-License-Identifier: GPL-2.0-only
+config JFFS2_FS
+ tristate "Journalling Flash File System v2 (JFFS2) support"
+ select CRC32
+ depends on MTD
+ help
+ JFFS2 is the second generation of the Journalling Flash File System
+ for use on diskless embedded devices. It provides improved wear
+ levelling, compression and support for hard links. You cannot use
+ this on normal block devices, only on 'MTD' devices.
+
+ Further information on the design and implementation of JFFS2 is
+ available at .
+
+config JFFS2_FS_DEBUG
+ int "JFFS2 debugging verbosity (0 = quiet, 2 = noisy)"
+ depends on JFFS2_FS
+ default "0"
+ help
+ This controls the amount of debugging messages produced by the JFFS2
+ code. Set it to zero for use in production systems. For evaluation,
+ testing and debugging, it's advisable to set it to one. This will
+ enable a few assertions and will print debugging messages at the
+ KERN_DEBUG loglevel, where they won't normally be visible. Level 2
+ is unlikely to be useful - it enables extra debugging in certain
+ areas which at one point needed debugging, but when the bugs were
+ located and fixed, the detailed messages were relegated to level 2.
+
+ If reporting bugs, please try to have available a full dump of the
+ messages at debug level 1 while the misbehaviour was occurring.
+
+config JFFS2_FS_WRITEBUFFER
+ bool "JFFS2 write-buffering support"
+ depends on JFFS2_FS
+ default y
+ help
+ This enables the write-buffering support in JFFS2.
+
+ This functionality is required to support JFFS2 on the following
+ types of flash devices:
+ - NAND flash
+ - NOR flash with transparent ECC
+ - DataFlash
+
+config JFFS2_FS_WBUF_VERIFY
+ bool "Verify JFFS2 write-buffer reads"
+ depends on JFFS2_FS_WRITEBUFFER
+ default n
+ help
+ This causes JFFS2 to read back every page written through the
+ write-buffer, and check for errors.
+
+config JFFS2_SUMMARY
+ bool "JFFS2 summary support"
+ depends on JFFS2_FS
+ default n
+ help
+ This feature makes it possible to use summary information
+ for faster filesystem mount.
+
+ The summary information can be inserted into a filesystem image
+ by the utility 'sumtool'.
+
+ If unsure, say 'N'.
+
+config JFFS2_FS_XATTR
+ bool "JFFS2 XATTR support"
+ depends on JFFS2_FS
+ default n
+ help
+ Extended attributes are name:value pairs associated with inodes by
+ the kernel or by users (see the attr(5) manual page for details).
+
+ If unsure, say N.
+
+config JFFS2_FS_POSIX_ACL
+ bool "JFFS2 POSIX Access Control Lists"
+ depends on JFFS2_FS_XATTR
+ default y
+ select FS_POSIX_ACL
+ help
+ Posix Access Control Lists (ACLs) support permissions for users and
+ groups beyond the owner/group/world scheme.
+
+ If you don't know what Access Control Lists are, say N
+
+config JFFS2_FS_SECURITY
+ bool "JFFS2 Security Labels"
+ depends on JFFS2_FS_XATTR
+ default y
+ help
+ Security labels support alternative access control models
+ implemented by security modules like SELinux. This option
+ enables an extended attribute handler for file security
+ labels in the jffs2 filesystem.
+
+ If you are not using a security module that requires using
+ extended attributes for file security labels, say N.
+
+config JFFS2_COMPRESSION_OPTIONS
+ bool "Advanced compression options for JFFS2"
+ depends on JFFS2_FS
+ default n
+ help
+ Enabling this option allows you to explicitly choose which
+ compression modules, if any, are enabled in JFFS2. Removing
+ compressors can mean you cannot read existing file systems,
+ and enabling experimental compressors can mean that you
+ write a file system which cannot be read by a standard kernel.
+
+ If unsure, you should _definitely_ say 'N'.
+
+config JFFS2_ZLIB
+ bool "JFFS2 ZLIB compression support" if JFFS2_COMPRESSION_OPTIONS
+ select ZLIB_INFLATE
+ select ZLIB_DEFLATE
+ depends on JFFS2_FS
+ default y
+ help
+ Zlib is designed to be a free, general-purpose, legally unencumbered,
+ lossless data-compression library for use on virtually any computer
+ hardware and operating system. See for
+ further information.
+
+ Say 'Y' if unsure.
+
+config JFFS2_LZO
+ bool "JFFS2 LZO compression support" if JFFS2_COMPRESSION_OPTIONS
+ select LZO_COMPRESS
+ select LZO_DECOMPRESS
+ depends on JFFS2_FS
+ default n
+ help
+ minilzo-based compression. Generally works better than Zlib.
+
+ This feature was added in July, 2007. Say 'N' if you need
+ compatibility with older bootloaders or kernels.
+
+config JFFS2_RTIME
+ bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
+ depends on JFFS2_FS
+ default y
+ help
+ Rtime does manage to recompress already-compressed data. Say 'Y' if unsure.
+
+config JFFS2_RUBIN
+ bool "JFFS2 RUBIN compression support" if JFFS2_COMPRESSION_OPTIONS
+ depends on JFFS2_FS
+ default n
+ help
+ RUBINMIPS and DYNRUBIN compressors. Say 'N' if unsure.
+
+choice
+ prompt "JFFS2 default compression mode" if JFFS2_COMPRESSION_OPTIONS
+ default JFFS2_CMODE_PRIORITY
+ depends on JFFS2_FS
+ help
+ You can set here the default compression mode of JFFS2 from
+ the available compression modes. Don't touch if unsure.
+
+config JFFS2_CMODE_NONE
+ bool "no compression"
+ help
+ Uses no compression.
+
+config JFFS2_CMODE_PRIORITY
+ bool "priority"
+ help
+ Tries the compressors in a predefined order and chooses the first
+ successful one.
+
+config JFFS2_CMODE_SIZE
+ bool "size"
+ help
+ Tries all compressors and chooses the one which has the smallest
+ result.
+
+config JFFS2_CMODE_FAVOURLZO
+ bool "Favour LZO"
+ help
+ Tries all compressors and chooses the one which has the smallest
+ result but gives some preference to LZO (which has faster
+ decompression) at the expense of size.
+
+endchoice
+
+#
+# This test input for u-ctags is taken from linux/fs/jffs2/Kconfig
+#
diff --git a/Units/simple-kconfig.d/input-2.kconfig b/Units/simple-kconfig.d/input-2.kconfig
new file mode 100644
index 0000000000..c0b9c90b61
--- /dev/null
+++ b/Units/simple-kconfig.d/input-2.kconfig
@@ -0,0 +1,131 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config HAVE_ARCH_KGDB
+ bool
+
+menuconfig KGDB
+ bool "KGDB: kernel debugger"
+ depends on HAVE_ARCH_KGDB
+ depends on DEBUG_KERNEL
+ help
+ If you say Y here, it will be possible to remotely debug the
+ kernel using gdb. It is recommended but not required, that
+ you also turn on the kernel config option
+ CONFIG_FRAME_POINTER to aid in producing more reliable stack
+ backtraces in the external debugger. Documentation of
+ kernel debugger is available at http://kgdb.sourceforge.net
+ as well as in Documentation/dev-tools/kgdb.rst. If
+ unsure, say N.
+
+if KGDB
+
+config KGDB_SERIAL_CONSOLE
+ tristate "KGDB: use kgdb over the serial console"
+ select CONSOLE_POLL
+ select MAGIC_SYSRQ
+ depends on TTY && HW_CONSOLE
+ default y
+ help
+ Share a serial console with kgdb. Sysrq-g must be used
+ to break in initially.
+
+config KGDB_TESTS
+ bool "KGDB: internal test suite"
+ default n
+ help
+ This is a kgdb I/O module specifically designed to test
+ kgdb's internal functions. This kgdb I/O module is
+ intended to for the development of new kgdb stubs
+ as well as regression testing the kgdb internals.
+ See the drivers/misc/kgdbts.c for the details about
+ the tests. The most basic of this I/O module is to boot
+ a kernel boot arguments "kgdbwait kgdbts=V1F100"
+
+config KGDB_TESTS_ON_BOOT
+ bool "KGDB: Run tests on boot"
+ depends on KGDB_TESTS
+ default n
+ help
+ Run the kgdb tests on boot up automatically without the need
+ to pass in a kernel parameter
+
+config KGDB_TESTS_BOOT_STRING
+ string "KGDB: which internal kgdb tests to run"
+ depends on KGDB_TESTS_ON_BOOT
+ default "V1F100"
+ help
+ This is the command string to send the kgdb test suite on
+ boot. See the drivers/misc/kgdbts.c for detailed
+ information about other strings you could use beyond the
+ default of V1F100.
+
+config KGDB_LOW_LEVEL_TRAP
+ bool "KGDB: Allow debugging with traps in notifiers"
+ depends on X86 || MIPS
+ default n
+ help
+ This will add an extra call back to kgdb for the breakpoint
+ exception handler which will allow kgdb to step through a
+ notify handler.
+
+config KGDB_KDB
+ bool "KGDB_KDB: include kdb frontend for kgdb"
+ default n
+ help
+ KDB frontend for kernel
+
+config KDB_DEFAULT_ENABLE
+ hex "KDB: Select kdb command functions to be enabled by default"
+ depends on KGDB_KDB
+ default 0x1
+ help
+ Specifiers which kdb commands are enabled by default. This may
+ be set to 1 or 0 to enable all commands or disable almost all
+ commands.
+
+ Alternatively the following bitmask applies:
+
+ 0x0002 - allow arbitrary reads from memory and symbol lookup
+ 0x0004 - allow arbitrary writes to memory
+ 0x0008 - allow current register state to be inspected
+ 0x0010 - allow current register state to be modified
+ 0x0020 - allow passive inspection (backtrace, process list, lsmod)
+ 0x0040 - allow flow control management (breakpoint, single step)
+ 0x0080 - enable signalling of processes
+ 0x0100 - allow machine to be rebooted
+
+ The config option merely sets the default at boot time. Both
+ issuing 'echo X > /sys/module/kdb/parameters/cmd_enable' or
+ setting with kdb.cmd_enable=X kernel command line option will
+ override the default settings.
+
+config KDB_KEYBOARD
+ bool "KGDB_KDB: keyboard as input device"
+ depends on VT && KGDB_KDB
+ default n
+ help
+ KDB can use a PS/2 type keyboard for an input device
+
+config KDB_CONTINUE_CATASTROPHIC
+ int "KDB: continue after catastrophic errors"
+ depends on KGDB_KDB
+ default "0"
+ help
+ This integer controls the behaviour of kdb when the kernel gets a
+ catastrophic error, i.e. for a panic or oops.
+ When KDB is active and a catastrophic error occurs, nothing extra
+ will happen until you type 'go'.
+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 0 (default). The first time
+ you type 'go', you will be warned by kdb. The secend time you type
+ 'go', KDB tries to continue. No guarantees that the
+ kernel is still usable in this situation.
+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 1. KDB tries to continue.
+ No guarantees that the kernel is still usable in this situation.
+ CONFIG_KDB_CONTINUE_CATASTROPHIC == 2. KDB forces a reboot.
+ If you are not sure, say 0.
+
+endif # KGDB
+
+#
+# This test input for u-ctags is taken from linux/lib/Kconfig.kgdb
+#
diff --git a/Units/simple-kconfig.d/input-3.kconfig b/Units/simple-kconfig.d/input-3.kconfig
new file mode 100644
index 0000000000..8dd0ac4952
--- /dev/null
+++ b/Units/simple-kconfig.d/input-3.kconfig
@@ -0,0 +1,314 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Network configuration
+#
+
+menu "Networking options"
+
+source "net/packet/Kconfig"
+source "net/unix/Kconfig"
+source "net/tls/Kconfig"
+source "net/xfrm/Kconfig"
+source "net/iucv/Kconfig"
+source "net/smc/Kconfig"
+source "net/xdp/Kconfig"
+
+config INET
+ bool "TCP/IP networking"
+ ---help---
+ These are the protocols used on the Internet and on most local
+ Ethernets. It is highly recommended to say Y here (this will enlarge
+ your kernel by about 400 KB), since some programs (e.g. the X window
+ system) use TCP/IP even if your machine is not connected to any
+ other computer. You will get the so-called loopback device which
+ allows you to ping yourself (great fun, that!).
+
+ For an excellent introduction to Linux networking, please read the
+ Linux Networking HOWTO, available from
+ .
+
+ If you say Y here and also to "/proc file system support" and
+ "Sysctl support" below, you can change various aspects of the
+ behavior of the TCP/IP code by writing to the (virtual) files in
+ /proc/sys/net/ipv4/*; the options are explained in the file
+ .
+
+ Short answer: say Y.
+
+if INET
+source "net/ipv4/Kconfig"
+source "net/ipv6/Kconfig"
+source "net/netlabel/Kconfig"
+source "net/mptcp/Kconfig"
+
+endif # if INET
+
+config NETWORK_SECMARK
+ bool "Security Marking"
+ help
+ This enables security marking of network packets, similar
+ to nfmark, but designated for security purposes.
+ If you are unsure how to answer this question, answer N.
+
+config NET_PTP_CLASSIFY
+ def_bool n
+
+config NETWORK_PHY_TIMESTAMPING
+ bool "Timestamping in PHY devices"
+ select NET_PTP_CLASSIFY
+ help
+ This allows timestamping of network packets by PHYs (or
+ other MII bus snooping devices) with hardware timestamping
+ capabilities. This option adds some overhead in the transmit
+ and receive paths.
+
+ If you are unsure how to answer this question, answer N.
+
+menuconfig NETFILTER
+ bool "Network packet filtering framework (Netfilter)"
+ ---help---
+ Netfilter is a framework for filtering and mangling network packets
+ that pass through your Linux box.
+
+ The most common use of packet filtering is to run your Linux box as
+ a firewall protecting a local network from the Internet. The type of
+ firewall provided by this kernel support is called a "packet
+ filter", which means that it can reject individual network packets
+ based on type, source, destination etc. The other kind of firewall,
+ a "proxy-based" one, is more secure but more intrusive and more
+ bothersome to set up; it inspects the network traffic much more
+ closely, modifies it and has knowledge about the higher level
+ protocols, which a packet filter lacks. Moreover, proxy-based
+ firewalls often require changes to the programs running on the local
+ clients. Proxy-based firewalls don't need support by the kernel, but
+ they are often combined with a packet filter, which only works if
+ you say Y here.
+
+ You should also say Y here if you intend to use your Linux box as
+ the gateway to the Internet for a local network of machines without
+ globally valid IP addresses. This is called "masquerading": if one
+ of the computers on your local network wants to send something to
+ the outside, your box can "masquerade" as that computer, i.e. it
+ forwards the traffic to the intended outside destination, but
+ modifies the packets to make it look like they came from the
+ firewall box itself. It works both ways: if the outside host
+ replies, the Linux box will silently forward the traffic to the
+ correct local computer. This way, the computers on your local net
+ are completely invisible to the outside world, even though they can
+ reach the outside and can receive replies. It is even possible to
+ run globally visible servers from within a masqueraded local network
+ using a mechanism called portforwarding. Masquerading is also often
+ called NAT (Network Address Translation).
+
+ Another use of Netfilter is in transparent proxying: if a machine on
+ the local network tries to connect to an outside host, your Linux
+ box can transparently forward the traffic to a local server,
+ typically a caching proxy server.
+
+ Yet another use of Netfilter is building a bridging firewall. Using
+ a bridge with Network packet filtering enabled makes iptables "see"
+ the bridged traffic. For filtering on the lower network and Ethernet
+ protocols over the bridge, use ebtables (under bridge netfilter
+ configuration).
+
+ Various modules exist for netfilter which replace the previous
+ masquerading (ipmasqadm), packet filtering (ipchains), transparent
+ proxying, and portforwarding mechanisms. Please see
+ under "iptables" for the location of
+ these packages.
+
+if NETFILTER
+
+config NETFILTER_ADVANCED
+ bool "Advanced netfilter configuration"
+ depends on NETFILTER
+ default y
+ help
+ If you say Y here you can select between all the netfilter modules.
+ If you say N the more unusual ones will not be shown and the
+ basic ones needed by most people will default to 'M'.
+
+ If unsure, say Y.
+
+config BRIDGE_NETFILTER
+ tristate "Bridged IP/ARP packets filtering"
+ depends on BRIDGE
+ depends on NETFILTER && INET
+ depends on NETFILTER_ADVANCED
+ select NETFILTER_FAMILY_BRIDGE
+ select SKB_EXTENSIONS
+ ---help---
+ Enabling this option will let arptables resp. iptables see bridged
+ ARP resp. IP traffic. If you want a bridging firewall, you probably
+ want this option enabled.
+ Enabling or disabling this option doesn't enable or disable
+ ebtables.
+
+ If unsure, say N.
+
+source "net/netfilter/Kconfig"
+source "net/ipv4/netfilter/Kconfig"
+source "net/ipv6/netfilter/Kconfig"
+source "net/decnet/netfilter/Kconfig"
+source "net/bridge/netfilter/Kconfig"
+
+endif
+
+source "net/bpfilter/Kconfig"
+
+source "net/dccp/Kconfig"
+source "net/sctp/Kconfig"
+source "net/rds/Kconfig"
+source "net/tipc/Kconfig"
+source "net/atm/Kconfig"
+source "net/l2tp/Kconfig"
+source "net/802/Kconfig"
+source "net/bridge/Kconfig"
+source "net/dsa/Kconfig"
+source "net/8021q/Kconfig"
+source "net/decnet/Kconfig"
+source "net/llc/Kconfig"
+source "drivers/net/appletalk/Kconfig"
+source "net/x25/Kconfig"
+source "net/lapb/Kconfig"
+source "net/phonet/Kconfig"
+source "net/6lowpan/Kconfig"
+source "net/ieee802154/Kconfig"
+source "net/mac802154/Kconfig"
+source "net/sched/Kconfig"
+source "net/dcb/Kconfig"
+source "net/dns_resolver/Kconfig"
+source "net/batman-adv/Kconfig"
+source "net/openvswitch/Kconfig"
+source "net/vmw_vsock/Kconfig"
+source "net/netlink/Kconfig"
+source "net/mpls/Kconfig"
+source "net/nsh/Kconfig"
+source "net/hsr/Kconfig"
+source "net/switchdev/Kconfig"
+source "net/l3mdev/Kconfig"
+source "net/qrtr/Kconfig"
+source "net/ncsi/Kconfig"
+
+config RPS
+ bool
+ depends on SMP && SYSFS
+ default y
+
+config RFS_ACCEL
+ bool
+ depends on RPS
+ select CPU_RMAP
+ default y
+
+config XPS
+ bool
+ depends on SMP
+ default y
+
+config HWBM
+ bool
+
+config CGROUP_NET_PRIO
+ bool "Network priority cgroup"
+ depends on CGROUPS
+ select SOCK_CGROUP_DATA
+ ---help---
+ Cgroup subsystem for use in assigning processes to network priorities on
+ a per-interface basis.
+
+config CGROUP_NET_CLASSID
+ bool "Network classid cgroup"
+ depends on CGROUPS
+ select SOCK_CGROUP_DATA
+ ---help---
+ Cgroup subsystem for use as general purpose socket classid marker that is
+ being used in cls_cgroup and for netfilter matching.
+
+config NET_RX_BUSY_POLL
+ bool
+ default y
+
+config BQL
+ bool
+ depends on SYSFS
+ select DQL
+ default y
+
+config BPF_JIT
+ bool "enable BPF Just In Time compiler"
+ depends on HAVE_CBPF_JIT || HAVE_EBPF_JIT
+ depends on MODULES
+ ---help---
+ Berkeley Packet Filter filtering capabilities are normally handled
+ by an interpreter. This option allows kernel to generate a native
+ code when filter is loaded in memory. This should speedup
+ packet sniffing (libpcap/tcpdump).
+
+ Note, admin should enable this feature changing:
+ /proc/sys/net/core/bpf_jit_enable
+ /proc/sys/net/core/bpf_jit_harden (optional)
+ /proc/sys/net/core/bpf_jit_kallsyms (optional)
+
+config BPF_STREAM_PARSER
+ bool "enable BPF STREAM_PARSER"
+ depends on INET
+ depends on BPF_SYSCALL
+ depends on CGROUP_BPF
+ select STREAM_PARSER
+ select NET_SOCK_MSG
+ ---help---
+ Enabling this allows a stream parser to be used with
+ BPF_MAP_TYPE_SOCKMAP.
+
+ BPF_MAP_TYPE_SOCKMAP provides a map type to use with network sockets.
+ It can be used to enforce socket policy, implement socket redirects,
+ etc.
+
+config NET_FLOW_LIMIT
+ bool
+ depends on RPS
+ default y
+ ---help---
+ The network stack has to drop packets when a receive processing CPU's
+ backlog reaches netdev_max_backlog. If a few out of many active flows
+ generate the vast majority of load, drop their traffic earlier to
+ maintain capacity for the other flows. This feature provides servers
+ with many clients some protection against DoS by a single (spoofed)
+ flow that greatly exceeds average workload.
+
+menu "Network testing"
+
+config NET_PKTGEN
+ tristate "Packet Generator (USE WITH CAUTION)"
+ depends on INET && PROC_FS
+ ---help---
+ This module will inject preconfigured packets, at a configurable
+ rate, out of a given interface. It is used for network interface
+ stress testing and performance analysis. If you don't understand
+ what was just said, you don't need it: say N.
+
+ Documentation on how to use the packet generator can be found
+ at .
+
+ To compile this code as a module, choose M here: the
+ module will be called pktgen.
+
+config NET_DROP_MONITOR
+ tristate "Network packet drop alerting service"
+ depends on INET && TRACEPOINTS
+ ---help---
+ This feature provides an alerting service to userspace in the
+ event that packets are discarded in the network stack. Alerts
+ are broadcast via netlink socket to any listening user space
+ process. If you don't need network drop alerts, or if you are ok
+ just checking the various proc files and other utilities for
+ drop statistics, say N here.
+
+endmenu
+
+endmenu
+
+#
+# This test input for u-ctags is partially taken from linux/net/Kconfig
+#
diff --git a/Units/simple-kconfig.d/input.kconfig b/Units/simple-kconfig.d/input.kconfig
new file mode 100644
index 0000000000..6a6eb205a2
--- /dev/null
+++ b/Units/simple-kconfig.d/input.kconfig
@@ -0,0 +1,38 @@
+# SPDX-License-Identifier: GPL-2.0
+#
+# For a description of the syntax of this configuration file,
+# see Documentation/kbuild/kconfig-language.rst.
+#
+mainmenu "Linux/$(ARCH) $(KERNELVERSION) Kernel Configuration"
+
+comment "Compiler: $(CC_VERSION_TEXT)"
+
+source "scripts/Kconfig.include"
+
+source "init/Kconfig"
+
+source "kernel/Kconfig.freezer"
+
+source "fs/Kconfig.binfmt"
+
+source "mm/Kconfig"
+
+source "net/Kconfig"
+
+source "drivers/Kconfig"
+
+source "fs/Kconfig"
+
+source "security/Kconfig"
+
+source "crypto/Kconfig"
+
+source "lib/Kconfig"
+
+source "lib/Kconfig.debug"
+
+source "Documentation/Kconfig"
+
+#
+# This test input for u-ctags is taken from linux/Kconfig
+#