162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# Library configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_ci 662306a36Sopenharmony_ciconfig BINARY_PRINTF 762306a36Sopenharmony_ci def_bool n 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimenu "Library routines" 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciconfig RAID6_PQ 1262306a36Sopenharmony_ci tristate 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ciconfig RAID6_PQ_BENCHMARK 1562306a36Sopenharmony_ci bool "Automatically choose fastest RAID6 PQ functions" 1662306a36Sopenharmony_ci depends on RAID6_PQ 1762306a36Sopenharmony_ci default y 1862306a36Sopenharmony_ci help 1962306a36Sopenharmony_ci Benchmark all available RAID6 PQ functions on init and choose the 2062306a36Sopenharmony_ci fastest one. 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciconfig LINEAR_RANGES 2362306a36Sopenharmony_ci tristate 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ciconfig PACKING 2662306a36Sopenharmony_ci bool "Generic bitfield packing and unpacking" 2762306a36Sopenharmony_ci select BITREVERSE 2862306a36Sopenharmony_ci default n 2962306a36Sopenharmony_ci help 3062306a36Sopenharmony_ci This option provides the packing() helper function, which permits 3162306a36Sopenharmony_ci converting bitfields between a CPU-usable representation and a 3262306a36Sopenharmony_ci memory representation that can have any combination of these quirks: 3362306a36Sopenharmony_ci - Is little endian (bytes are reversed within a 32-bit group) 3462306a36Sopenharmony_ci - The least-significant 32-bit word comes first (within a 64-bit 3562306a36Sopenharmony_ci group) 3662306a36Sopenharmony_ci - The most significant bit of a byte is at its right (bit 0 of a 3762306a36Sopenharmony_ci register description is numerically 2^7). 3862306a36Sopenharmony_ci Drivers may use these helpers to match the bit indices as described 3962306a36Sopenharmony_ci in the data sheets of the peripherals they are in control of. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci When in doubt, say N. 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciconfig BITREVERSE 4462306a36Sopenharmony_ci tristate 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ciconfig HAVE_ARCH_BITREVERSE 4762306a36Sopenharmony_ci bool 4862306a36Sopenharmony_ci default n 4962306a36Sopenharmony_ci help 5062306a36Sopenharmony_ci This option enables the use of hardware bit-reversal instructions on 5162306a36Sopenharmony_ci architectures which support such operations. 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciconfig ARCH_HAS_STRNCPY_FROM_USER 5462306a36Sopenharmony_ci bool 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ciconfig ARCH_HAS_STRNLEN_USER 5762306a36Sopenharmony_ci bool 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ciconfig GENERIC_STRNCPY_FROM_USER 6062306a36Sopenharmony_ci def_bool !ARCH_HAS_STRNCPY_FROM_USER 6162306a36Sopenharmony_ci 6262306a36Sopenharmony_ciconfig GENERIC_STRNLEN_USER 6362306a36Sopenharmony_ci def_bool !ARCH_HAS_STRNLEN_USER 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ciconfig GENERIC_NET_UTILS 6662306a36Sopenharmony_ci bool 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_cisource "lib/math/Kconfig" 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ciconfig NO_GENERIC_PCI_IOPORT_MAP 7162306a36Sopenharmony_ci bool 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig GENERIC_PCI_IOMAP 7462306a36Sopenharmony_ci bool 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ciconfig GENERIC_IOMAP 7762306a36Sopenharmony_ci bool 7862306a36Sopenharmony_ci select GENERIC_PCI_IOMAP 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciconfig STMP_DEVICE 8162306a36Sopenharmony_ci bool 8262306a36Sopenharmony_ci 8362306a36Sopenharmony_ciconfig ARCH_USE_CMPXCHG_LOCKREF 8462306a36Sopenharmony_ci bool 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciconfig ARCH_HAS_FAST_MULTIPLIER 8762306a36Sopenharmony_ci bool 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciconfig ARCH_USE_SYM_ANNOTATIONS 9062306a36Sopenharmony_ci bool 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciconfig INDIRECT_PIO 9362306a36Sopenharmony_ci bool "Access I/O in non-MMIO mode" 9462306a36Sopenharmony_ci depends on ARM64 9562306a36Sopenharmony_ci depends on HAS_IOPORT 9662306a36Sopenharmony_ci help 9762306a36Sopenharmony_ci On some platforms where no separate I/O space exists, there are I/O 9862306a36Sopenharmony_ci hosts which can not be accessed in MMIO mode. Using the logical PIO 9962306a36Sopenharmony_ci mechanism, the host-local I/O resource can be mapped into system 10062306a36Sopenharmony_ci logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 10162306a36Sopenharmony_ci system can access the I/O devices with the mapped-logic PIO through 10262306a36Sopenharmony_ci I/O accessors. 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci This way has relatively little I/O performance cost. Please make 10562306a36Sopenharmony_ci sure your devices really need this configure item enabled. 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci When in doubt, say N. 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ciconfig INDIRECT_IOMEM 11062306a36Sopenharmony_ci bool 11162306a36Sopenharmony_ci help 11262306a36Sopenharmony_ci This is selected by other options/architectures to provide the 11362306a36Sopenharmony_ci emulated iomem accessors. 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ciconfig INDIRECT_IOMEM_FALLBACK 11662306a36Sopenharmony_ci bool 11762306a36Sopenharmony_ci depends on INDIRECT_IOMEM 11862306a36Sopenharmony_ci help 11962306a36Sopenharmony_ci If INDIRECT_IOMEM is selected, this enables falling back to plain 12062306a36Sopenharmony_ci mmio accesses when the IO memory address is not a registered 12162306a36Sopenharmony_ci emulated region. 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ciconfig TRACE_MMIO_ACCESS 12462306a36Sopenharmony_ci bool "Register read/write tracing" 12562306a36Sopenharmony_ci depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS 12662306a36Sopenharmony_ci help 12762306a36Sopenharmony_ci Create tracepoints for MMIO read/write operations. These trace events 12862306a36Sopenharmony_ci can be used for logging all MMIO read/write operations. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_cisource "lib/crypto/Kconfig" 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ciconfig CRC_CCITT 13362306a36Sopenharmony_ci tristate "CRC-CCITT functions" 13462306a36Sopenharmony_ci help 13562306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 13662306a36Sopenharmony_ci modules require CRC-CCITT functions, but a module built outside 13762306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC-CCITT 13862306a36Sopenharmony_ci functions require M here. 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciconfig CRC16 14162306a36Sopenharmony_ci tristate "CRC16 functions" 14262306a36Sopenharmony_ci help 14362306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 14462306a36Sopenharmony_ci modules require CRC16 functions, but a module built outside 14562306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC16 14662306a36Sopenharmony_ci functions require M here. 14762306a36Sopenharmony_ci 14862306a36Sopenharmony_ciconfig CRC_T10DIF 14962306a36Sopenharmony_ci tristate "CRC calculation for the T10 Data Integrity Field" 15062306a36Sopenharmony_ci select CRYPTO 15162306a36Sopenharmony_ci select CRYPTO_CRCT10DIF 15262306a36Sopenharmony_ci help 15362306a36Sopenharmony_ci This option is only needed if a module that's not in the 15462306a36Sopenharmony_ci kernel tree needs to calculate CRC checks for use with the 15562306a36Sopenharmony_ci SCSI data integrity subsystem. 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ciconfig CRC64_ROCKSOFT 15862306a36Sopenharmony_ci tristate "CRC calculation for the Rocksoft model CRC64" 15962306a36Sopenharmony_ci select CRC64 16062306a36Sopenharmony_ci select CRYPTO 16162306a36Sopenharmony_ci select CRYPTO_CRC64_ROCKSOFT 16262306a36Sopenharmony_ci help 16362306a36Sopenharmony_ci This option provides a CRC64 API to a registered crypto driver. 16462306a36Sopenharmony_ci This is used with the block layer's data integrity subsystem. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciconfig CRC_ITU_T 16762306a36Sopenharmony_ci tristate "CRC ITU-T V.41 functions" 16862306a36Sopenharmony_ci help 16962306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 17062306a36Sopenharmony_ci modules require CRC ITU-T V.41 functions, but a module built outside 17162306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC ITU-T V.41 17262306a36Sopenharmony_ci functions require M here. 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ciconfig CRC32 17562306a36Sopenharmony_ci tristate "CRC32/CRC32c functions" 17662306a36Sopenharmony_ci default y 17762306a36Sopenharmony_ci select BITREVERSE 17862306a36Sopenharmony_ci help 17962306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 18062306a36Sopenharmony_ci modules require CRC32/CRC32c functions, but a module built outside 18162306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC32/CRC32c 18262306a36Sopenharmony_ci functions require M here. 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ciconfig CRC32_SELFTEST 18562306a36Sopenharmony_ci tristate "CRC32 perform self test on init" 18662306a36Sopenharmony_ci depends on CRC32 18762306a36Sopenharmony_ci help 18862306a36Sopenharmony_ci This option enables the CRC32 library functions to perform a 18962306a36Sopenharmony_ci self test on initialization. The self test computes crc32_le 19062306a36Sopenharmony_ci and crc32_be over byte strings with random alignment and length 19162306a36Sopenharmony_ci and computes the total elapsed time and number of bytes processed. 19262306a36Sopenharmony_ci 19362306a36Sopenharmony_cichoice 19462306a36Sopenharmony_ci prompt "CRC32 implementation" 19562306a36Sopenharmony_ci depends on CRC32 19662306a36Sopenharmony_ci default CRC32_SLICEBY8 19762306a36Sopenharmony_ci help 19862306a36Sopenharmony_ci This option allows a kernel builder to override the default choice 19962306a36Sopenharmony_ci of CRC32 algorithm. Choose the default ("slice by 8") unless you 20062306a36Sopenharmony_ci know that you need one of the others. 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciconfig CRC32_SLICEBY8 20362306a36Sopenharmony_ci bool "Slice by 8 bytes" 20462306a36Sopenharmony_ci help 20562306a36Sopenharmony_ci Calculate checksum 8 bytes at a time with a clever slicing algorithm. 20662306a36Sopenharmony_ci This is the fastest algorithm, but comes with a 8KiB lookup table. 20762306a36Sopenharmony_ci Most modern processors have enough cache to hold this table without 20862306a36Sopenharmony_ci thrashing the cache. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci This is the default implementation choice. Choose this one unless 21162306a36Sopenharmony_ci you have a good reason not to. 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ciconfig CRC32_SLICEBY4 21462306a36Sopenharmony_ci bool "Slice by 4 bytes" 21562306a36Sopenharmony_ci help 21662306a36Sopenharmony_ci Calculate checksum 4 bytes at a time with a clever slicing algorithm. 21762306a36Sopenharmony_ci This is a bit slower than slice by 8, but has a smaller 4KiB lookup 21862306a36Sopenharmony_ci table. 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci Only choose this option if you know what you are doing. 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ciconfig CRC32_SARWATE 22362306a36Sopenharmony_ci bool "Sarwate's Algorithm (one byte at a time)" 22462306a36Sopenharmony_ci help 22562306a36Sopenharmony_ci Calculate checksum a byte at a time using Sarwate's algorithm. This 22662306a36Sopenharmony_ci is not particularly fast, but has a small 256 byte lookup table. 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci Only choose this option if you know what you are doing. 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ciconfig CRC32_BIT 23162306a36Sopenharmony_ci bool "Classic Algorithm (one bit at a time)" 23262306a36Sopenharmony_ci help 23362306a36Sopenharmony_ci Calculate checksum one bit at a time. This is VERY slow, but has 23462306a36Sopenharmony_ci no lookup table. This is provided as a debugging option. 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci Only choose this option if you are debugging crc32. 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ciendchoice 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ciconfig CRC64 24162306a36Sopenharmony_ci tristate "CRC64 functions" 24262306a36Sopenharmony_ci help 24362306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 24462306a36Sopenharmony_ci modules require CRC64 functions, but a module built outside 24562306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC64 24662306a36Sopenharmony_ci functions require M here. 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ciconfig CRC4 24962306a36Sopenharmony_ci tristate "CRC4 functions" 25062306a36Sopenharmony_ci help 25162306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 25262306a36Sopenharmony_ci modules require CRC4 functions, but a module built outside 25362306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC4 25462306a36Sopenharmony_ci functions require M here. 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ciconfig CRC7 25762306a36Sopenharmony_ci tristate "CRC7 functions" 25862306a36Sopenharmony_ci help 25962306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 26062306a36Sopenharmony_ci modules require CRC7 functions, but a module built outside 26162306a36Sopenharmony_ci the kernel tree does. Such modules that use library CRC7 26262306a36Sopenharmony_ci functions require M here. 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ciconfig LIBCRC32C 26562306a36Sopenharmony_ci tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 26662306a36Sopenharmony_ci select CRYPTO 26762306a36Sopenharmony_ci select CRYPTO_CRC32C 26862306a36Sopenharmony_ci help 26962306a36Sopenharmony_ci This option is provided for the case where no in-kernel-tree 27062306a36Sopenharmony_ci modules require CRC32c functions, but a module built outside the 27162306a36Sopenharmony_ci kernel tree does. Such modules that use library CRC32c functions 27262306a36Sopenharmony_ci require M here. See Castagnoli93. 27362306a36Sopenharmony_ci Module will be libcrc32c. 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ciconfig CRC8 27662306a36Sopenharmony_ci tristate "CRC8 function" 27762306a36Sopenharmony_ci help 27862306a36Sopenharmony_ci This option provides CRC8 function. Drivers may select this 27962306a36Sopenharmony_ci when they need to do cyclic redundancy check according CRC8 28062306a36Sopenharmony_ci algorithm. Module will be called crc8. 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ciconfig XXHASH 28362306a36Sopenharmony_ci tristate 28462306a36Sopenharmony_ci 28562306a36Sopenharmony_ciconfig AUDIT_GENERIC 28662306a36Sopenharmony_ci bool 28762306a36Sopenharmony_ci depends on AUDIT && !AUDIT_ARCH 28862306a36Sopenharmony_ci default y 28962306a36Sopenharmony_ci 29062306a36Sopenharmony_ciconfig AUDIT_ARCH_COMPAT_GENERIC 29162306a36Sopenharmony_ci bool 29262306a36Sopenharmony_ci default n 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciconfig AUDIT_COMPAT_GENERIC 29562306a36Sopenharmony_ci bool 29662306a36Sopenharmony_ci depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 29762306a36Sopenharmony_ci default y 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ciconfig RANDOM32_SELFTEST 30062306a36Sopenharmony_ci bool "PRNG perform self test on init" 30162306a36Sopenharmony_ci help 30262306a36Sopenharmony_ci This option enables the 32 bit PRNG library functions to perform a 30362306a36Sopenharmony_ci self test on initialization. 30462306a36Sopenharmony_ci 30562306a36Sopenharmony_ci# 30662306a36Sopenharmony_ci# compression support is select'ed if needed 30762306a36Sopenharmony_ci# 30862306a36Sopenharmony_ciconfig 842_COMPRESS 30962306a36Sopenharmony_ci select CRC32 31062306a36Sopenharmony_ci tristate 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_ciconfig 842_DECOMPRESS 31362306a36Sopenharmony_ci select CRC32 31462306a36Sopenharmony_ci tristate 31562306a36Sopenharmony_ci 31662306a36Sopenharmony_ciconfig ZLIB_INFLATE 31762306a36Sopenharmony_ci tristate 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ciconfig ZLIB_DEFLATE 32062306a36Sopenharmony_ci tristate 32162306a36Sopenharmony_ci select BITREVERSE 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ciconfig ZLIB_DFLTCC 32462306a36Sopenharmony_ci def_bool y 32562306a36Sopenharmony_ci depends on S390 32662306a36Sopenharmony_ci prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 32762306a36Sopenharmony_ci help 32862306a36Sopenharmony_ci Enable s390x hardware support for zlib in the kernel. 32962306a36Sopenharmony_ci 33062306a36Sopenharmony_ciconfig LZO_COMPRESS 33162306a36Sopenharmony_ci tristate 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ciconfig LZO_DECOMPRESS 33462306a36Sopenharmony_ci tristate 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ciconfig LZ4_COMPRESS 33762306a36Sopenharmony_ci tristate 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ciconfig LZ4HC_COMPRESS 34062306a36Sopenharmony_ci tristate 34162306a36Sopenharmony_ci 34262306a36Sopenharmony_ciconfig LZ4_DECOMPRESS 34362306a36Sopenharmony_ci tristate 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ciconfig ZSTD_COMMON 34662306a36Sopenharmony_ci select XXHASH 34762306a36Sopenharmony_ci tristate 34862306a36Sopenharmony_ci 34962306a36Sopenharmony_ciconfig ZSTD_COMPRESS 35062306a36Sopenharmony_ci select ZSTD_COMMON 35162306a36Sopenharmony_ci tristate 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ciconfig ZSTD_DECOMPRESS 35462306a36Sopenharmony_ci select ZSTD_COMMON 35562306a36Sopenharmony_ci tristate 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_cisource "lib/xz/Kconfig" 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci# 36062306a36Sopenharmony_ci# These all provide a common interface (hence the apparent duplication with 36162306a36Sopenharmony_ci# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 36262306a36Sopenharmony_ci# 36362306a36Sopenharmony_ciconfig DECOMPRESS_GZIP 36462306a36Sopenharmony_ci select ZLIB_INFLATE 36562306a36Sopenharmony_ci tristate 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ciconfig DECOMPRESS_BZIP2 36862306a36Sopenharmony_ci tristate 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ciconfig DECOMPRESS_LZMA 37162306a36Sopenharmony_ci tristate 37262306a36Sopenharmony_ci 37362306a36Sopenharmony_ciconfig DECOMPRESS_XZ 37462306a36Sopenharmony_ci select XZ_DEC 37562306a36Sopenharmony_ci tristate 37662306a36Sopenharmony_ci 37762306a36Sopenharmony_ciconfig DECOMPRESS_LZO 37862306a36Sopenharmony_ci select LZO_DECOMPRESS 37962306a36Sopenharmony_ci tristate 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ciconfig DECOMPRESS_LZ4 38262306a36Sopenharmony_ci select LZ4_DECOMPRESS 38362306a36Sopenharmony_ci tristate 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_ciconfig DECOMPRESS_ZSTD 38662306a36Sopenharmony_ci select ZSTD_DECOMPRESS 38762306a36Sopenharmony_ci tristate 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci# 39062306a36Sopenharmony_ci# Generic allocator support is selected if needed 39162306a36Sopenharmony_ci# 39262306a36Sopenharmony_ciconfig GENERIC_ALLOCATOR 39362306a36Sopenharmony_ci bool 39462306a36Sopenharmony_ci 39562306a36Sopenharmony_ci# 39662306a36Sopenharmony_ci# reed solomon support is select'ed if needed 39762306a36Sopenharmony_ci# 39862306a36Sopenharmony_ciconfig REED_SOLOMON 39962306a36Sopenharmony_ci tristate 40062306a36Sopenharmony_ci 40162306a36Sopenharmony_ciconfig REED_SOLOMON_ENC8 40262306a36Sopenharmony_ci bool 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ciconfig REED_SOLOMON_DEC8 40562306a36Sopenharmony_ci bool 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ciconfig REED_SOLOMON_ENC16 40862306a36Sopenharmony_ci bool 40962306a36Sopenharmony_ci 41062306a36Sopenharmony_ciconfig REED_SOLOMON_DEC16 41162306a36Sopenharmony_ci bool 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ci# 41462306a36Sopenharmony_ci# BCH support is selected if needed 41562306a36Sopenharmony_ci# 41662306a36Sopenharmony_ciconfig BCH 41762306a36Sopenharmony_ci tristate 41862306a36Sopenharmony_ci select BITREVERSE 41962306a36Sopenharmony_ci 42062306a36Sopenharmony_ciconfig BCH_CONST_PARAMS 42162306a36Sopenharmony_ci bool 42262306a36Sopenharmony_ci help 42362306a36Sopenharmony_ci Drivers may select this option to force specific constant 42462306a36Sopenharmony_ci values for parameters 'm' (Galois field order) and 't' 42562306a36Sopenharmony_ci (error correction capability). Those specific values must 42662306a36Sopenharmony_ci be set by declaring default values for symbols BCH_CONST_M 42762306a36Sopenharmony_ci and BCH_CONST_T. 42862306a36Sopenharmony_ci Doing so will enable extra compiler optimizations, 42962306a36Sopenharmony_ci improving encoding and decoding performance up to 2x for 43062306a36Sopenharmony_ci usual (m,t) values (typically such that m*t < 200). 43162306a36Sopenharmony_ci When this option is selected, the BCH library supports 43262306a36Sopenharmony_ci only a single (m,t) configuration. This is mainly useful 43362306a36Sopenharmony_ci for NAND flash board drivers requiring known, fixed BCH 43462306a36Sopenharmony_ci parameters. 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ciconfig BCH_CONST_M 43762306a36Sopenharmony_ci int 43862306a36Sopenharmony_ci range 5 15 43962306a36Sopenharmony_ci help 44062306a36Sopenharmony_ci Constant value for Galois field order 'm'. If 'k' is the 44162306a36Sopenharmony_ci number of data bits to protect, 'm' should be chosen such 44262306a36Sopenharmony_ci that (k + m*t) <= 2**m - 1. 44362306a36Sopenharmony_ci Drivers should declare a default value for this symbol if 44462306a36Sopenharmony_ci they select option BCH_CONST_PARAMS. 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ciconfig BCH_CONST_T 44762306a36Sopenharmony_ci int 44862306a36Sopenharmony_ci help 44962306a36Sopenharmony_ci Constant value for error correction capability in bits 't'. 45062306a36Sopenharmony_ci Drivers should declare a default value for this symbol if 45162306a36Sopenharmony_ci they select option BCH_CONST_PARAMS. 45262306a36Sopenharmony_ci 45362306a36Sopenharmony_ci# 45462306a36Sopenharmony_ci# Textsearch support is select'ed if needed 45562306a36Sopenharmony_ci# 45662306a36Sopenharmony_ciconfig TEXTSEARCH 45762306a36Sopenharmony_ci bool 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ciconfig TEXTSEARCH_KMP 46062306a36Sopenharmony_ci tristate 46162306a36Sopenharmony_ci 46262306a36Sopenharmony_ciconfig TEXTSEARCH_BM 46362306a36Sopenharmony_ci tristate 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_ciconfig TEXTSEARCH_FSM 46662306a36Sopenharmony_ci tristate 46762306a36Sopenharmony_ci 46862306a36Sopenharmony_ciconfig BTREE 46962306a36Sopenharmony_ci bool 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ciconfig INTERVAL_TREE 47262306a36Sopenharmony_ci bool 47362306a36Sopenharmony_ci help 47462306a36Sopenharmony_ci Simple, embeddable, interval-tree. Can find the start of an 47562306a36Sopenharmony_ci overlapping range in log(n) time and then iterate over all 47662306a36Sopenharmony_ci overlapping nodes. The algorithm is implemented as an 47762306a36Sopenharmony_ci augmented rbtree. 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci See: 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci Documentation/core-api/rbtree.rst 48262306a36Sopenharmony_ci 48362306a36Sopenharmony_ci for more information. 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ciconfig INTERVAL_TREE_SPAN_ITER 48662306a36Sopenharmony_ci bool 48762306a36Sopenharmony_ci depends on INTERVAL_TREE 48862306a36Sopenharmony_ci 48962306a36Sopenharmony_ciconfig XARRAY_MULTI 49062306a36Sopenharmony_ci bool 49162306a36Sopenharmony_ci help 49262306a36Sopenharmony_ci Support entries which occupy multiple consecutive indices in the 49362306a36Sopenharmony_ci XArray. 49462306a36Sopenharmony_ci 49562306a36Sopenharmony_ciconfig ASSOCIATIVE_ARRAY 49662306a36Sopenharmony_ci bool 49762306a36Sopenharmony_ci help 49862306a36Sopenharmony_ci Generic associative array. Can be searched and iterated over whilst 49962306a36Sopenharmony_ci it is being modified. It is also reasonably quick to search and 50062306a36Sopenharmony_ci modify. The algorithms are non-recursive, and the trees are highly 50162306a36Sopenharmony_ci capacious. 50262306a36Sopenharmony_ci 50362306a36Sopenharmony_ci See: 50462306a36Sopenharmony_ci 50562306a36Sopenharmony_ci Documentation/core-api/assoc_array.rst 50662306a36Sopenharmony_ci 50762306a36Sopenharmony_ci for more information. 50862306a36Sopenharmony_ci 50962306a36Sopenharmony_ciconfig HAS_IOMEM 51062306a36Sopenharmony_ci bool 51162306a36Sopenharmony_ci depends on !NO_IOMEM 51262306a36Sopenharmony_ci default y 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ciconfig HAS_IOPORT 51562306a36Sopenharmony_ci bool 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ciconfig HAS_IOPORT_MAP 51862306a36Sopenharmony_ci bool 51962306a36Sopenharmony_ci depends on HAS_IOMEM && !NO_IOPORT_MAP 52062306a36Sopenharmony_ci default y 52162306a36Sopenharmony_ci 52262306a36Sopenharmony_cisource "kernel/dma/Kconfig" 52362306a36Sopenharmony_ci 52462306a36Sopenharmony_ciconfig SGL_ALLOC 52562306a36Sopenharmony_ci bool 52662306a36Sopenharmony_ci default n 52762306a36Sopenharmony_ci 52862306a36Sopenharmony_ciconfig IOMMU_HELPER 52962306a36Sopenharmony_ci bool 53062306a36Sopenharmony_ci 53162306a36Sopenharmony_ciconfig CHECK_SIGNATURE 53262306a36Sopenharmony_ci bool 53362306a36Sopenharmony_ci 53462306a36Sopenharmony_ciconfig CPUMASK_OFFSTACK 53562306a36Sopenharmony_ci bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 53662306a36Sopenharmony_ci help 53762306a36Sopenharmony_ci Use dynamic allocation for cpumask_var_t, instead of putting 53862306a36Sopenharmony_ci them on the stack. This is a bit more expensive, but avoids 53962306a36Sopenharmony_ci stack overflow. 54062306a36Sopenharmony_ci 54162306a36Sopenharmony_ciconfig FORCE_NR_CPUS 54262306a36Sopenharmony_ci bool "Set number of CPUs at compile time" 54362306a36Sopenharmony_ci depends on SMP && EXPERT && !COMPILE_TEST 54462306a36Sopenharmony_ci help 54562306a36Sopenharmony_ci Say Yes if you have NR_CPUS set to an actual number of possible 54662306a36Sopenharmony_ci CPUs in your system, not to a default value. This forces the core 54762306a36Sopenharmony_ci code to rely on compile-time value and optimize kernel routines 54862306a36Sopenharmony_ci better. 54962306a36Sopenharmony_ci 55062306a36Sopenharmony_ciconfig CPU_RMAP 55162306a36Sopenharmony_ci bool 55262306a36Sopenharmony_ci depends on SMP 55362306a36Sopenharmony_ci 55462306a36Sopenharmony_ciconfig DQL 55562306a36Sopenharmony_ci bool 55662306a36Sopenharmony_ci 55762306a36Sopenharmony_ciconfig GLOB 55862306a36Sopenharmony_ci bool 55962306a36Sopenharmony_ci# This actually supports modular compilation, but the module overhead 56062306a36Sopenharmony_ci# is ridiculous for the amount of code involved. Until an out-of-tree 56162306a36Sopenharmony_ci# driver asks for it, we'll just link it directly it into the kernel 56262306a36Sopenharmony_ci# when required. Since we're ignoring out-of-tree users, there's also 56362306a36Sopenharmony_ci# no need bother prompting for a manual decision: 56462306a36Sopenharmony_ci# prompt "glob_match() function" 56562306a36Sopenharmony_ci help 56662306a36Sopenharmony_ci This option provides a glob_match function for performing 56762306a36Sopenharmony_ci simple text pattern matching. It originated in the ATA code 56862306a36Sopenharmony_ci to blacklist particular drive models, but other device drivers 56962306a36Sopenharmony_ci may need similar functionality. 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ci All drivers in the Linux kernel tree that require this function 57262306a36Sopenharmony_ci should automatically select this option. Say N unless you 57362306a36Sopenharmony_ci are compiling an out-of tree driver which tells you that it 57462306a36Sopenharmony_ci depends on this. 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ciconfig GLOB_SELFTEST 57762306a36Sopenharmony_ci tristate "glob self-test on init" 57862306a36Sopenharmony_ci depends on GLOB 57962306a36Sopenharmony_ci help 58062306a36Sopenharmony_ci This option enables a simple self-test of the glob_match 58162306a36Sopenharmony_ci function on startup. It is primarily useful for people 58262306a36Sopenharmony_ci working on the code to ensure they haven't introduced any 58362306a36Sopenharmony_ci regressions. 58462306a36Sopenharmony_ci 58562306a36Sopenharmony_ci It only adds a little bit of code and slows kernel boot (or 58662306a36Sopenharmony_ci module load) by a small amount, so you're welcome to play with 58762306a36Sopenharmony_ci it, but you probably don't need it. 58862306a36Sopenharmony_ci 58962306a36Sopenharmony_ci# 59062306a36Sopenharmony_ci# Netlink attribute parsing support is select'ed if needed 59162306a36Sopenharmony_ci# 59262306a36Sopenharmony_ciconfig NLATTR 59362306a36Sopenharmony_ci bool 59462306a36Sopenharmony_ci 59562306a36Sopenharmony_ci# 59662306a36Sopenharmony_ci# Generic 64-bit atomic support is selected if needed 59762306a36Sopenharmony_ci# 59862306a36Sopenharmony_ciconfig GENERIC_ATOMIC64 59962306a36Sopenharmony_ci bool 60062306a36Sopenharmony_ci 60162306a36Sopenharmony_ciconfig LRU_CACHE 60262306a36Sopenharmony_ci tristate 60362306a36Sopenharmony_ci 60462306a36Sopenharmony_ciconfig CLZ_TAB 60562306a36Sopenharmony_ci bool 60662306a36Sopenharmony_ci 60762306a36Sopenharmony_ciconfig IRQ_POLL 60862306a36Sopenharmony_ci bool "IRQ polling library" 60962306a36Sopenharmony_ci help 61062306a36Sopenharmony_ci Helper library to poll interrupt mitigation using polling. 61162306a36Sopenharmony_ci 61262306a36Sopenharmony_ciconfig MPILIB 61362306a36Sopenharmony_ci tristate 61462306a36Sopenharmony_ci select CLZ_TAB 61562306a36Sopenharmony_ci help 61662306a36Sopenharmony_ci Multiprecision maths library from GnuPG. 61762306a36Sopenharmony_ci It is used to implement RSA digital signature verification, 61862306a36Sopenharmony_ci which is used by IMA/EVM digital signature extension. 61962306a36Sopenharmony_ci 62062306a36Sopenharmony_ciconfig SIGNATURE 62162306a36Sopenharmony_ci tristate 62262306a36Sopenharmony_ci depends on KEYS 62362306a36Sopenharmony_ci select CRYPTO 62462306a36Sopenharmony_ci select CRYPTO_SHA1 62562306a36Sopenharmony_ci select MPILIB 62662306a36Sopenharmony_ci help 62762306a36Sopenharmony_ci Digital signature verification. Currently only RSA is supported. 62862306a36Sopenharmony_ci Implementation is done using GnuPG MPI library 62962306a36Sopenharmony_ci 63062306a36Sopenharmony_ciconfig DIMLIB 63162306a36Sopenharmony_ci bool 63262306a36Sopenharmony_ci help 63362306a36Sopenharmony_ci Dynamic Interrupt Moderation library. 63462306a36Sopenharmony_ci Implements an algorithm for dynamically changing CQ moderation values 63562306a36Sopenharmony_ci according to run time performance. 63662306a36Sopenharmony_ci 63762306a36Sopenharmony_ci# 63862306a36Sopenharmony_ci# libfdt files, only selected if needed. 63962306a36Sopenharmony_ci# 64062306a36Sopenharmony_ciconfig LIBFDT 64162306a36Sopenharmony_ci bool 64262306a36Sopenharmony_ci 64362306a36Sopenharmony_ciconfig OID_REGISTRY 64462306a36Sopenharmony_ci tristate 64562306a36Sopenharmony_ci help 64662306a36Sopenharmony_ci Enable fast lookup object identifier registry. 64762306a36Sopenharmony_ci 64862306a36Sopenharmony_ciconfig UCS2_STRING 64962306a36Sopenharmony_ci tristate 65062306a36Sopenharmony_ci 65162306a36Sopenharmony_ci# 65262306a36Sopenharmony_ci# generic vdso 65362306a36Sopenharmony_ci# 65462306a36Sopenharmony_cisource "lib/vdso/Kconfig" 65562306a36Sopenharmony_ci 65662306a36Sopenharmony_cisource "lib/fonts/Kconfig" 65762306a36Sopenharmony_ci 65862306a36Sopenharmony_ciconfig SG_SPLIT 65962306a36Sopenharmony_ci def_bool n 66062306a36Sopenharmony_ci help 66162306a36Sopenharmony_ci Provides a helper to split scatterlists into chunks, each chunk being 66262306a36Sopenharmony_ci a scatterlist. This should be selected by a driver or an API which 66362306a36Sopenharmony_ci whishes to split a scatterlist amongst multiple DMA channels. 66462306a36Sopenharmony_ci 66562306a36Sopenharmony_ciconfig SG_POOL 66662306a36Sopenharmony_ci def_bool n 66762306a36Sopenharmony_ci help 66862306a36Sopenharmony_ci Provides a helper to allocate chained scatterlists. This should be 66962306a36Sopenharmony_ci selected by a driver or an API which whishes to allocate chained 67062306a36Sopenharmony_ci scatterlist. 67162306a36Sopenharmony_ci 67262306a36Sopenharmony_ci# 67362306a36Sopenharmony_ci# sg chaining option 67462306a36Sopenharmony_ci# 67562306a36Sopenharmony_ci 67662306a36Sopenharmony_ciconfig ARCH_NO_SG_CHAIN 67762306a36Sopenharmony_ci def_bool n 67862306a36Sopenharmony_ci 67962306a36Sopenharmony_ciconfig ARCH_HAS_PMEM_API 68062306a36Sopenharmony_ci bool 68162306a36Sopenharmony_ci 68262306a36Sopenharmony_ciconfig MEMREGION 68362306a36Sopenharmony_ci bool 68462306a36Sopenharmony_ci 68562306a36Sopenharmony_ciconfig ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION 68662306a36Sopenharmony_ci bool 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ciconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN 68962306a36Sopenharmony_ci bool 69062306a36Sopenharmony_ci 69162306a36Sopenharmony_ci# use memcpy to implement user copies for nommu architectures 69262306a36Sopenharmony_ciconfig UACCESS_MEMCPY 69362306a36Sopenharmony_ci bool 69462306a36Sopenharmony_ci 69562306a36Sopenharmony_ciconfig ARCH_HAS_UACCESS_FLUSHCACHE 69662306a36Sopenharmony_ci bool 69762306a36Sopenharmony_ci 69862306a36Sopenharmony_ci# arch has a concept of a recoverable synchronous exception due to a 69962306a36Sopenharmony_ci# memory-read error like x86 machine-check or ARM data-abort, and 70062306a36Sopenharmony_ci# implements copy_mc_to_{user,kernel} to abort and report 70162306a36Sopenharmony_ci# 'bytes-transferred' if that exception fires when accessing the source 70262306a36Sopenharmony_ci# buffer. 70362306a36Sopenharmony_ciconfig ARCH_HAS_COPY_MC 70462306a36Sopenharmony_ci bool 70562306a36Sopenharmony_ci 70662306a36Sopenharmony_ci# Temporary. Goes away when all archs are cleaned up 70762306a36Sopenharmony_ciconfig ARCH_STACKWALK 70862306a36Sopenharmony_ci bool 70962306a36Sopenharmony_ci 71062306a36Sopenharmony_ciconfig STACKDEPOT 71162306a36Sopenharmony_ci bool 71262306a36Sopenharmony_ci select STACKTRACE 71362306a36Sopenharmony_ci 71462306a36Sopenharmony_ciconfig STACKDEPOT_ALWAYS_INIT 71562306a36Sopenharmony_ci bool 71662306a36Sopenharmony_ci select STACKDEPOT 71762306a36Sopenharmony_ci 71862306a36Sopenharmony_ciconfig REF_TRACKER 71962306a36Sopenharmony_ci bool 72062306a36Sopenharmony_ci depends on STACKTRACE_SUPPORT 72162306a36Sopenharmony_ci select STACKDEPOT 72262306a36Sopenharmony_ci 72362306a36Sopenharmony_ciconfig SBITMAP 72462306a36Sopenharmony_ci bool 72562306a36Sopenharmony_ci 72662306a36Sopenharmony_ciconfig PARMAN 72762306a36Sopenharmony_ci tristate "parman" if COMPILE_TEST 72862306a36Sopenharmony_ci 72962306a36Sopenharmony_ciconfig OBJAGG 73062306a36Sopenharmony_ci tristate "objagg" if COMPILE_TEST 73162306a36Sopenharmony_ci 73262306a36Sopenharmony_ciendmenu 73362306a36Sopenharmony_ci 73462306a36Sopenharmony_ciconfig GENERIC_IOREMAP 73562306a36Sopenharmony_ci bool 73662306a36Sopenharmony_ci 73762306a36Sopenharmony_ciconfig GENERIC_LIB_ASHLDI3 73862306a36Sopenharmony_ci bool 73962306a36Sopenharmony_ci 74062306a36Sopenharmony_ciconfig GENERIC_LIB_ASHRDI3 74162306a36Sopenharmony_ci bool 74262306a36Sopenharmony_ci 74362306a36Sopenharmony_ciconfig GENERIC_LIB_LSHRDI3 74462306a36Sopenharmony_ci bool 74562306a36Sopenharmony_ci 74662306a36Sopenharmony_ciconfig GENERIC_LIB_MULDI3 74762306a36Sopenharmony_ci bool 74862306a36Sopenharmony_ci 74962306a36Sopenharmony_ciconfig GENERIC_LIB_CMPDI2 75062306a36Sopenharmony_ci bool 75162306a36Sopenharmony_ci 75262306a36Sopenharmony_ciconfig GENERIC_LIB_UCMPDI2 75362306a36Sopenharmony_ci bool 75462306a36Sopenharmony_ci 75562306a36Sopenharmony_ciconfig GENERIC_LIB_DEVMEM_IS_ALLOWED 75662306a36Sopenharmony_ci bool 75762306a36Sopenharmony_ci 75862306a36Sopenharmony_ciconfig PLDMFW 75962306a36Sopenharmony_ci bool 76062306a36Sopenharmony_ci default n 76162306a36Sopenharmony_ci 76262306a36Sopenharmony_ciconfig ASN1_ENCODER 76362306a36Sopenharmony_ci tristate 76462306a36Sopenharmony_ci 76562306a36Sopenharmony_ciconfig POLYNOMIAL 76662306a36Sopenharmony_ci tristate 767