| # SPDX-License-Identifier: GPL-2.0-only | |
| # | |
| # Library configuration | |
| # | |
| config BINARY_PRINTF | |
| def_bool n | |
| menu "Library routines" | |
| config RAID6_PQ | |
| tristate | |
| config RAID6_PQ_BENCHMARK | |
| bool "Automatically choose fastest RAID6 PQ functions" | |
| depends on RAID6_PQ | |
| default y | |
| help | |
| Benchmark all available RAID6 PQ functions on init and choose the | |
| fastest one. | |
| config LINEAR_RANGES | |
| tristate | |
| config PACKING | |
| bool "Generic bitfield packing and unpacking" | |
| default n | |
| help | |
| This option provides the packing() helper function, which permits | |
| converting bitfields between a CPU-usable representation and a | |
| memory representation that can have any combination of these quirks: | |
| - Is little endian (bytes are reversed within a 32-bit group) | |
| - The least-significant 32-bit word comes first (within a 64-bit | |
| group) | |
| - The most significant bit of a byte is at its right (bit 0 of a | |
| register description is numerically 2^7). | |
| Drivers may use these helpers to match the bit indices as described | |
| in the data sheets of the peripherals they are in control of. | |
| When in doubt, say N. | |
| config BITREVERSE | |
| tristate | |
| config HAVE_ARCH_BITREVERSE | |
| bool | |
| default n | |
| help | |
| This option enables the use of hardware bit-reversal instructions on | |
| architectures which support such operations. | |
| config GENERIC_STRNCPY_FROM_USER | |
| bool | |
| config GENERIC_STRNLEN_USER | |
| bool | |
| config GENERIC_NET_UTILS | |
| bool | |
| config GENERIC_FIND_FIRST_BIT | |
| bool | |
| source "lib/math/Kconfig" | |
| config NO_GENERIC_PCI_IOPORT_MAP | |
| bool | |
| config GENERIC_PCI_IOMAP | |
| bool | |
| config GENERIC_IOMAP | |
| bool | |
| select GENERIC_PCI_IOMAP | |
| config STMP_DEVICE | |
| bool | |
| config ARCH_USE_CMPXCHG_LOCKREF | |
| bool | |
| config ARCH_HAS_FAST_MULTIPLIER | |
| bool | |
| config ARCH_USE_SYM_ANNOTATIONS | |
| bool | |
| config INDIRECT_PIO | |
| bool "Access I/O in non-MMIO mode" | |
| depends on ARM64 | |
| help | |
| On some platforms where no separate I/O space exists, there are I/O | |
| hosts which can not be accessed in MMIO mode. Using the logical PIO | |
| mechanism, the host-local I/O resource can be mapped into system | |
| logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the | |
| system can access the I/O devices with the mapped-logic PIO through | |
| I/O accessors. | |
| This way has relatively little I/O performance cost. Please make | |
| sure your devices really need this configure item enabled. | |
| When in doubt, say N. | |
| source "lib/crypto/Kconfig" | |
| config LIB_MEMNEQ | |
| bool | |
| config CRC_CCITT | |
| tristate "CRC-CCITT functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC-CCITT functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC-CCITT | |
| functions require M here. | |
| config CRC16 | |
| tristate "CRC16 functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC16 functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC16 | |
| functions require M here. | |
| config CRC_T10DIF | |
| tristate "CRC calculation for the T10 Data Integrity Field" | |
| select CRYPTO | |
| select CRYPTO_CRCT10DIF | |
| help | |
| This option is only needed if a module that's not in the | |
| kernel tree needs to calculate CRC checks for use with the | |
| SCSI data integrity subsystem. | |
| config CRC_ITU_T | |
| tristate "CRC ITU-T V.41 functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC ITU-T V.41 functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC ITU-T V.41 | |
| functions require M here. | |
| config CRC32 | |
| tristate "CRC32/CRC32c functions" | |
| default y | |
| select BITREVERSE | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC32/CRC32c functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC32/CRC32c | |
| functions require M here. | |
| config CRC32_SELFTEST | |
| tristate "CRC32 perform self test on init" | |
| depends on CRC32 | |
| help | |
| This option enables the CRC32 library functions to perform a | |
| self test on initialization. The self test computes crc32_le | |
| and crc32_be over byte strings with random alignment and length | |
| and computes the total elapsed time and number of bytes processed. | |
| choice | |
| prompt "CRC32 implementation" | |
| depends on CRC32 | |
| default CRC32_SLICEBY8 | |
| help | |
| This option allows a kernel builder to override the default choice | |
| of CRC32 algorithm. Choose the default ("slice by 8") unless you | |
| know that you need one of the others. | |
| config CRC32_SLICEBY8 | |
| bool "Slice by 8 bytes" | |
| help | |
| Calculate checksum 8 bytes at a time with a clever slicing algorithm. | |
| This is the fastest algorithm, but comes with a 8KiB lookup table. | |
| Most modern processors have enough cache to hold this table without | |
| thrashing the cache. | |
| This is the default implementation choice. Choose this one unless | |
| you have a good reason not to. | |
| config CRC32_SLICEBY4 | |
| bool "Slice by 4 bytes" | |
| help | |
| Calculate checksum 4 bytes at a time with a clever slicing algorithm. | |
| This is a bit slower than slice by 8, but has a smaller 4KiB lookup | |
| table. | |
| Only choose this option if you know what you are doing. | |
| config CRC32_SARWATE | |
| bool "Sarwate's Algorithm (one byte at a time)" | |
| help | |
| Calculate checksum a byte at a time using Sarwate's algorithm. This | |
| is not particularly fast, but has a small 256 byte lookup table. | |
| Only choose this option if you know what you are doing. | |
| config CRC32_BIT | |
| bool "Classic Algorithm (one bit at a time)" | |
| help | |
| Calculate checksum one bit at a time. This is VERY slow, but has | |
| no lookup table. This is provided as a debugging option. | |
| Only choose this option if you are debugging crc32. | |
| endchoice | |
| config CRC64 | |
| tristate "CRC64 functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC64 functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC64 | |
| functions require M here. | |
| config CRC4 | |
| tristate "CRC4 functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC4 functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC4 | |
| functions require M here. | |
| config CRC7 | |
| tristate "CRC7 functions" | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC7 functions, but a module built outside | |
| the kernel tree does. Such modules that use library CRC7 | |
| functions require M here. | |
| config LIBCRC32C | |
| tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" | |
| select CRYPTO | |
| select CRYPTO_CRC32C | |
| help | |
| This option is provided for the case where no in-kernel-tree | |
| modules require CRC32c functions, but a module built outside the | |
| kernel tree does. Such modules that use library CRC32c functions | |
| require M here. See Castagnoli93. | |
| Module will be libcrc32c. | |
| config CRC8 | |
| tristate "CRC8 function" | |
| help | |
| This option provides CRC8 function. Drivers may select this | |
| when they need to do cyclic redundancy check according CRC8 | |
| algorithm. Module will be called crc8. | |
| config XXHASH | |
| tristate | |
| config AUDIT_GENERIC | |
| bool | |
| depends on AUDIT && !AUDIT_ARCH | |
| default y | |
| config AUDIT_ARCH_COMPAT_GENERIC | |
| bool | |
| default n | |
| config AUDIT_COMPAT_GENERIC | |
| bool | |
| depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT | |
| default y | |
| config RANDOM32_SELFTEST | |
| bool "PRNG perform self test on init" | |
| help | |
| This option enables the 32 bit PRNG library functions to perform a | |
| self test on initialization. | |
| # | |
| # compression support is select'ed if needed | |
| # | |
| config 842_COMPRESS | |
| select CRC32 | |
| tristate | |
| config 842_DECOMPRESS | |
| select CRC32 | |
| tristate | |
| config ZLIB_INFLATE | |
| tristate | |
| config ZLIB_DEFLATE | |
| tristate | |
| select BITREVERSE | |
| config ZLIB_DFLTCC | |
| def_bool y | |
| depends on S390 | |
| prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" | |
| help | |
| Enable s390x hardware support for zlib in the kernel. | |
| config LZO_COMPRESS | |
| tristate | |
| config LZO_DECOMPRESS | |
| tristate | |
| config LZ4_COMPRESS | |
| tristate | |
| config LZ4HC_COMPRESS | |
| tristate | |
| config LZ4_DECOMPRESS | |
| tristate | |
| config ZSTD_COMPRESS | |
| select XXHASH | |
| tristate | |
| config ZSTD_DECOMPRESS | |
| select XXHASH | |
| tristate | |
| source "lib/xz/Kconfig" | |
| # | |
| # These all provide a common interface (hence the apparent duplication with | |
| # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) | |
| # | |
| config DECOMPRESS_GZIP | |
| select ZLIB_INFLATE | |
| tristate | |
| config DECOMPRESS_BZIP2 | |
| tristate | |
| config DECOMPRESS_LZMA | |
| tristate | |
| config DECOMPRESS_XZ | |
| select XZ_DEC | |
| tristate | |
| config DECOMPRESS_LZO | |
| select LZO_DECOMPRESS | |
| tristate | |
| config DECOMPRESS_LZ4 | |
| select LZ4_DECOMPRESS | |
| tristate | |
| config DECOMPRESS_ZSTD | |
| select ZSTD_DECOMPRESS | |
| tristate | |
| # | |
| # Generic allocator support is selected if needed | |
| # | |
| config GENERIC_ALLOCATOR | |
| bool | |
| # | |
| # reed solomon support is select'ed if needed | |
| # | |
| config REED_SOLOMON | |
| tristate | |
| config REED_SOLOMON_ENC8 | |
| bool | |
| config REED_SOLOMON_DEC8 | |
| bool | |
| config REED_SOLOMON_ENC16 | |
| bool | |
| config REED_SOLOMON_DEC16 | |
| bool | |
| # | |
| # BCH support is selected if needed | |
| # | |
| config BCH | |
| tristate | |
| config BCH_CONST_PARAMS | |
| bool | |
| help | |
| Drivers may select this option to force specific constant | |
| values for parameters 'm' (Galois field order) and 't' | |
| (error correction capability). Those specific values must | |
| be set by declaring default values for symbols BCH_CONST_M | |
| and BCH_CONST_T. | |
| Doing so will enable extra compiler optimizations, | |
| improving encoding and decoding performance up to 2x for | |
| usual (m,t) values (typically such that m*t < 200). | |
| When this option is selected, the BCH library supports | |
| only a single (m,t) configuration. This is mainly useful | |
| for NAND flash board drivers requiring known, fixed BCH | |
| parameters. | |
| config BCH_CONST_M | |
| int | |
| range 5 15 | |
| help | |
| Constant value for Galois field order 'm'. If 'k' is the | |
| number of data bits to protect, 'm' should be chosen such | |
| that (k + m*t) <= 2**m - 1. | |
| Drivers should declare a default value for this symbol if | |
| they select option BCH_CONST_PARAMS. | |
| config BCH_CONST_T | |
| int | |
| help | |
| Constant value for error correction capability in bits 't'. | |
| Drivers should declare a default value for this symbol if | |
| they select option BCH_CONST_PARAMS. | |
| # | |
| # Textsearch support is select'ed if needed | |
| # | |
| config TEXTSEARCH | |
| bool | |
| config TEXTSEARCH_KMP | |
| tristate | |
| config TEXTSEARCH_BM | |
| tristate | |
| config TEXTSEARCH_FSM | |
| tristate | |
| config BTREE | |
| bool | |
| config INTERVAL_TREE | |
| bool | |
| help | |
| Simple, embeddable, interval-tree. Can find the start of an | |
| overlapping range in log(n) time and then iterate over all | |
| overlapping nodes. The algorithm is implemented as an | |
| augmented rbtree. | |
| See: | |
| Documentation/core-api/rbtree.rst | |
| for more information. | |
| config XARRAY_MULTI | |
| bool | |
| help | |
| Support entries which occupy multiple consecutive indices in the | |
| XArray. | |
| config ASSOCIATIVE_ARRAY | |
| bool | |
| help | |
| Generic associative array. Can be searched and iterated over whilst | |
| it is being modified. It is also reasonably quick to search and | |
| modify. The algorithms are non-recursive, and the trees are highly | |
| capacious. | |
| See: | |
| Documentation/core-api/assoc_array.rst | |
| for more information. | |
| config HAS_IOMEM | |
| bool | |
| depends on !NO_IOMEM | |
| default y | |
| config HAS_IOPORT_MAP | |
| bool | |
| depends on HAS_IOMEM && !NO_IOPORT_MAP | |
| default y | |
| source "kernel/dma/Kconfig" | |
| config SGL_ALLOC | |
| bool | |
| default n | |
| config IOMMU_HELPER | |
| bool | |
| config CHECK_SIGNATURE | |
| bool | |
| config CPUMASK_OFFSTACK | |
| bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS | |
| help | |
| Use dynamic allocation for cpumask_var_t, instead of putting | |
| them on the stack. This is a bit more expensive, but avoids | |
| stack overflow. | |
| config CPU_RMAP | |
| bool | |
| depends on SMP | |
| config DQL | |
| bool | |
| config GLOB | |
| bool | |
| # This actually supports modular compilation, but the module overhead | |
| # is ridiculous for the amount of code involved. Until an out-of-tree | |
| # driver asks for it, we'll just link it directly it into the kernel | |
| # when required. Since we're ignoring out-of-tree users, there's also | |
| # no need bother prompting for a manual decision: | |
| # prompt "glob_match() function" | |
| help | |
| This option provides a glob_match function for performing | |
| simple text pattern matching. It originated in the ATA code | |
| to blacklist particular drive models, but other device drivers | |
| may need similar functionality. | |
| All drivers in the Linux kernel tree that require this function | |
| should automatically select this option. Say N unless you | |
| are compiling an out-of tree driver which tells you that it | |
| depends on this. | |
| config GLOB_SELFTEST | |
| tristate "glob self-test on init" | |
| depends on GLOB | |
| help | |
| This option enables a simple self-test of the glob_match | |
| function on startup. It is primarily useful for people | |
| working on the code to ensure they haven't introduced any | |
| regressions. | |
| It only adds a little bit of code and slows kernel boot (or | |
| module load) by a small amount, so you're welcome to play with | |
| it, but you probably don't need it. | |
| # | |
| # Netlink attribute parsing support is select'ed if needed | |
| # | |
| config NLATTR | |
| bool | |
| # | |
| # Generic 64-bit atomic support is selected if needed | |
| # | |
| config GENERIC_ATOMIC64 | |
| bool | |
| config LRU_CACHE | |
| tristate | |
| config CLZ_TAB | |
| bool | |
| config IRQ_POLL | |
| bool "IRQ polling library" | |
| help | |
| Helper library to poll interrupt mitigation using polling. | |
| config MPILIB | |
| tristate | |
| select CLZ_TAB | |
| help | |
| Multiprecision maths library from GnuPG. | |
| It is used to implement RSA digital signature verification, | |
| which is used by IMA/EVM digital signature extension. | |
| config SIGNATURE | |
| tristate | |
| depends on KEYS | |
| select CRYPTO | |
| select CRYPTO_SHA1 | |
| select MPILIB | |
| help | |
| Digital signature verification. Currently only RSA is supported. | |
| Implementation is done using GnuPG MPI library | |
| config DIMLIB | |
| bool | |
| help | |
| Dynamic Interrupt Moderation library. | |
| Implements an algorithm for dynamically changing CQ moderation values | |
| according to run time performance. | |
| # | |
| # libfdt files, only selected if needed. | |
| # | |
| config LIBFDT | |
| bool | |
| config OID_REGISTRY | |
| tristate | |
| help | |
| Enable fast lookup object identifier registry. | |
| config UCS2_STRING | |
| tristate | |
| # | |
| # generic vdso | |
| # | |
| source "lib/vdso/Kconfig" | |
| source "lib/fonts/Kconfig" | |
| config SG_SPLIT | |
| def_bool n | |
| help | |
| Provides a helper to split scatterlists into chunks, each chunk being | |
| a scatterlist. This should be selected by a driver or an API which | |
| whishes to split a scatterlist amongst multiple DMA channels. | |
| config SG_POOL | |
| def_bool n | |
| help | |
| Provides a helper to allocate chained scatterlists. This should be | |
| selected by a driver or an API which whishes to allocate chained | |
| scatterlist. | |
| # | |
| # sg chaining option | |
| # | |
| config ARCH_NO_SG_CHAIN | |
| def_bool n | |
| config ARCH_HAS_PMEM_API | |
| bool | |
| config MEMREGION | |
| bool | |
| config ARCH_HAS_MEMREMAP_COMPAT_ALIGN | |
| bool | |
| # use memcpy to implement user copies for nommu architectures | |
| config UACCESS_MEMCPY | |
| bool | |
| config ARCH_HAS_UACCESS_FLUSHCACHE | |
| bool | |
| # arch has a concept of a recoverable synchronous exception due to a | |
| # memory-read error like x86 machine-check or ARM data-abort, and | |
| # implements copy_mc_to_{user,kernel} to abort and report | |
| # 'bytes-transferred' if that exception fires when accessing the source | |
| # buffer. | |
| config ARCH_HAS_COPY_MC | |
| bool | |
| # Temporary. Goes away when all archs are cleaned up | |
| config ARCH_STACKWALK | |
| bool | |
| config STACKDEPOT | |
| bool | |
| select STACKTRACE | |
| config SBITMAP | |
| bool | |
| config PARMAN | |
| tristate "parman" if COMPILE_TEST | |
| config OBJAGG | |
| tristate "objagg" if COMPILE_TEST | |
| config STRING_SELFTEST | |
| tristate "Test string functions" | |
| endmenu | |
| config GENERIC_IOREMAP | |
| bool | |
| config GENERIC_LIB_ASHLDI3 | |
| bool | |
| config GENERIC_LIB_ASHRDI3 | |
| bool | |
| config GENERIC_LIB_LSHRDI3 | |
| bool | |
| config GENERIC_LIB_MULDI3 | |
| bool | |
| config GENERIC_LIB_CMPDI2 | |
| bool | |
| config GENERIC_LIB_UCMPDI2 | |
| bool | |
| config PLDMFW | |
| bool | |
| default n |