18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci# 38c2ecf20Sopenharmony_ci# Library configuration 48c2ecf20Sopenharmony_ci# 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ciconfig BINARY_PRINTF 78c2ecf20Sopenharmony_ci def_bool n 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimenu "Library routines" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ciconfig RAID6_PQ 128c2ecf20Sopenharmony_ci tristate 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ciconfig RAID6_PQ_BENCHMARK 158c2ecf20Sopenharmony_ci bool "Automatically choose fastest RAID6 PQ functions" 168c2ecf20Sopenharmony_ci depends on RAID6_PQ 178c2ecf20Sopenharmony_ci default y 188c2ecf20Sopenharmony_ci help 198c2ecf20Sopenharmony_ci Benchmark all available RAID6 PQ functions on init and choose the 208c2ecf20Sopenharmony_ci fastest one. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciconfig LINEAR_RANGES 238c2ecf20Sopenharmony_ci tristate 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciconfig PACKING 268c2ecf20Sopenharmony_ci bool "Generic bitfield packing and unpacking" 278c2ecf20Sopenharmony_ci default n 288c2ecf20Sopenharmony_ci help 298c2ecf20Sopenharmony_ci This option provides the packing() helper function, which permits 308c2ecf20Sopenharmony_ci converting bitfields between a CPU-usable representation and a 318c2ecf20Sopenharmony_ci memory representation that can have any combination of these quirks: 328c2ecf20Sopenharmony_ci - Is little endian (bytes are reversed within a 32-bit group) 338c2ecf20Sopenharmony_ci - The least-significant 32-bit word comes first (within a 64-bit 348c2ecf20Sopenharmony_ci group) 358c2ecf20Sopenharmony_ci - The most significant bit of a byte is at its right (bit 0 of a 368c2ecf20Sopenharmony_ci register description is numerically 2^7). 378c2ecf20Sopenharmony_ci Drivers may use these helpers to match the bit indices as described 388c2ecf20Sopenharmony_ci in the data sheets of the peripherals they are in control of. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci When in doubt, say N. 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ciconfig BITREVERSE 438c2ecf20Sopenharmony_ci tristate 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ciconfig HAVE_ARCH_BITREVERSE 468c2ecf20Sopenharmony_ci bool 478c2ecf20Sopenharmony_ci default n 488c2ecf20Sopenharmony_ci help 498c2ecf20Sopenharmony_ci This option enables the use of hardware bit-reversal instructions on 508c2ecf20Sopenharmony_ci architectures which support such operations. 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ciconfig GENERIC_STRNCPY_FROM_USER 538c2ecf20Sopenharmony_ci bool 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ciconfig GENERIC_STRNLEN_USER 568c2ecf20Sopenharmony_ci bool 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ciconfig GENERIC_NET_UTILS 598c2ecf20Sopenharmony_ci bool 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ciconfig GENERIC_FIND_FIRST_BIT 628c2ecf20Sopenharmony_ci bool 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_cisource "lib/math/Kconfig" 658c2ecf20Sopenharmony_ci 668c2ecf20Sopenharmony_ciconfig NO_GENERIC_PCI_IOPORT_MAP 678c2ecf20Sopenharmony_ci bool 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ciconfig GENERIC_PCI_IOMAP 708c2ecf20Sopenharmony_ci bool 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ciconfig GENERIC_IOMAP 738c2ecf20Sopenharmony_ci bool 748c2ecf20Sopenharmony_ci select GENERIC_PCI_IOMAP 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ciconfig STMP_DEVICE 778c2ecf20Sopenharmony_ci bool 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ciconfig ARCH_USE_CMPXCHG_LOCKREF 808c2ecf20Sopenharmony_ci bool 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ciconfig ARCH_HAS_FAST_MULTIPLIER 838c2ecf20Sopenharmony_ci bool 848c2ecf20Sopenharmony_ci 858c2ecf20Sopenharmony_ciconfig ARCH_USE_SYM_ANNOTATIONS 868c2ecf20Sopenharmony_ci bool 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ciconfig INDIRECT_PIO 898c2ecf20Sopenharmony_ci bool "Access I/O in non-MMIO mode" 908c2ecf20Sopenharmony_ci depends on ARM64 918c2ecf20Sopenharmony_ci help 928c2ecf20Sopenharmony_ci On some platforms where no separate I/O space exists, there are I/O 938c2ecf20Sopenharmony_ci hosts which can not be accessed in MMIO mode. Using the logical PIO 948c2ecf20Sopenharmony_ci mechanism, the host-local I/O resource can be mapped into system 958c2ecf20Sopenharmony_ci logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 968c2ecf20Sopenharmony_ci system can access the I/O devices with the mapped-logic PIO through 978c2ecf20Sopenharmony_ci I/O accessors. 988c2ecf20Sopenharmony_ci 998c2ecf20Sopenharmony_ci This way has relatively little I/O performance cost. Please make 1008c2ecf20Sopenharmony_ci sure your devices really need this configure item enabled. 1018c2ecf20Sopenharmony_ci 1028c2ecf20Sopenharmony_ci When in doubt, say N. 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_cisource "lib/crypto/Kconfig" 1058c2ecf20Sopenharmony_ci 1068c2ecf20Sopenharmony_ciconfig LIB_MEMNEQ 1078c2ecf20Sopenharmony_ci bool 1088c2ecf20Sopenharmony_ci 1098c2ecf20Sopenharmony_ciconfig CRC_CCITT 1108c2ecf20Sopenharmony_ci tristate "CRC-CCITT functions" 1118c2ecf20Sopenharmony_ci help 1128c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 1138c2ecf20Sopenharmony_ci modules require CRC-CCITT functions, but a module built outside 1148c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC-CCITT 1158c2ecf20Sopenharmony_ci functions require M here. 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ciconfig CRC16 1188c2ecf20Sopenharmony_ci tristate "CRC16 functions" 1198c2ecf20Sopenharmony_ci help 1208c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 1218c2ecf20Sopenharmony_ci modules require CRC16 functions, but a module built outside 1228c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC16 1238c2ecf20Sopenharmony_ci functions require M here. 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_ciconfig CRC_T10DIF 1268c2ecf20Sopenharmony_ci tristate "CRC calculation for the T10 Data Integrity Field" 1278c2ecf20Sopenharmony_ci select CRYPTO 1288c2ecf20Sopenharmony_ci select CRYPTO_CRCT10DIF 1298c2ecf20Sopenharmony_ci help 1308c2ecf20Sopenharmony_ci This option is only needed if a module that's not in the 1318c2ecf20Sopenharmony_ci kernel tree needs to calculate CRC checks for use with the 1328c2ecf20Sopenharmony_ci SCSI data integrity subsystem. 1338c2ecf20Sopenharmony_ci 1348c2ecf20Sopenharmony_ciconfig CRC_ITU_T 1358c2ecf20Sopenharmony_ci tristate "CRC ITU-T V.41 functions" 1368c2ecf20Sopenharmony_ci help 1378c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 1388c2ecf20Sopenharmony_ci modules require CRC ITU-T V.41 functions, but a module built outside 1398c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC ITU-T V.41 1408c2ecf20Sopenharmony_ci functions require M here. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ciconfig CRC32 1438c2ecf20Sopenharmony_ci tristate "CRC32/CRC32c functions" 1448c2ecf20Sopenharmony_ci default y 1458c2ecf20Sopenharmony_ci select BITREVERSE 1468c2ecf20Sopenharmony_ci help 1478c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 1488c2ecf20Sopenharmony_ci modules require CRC32/CRC32c functions, but a module built outside 1498c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC32/CRC32c 1508c2ecf20Sopenharmony_ci functions require M here. 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ciconfig CRC32_SELFTEST 1538c2ecf20Sopenharmony_ci tristate "CRC32 perform self test on init" 1548c2ecf20Sopenharmony_ci depends on CRC32 1558c2ecf20Sopenharmony_ci help 1568c2ecf20Sopenharmony_ci This option enables the CRC32 library functions to perform a 1578c2ecf20Sopenharmony_ci self test on initialization. The self test computes crc32_le 1588c2ecf20Sopenharmony_ci and crc32_be over byte strings with random alignment and length 1598c2ecf20Sopenharmony_ci and computes the total elapsed time and number of bytes processed. 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_cichoice 1628c2ecf20Sopenharmony_ci prompt "CRC32 implementation" 1638c2ecf20Sopenharmony_ci depends on CRC32 1648c2ecf20Sopenharmony_ci default CRC32_SLICEBY8 1658c2ecf20Sopenharmony_ci help 1668c2ecf20Sopenharmony_ci This option allows a kernel builder to override the default choice 1678c2ecf20Sopenharmony_ci of CRC32 algorithm. Choose the default ("slice by 8") unless you 1688c2ecf20Sopenharmony_ci know that you need one of the others. 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ciconfig CRC32_SLICEBY8 1718c2ecf20Sopenharmony_ci bool "Slice by 8 bytes" 1728c2ecf20Sopenharmony_ci help 1738c2ecf20Sopenharmony_ci Calculate checksum 8 bytes at a time with a clever slicing algorithm. 1748c2ecf20Sopenharmony_ci This is the fastest algorithm, but comes with a 8KiB lookup table. 1758c2ecf20Sopenharmony_ci Most modern processors have enough cache to hold this table without 1768c2ecf20Sopenharmony_ci thrashing the cache. 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci This is the default implementation choice. Choose this one unless 1798c2ecf20Sopenharmony_ci you have a good reason not to. 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciconfig CRC32_SLICEBY4 1828c2ecf20Sopenharmony_ci bool "Slice by 4 bytes" 1838c2ecf20Sopenharmony_ci help 1848c2ecf20Sopenharmony_ci Calculate checksum 4 bytes at a time with a clever slicing algorithm. 1858c2ecf20Sopenharmony_ci This is a bit slower than slice by 8, but has a smaller 4KiB lookup 1868c2ecf20Sopenharmony_ci table. 1878c2ecf20Sopenharmony_ci 1888c2ecf20Sopenharmony_ci Only choose this option if you know what you are doing. 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ciconfig CRC32_SARWATE 1918c2ecf20Sopenharmony_ci bool "Sarwate's Algorithm (one byte at a time)" 1928c2ecf20Sopenharmony_ci help 1938c2ecf20Sopenharmony_ci Calculate checksum a byte at a time using Sarwate's algorithm. This 1948c2ecf20Sopenharmony_ci is not particularly fast, but has a small 256 byte lookup table. 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci Only choose this option if you know what you are doing. 1978c2ecf20Sopenharmony_ci 1988c2ecf20Sopenharmony_ciconfig CRC32_BIT 1998c2ecf20Sopenharmony_ci bool "Classic Algorithm (one bit at a time)" 2008c2ecf20Sopenharmony_ci help 2018c2ecf20Sopenharmony_ci Calculate checksum one bit at a time. This is VERY slow, but has 2028c2ecf20Sopenharmony_ci no lookup table. This is provided as a debugging option. 2038c2ecf20Sopenharmony_ci 2048c2ecf20Sopenharmony_ci Only choose this option if you are debugging crc32. 2058c2ecf20Sopenharmony_ci 2068c2ecf20Sopenharmony_ciendchoice 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ciconfig CRC64 2098c2ecf20Sopenharmony_ci tristate "CRC64 functions" 2108c2ecf20Sopenharmony_ci help 2118c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 2128c2ecf20Sopenharmony_ci modules require CRC64 functions, but a module built outside 2138c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC64 2148c2ecf20Sopenharmony_ci functions require M here. 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ciconfig CRC4 2178c2ecf20Sopenharmony_ci tristate "CRC4 functions" 2188c2ecf20Sopenharmony_ci help 2198c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 2208c2ecf20Sopenharmony_ci modules require CRC4 functions, but a module built outside 2218c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC4 2228c2ecf20Sopenharmony_ci functions require M here. 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ciconfig CRC7 2258c2ecf20Sopenharmony_ci tristate "CRC7 functions" 2268c2ecf20Sopenharmony_ci help 2278c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 2288c2ecf20Sopenharmony_ci modules require CRC7 functions, but a module built outside 2298c2ecf20Sopenharmony_ci the kernel tree does. Such modules that use library CRC7 2308c2ecf20Sopenharmony_ci functions require M here. 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ciconfig LIBCRC32C 2338c2ecf20Sopenharmony_ci tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 2348c2ecf20Sopenharmony_ci select CRYPTO 2358c2ecf20Sopenharmony_ci select CRYPTO_CRC32C 2368c2ecf20Sopenharmony_ci help 2378c2ecf20Sopenharmony_ci This option is provided for the case where no in-kernel-tree 2388c2ecf20Sopenharmony_ci modules require CRC32c functions, but a module built outside the 2398c2ecf20Sopenharmony_ci kernel tree does. Such modules that use library CRC32c functions 2408c2ecf20Sopenharmony_ci require M here. See Castagnoli93. 2418c2ecf20Sopenharmony_ci Module will be libcrc32c. 2428c2ecf20Sopenharmony_ci 2438c2ecf20Sopenharmony_ciconfig CRC8 2448c2ecf20Sopenharmony_ci tristate "CRC8 function" 2458c2ecf20Sopenharmony_ci help 2468c2ecf20Sopenharmony_ci This option provides CRC8 function. Drivers may select this 2478c2ecf20Sopenharmony_ci when they need to do cyclic redundancy check according CRC8 2488c2ecf20Sopenharmony_ci algorithm. Module will be called crc8. 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ciconfig XXHASH 2518c2ecf20Sopenharmony_ci tristate 2528c2ecf20Sopenharmony_ci 2538c2ecf20Sopenharmony_ciconfig AUDIT_GENERIC 2548c2ecf20Sopenharmony_ci bool 2558c2ecf20Sopenharmony_ci depends on AUDIT && !AUDIT_ARCH 2568c2ecf20Sopenharmony_ci default y 2578c2ecf20Sopenharmony_ci 2588c2ecf20Sopenharmony_ciconfig AUDIT_ARCH_COMPAT_GENERIC 2598c2ecf20Sopenharmony_ci bool 2608c2ecf20Sopenharmony_ci default n 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ciconfig AUDIT_COMPAT_GENERIC 2638c2ecf20Sopenharmony_ci bool 2648c2ecf20Sopenharmony_ci depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 2658c2ecf20Sopenharmony_ci default y 2668c2ecf20Sopenharmony_ci 2678c2ecf20Sopenharmony_ciconfig RANDOM32_SELFTEST 2688c2ecf20Sopenharmony_ci bool "PRNG perform self test on init" 2698c2ecf20Sopenharmony_ci help 2708c2ecf20Sopenharmony_ci This option enables the 32 bit PRNG library functions to perform a 2718c2ecf20Sopenharmony_ci self test on initialization. 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci# 2748c2ecf20Sopenharmony_ci# compression support is select'ed if needed 2758c2ecf20Sopenharmony_ci# 2768c2ecf20Sopenharmony_ciconfig 842_COMPRESS 2778c2ecf20Sopenharmony_ci select CRC32 2788c2ecf20Sopenharmony_ci tristate 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ciconfig 842_DECOMPRESS 2818c2ecf20Sopenharmony_ci select CRC32 2828c2ecf20Sopenharmony_ci tristate 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ciconfig ZLIB_INFLATE 2858c2ecf20Sopenharmony_ci tristate 2868c2ecf20Sopenharmony_ci 2878c2ecf20Sopenharmony_ciconfig ZLIB_DEFLATE 2888c2ecf20Sopenharmony_ci tristate 2898c2ecf20Sopenharmony_ci select BITREVERSE 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ciconfig ZLIB_DFLTCC 2928c2ecf20Sopenharmony_ci def_bool y 2938c2ecf20Sopenharmony_ci depends on S390 2948c2ecf20Sopenharmony_ci prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 2958c2ecf20Sopenharmony_ci help 2968c2ecf20Sopenharmony_ci Enable s390x hardware support for zlib in the kernel. 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ciconfig LZO_COMPRESS 2998c2ecf20Sopenharmony_ci tristate 3008c2ecf20Sopenharmony_ci 3018c2ecf20Sopenharmony_ciconfig LZO_DECOMPRESS 3028c2ecf20Sopenharmony_ci tristate 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ciconfig LZ4_COMPRESS 3058c2ecf20Sopenharmony_ci tristate 3068c2ecf20Sopenharmony_ci 3078c2ecf20Sopenharmony_ciconfig LZ4HC_COMPRESS 3088c2ecf20Sopenharmony_ci tristate 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ciconfig LZ4_DECOMPRESS 3118c2ecf20Sopenharmony_ci tristate 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ciconfig ZSTD_COMPRESS 3148c2ecf20Sopenharmony_ci select XXHASH 3158c2ecf20Sopenharmony_ci tristate 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ciconfig ZSTD_DECOMPRESS 3188c2ecf20Sopenharmony_ci select XXHASH 3198c2ecf20Sopenharmony_ci tristate 3208c2ecf20Sopenharmony_ci 3218c2ecf20Sopenharmony_cisource "lib/xz/Kconfig" 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci# 3248c2ecf20Sopenharmony_ci# These all provide a common interface (hence the apparent duplication with 3258c2ecf20Sopenharmony_ci# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 3268c2ecf20Sopenharmony_ci# 3278c2ecf20Sopenharmony_ciconfig DECOMPRESS_GZIP 3288c2ecf20Sopenharmony_ci select ZLIB_INFLATE 3298c2ecf20Sopenharmony_ci tristate 3308c2ecf20Sopenharmony_ci 3318c2ecf20Sopenharmony_ciconfig DECOMPRESS_BZIP2 3328c2ecf20Sopenharmony_ci tristate 3338c2ecf20Sopenharmony_ci 3348c2ecf20Sopenharmony_ciconfig DECOMPRESS_LZMA 3358c2ecf20Sopenharmony_ci tristate 3368c2ecf20Sopenharmony_ci 3378c2ecf20Sopenharmony_ciconfig DECOMPRESS_XZ 3388c2ecf20Sopenharmony_ci select XZ_DEC 3398c2ecf20Sopenharmony_ci tristate 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_ciconfig DECOMPRESS_LZO 3428c2ecf20Sopenharmony_ci select LZO_DECOMPRESS 3438c2ecf20Sopenharmony_ci tristate 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ciconfig DECOMPRESS_LZ4 3468c2ecf20Sopenharmony_ci select LZ4_DECOMPRESS 3478c2ecf20Sopenharmony_ci tristate 3488c2ecf20Sopenharmony_ci 3498c2ecf20Sopenharmony_ciconfig DECOMPRESS_ZSTD 3508c2ecf20Sopenharmony_ci select ZSTD_DECOMPRESS 3518c2ecf20Sopenharmony_ci tristate 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ci# 3548c2ecf20Sopenharmony_ci# Generic allocator support is selected if needed 3558c2ecf20Sopenharmony_ci# 3568c2ecf20Sopenharmony_ciconfig GENERIC_ALLOCATOR 3578c2ecf20Sopenharmony_ci bool 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ci# 3608c2ecf20Sopenharmony_ci# reed solomon support is select'ed if needed 3618c2ecf20Sopenharmony_ci# 3628c2ecf20Sopenharmony_ciconfig REED_SOLOMON 3638c2ecf20Sopenharmony_ci tristate 3648c2ecf20Sopenharmony_ci 3658c2ecf20Sopenharmony_ciconfig REED_SOLOMON_ENC8 3668c2ecf20Sopenharmony_ci bool 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ciconfig REED_SOLOMON_DEC8 3698c2ecf20Sopenharmony_ci bool 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_ciconfig REED_SOLOMON_ENC16 3728c2ecf20Sopenharmony_ci bool 3738c2ecf20Sopenharmony_ci 3748c2ecf20Sopenharmony_ciconfig REED_SOLOMON_DEC16 3758c2ecf20Sopenharmony_ci bool 3768c2ecf20Sopenharmony_ci 3778c2ecf20Sopenharmony_ci# 3788c2ecf20Sopenharmony_ci# BCH support is selected if needed 3798c2ecf20Sopenharmony_ci# 3808c2ecf20Sopenharmony_ciconfig BCH 3818c2ecf20Sopenharmony_ci tristate 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ciconfig BCH_CONST_PARAMS 3848c2ecf20Sopenharmony_ci bool 3858c2ecf20Sopenharmony_ci help 3868c2ecf20Sopenharmony_ci Drivers may select this option to force specific constant 3878c2ecf20Sopenharmony_ci values for parameters 'm' (Galois field order) and 't' 3888c2ecf20Sopenharmony_ci (error correction capability). Those specific values must 3898c2ecf20Sopenharmony_ci be set by declaring default values for symbols BCH_CONST_M 3908c2ecf20Sopenharmony_ci and BCH_CONST_T. 3918c2ecf20Sopenharmony_ci Doing so will enable extra compiler optimizations, 3928c2ecf20Sopenharmony_ci improving encoding and decoding performance up to 2x for 3938c2ecf20Sopenharmony_ci usual (m,t) values (typically such that m*t < 200). 3948c2ecf20Sopenharmony_ci When this option is selected, the BCH library supports 3958c2ecf20Sopenharmony_ci only a single (m,t) configuration. This is mainly useful 3968c2ecf20Sopenharmony_ci for NAND flash board drivers requiring known, fixed BCH 3978c2ecf20Sopenharmony_ci parameters. 3988c2ecf20Sopenharmony_ci 3998c2ecf20Sopenharmony_ciconfig BCH_CONST_M 4008c2ecf20Sopenharmony_ci int 4018c2ecf20Sopenharmony_ci range 5 15 4028c2ecf20Sopenharmony_ci help 4038c2ecf20Sopenharmony_ci Constant value for Galois field order 'm'. If 'k' is the 4048c2ecf20Sopenharmony_ci number of data bits to protect, 'm' should be chosen such 4058c2ecf20Sopenharmony_ci that (k + m*t) <= 2**m - 1. 4068c2ecf20Sopenharmony_ci Drivers should declare a default value for this symbol if 4078c2ecf20Sopenharmony_ci they select option BCH_CONST_PARAMS. 4088c2ecf20Sopenharmony_ci 4098c2ecf20Sopenharmony_ciconfig BCH_CONST_T 4108c2ecf20Sopenharmony_ci int 4118c2ecf20Sopenharmony_ci help 4128c2ecf20Sopenharmony_ci Constant value for error correction capability in bits 't'. 4138c2ecf20Sopenharmony_ci Drivers should declare a default value for this symbol if 4148c2ecf20Sopenharmony_ci they select option BCH_CONST_PARAMS. 4158c2ecf20Sopenharmony_ci 4168c2ecf20Sopenharmony_ci# 4178c2ecf20Sopenharmony_ci# Textsearch support is select'ed if needed 4188c2ecf20Sopenharmony_ci# 4198c2ecf20Sopenharmony_ciconfig TEXTSEARCH 4208c2ecf20Sopenharmony_ci bool 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_ciconfig TEXTSEARCH_KMP 4238c2ecf20Sopenharmony_ci tristate 4248c2ecf20Sopenharmony_ci 4258c2ecf20Sopenharmony_ciconfig TEXTSEARCH_BM 4268c2ecf20Sopenharmony_ci tristate 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ciconfig TEXTSEARCH_FSM 4298c2ecf20Sopenharmony_ci tristate 4308c2ecf20Sopenharmony_ci 4318c2ecf20Sopenharmony_ciconfig BTREE 4328c2ecf20Sopenharmony_ci bool 4338c2ecf20Sopenharmony_ci 4348c2ecf20Sopenharmony_ciconfig INTERVAL_TREE 4358c2ecf20Sopenharmony_ci bool 4368c2ecf20Sopenharmony_ci help 4378c2ecf20Sopenharmony_ci Simple, embeddable, interval-tree. Can find the start of an 4388c2ecf20Sopenharmony_ci overlapping range in log(n) time and then iterate over all 4398c2ecf20Sopenharmony_ci overlapping nodes. The algorithm is implemented as an 4408c2ecf20Sopenharmony_ci augmented rbtree. 4418c2ecf20Sopenharmony_ci 4428c2ecf20Sopenharmony_ci See: 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ci Documentation/core-api/rbtree.rst 4458c2ecf20Sopenharmony_ci 4468c2ecf20Sopenharmony_ci for more information. 4478c2ecf20Sopenharmony_ci 4488c2ecf20Sopenharmony_ciconfig XARRAY_MULTI 4498c2ecf20Sopenharmony_ci bool 4508c2ecf20Sopenharmony_ci help 4518c2ecf20Sopenharmony_ci Support entries which occupy multiple consecutive indices in the 4528c2ecf20Sopenharmony_ci XArray. 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ciconfig ASSOCIATIVE_ARRAY 4558c2ecf20Sopenharmony_ci bool 4568c2ecf20Sopenharmony_ci help 4578c2ecf20Sopenharmony_ci Generic associative array. Can be searched and iterated over whilst 4588c2ecf20Sopenharmony_ci it is being modified. It is also reasonably quick to search and 4598c2ecf20Sopenharmony_ci modify. The algorithms are non-recursive, and the trees are highly 4608c2ecf20Sopenharmony_ci capacious. 4618c2ecf20Sopenharmony_ci 4628c2ecf20Sopenharmony_ci See: 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci Documentation/core-api/assoc_array.rst 4658c2ecf20Sopenharmony_ci 4668c2ecf20Sopenharmony_ci for more information. 4678c2ecf20Sopenharmony_ci 4688c2ecf20Sopenharmony_ciconfig HAS_IOMEM 4698c2ecf20Sopenharmony_ci bool 4708c2ecf20Sopenharmony_ci depends on !NO_IOMEM 4718c2ecf20Sopenharmony_ci default y 4728c2ecf20Sopenharmony_ci 4738c2ecf20Sopenharmony_ciconfig HAS_IOPORT_MAP 4748c2ecf20Sopenharmony_ci bool 4758c2ecf20Sopenharmony_ci depends on HAS_IOMEM && !NO_IOPORT_MAP 4768c2ecf20Sopenharmony_ci default y 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_cisource "kernel/dma/Kconfig" 4798c2ecf20Sopenharmony_ci 4808c2ecf20Sopenharmony_ciconfig SGL_ALLOC 4818c2ecf20Sopenharmony_ci bool 4828c2ecf20Sopenharmony_ci default n 4838c2ecf20Sopenharmony_ci 4848c2ecf20Sopenharmony_ciconfig IOMMU_HELPER 4858c2ecf20Sopenharmony_ci bool 4868c2ecf20Sopenharmony_ci 4878c2ecf20Sopenharmony_ciconfig CHECK_SIGNATURE 4888c2ecf20Sopenharmony_ci bool 4898c2ecf20Sopenharmony_ci 4908c2ecf20Sopenharmony_ciconfig CPUMASK_OFFSTACK 4918c2ecf20Sopenharmony_ci bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 4928c2ecf20Sopenharmony_ci help 4938c2ecf20Sopenharmony_ci Use dynamic allocation for cpumask_var_t, instead of putting 4948c2ecf20Sopenharmony_ci them on the stack. This is a bit more expensive, but avoids 4958c2ecf20Sopenharmony_ci stack overflow. 4968c2ecf20Sopenharmony_ci 4978c2ecf20Sopenharmony_ciconfig CPU_RMAP 4988c2ecf20Sopenharmony_ci bool 4998c2ecf20Sopenharmony_ci depends on SMP 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ciconfig DQL 5028c2ecf20Sopenharmony_ci bool 5038c2ecf20Sopenharmony_ci 5048c2ecf20Sopenharmony_ciconfig GLOB 5058c2ecf20Sopenharmony_ci bool 5068c2ecf20Sopenharmony_ci# This actually supports modular compilation, but the module overhead 5078c2ecf20Sopenharmony_ci# is ridiculous for the amount of code involved. Until an out-of-tree 5088c2ecf20Sopenharmony_ci# driver asks for it, we'll just link it directly it into the kernel 5098c2ecf20Sopenharmony_ci# when required. Since we're ignoring out-of-tree users, there's also 5108c2ecf20Sopenharmony_ci# no need bother prompting for a manual decision: 5118c2ecf20Sopenharmony_ci# prompt "glob_match() function" 5128c2ecf20Sopenharmony_ci help 5138c2ecf20Sopenharmony_ci This option provides a glob_match function for performing 5148c2ecf20Sopenharmony_ci simple text pattern matching. It originated in the ATA code 5158c2ecf20Sopenharmony_ci to blacklist particular drive models, but other device drivers 5168c2ecf20Sopenharmony_ci may need similar functionality. 5178c2ecf20Sopenharmony_ci 5188c2ecf20Sopenharmony_ci All drivers in the Linux kernel tree that require this function 5198c2ecf20Sopenharmony_ci should automatically select this option. Say N unless you 5208c2ecf20Sopenharmony_ci are compiling an out-of tree driver which tells you that it 5218c2ecf20Sopenharmony_ci depends on this. 5228c2ecf20Sopenharmony_ci 5238c2ecf20Sopenharmony_ciconfig GLOB_SELFTEST 5248c2ecf20Sopenharmony_ci tristate "glob self-test on init" 5258c2ecf20Sopenharmony_ci depends on GLOB 5268c2ecf20Sopenharmony_ci help 5278c2ecf20Sopenharmony_ci This option enables a simple self-test of the glob_match 5288c2ecf20Sopenharmony_ci function on startup. It is primarily useful for people 5298c2ecf20Sopenharmony_ci working on the code to ensure they haven't introduced any 5308c2ecf20Sopenharmony_ci regressions. 5318c2ecf20Sopenharmony_ci 5328c2ecf20Sopenharmony_ci It only adds a little bit of code and slows kernel boot (or 5338c2ecf20Sopenharmony_ci module load) by a small amount, so you're welcome to play with 5348c2ecf20Sopenharmony_ci it, but you probably don't need it. 5358c2ecf20Sopenharmony_ci 5368c2ecf20Sopenharmony_ci# 5378c2ecf20Sopenharmony_ci# Netlink attribute parsing support is select'ed if needed 5388c2ecf20Sopenharmony_ci# 5398c2ecf20Sopenharmony_ciconfig NLATTR 5408c2ecf20Sopenharmony_ci bool 5418c2ecf20Sopenharmony_ci 5428c2ecf20Sopenharmony_ci# 5438c2ecf20Sopenharmony_ci# Generic 64-bit atomic support is selected if needed 5448c2ecf20Sopenharmony_ci# 5458c2ecf20Sopenharmony_ciconfig GENERIC_ATOMIC64 5468c2ecf20Sopenharmony_ci bool 5478c2ecf20Sopenharmony_ci 5488c2ecf20Sopenharmony_ciconfig LRU_CACHE 5498c2ecf20Sopenharmony_ci tristate 5508c2ecf20Sopenharmony_ci 5518c2ecf20Sopenharmony_ciconfig CLZ_TAB 5528c2ecf20Sopenharmony_ci bool 5538c2ecf20Sopenharmony_ci 5548c2ecf20Sopenharmony_ciconfig IRQ_POLL 5558c2ecf20Sopenharmony_ci bool "IRQ polling library" 5568c2ecf20Sopenharmony_ci help 5578c2ecf20Sopenharmony_ci Helper library to poll interrupt mitigation using polling. 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ciconfig MPILIB 5608c2ecf20Sopenharmony_ci tristate 5618c2ecf20Sopenharmony_ci select CLZ_TAB 5628c2ecf20Sopenharmony_ci help 5638c2ecf20Sopenharmony_ci Multiprecision maths library from GnuPG. 5648c2ecf20Sopenharmony_ci It is used to implement RSA digital signature verification, 5658c2ecf20Sopenharmony_ci which is used by IMA/EVM digital signature extension. 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ciconfig SIGNATURE 5688c2ecf20Sopenharmony_ci tristate 5698c2ecf20Sopenharmony_ci depends on KEYS 5708c2ecf20Sopenharmony_ci select CRYPTO 5718c2ecf20Sopenharmony_ci select CRYPTO_SHA1 5728c2ecf20Sopenharmony_ci select MPILIB 5738c2ecf20Sopenharmony_ci help 5748c2ecf20Sopenharmony_ci Digital signature verification. Currently only RSA is supported. 5758c2ecf20Sopenharmony_ci Implementation is done using GnuPG MPI library 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_ciconfig DIMLIB 5788c2ecf20Sopenharmony_ci bool 5798c2ecf20Sopenharmony_ci help 5808c2ecf20Sopenharmony_ci Dynamic Interrupt Moderation library. 5818c2ecf20Sopenharmony_ci Implements an algorithm for dynamically changing CQ moderation values 5828c2ecf20Sopenharmony_ci according to run time performance. 5838c2ecf20Sopenharmony_ci 5848c2ecf20Sopenharmony_ci# 5858c2ecf20Sopenharmony_ci# libfdt files, only selected if needed. 5868c2ecf20Sopenharmony_ci# 5878c2ecf20Sopenharmony_ciconfig LIBFDT 5888c2ecf20Sopenharmony_ci bool 5898c2ecf20Sopenharmony_ci 5908c2ecf20Sopenharmony_ciconfig OID_REGISTRY 5918c2ecf20Sopenharmony_ci tristate 5928c2ecf20Sopenharmony_ci help 5938c2ecf20Sopenharmony_ci Enable fast lookup object identifier registry. 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_ciconfig UCS2_STRING 5968c2ecf20Sopenharmony_ci tristate 5978c2ecf20Sopenharmony_ci 5988c2ecf20Sopenharmony_ci# 5998c2ecf20Sopenharmony_ci# generic vdso 6008c2ecf20Sopenharmony_ci# 6018c2ecf20Sopenharmony_cisource "lib/vdso/Kconfig" 6028c2ecf20Sopenharmony_ci 6038c2ecf20Sopenharmony_cisource "lib/fonts/Kconfig" 6048c2ecf20Sopenharmony_ci 6058c2ecf20Sopenharmony_ciconfig SG_SPLIT 6068c2ecf20Sopenharmony_ci def_bool n 6078c2ecf20Sopenharmony_ci help 6088c2ecf20Sopenharmony_ci Provides a helper to split scatterlists into chunks, each chunk being 6098c2ecf20Sopenharmony_ci a scatterlist. This should be selected by a driver or an API which 6108c2ecf20Sopenharmony_ci whishes to split a scatterlist amongst multiple DMA channels. 6118c2ecf20Sopenharmony_ci 6128c2ecf20Sopenharmony_ciconfig SG_POOL 6138c2ecf20Sopenharmony_ci def_bool n 6148c2ecf20Sopenharmony_ci help 6158c2ecf20Sopenharmony_ci Provides a helper to allocate chained scatterlists. This should be 6168c2ecf20Sopenharmony_ci selected by a driver or an API which whishes to allocate chained 6178c2ecf20Sopenharmony_ci scatterlist. 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_ci# 6208c2ecf20Sopenharmony_ci# sg chaining option 6218c2ecf20Sopenharmony_ci# 6228c2ecf20Sopenharmony_ci 6238c2ecf20Sopenharmony_ciconfig ARCH_NO_SG_CHAIN 6248c2ecf20Sopenharmony_ci def_bool n 6258c2ecf20Sopenharmony_ci 6268c2ecf20Sopenharmony_ciconfig ARCH_HAS_PMEM_API 6278c2ecf20Sopenharmony_ci bool 6288c2ecf20Sopenharmony_ci 6298c2ecf20Sopenharmony_ciconfig MEMREGION 6308c2ecf20Sopenharmony_ci bool 6318c2ecf20Sopenharmony_ci 6328c2ecf20Sopenharmony_ciconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN 6338c2ecf20Sopenharmony_ci bool 6348c2ecf20Sopenharmony_ci 6358c2ecf20Sopenharmony_ci# use memcpy to implement user copies for nommu architectures 6368c2ecf20Sopenharmony_ciconfig UACCESS_MEMCPY 6378c2ecf20Sopenharmony_ci bool 6388c2ecf20Sopenharmony_ci 6398c2ecf20Sopenharmony_ciconfig ARCH_HAS_UACCESS_FLUSHCACHE 6408c2ecf20Sopenharmony_ci bool 6418c2ecf20Sopenharmony_ci 6428c2ecf20Sopenharmony_ci# arch has a concept of a recoverable synchronous exception due to a 6438c2ecf20Sopenharmony_ci# memory-read error like x86 machine-check or ARM data-abort, and 6448c2ecf20Sopenharmony_ci# implements copy_mc_to_{user,kernel} to abort and report 6458c2ecf20Sopenharmony_ci# 'bytes-transferred' if that exception fires when accessing the source 6468c2ecf20Sopenharmony_ci# buffer. 6478c2ecf20Sopenharmony_ciconfig ARCH_HAS_COPY_MC 6488c2ecf20Sopenharmony_ci bool 6498c2ecf20Sopenharmony_ci 6508c2ecf20Sopenharmony_ci# Temporary. Goes away when all archs are cleaned up 6518c2ecf20Sopenharmony_ciconfig ARCH_STACKWALK 6528c2ecf20Sopenharmony_ci bool 6538c2ecf20Sopenharmony_ci 6548c2ecf20Sopenharmony_ciconfig STACKDEPOT 6558c2ecf20Sopenharmony_ci bool 6568c2ecf20Sopenharmony_ci select STACKTRACE 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_ciconfig SBITMAP 6598c2ecf20Sopenharmony_ci bool 6608c2ecf20Sopenharmony_ci 6618c2ecf20Sopenharmony_ciconfig PARMAN 6628c2ecf20Sopenharmony_ci tristate "parman" if COMPILE_TEST 6638c2ecf20Sopenharmony_ci 6648c2ecf20Sopenharmony_ciconfig OBJAGG 6658c2ecf20Sopenharmony_ci tristate "objagg" if COMPILE_TEST 6668c2ecf20Sopenharmony_ci 6678c2ecf20Sopenharmony_ciconfig STRING_SELFTEST 6688c2ecf20Sopenharmony_ci tristate "Test string functions" 6698c2ecf20Sopenharmony_ci 6708c2ecf20Sopenharmony_ciendmenu 6718c2ecf20Sopenharmony_ci 6728c2ecf20Sopenharmony_ciconfig GENERIC_IOREMAP 6738c2ecf20Sopenharmony_ci bool 6748c2ecf20Sopenharmony_ci 6758c2ecf20Sopenharmony_ciconfig GENERIC_LIB_ASHLDI3 6768c2ecf20Sopenharmony_ci bool 6778c2ecf20Sopenharmony_ci 6788c2ecf20Sopenharmony_ciconfig GENERIC_LIB_ASHRDI3 6798c2ecf20Sopenharmony_ci bool 6808c2ecf20Sopenharmony_ci 6818c2ecf20Sopenharmony_ciconfig GENERIC_LIB_LSHRDI3 6828c2ecf20Sopenharmony_ci bool 6838c2ecf20Sopenharmony_ci 6848c2ecf20Sopenharmony_ciconfig GENERIC_LIB_MULDI3 6858c2ecf20Sopenharmony_ci bool 6868c2ecf20Sopenharmony_ci 6878c2ecf20Sopenharmony_ciconfig GENERIC_LIB_CMPDI2 6888c2ecf20Sopenharmony_ci bool 6898c2ecf20Sopenharmony_ci 6908c2ecf20Sopenharmony_ciconfig GENERIC_LIB_UCMPDI2 6918c2ecf20Sopenharmony_ci bool 6928c2ecf20Sopenharmony_ci 6938c2ecf20Sopenharmony_ciconfig PLDMFW 6948c2ecf20Sopenharmony_ci bool 6958c2ecf20Sopenharmony_ci default n 696