1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Library configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun 6*4882a593Smuzhiyunconfig BINARY_PRINTF 7*4882a593Smuzhiyun def_bool n 8*4882a593Smuzhiyun 9*4882a593Smuzhiyunmenu "Library routines" 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunconfig RAID6_PQ 12*4882a593Smuzhiyun tristate 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunconfig RAID6_PQ_BENCHMARK 15*4882a593Smuzhiyun bool "Automatically choose fastest RAID6 PQ functions" 16*4882a593Smuzhiyun depends on RAID6_PQ 17*4882a593Smuzhiyun default y 18*4882a593Smuzhiyun help 19*4882a593Smuzhiyun Benchmark all available RAID6 PQ functions on init and choose the 20*4882a593Smuzhiyun fastest one. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunconfig LINEAR_RANGES 23*4882a593Smuzhiyun tristate 24*4882a593Smuzhiyun 25*4882a593Smuzhiyunconfig PACKING 26*4882a593Smuzhiyun bool "Generic bitfield packing and unpacking" 27*4882a593Smuzhiyun default n 28*4882a593Smuzhiyun help 29*4882a593Smuzhiyun This option provides the packing() helper function, which permits 30*4882a593Smuzhiyun converting bitfields between a CPU-usable representation and a 31*4882a593Smuzhiyun memory representation that can have any combination of these quirks: 32*4882a593Smuzhiyun - Is little endian (bytes are reversed within a 32-bit group) 33*4882a593Smuzhiyun - The least-significant 32-bit word comes first (within a 64-bit 34*4882a593Smuzhiyun group) 35*4882a593Smuzhiyun - The most significant bit of a byte is at its right (bit 0 of a 36*4882a593Smuzhiyun register description is numerically 2^7). 37*4882a593Smuzhiyun Drivers may use these helpers to match the bit indices as described 38*4882a593Smuzhiyun in the data sheets of the peripherals they are in control of. 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun When in doubt, say N. 41*4882a593Smuzhiyun 42*4882a593Smuzhiyunconfig BITREVERSE 43*4882a593Smuzhiyun tristate 44*4882a593Smuzhiyun 45*4882a593Smuzhiyunconfig HAVE_ARCH_BITREVERSE 46*4882a593Smuzhiyun bool 47*4882a593Smuzhiyun default n 48*4882a593Smuzhiyun help 49*4882a593Smuzhiyun This option enables the use of hardware bit-reversal instructions on 50*4882a593Smuzhiyun architectures which support such operations. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunconfig GENERIC_STRNCPY_FROM_USER 53*4882a593Smuzhiyun bool 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunconfig GENERIC_STRNLEN_USER 56*4882a593Smuzhiyun bool 57*4882a593Smuzhiyun 58*4882a593Smuzhiyunconfig GENERIC_NET_UTILS 59*4882a593Smuzhiyun bool 60*4882a593Smuzhiyun 61*4882a593Smuzhiyunconfig GENERIC_FIND_FIRST_BIT 62*4882a593Smuzhiyun bool 63*4882a593Smuzhiyun 64*4882a593Smuzhiyunsource "lib/math/Kconfig" 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunconfig NO_GENERIC_PCI_IOPORT_MAP 67*4882a593Smuzhiyun bool 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig GENERIC_PCI_IOMAP 70*4882a593Smuzhiyun bool 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig GENERIC_IOMAP 73*4882a593Smuzhiyun bool 74*4882a593Smuzhiyun select GENERIC_PCI_IOMAP 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig STMP_DEVICE 77*4882a593Smuzhiyun bool 78*4882a593Smuzhiyun 79*4882a593Smuzhiyunconfig ARCH_USE_CMPXCHG_LOCKREF 80*4882a593Smuzhiyun bool 81*4882a593Smuzhiyun 82*4882a593Smuzhiyunconfig ARCH_HAS_FAST_MULTIPLIER 83*4882a593Smuzhiyun bool 84*4882a593Smuzhiyun 85*4882a593Smuzhiyunconfig ARCH_USE_SYM_ANNOTATIONS 86*4882a593Smuzhiyun bool 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunconfig INDIRECT_PIO 89*4882a593Smuzhiyun bool "Access I/O in non-MMIO mode" 90*4882a593Smuzhiyun depends on ARM64 91*4882a593Smuzhiyun help 92*4882a593Smuzhiyun On some platforms where no separate I/O space exists, there are I/O 93*4882a593Smuzhiyun hosts which can not be accessed in MMIO mode. Using the logical PIO 94*4882a593Smuzhiyun mechanism, the host-local I/O resource can be mapped into system 95*4882a593Smuzhiyun logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 96*4882a593Smuzhiyun system can access the I/O devices with the mapped-logic PIO through 97*4882a593Smuzhiyun I/O accessors. 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun This way has relatively little I/O performance cost. Please make 100*4882a593Smuzhiyun sure your devices really need this configure item enabled. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun When in doubt, say N. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunsource "lib/crypto/Kconfig" 105*4882a593Smuzhiyun 106*4882a593Smuzhiyunconfig LIB_MEMNEQ 107*4882a593Smuzhiyun bool 108*4882a593Smuzhiyun 109*4882a593Smuzhiyunconfig CRC_CCITT 110*4882a593Smuzhiyun tristate "CRC-CCITT functions" 111*4882a593Smuzhiyun help 112*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 113*4882a593Smuzhiyun modules require CRC-CCITT functions, but a module built outside 114*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC-CCITT 115*4882a593Smuzhiyun functions require M here. 116*4882a593Smuzhiyun 117*4882a593Smuzhiyunconfig CRC16 118*4882a593Smuzhiyun tristate "CRC16 functions" 119*4882a593Smuzhiyun help 120*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 121*4882a593Smuzhiyun modules require CRC16 functions, but a module built outside 122*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC16 123*4882a593Smuzhiyun functions require M here. 124*4882a593Smuzhiyun 125*4882a593Smuzhiyunconfig CRC_T10DIF 126*4882a593Smuzhiyun tristate "CRC calculation for the T10 Data Integrity Field" 127*4882a593Smuzhiyun select CRYPTO 128*4882a593Smuzhiyun select CRYPTO_CRCT10DIF 129*4882a593Smuzhiyun help 130*4882a593Smuzhiyun This option is only needed if a module that's not in the 131*4882a593Smuzhiyun kernel tree needs to calculate CRC checks for use with the 132*4882a593Smuzhiyun SCSI data integrity subsystem. 133*4882a593Smuzhiyun 134*4882a593Smuzhiyunconfig CRC_ITU_T 135*4882a593Smuzhiyun tristate "CRC ITU-T V.41 functions" 136*4882a593Smuzhiyun help 137*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 138*4882a593Smuzhiyun modules require CRC ITU-T V.41 functions, but a module built outside 139*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC ITU-T V.41 140*4882a593Smuzhiyun functions require M here. 141*4882a593Smuzhiyun 142*4882a593Smuzhiyunconfig CRC32 143*4882a593Smuzhiyun tristate "CRC32/CRC32c functions" 144*4882a593Smuzhiyun default y 145*4882a593Smuzhiyun select BITREVERSE 146*4882a593Smuzhiyun help 147*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 148*4882a593Smuzhiyun modules require CRC32/CRC32c functions, but a module built outside 149*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC32/CRC32c 150*4882a593Smuzhiyun functions require M here. 151*4882a593Smuzhiyun 152*4882a593Smuzhiyunconfig CRC32_SELFTEST 153*4882a593Smuzhiyun tristate "CRC32 perform self test on init" 154*4882a593Smuzhiyun depends on CRC32 155*4882a593Smuzhiyun help 156*4882a593Smuzhiyun This option enables the CRC32 library functions to perform a 157*4882a593Smuzhiyun self test on initialization. The self test computes crc32_le 158*4882a593Smuzhiyun and crc32_be over byte strings with random alignment and length 159*4882a593Smuzhiyun and computes the total elapsed time and number of bytes processed. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunchoice 162*4882a593Smuzhiyun prompt "CRC32 implementation" 163*4882a593Smuzhiyun depends on CRC32 164*4882a593Smuzhiyun default CRC32_SLICEBY8 165*4882a593Smuzhiyun help 166*4882a593Smuzhiyun This option allows a kernel builder to override the default choice 167*4882a593Smuzhiyun of CRC32 algorithm. Choose the default ("slice by 8") unless you 168*4882a593Smuzhiyun know that you need one of the others. 169*4882a593Smuzhiyun 170*4882a593Smuzhiyunconfig CRC32_SLICEBY8 171*4882a593Smuzhiyun bool "Slice by 8 bytes" 172*4882a593Smuzhiyun help 173*4882a593Smuzhiyun Calculate checksum 8 bytes at a time with a clever slicing algorithm. 174*4882a593Smuzhiyun This is the fastest algorithm, but comes with a 8KiB lookup table. 175*4882a593Smuzhiyun Most modern processors have enough cache to hold this table without 176*4882a593Smuzhiyun thrashing the cache. 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun This is the default implementation choice. Choose this one unless 179*4882a593Smuzhiyun you have a good reason not to. 180*4882a593Smuzhiyun 181*4882a593Smuzhiyunconfig CRC32_SLICEBY4 182*4882a593Smuzhiyun bool "Slice by 4 bytes" 183*4882a593Smuzhiyun help 184*4882a593Smuzhiyun Calculate checksum 4 bytes at a time with a clever slicing algorithm. 185*4882a593Smuzhiyun This is a bit slower than slice by 8, but has a smaller 4KiB lookup 186*4882a593Smuzhiyun table. 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun Only choose this option if you know what you are doing. 189*4882a593Smuzhiyun 190*4882a593Smuzhiyunconfig CRC32_SARWATE 191*4882a593Smuzhiyun bool "Sarwate's Algorithm (one byte at a time)" 192*4882a593Smuzhiyun help 193*4882a593Smuzhiyun Calculate checksum a byte at a time using Sarwate's algorithm. This 194*4882a593Smuzhiyun is not particularly fast, but has a small 256 byte lookup table. 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun Only choose this option if you know what you are doing. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunconfig CRC32_BIT 199*4882a593Smuzhiyun bool "Classic Algorithm (one bit at a time)" 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun Calculate checksum one bit at a time. This is VERY slow, but has 202*4882a593Smuzhiyun no lookup table. This is provided as a debugging option. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun Only choose this option if you are debugging crc32. 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunendchoice 207*4882a593Smuzhiyun 208*4882a593Smuzhiyunconfig CRC64 209*4882a593Smuzhiyun tristate "CRC64 functions" 210*4882a593Smuzhiyun help 211*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 212*4882a593Smuzhiyun modules require CRC64 functions, but a module built outside 213*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC64 214*4882a593Smuzhiyun functions require M here. 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig CRC4 217*4882a593Smuzhiyun tristate "CRC4 functions" 218*4882a593Smuzhiyun help 219*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 220*4882a593Smuzhiyun modules require CRC4 functions, but a module built outside 221*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC4 222*4882a593Smuzhiyun functions require M here. 223*4882a593Smuzhiyun 224*4882a593Smuzhiyunconfig CRC7 225*4882a593Smuzhiyun tristate "CRC7 functions" 226*4882a593Smuzhiyun help 227*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 228*4882a593Smuzhiyun modules require CRC7 functions, but a module built outside 229*4882a593Smuzhiyun the kernel tree does. Such modules that use library CRC7 230*4882a593Smuzhiyun functions require M here. 231*4882a593Smuzhiyun 232*4882a593Smuzhiyunconfig LIBCRC32C 233*4882a593Smuzhiyun tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 234*4882a593Smuzhiyun select CRYPTO 235*4882a593Smuzhiyun select CRYPTO_CRC32C 236*4882a593Smuzhiyun help 237*4882a593Smuzhiyun This option is provided for the case where no in-kernel-tree 238*4882a593Smuzhiyun modules require CRC32c functions, but a module built outside the 239*4882a593Smuzhiyun kernel tree does. Such modules that use library CRC32c functions 240*4882a593Smuzhiyun require M here. See Castagnoli93. 241*4882a593Smuzhiyun Module will be libcrc32c. 242*4882a593Smuzhiyun 243*4882a593Smuzhiyunconfig CRC8 244*4882a593Smuzhiyun tristate "CRC8 function" 245*4882a593Smuzhiyun help 246*4882a593Smuzhiyun This option provides CRC8 function. Drivers may select this 247*4882a593Smuzhiyun when they need to do cyclic redundancy check according CRC8 248*4882a593Smuzhiyun algorithm. Module will be called crc8. 249*4882a593Smuzhiyun 250*4882a593Smuzhiyunconfig XXHASH 251*4882a593Smuzhiyun tristate 252*4882a593Smuzhiyun 253*4882a593Smuzhiyunconfig AUDIT_GENERIC 254*4882a593Smuzhiyun bool 255*4882a593Smuzhiyun depends on AUDIT && !AUDIT_ARCH 256*4882a593Smuzhiyun default y 257*4882a593Smuzhiyun 258*4882a593Smuzhiyunconfig AUDIT_ARCH_COMPAT_GENERIC 259*4882a593Smuzhiyun bool 260*4882a593Smuzhiyun default n 261*4882a593Smuzhiyun 262*4882a593Smuzhiyunconfig AUDIT_COMPAT_GENERIC 263*4882a593Smuzhiyun bool 264*4882a593Smuzhiyun depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 265*4882a593Smuzhiyun default y 266*4882a593Smuzhiyun 267*4882a593Smuzhiyunconfig RANDOM32_SELFTEST 268*4882a593Smuzhiyun bool "PRNG perform self test on init" 269*4882a593Smuzhiyun help 270*4882a593Smuzhiyun This option enables the 32 bit PRNG library functions to perform a 271*4882a593Smuzhiyun self test on initialization. 272*4882a593Smuzhiyun 273*4882a593Smuzhiyun# 274*4882a593Smuzhiyun# compression support is select'ed if needed 275*4882a593Smuzhiyun# 276*4882a593Smuzhiyunconfig 842_COMPRESS 277*4882a593Smuzhiyun select CRC32 278*4882a593Smuzhiyun tristate 279*4882a593Smuzhiyun 280*4882a593Smuzhiyunconfig 842_DECOMPRESS 281*4882a593Smuzhiyun select CRC32 282*4882a593Smuzhiyun tristate 283*4882a593Smuzhiyun 284*4882a593Smuzhiyunconfig ZLIB_INFLATE 285*4882a593Smuzhiyun tristate 286*4882a593Smuzhiyun 287*4882a593Smuzhiyunconfig ZLIB_DEFLATE 288*4882a593Smuzhiyun tristate 289*4882a593Smuzhiyun select BITREVERSE 290*4882a593Smuzhiyun 291*4882a593Smuzhiyunconfig ZLIB_DFLTCC 292*4882a593Smuzhiyun def_bool y 293*4882a593Smuzhiyun depends on S390 294*4882a593Smuzhiyun prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 295*4882a593Smuzhiyun help 296*4882a593Smuzhiyun Enable s390x hardware support for zlib in the kernel. 297*4882a593Smuzhiyun 298*4882a593Smuzhiyunconfig LZO_COMPRESS 299*4882a593Smuzhiyun tristate 300*4882a593Smuzhiyun 301*4882a593Smuzhiyunconfig LZO_DECOMPRESS 302*4882a593Smuzhiyun tristate 303*4882a593Smuzhiyun 304*4882a593Smuzhiyunconfig LZ4_COMPRESS 305*4882a593Smuzhiyun tristate 306*4882a593Smuzhiyun 307*4882a593Smuzhiyunconfig LZ4HC_COMPRESS 308*4882a593Smuzhiyun tristate 309*4882a593Smuzhiyun 310*4882a593Smuzhiyunconfig LZ4_DECOMPRESS 311*4882a593Smuzhiyun tristate 312*4882a593Smuzhiyun 313*4882a593Smuzhiyunconfig ZSTD_COMPRESS 314*4882a593Smuzhiyun select XXHASH 315*4882a593Smuzhiyun tristate 316*4882a593Smuzhiyun 317*4882a593Smuzhiyunconfig ZSTD_DECOMPRESS 318*4882a593Smuzhiyun select XXHASH 319*4882a593Smuzhiyun tristate 320*4882a593Smuzhiyun 321*4882a593Smuzhiyunsource "lib/xz/Kconfig" 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun# 324*4882a593Smuzhiyun# These all provide a common interface (hence the apparent duplication with 325*4882a593Smuzhiyun# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 326*4882a593Smuzhiyun# 327*4882a593Smuzhiyunconfig DECOMPRESS_GZIP 328*4882a593Smuzhiyun select ZLIB_INFLATE 329*4882a593Smuzhiyun tristate 330*4882a593Smuzhiyun 331*4882a593Smuzhiyunconfig DECOMPRESS_BZIP2 332*4882a593Smuzhiyun tristate 333*4882a593Smuzhiyun 334*4882a593Smuzhiyunconfig DECOMPRESS_LZMA 335*4882a593Smuzhiyun tristate 336*4882a593Smuzhiyun 337*4882a593Smuzhiyunconfig DECOMPRESS_XZ 338*4882a593Smuzhiyun select XZ_DEC 339*4882a593Smuzhiyun tristate 340*4882a593Smuzhiyun 341*4882a593Smuzhiyunconfig DECOMPRESS_LZO 342*4882a593Smuzhiyun select LZO_DECOMPRESS 343*4882a593Smuzhiyun tristate 344*4882a593Smuzhiyun 345*4882a593Smuzhiyunconfig DECOMPRESS_LZ4 346*4882a593Smuzhiyun select LZ4_DECOMPRESS 347*4882a593Smuzhiyun tristate 348*4882a593Smuzhiyun 349*4882a593Smuzhiyunconfig DECOMPRESS_ZSTD 350*4882a593Smuzhiyun select ZSTD_DECOMPRESS 351*4882a593Smuzhiyun tristate 352*4882a593Smuzhiyun 353*4882a593Smuzhiyun# 354*4882a593Smuzhiyun# Generic allocator support is selected if needed 355*4882a593Smuzhiyun# 356*4882a593Smuzhiyunconfig GENERIC_ALLOCATOR 357*4882a593Smuzhiyun bool 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun# 360*4882a593Smuzhiyun# reed solomon support is select'ed if needed 361*4882a593Smuzhiyun# 362*4882a593Smuzhiyunconfig REED_SOLOMON 363*4882a593Smuzhiyun tristate 364*4882a593Smuzhiyun 365*4882a593Smuzhiyunconfig REED_SOLOMON_ENC8 366*4882a593Smuzhiyun bool 367*4882a593Smuzhiyun 368*4882a593Smuzhiyunconfig REED_SOLOMON_DEC8 369*4882a593Smuzhiyun bool 370*4882a593Smuzhiyun 371*4882a593Smuzhiyunconfig REED_SOLOMON_ENC16 372*4882a593Smuzhiyun bool 373*4882a593Smuzhiyun 374*4882a593Smuzhiyunconfig REED_SOLOMON_DEC16 375*4882a593Smuzhiyun bool 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun# 378*4882a593Smuzhiyun# BCH support is selected if needed 379*4882a593Smuzhiyun# 380*4882a593Smuzhiyunconfig BCH 381*4882a593Smuzhiyun tristate 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunconfig BCH_CONST_PARAMS 384*4882a593Smuzhiyun bool 385*4882a593Smuzhiyun help 386*4882a593Smuzhiyun Drivers may select this option to force specific constant 387*4882a593Smuzhiyun values for parameters 'm' (Galois field order) and 't' 388*4882a593Smuzhiyun (error correction capability). Those specific values must 389*4882a593Smuzhiyun be set by declaring default values for symbols BCH_CONST_M 390*4882a593Smuzhiyun and BCH_CONST_T. 391*4882a593Smuzhiyun Doing so will enable extra compiler optimizations, 392*4882a593Smuzhiyun improving encoding and decoding performance up to 2x for 393*4882a593Smuzhiyun usual (m,t) values (typically such that m*t < 200). 394*4882a593Smuzhiyun When this option is selected, the BCH library supports 395*4882a593Smuzhiyun only a single (m,t) configuration. This is mainly useful 396*4882a593Smuzhiyun for NAND flash board drivers requiring known, fixed BCH 397*4882a593Smuzhiyun parameters. 398*4882a593Smuzhiyun 399*4882a593Smuzhiyunconfig BCH_CONST_M 400*4882a593Smuzhiyun int 401*4882a593Smuzhiyun range 5 15 402*4882a593Smuzhiyun help 403*4882a593Smuzhiyun Constant value for Galois field order 'm'. If 'k' is the 404*4882a593Smuzhiyun number of data bits to protect, 'm' should be chosen such 405*4882a593Smuzhiyun that (k + m*t) <= 2**m - 1. 406*4882a593Smuzhiyun Drivers should declare a default value for this symbol if 407*4882a593Smuzhiyun they select option BCH_CONST_PARAMS. 408*4882a593Smuzhiyun 409*4882a593Smuzhiyunconfig BCH_CONST_T 410*4882a593Smuzhiyun int 411*4882a593Smuzhiyun help 412*4882a593Smuzhiyun Constant value for error correction capability in bits 't'. 413*4882a593Smuzhiyun Drivers should declare a default value for this symbol if 414*4882a593Smuzhiyun they select option BCH_CONST_PARAMS. 415*4882a593Smuzhiyun 416*4882a593Smuzhiyun# 417*4882a593Smuzhiyun# Textsearch support is select'ed if needed 418*4882a593Smuzhiyun# 419*4882a593Smuzhiyunconfig TEXTSEARCH 420*4882a593Smuzhiyun bool 421*4882a593Smuzhiyun 422*4882a593Smuzhiyunconfig TEXTSEARCH_KMP 423*4882a593Smuzhiyun tristate 424*4882a593Smuzhiyun 425*4882a593Smuzhiyunconfig TEXTSEARCH_BM 426*4882a593Smuzhiyun tristate 427*4882a593Smuzhiyun 428*4882a593Smuzhiyunconfig TEXTSEARCH_FSM 429*4882a593Smuzhiyun tristate 430*4882a593Smuzhiyun 431*4882a593Smuzhiyunconfig BTREE 432*4882a593Smuzhiyun bool 433*4882a593Smuzhiyun 434*4882a593Smuzhiyunconfig INTERVAL_TREE 435*4882a593Smuzhiyun bool 436*4882a593Smuzhiyun help 437*4882a593Smuzhiyun Simple, embeddable, interval-tree. Can find the start of an 438*4882a593Smuzhiyun overlapping range in log(n) time and then iterate over all 439*4882a593Smuzhiyun overlapping nodes. The algorithm is implemented as an 440*4882a593Smuzhiyun augmented rbtree. 441*4882a593Smuzhiyun 442*4882a593Smuzhiyun See: 443*4882a593Smuzhiyun 444*4882a593Smuzhiyun Documentation/core-api/rbtree.rst 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun for more information. 447*4882a593Smuzhiyun 448*4882a593Smuzhiyunconfig XARRAY_MULTI 449*4882a593Smuzhiyun bool 450*4882a593Smuzhiyun help 451*4882a593Smuzhiyun Support entries which occupy multiple consecutive indices in the 452*4882a593Smuzhiyun XArray. 453*4882a593Smuzhiyun 454*4882a593Smuzhiyunconfig ASSOCIATIVE_ARRAY 455*4882a593Smuzhiyun bool 456*4882a593Smuzhiyun help 457*4882a593Smuzhiyun Generic associative array. Can be searched and iterated over whilst 458*4882a593Smuzhiyun it is being modified. It is also reasonably quick to search and 459*4882a593Smuzhiyun modify. The algorithms are non-recursive, and the trees are highly 460*4882a593Smuzhiyun capacious. 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun See: 463*4882a593Smuzhiyun 464*4882a593Smuzhiyun Documentation/core-api/assoc_array.rst 465*4882a593Smuzhiyun 466*4882a593Smuzhiyun for more information. 467*4882a593Smuzhiyun 468*4882a593Smuzhiyunconfig HAS_IOMEM 469*4882a593Smuzhiyun bool 470*4882a593Smuzhiyun depends on !NO_IOMEM 471*4882a593Smuzhiyun default y 472*4882a593Smuzhiyun 473*4882a593Smuzhiyunconfig HAS_IOPORT_MAP 474*4882a593Smuzhiyun bool 475*4882a593Smuzhiyun depends on HAS_IOMEM && !NO_IOPORT_MAP 476*4882a593Smuzhiyun default y 477*4882a593Smuzhiyun 478*4882a593Smuzhiyunsource "kernel/dma/Kconfig" 479*4882a593Smuzhiyun 480*4882a593Smuzhiyunconfig SGL_ALLOC 481*4882a593Smuzhiyun bool 482*4882a593Smuzhiyun default n 483*4882a593Smuzhiyun 484*4882a593Smuzhiyunconfig IOMMU_HELPER 485*4882a593Smuzhiyun bool 486*4882a593Smuzhiyun 487*4882a593Smuzhiyunconfig CHECK_SIGNATURE 488*4882a593Smuzhiyun bool 489*4882a593Smuzhiyun 490*4882a593Smuzhiyunconfig CPUMASK_OFFSTACK 491*4882a593Smuzhiyun bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 492*4882a593Smuzhiyun help 493*4882a593Smuzhiyun Use dynamic allocation for cpumask_var_t, instead of putting 494*4882a593Smuzhiyun them on the stack. This is a bit more expensive, but avoids 495*4882a593Smuzhiyun stack overflow. 496*4882a593Smuzhiyun 497*4882a593Smuzhiyunconfig CPU_RMAP 498*4882a593Smuzhiyun bool 499*4882a593Smuzhiyun depends on SMP 500*4882a593Smuzhiyun 501*4882a593Smuzhiyunconfig DQL 502*4882a593Smuzhiyun bool 503*4882a593Smuzhiyun 504*4882a593Smuzhiyunconfig GLOB 505*4882a593Smuzhiyun bool 506*4882a593Smuzhiyun# This actually supports modular compilation, but the module overhead 507*4882a593Smuzhiyun# is ridiculous for the amount of code involved. Until an out-of-tree 508*4882a593Smuzhiyun# driver asks for it, we'll just link it directly it into the kernel 509*4882a593Smuzhiyun# when required. Since we're ignoring out-of-tree users, there's also 510*4882a593Smuzhiyun# no need bother prompting for a manual decision: 511*4882a593Smuzhiyun# prompt "glob_match() function" 512*4882a593Smuzhiyun help 513*4882a593Smuzhiyun This option provides a glob_match function for performing 514*4882a593Smuzhiyun simple text pattern matching. It originated in the ATA code 515*4882a593Smuzhiyun to blacklist particular drive models, but other device drivers 516*4882a593Smuzhiyun may need similar functionality. 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun All drivers in the Linux kernel tree that require this function 519*4882a593Smuzhiyun should automatically select this option. Say N unless you 520*4882a593Smuzhiyun are compiling an out-of tree driver which tells you that it 521*4882a593Smuzhiyun depends on this. 522*4882a593Smuzhiyun 523*4882a593Smuzhiyunconfig GLOB_SELFTEST 524*4882a593Smuzhiyun tristate "glob self-test on init" 525*4882a593Smuzhiyun depends on GLOB 526*4882a593Smuzhiyun help 527*4882a593Smuzhiyun This option enables a simple self-test of the glob_match 528*4882a593Smuzhiyun function on startup. It is primarily useful for people 529*4882a593Smuzhiyun working on the code to ensure they haven't introduced any 530*4882a593Smuzhiyun regressions. 531*4882a593Smuzhiyun 532*4882a593Smuzhiyun It only adds a little bit of code and slows kernel boot (or 533*4882a593Smuzhiyun module load) by a small amount, so you're welcome to play with 534*4882a593Smuzhiyun it, but you probably don't need it. 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun# 537*4882a593Smuzhiyun# Netlink attribute parsing support is select'ed if needed 538*4882a593Smuzhiyun# 539*4882a593Smuzhiyunconfig NLATTR 540*4882a593Smuzhiyun bool 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun# 543*4882a593Smuzhiyun# Generic 64-bit atomic support is selected if needed 544*4882a593Smuzhiyun# 545*4882a593Smuzhiyunconfig GENERIC_ATOMIC64 546*4882a593Smuzhiyun bool 547*4882a593Smuzhiyun 548*4882a593Smuzhiyunconfig LRU_CACHE 549*4882a593Smuzhiyun tristate 550*4882a593Smuzhiyun 551*4882a593Smuzhiyunconfig CLZ_TAB 552*4882a593Smuzhiyun bool 553*4882a593Smuzhiyun 554*4882a593Smuzhiyunconfig IRQ_POLL 555*4882a593Smuzhiyun bool "IRQ polling library" 556*4882a593Smuzhiyun help 557*4882a593Smuzhiyun Helper library to poll interrupt mitigation using polling. 558*4882a593Smuzhiyun 559*4882a593Smuzhiyunconfig MPILIB 560*4882a593Smuzhiyun tristate 561*4882a593Smuzhiyun select CLZ_TAB 562*4882a593Smuzhiyun help 563*4882a593Smuzhiyun Multiprecision maths library from GnuPG. 564*4882a593Smuzhiyun It is used to implement RSA digital signature verification, 565*4882a593Smuzhiyun which is used by IMA/EVM digital signature extension. 566*4882a593Smuzhiyun 567*4882a593Smuzhiyunconfig SIGNATURE 568*4882a593Smuzhiyun tristate 569*4882a593Smuzhiyun depends on KEYS 570*4882a593Smuzhiyun select CRYPTO 571*4882a593Smuzhiyun select CRYPTO_SHA1 572*4882a593Smuzhiyun select MPILIB 573*4882a593Smuzhiyun help 574*4882a593Smuzhiyun Digital signature verification. Currently only RSA is supported. 575*4882a593Smuzhiyun Implementation is done using GnuPG MPI library 576*4882a593Smuzhiyun 577*4882a593Smuzhiyunconfig DIMLIB 578*4882a593Smuzhiyun bool 579*4882a593Smuzhiyun help 580*4882a593Smuzhiyun Dynamic Interrupt Moderation library. 581*4882a593Smuzhiyun Implements an algorithm for dynamically changing CQ moderation values 582*4882a593Smuzhiyun according to run time performance. 583*4882a593Smuzhiyun 584*4882a593Smuzhiyun# 585*4882a593Smuzhiyun# libfdt files, only selected if needed. 586*4882a593Smuzhiyun# 587*4882a593Smuzhiyunconfig LIBFDT 588*4882a593Smuzhiyun bool 589*4882a593Smuzhiyun 590*4882a593Smuzhiyunconfig OID_REGISTRY 591*4882a593Smuzhiyun tristate 592*4882a593Smuzhiyun help 593*4882a593Smuzhiyun Enable fast lookup object identifier registry. 594*4882a593Smuzhiyun 595*4882a593Smuzhiyunconfig UCS2_STRING 596*4882a593Smuzhiyun tristate 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun# 599*4882a593Smuzhiyun# generic vdso 600*4882a593Smuzhiyun# 601*4882a593Smuzhiyunsource "lib/vdso/Kconfig" 602*4882a593Smuzhiyun 603*4882a593Smuzhiyunsource "lib/fonts/Kconfig" 604*4882a593Smuzhiyun 605*4882a593Smuzhiyunconfig SG_SPLIT 606*4882a593Smuzhiyun def_bool n 607*4882a593Smuzhiyun help 608*4882a593Smuzhiyun Provides a helper to split scatterlists into chunks, each chunk being 609*4882a593Smuzhiyun a scatterlist. This should be selected by a driver or an API which 610*4882a593Smuzhiyun whishes to split a scatterlist amongst multiple DMA channels. 611*4882a593Smuzhiyun 612*4882a593Smuzhiyunconfig SG_POOL 613*4882a593Smuzhiyun def_bool n 614*4882a593Smuzhiyun help 615*4882a593Smuzhiyun Provides a helper to allocate chained scatterlists. This should be 616*4882a593Smuzhiyun selected by a driver or an API which whishes to allocate chained 617*4882a593Smuzhiyun scatterlist. 618*4882a593Smuzhiyun 619*4882a593Smuzhiyun# 620*4882a593Smuzhiyun# sg chaining option 621*4882a593Smuzhiyun# 622*4882a593Smuzhiyun 623*4882a593Smuzhiyunconfig ARCH_NO_SG_CHAIN 624*4882a593Smuzhiyun def_bool n 625*4882a593Smuzhiyun 626*4882a593Smuzhiyunconfig ARCH_HAS_PMEM_API 627*4882a593Smuzhiyun bool 628*4882a593Smuzhiyun 629*4882a593Smuzhiyunconfig MEMREGION 630*4882a593Smuzhiyun bool 631*4882a593Smuzhiyun 632*4882a593Smuzhiyunconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN 633*4882a593Smuzhiyun bool 634*4882a593Smuzhiyun 635*4882a593Smuzhiyun# use memcpy to implement user copies for nommu architectures 636*4882a593Smuzhiyunconfig UACCESS_MEMCPY 637*4882a593Smuzhiyun bool 638*4882a593Smuzhiyun 639*4882a593Smuzhiyunconfig ARCH_HAS_UACCESS_FLUSHCACHE 640*4882a593Smuzhiyun bool 641*4882a593Smuzhiyun 642*4882a593Smuzhiyun# arch has a concept of a recoverable synchronous exception due to a 643*4882a593Smuzhiyun# memory-read error like x86 machine-check or ARM data-abort, and 644*4882a593Smuzhiyun# implements copy_mc_to_{user,kernel} to abort and report 645*4882a593Smuzhiyun# 'bytes-transferred' if that exception fires when accessing the source 646*4882a593Smuzhiyun# buffer. 647*4882a593Smuzhiyunconfig ARCH_HAS_COPY_MC 648*4882a593Smuzhiyun bool 649*4882a593Smuzhiyun 650*4882a593Smuzhiyun# Temporary. Goes away when all archs are cleaned up 651*4882a593Smuzhiyunconfig ARCH_STACKWALK 652*4882a593Smuzhiyun bool 653*4882a593Smuzhiyun 654*4882a593Smuzhiyunconfig STACKDEPOT 655*4882a593Smuzhiyun bool 656*4882a593Smuzhiyun select STACKTRACE 657*4882a593Smuzhiyun 658*4882a593Smuzhiyunconfig STACK_HASH_ORDER 659*4882a593Smuzhiyun int "stack depot hash size (12 => 4KB, 20 => 1024KB)" 660*4882a593Smuzhiyun range 12 20 661*4882a593Smuzhiyun default 20 662*4882a593Smuzhiyun depends on STACKDEPOT 663*4882a593Smuzhiyun help 664*4882a593Smuzhiyun Select the hash size as a power of 2 for the stackdepot hash table. 665*4882a593Smuzhiyun Choose a lower value to reduce the memory impact. 666*4882a593Smuzhiyun 667*4882a593Smuzhiyunconfig SBITMAP 668*4882a593Smuzhiyun bool 669*4882a593Smuzhiyun 670*4882a593Smuzhiyunconfig PARMAN 671*4882a593Smuzhiyun tristate "parman" if COMPILE_TEST 672*4882a593Smuzhiyun 673*4882a593Smuzhiyunconfig OBJAGG 674*4882a593Smuzhiyun tristate "objagg" if COMPILE_TEST 675*4882a593Smuzhiyun 676*4882a593Smuzhiyunconfig STRING_SELFTEST 677*4882a593Smuzhiyun tristate "Test string functions" 678*4882a593Smuzhiyun 679*4882a593Smuzhiyunendmenu 680*4882a593Smuzhiyun 681*4882a593Smuzhiyunconfig GENERIC_IOREMAP 682*4882a593Smuzhiyun bool 683*4882a593Smuzhiyun 684*4882a593Smuzhiyunconfig GENERIC_LIB_ASHLDI3 685*4882a593Smuzhiyun bool 686*4882a593Smuzhiyun 687*4882a593Smuzhiyunconfig GENERIC_LIB_ASHRDI3 688*4882a593Smuzhiyun bool 689*4882a593Smuzhiyun 690*4882a593Smuzhiyunconfig GENERIC_LIB_LSHRDI3 691*4882a593Smuzhiyun bool 692*4882a593Smuzhiyun 693*4882a593Smuzhiyunconfig GENERIC_LIB_MULDI3 694*4882a593Smuzhiyun bool 695*4882a593Smuzhiyun 696*4882a593Smuzhiyunconfig GENERIC_LIB_CMPDI2 697*4882a593Smuzhiyun bool 698*4882a593Smuzhiyun 699*4882a593Smuzhiyunconfig GENERIC_LIB_UCMPDI2 700*4882a593Smuzhiyun bool 701*4882a593Smuzhiyun 702*4882a593Smuzhiyunconfig PLDMFW 703*4882a593Smuzhiyun bool 704*4882a593Smuzhiyun default n 705