Kconfig is a language that describes configuration options for the Linux Kernel. The syntax looks like this:
# https://github.com/torvalds/linux/blob/master/arch/riscv/Kconfig#L771
- The file starts with a
configentry: We define a config namedEFI. The next lines are the attributes of this entry. EFIis a boolean config.EFIdepends on the configMMU.- Its default value is
y. - If
EFIis equals totruethen it enablesEFI_STUB. - The
helpattribute defines a help text for the end user.
There are plenty of other keywords in the Kconfig language, check out the official documentation for more details.
Features
- This is a parser, there is no semantic analysis in this library.
- This library only supports UTF-8 encoded files.
- List of supported entries can be found here.
- List of supported attributes can be found here.
- When
sourceis met, it reads and parses the specified configuration file. - This library uses
clone()a lot. Do not expect amazing performances. - This parser has been tested on the Linux kernel repository from 2.6.11 to 6.4.9 (3733 versions).
Getting started
use PathBuf;
use ;
use HashMap;
// curl https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.9.tar.xz | tar -xJ -C /tmp/