| # 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. |
| |
| 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 |