1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 21da177e4SLinus Torvalds# 31da177e4SLinus Torvalds# Library configuration 41da177e4SLinus Torvalds# 51da177e4SLinus Torvalds 64370aa4aSLai Jiangshanconfig BINARY_PRINTF 74370aa4aSLai Jiangshan def_bool n 84370aa4aSLai Jiangshan 91da177e4SLinus Torvaldsmenu "Library routines" 101da177e4SLinus Torvalds 11f5e70d0fSDavid Woodhouseconfig RAID6_PQ 12f5e70d0fSDavid Woodhouse tristate 13f5e70d0fSDavid Woodhouse 14be85f93aSDaniel Verkampconfig RAID6_PQ_BENCHMARK 15be85f93aSDaniel Verkamp bool "Automatically choose fastest RAID6 PQ functions" 16be85f93aSDaniel Verkamp depends on RAID6_PQ 17be85f93aSDaniel Verkamp default y 18be85f93aSDaniel Verkamp help 19be85f93aSDaniel Verkamp Benchmark all available RAID6 PQ functions on init and choose the 20be85f93aSDaniel Verkamp fastest one. 21be85f93aSDaniel Verkamp 22d2218d4eSMatti Vaittinenconfig LINEAR_RANGES 23d2218d4eSMatti Vaittinen tristate 24d2218d4eSMatti Vaittinen 25554aae35SVladimir Olteanconfig PACKING 26554aae35SVladimir Oltean bool "Generic bitfield packing and unpacking" 27*1280d4b7SUladzislau Koshchanka select BITREVERSE 28554aae35SVladimir Oltean default n 29554aae35SVladimir Oltean help 30554aae35SVladimir Oltean This option provides the packing() helper function, which permits 31554aae35SVladimir Oltean converting bitfields between a CPU-usable representation and a 32554aae35SVladimir Oltean memory representation that can have any combination of these quirks: 33554aae35SVladimir Oltean - Is little endian (bytes are reversed within a 32-bit group) 34554aae35SVladimir Oltean - The least-significant 32-bit word comes first (within a 64-bit 35554aae35SVladimir Oltean group) 36554aae35SVladimir Oltean - The most significant bit of a byte is at its right (bit 0 of a 37554aae35SVladimir Oltean register description is numerically 2^7). 38554aae35SVladimir Oltean Drivers may use these helpers to match the bit indices as described 39554aae35SVladimir Oltean in the data sheets of the peripherals they are in control of. 40554aae35SVladimir Oltean 41554aae35SVladimir Oltean When in doubt, say N. 42554aae35SVladimir Oltean 43a5cfc1ecSAkinobu Mitaconfig BITREVERSE 44a5cfc1ecSAkinobu Mita tristate 45a5cfc1ecSAkinobu Mita 46556d2f05SYalin Wangconfig HAVE_ARCH_BITREVERSE 47841c0090SChristoph Jaeger bool 48556d2f05SYalin Wang default n 49556d2f05SYalin Wang help 509e522c0dSAndrew Morton This option enables the use of hardware bit-reversal instructions on 519e522c0dSAndrew Morton architectures which support such operations. 52556d2f05SYalin Wang 53e6226997SArnd Bergmannconfig ARCH_HAS_STRNCPY_FROM_USER 542922585bSDavid S. Miller bool 552922585bSDavid S. Miller 56e6226997SArnd Bergmannconfig ARCH_HAS_STRNLEN_USER 57a08c5356SLinus Torvalds bool 58a08c5356SLinus Torvalds 59e6226997SArnd Bergmannconfig GENERIC_STRNCPY_FROM_USER 60e6226997SArnd Bergmann def_bool !ARCH_HAS_STRNCPY_FROM_USER 61e6226997SArnd Bergmann 62e6226997SArnd Bergmannconfig GENERIC_STRNLEN_USER 63e6226997SArnd Bergmann def_bool !ARCH_HAS_STRNLEN_USER 64e6226997SArnd Bergmann 654cd5773aSAndy Shevchenkoconfig GENERIC_NET_UTILS 664cd5773aSAndy Shevchenko bool 674cd5773aSAndy Shevchenko 682c64e9cbSAndy Shevchenkosource "lib/math/Kconfig" 692c64e9cbSAndy Shevchenko 70b923650bSMichael S. Tsirkinconfig NO_GENERIC_PCI_IOPORT_MAP 71b923650bSMichael S. Tsirkin bool 72b923650bSMichael S. Tsirkin 7366eab4dfSMichael S. Tsirkinconfig GENERIC_PCI_IOMAP 7466eab4dfSMichael S. Tsirkin bool 7566eab4dfSMichael S. Tsirkin 764673ca8eSMichael S. Tsirkinconfig GENERIC_IOMAP 774673ca8eSMichael S. Tsirkin bool 7866eab4dfSMichael S. Tsirkin select GENERIC_PCI_IOMAP 794673ca8eSMichael S. Tsirkin 804ccf4beaSWolfram Sangconfig STMP_DEVICE 814ccf4beaSWolfram Sang bool 824ccf4beaSWolfram Sang 83bc08b449SLinus Torvaldsconfig ARCH_USE_CMPXCHG_LOCKREF 84bc08b449SLinus Torvalds bool 85bc08b449SLinus Torvalds 8672d93104SLinus Torvaldsconfig ARCH_HAS_FAST_MULTIPLIER 8772d93104SLinus Torvalds bool 8872d93104SLinus Torvalds 892ce0d7f9SMark Brownconfig ARCH_USE_SYM_ANNOTATIONS 902ce0d7f9SMark Brown bool 912ce0d7f9SMark Brown 92031e3601SZhichang Yuanconfig INDIRECT_PIO 93031e3601SZhichang Yuan bool "Access I/O in non-MMIO mode" 94031e3601SZhichang Yuan depends on ARM64 95031e3601SZhichang Yuan help 96031e3601SZhichang Yuan On some platforms where no separate I/O space exists, there are I/O 97031e3601SZhichang Yuan hosts which can not be accessed in MMIO mode. Using the logical PIO 98031e3601SZhichang Yuan mechanism, the host-local I/O resource can be mapped into system 99031e3601SZhichang Yuan logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the 100031e3601SZhichang Yuan system can access the I/O devices with the mapped-logic PIO through 101031e3601SZhichang Yuan I/O accessors. 102031e3601SZhichang Yuan 103031e3601SZhichang Yuan This way has relatively little I/O performance cost. Please make 104031e3601SZhichang Yuan sure your devices really need this configure item enabled. 105031e3601SZhichang Yuan 106031e3601SZhichang Yuan When in doubt, say N. 107031e3601SZhichang Yuan 108ca2e3342SJohannes Bergconfig INDIRECT_IOMEM 109ca2e3342SJohannes Berg bool 110ca2e3342SJohannes Berg help 111ca2e3342SJohannes Berg This is selected by other options/architectures to provide the 112ca2e3342SJohannes Berg emulated iomem accessors. 113ca2e3342SJohannes Berg 114ca2e3342SJohannes Bergconfig INDIRECT_IOMEM_FALLBACK 115ca2e3342SJohannes Berg bool 116ca2e3342SJohannes Berg depends on INDIRECT_IOMEM 117ca2e3342SJohannes Berg help 118ca2e3342SJohannes Berg If INDIRECT_IOMEM is selected, this enables falling back to plain 119ca2e3342SJohannes Berg mmio accesses when the IO memory address is not a registered 120ca2e3342SJohannes Berg emulated region. 121ca2e3342SJohannes Berg 122d593d64fSPrasad Sodagudiconfig TRACE_MMIO_ACCESS 123d593d64fSPrasad Sodagudi bool "Register read/write tracing" 124d593d64fSPrasad Sodagudi depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS 125d593d64fSPrasad Sodagudi help 126d593d64fSPrasad Sodagudi Create tracepoints for MMIO read/write operations. These trace events 127d593d64fSPrasad Sodagudi can be used for logging all MMIO read/write operations. 128d593d64fSPrasad Sodagudi 129e56e1898SJustin M. Forbessource "lib/crypto/Kconfig" 130e56e1898SJustin M. Forbes 1311da177e4SLinus Torvaldsconfig CRC_CCITT 1321da177e4SLinus Torvalds tristate "CRC-CCITT functions" 1331da177e4SLinus Torvalds help 1341da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 1351da177e4SLinus Torvalds modules require CRC-CCITT functions, but a module built outside 1361da177e4SLinus Torvalds the kernel tree does. Such modules that use library CRC-CCITT 1371da177e4SLinus Torvalds functions require M here. 1381da177e4SLinus Torvalds 1397657ec1fSEvgeniy Polyakovconfig CRC16 1407657ec1fSEvgeniy Polyakov tristate "CRC16 functions" 1417657ec1fSEvgeniy Polyakov help 1427657ec1fSEvgeniy Polyakov This option is provided for the case where no in-kernel-tree 1437657ec1fSEvgeniy Polyakov modules require CRC16 functions, but a module built outside 1447657ec1fSEvgeniy Polyakov the kernel tree does. Such modules that use library CRC16 1457657ec1fSEvgeniy Polyakov functions require M here. 1467657ec1fSEvgeniy Polyakov 147f11f594eSMartin K. Petersenconfig CRC_T10DIF 148f11f594eSMartin K. Petersen tristate "CRC calculation for the T10 Data Integrity Field" 14968411521SHerbert Xu select CRYPTO 15068411521SHerbert Xu select CRYPTO_CRCT10DIF 151f11f594eSMartin K. Petersen help 152f11f594eSMartin K. Petersen This option is only needed if a module that's not in the 153f11f594eSMartin K. Petersen kernel tree needs to calculate CRC checks for use with the 154f11f594eSMartin K. Petersen SCSI data integrity subsystem. 155f11f594eSMartin K. Petersen 156f3813f4bSKeith Buschconfig CRC64_ROCKSOFT 157f3813f4bSKeith Busch tristate "CRC calculation for the Rocksoft model CRC64" 158f3813f4bSKeith Busch select CRC64 159f3813f4bSKeith Busch select CRYPTO 160f3813f4bSKeith Busch select CRYPTO_CRC64_ROCKSOFT 161f3813f4bSKeith Busch help 162f3813f4bSKeith Busch This option provides a CRC64 API to a registered crypto driver. 163f3813f4bSKeith Busch This is used with the block layer's data integrity subsystem. 164f3813f4bSKeith Busch 1653e7cbae7SIvo van Doornconfig CRC_ITU_T 1663e7cbae7SIvo van Doorn tristate "CRC ITU-T V.41 functions" 1673e7cbae7SIvo van Doorn help 1683e7cbae7SIvo van Doorn This option is provided for the case where no in-kernel-tree 1693e7cbae7SIvo van Doorn modules require CRC ITU-T V.41 functions, but a module built outside 1703e7cbae7SIvo van Doorn the kernel tree does. Such modules that use library CRC ITU-T V.41 1713e7cbae7SIvo van Doorn functions require M here. 1723e7cbae7SIvo van Doorn 1731da177e4SLinus Torvaldsconfig CRC32 17446c5801eSDarrick J. Wong tristate "CRC32/CRC32c functions" 1751da177e4SLinus Torvalds default y 176906d66dfSAkinobu Mita select BITREVERSE 1771da177e4SLinus Torvalds help 1781da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 17946c5801eSDarrick J. Wong modules require CRC32/CRC32c functions, but a module built outside 18046c5801eSDarrick J. Wong the kernel tree does. Such modules that use library CRC32/CRC32c 18146c5801eSDarrick J. Wong functions require M here. 1821da177e4SLinus Torvalds 1833863ef31SBob Pearsonconfig CRC32_SELFTEST 1845fb7f874SGeert Uytterhoeven tristate "CRC32 perform self test on init" 1853863ef31SBob Pearson depends on CRC32 1863863ef31SBob Pearson help 1873863ef31SBob Pearson This option enables the CRC32 library functions to perform a 1883863ef31SBob Pearson self test on initialization. The self test computes crc32_le 1893863ef31SBob Pearson and crc32_be over byte strings with random alignment and length 1903863ef31SBob Pearson and computes the total elapsed time and number of bytes processed. 1913863ef31SBob Pearson 1925cde7656SDarrick J. Wongchoice 1935cde7656SDarrick J. Wong prompt "CRC32 implementation" 1945cde7656SDarrick J. Wong depends on CRC32 1955cde7656SDarrick J. Wong default CRC32_SLICEBY8 19682edb4baSDarrick J. Wong help 19782edb4baSDarrick J. Wong This option allows a kernel builder to override the default choice 19882edb4baSDarrick J. Wong of CRC32 algorithm. Choose the default ("slice by 8") unless you 19982edb4baSDarrick J. Wong know that you need one of the others. 2005cde7656SDarrick J. Wong 2015cde7656SDarrick J. Wongconfig CRC32_SLICEBY8 2025cde7656SDarrick J. Wong bool "Slice by 8 bytes" 2035cde7656SDarrick J. Wong help 2045cde7656SDarrick J. Wong Calculate checksum 8 bytes at a time with a clever slicing algorithm. 2055cde7656SDarrick J. Wong This is the fastest algorithm, but comes with a 8KiB lookup table. 2065cde7656SDarrick J. Wong Most modern processors have enough cache to hold this table without 2075cde7656SDarrick J. Wong thrashing the cache. 2085cde7656SDarrick J. Wong 2095cde7656SDarrick J. Wong This is the default implementation choice. Choose this one unless 2105cde7656SDarrick J. Wong you have a good reason not to. 2115cde7656SDarrick J. Wong 2125cde7656SDarrick J. Wongconfig CRC32_SLICEBY4 2135cde7656SDarrick J. Wong bool "Slice by 4 bytes" 2145cde7656SDarrick J. Wong help 2155cde7656SDarrick J. Wong Calculate checksum 4 bytes at a time with a clever slicing algorithm. 2165cde7656SDarrick J. Wong This is a bit slower than slice by 8, but has a smaller 4KiB lookup 2175cde7656SDarrick J. Wong table. 2185cde7656SDarrick J. Wong 2195cde7656SDarrick J. Wong Only choose this option if you know what you are doing. 2205cde7656SDarrick J. Wong 2215cde7656SDarrick J. Wongconfig CRC32_SARWATE 2225cde7656SDarrick J. Wong bool "Sarwate's Algorithm (one byte at a time)" 2235cde7656SDarrick J. Wong help 2245cde7656SDarrick J. Wong Calculate checksum a byte at a time using Sarwate's algorithm. This 2255cde7656SDarrick J. Wong is not particularly fast, but has a small 256 byte lookup table. 2265cde7656SDarrick J. Wong 2275cde7656SDarrick J. Wong Only choose this option if you know what you are doing. 2285cde7656SDarrick J. Wong 2295cde7656SDarrick J. Wongconfig CRC32_BIT 2305cde7656SDarrick J. Wong bool "Classic Algorithm (one bit at a time)" 2315cde7656SDarrick J. Wong help 2325cde7656SDarrick J. Wong Calculate checksum one bit at a time. This is VERY slow, but has 2335cde7656SDarrick J. Wong no lookup table. This is provided as a debugging option. 2345cde7656SDarrick J. Wong 2355cde7656SDarrick J. Wong Only choose this option if you are debugging crc32. 2365cde7656SDarrick J. Wong 2375cde7656SDarrick J. Wongendchoice 2385cde7656SDarrick J. Wong 239feba04fdSColy Liconfig CRC64 240feba04fdSColy Li tristate "CRC64 functions" 241feba04fdSColy Li help 242feba04fdSColy Li This option is provided for the case where no in-kernel-tree 243feba04fdSColy Li modules require CRC64 functions, but a module built outside 244feba04fdSColy Li the kernel tree does. Such modules that use library CRC64 245feba04fdSColy Li functions require M here. 246feba04fdSColy Li 2470cbaa448SJeremy Kerrconfig CRC4 2480cbaa448SJeremy Kerr tristate "CRC4 functions" 2490cbaa448SJeremy Kerr help 2500cbaa448SJeremy Kerr This option is provided for the case where no in-kernel-tree 2510cbaa448SJeremy Kerr modules require CRC4 functions, but a module built outside 2520cbaa448SJeremy Kerr the kernel tree does. Such modules that use library CRC4 2530cbaa448SJeremy Kerr functions require M here. 2540cbaa448SJeremy Kerr 255ad241528SJan Nikitenkoconfig CRC7 256ad241528SJan Nikitenko tristate "CRC7 functions" 257ad241528SJan Nikitenko help 258ad241528SJan Nikitenko This option is provided for the case where no in-kernel-tree 259ad241528SJan Nikitenko modules require CRC7 functions, but a module built outside 260ad241528SJan Nikitenko the kernel tree does. Such modules that use library CRC7 261ad241528SJan Nikitenko functions require M here. 262ad241528SJan Nikitenko 2631da177e4SLinus Torvaldsconfig LIBCRC32C 2641da177e4SLinus Torvalds tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 26593027354SHerbert Xu select CRYPTO 26669c35efcSHerbert Xu select CRYPTO_CRC32C 2671da177e4SLinus Torvalds help 2681da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 2691da177e4SLinus Torvalds modules require CRC32c functions, but a module built outside the 2701da177e4SLinus Torvalds kernel tree does. Such modules that use library CRC32c functions 2711da177e4SLinus Torvalds require M here. See Castagnoli93. 2721da177e4SLinus Torvalds Module will be libcrc32c. 2731da177e4SLinus Torvalds 2747150962dSArend van Sprielconfig CRC8 2757150962dSArend van Spriel tristate "CRC8 function" 2767150962dSArend van Spriel help 2777150962dSArend van Spriel This option provides CRC8 function. Drivers may select this 2787150962dSArend van Spriel when they need to do cyclic redundancy check according CRC8 2797150962dSArend van Spriel algorithm. Module will be called crc8. 2807150962dSArend van Spriel 2815d240522SNick Terrellconfig XXHASH 2825d240522SNick Terrell tristate 2835d240522SNick Terrell 284e65e1fc2SAl Viroconfig AUDIT_GENERIC 285e65e1fc2SAl Viro bool 286e65e1fc2SAl Viro depends on AUDIT && !AUDIT_ARCH 287e65e1fc2SAl Viro default y 288e65e1fc2SAl Viro 2894b588411SAKASHI Takahiroconfig AUDIT_ARCH_COMPAT_GENERIC 2904b588411SAKASHI Takahiro bool 2914b588411SAKASHI Takahiro default n 2924b588411SAKASHI Takahiro 2934b588411SAKASHI Takahiroconfig AUDIT_COMPAT_GENERIC 2944b588411SAKASHI Takahiro bool 2954b588411SAKASHI Takahiro depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT 2964b588411SAKASHI Takahiro default y 2974b588411SAKASHI Takahiro 298a6a9c0f1SDaniel Borkmannconfig RANDOM32_SELFTEST 299a6a9c0f1SDaniel Borkmann bool "PRNG perform self test on init" 300a6a9c0f1SDaniel Borkmann help 301a6a9c0f1SDaniel Borkmann This option enables the 32 bit PRNG library functions to perform a 302a6a9c0f1SDaniel Borkmann self test on initialization. 303a6a9c0f1SDaniel Borkmann 3041da177e4SLinus Torvalds# 3051da177e4SLinus Torvalds# compression support is select'ed if needed 3061da177e4SLinus Torvalds# 3072da572c9SDan Streetmanconfig 842_COMPRESS 3085b571677SArnd Bergmann select CRC32 3092da572c9SDan Streetman tristate 3102da572c9SDan Streetman 3112da572c9SDan Streetmanconfig 842_DECOMPRESS 3125b571677SArnd Bergmann select CRC32 3132da572c9SDan Streetman tristate 3142da572c9SDan Streetman 3151da177e4SLinus Torvaldsconfig ZLIB_INFLATE 3161da177e4SLinus Torvalds tristate 3171da177e4SLinus Torvalds 3181da177e4SLinus Torvaldsconfig ZLIB_DEFLATE 3191da177e4SLinus Torvalds tristate 3201fd4e5c3SAndrew Morton select BITREVERSE 3211da177e4SLinus Torvalds 322aa5b395bSMikhail Zaslonkoconfig ZLIB_DFLTCC 323aa5b395bSMikhail Zaslonko def_bool y 324aa5b395bSMikhail Zaslonko depends on S390 325aa5b395bSMikhail Zaslonko prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" 326aa5b395bSMikhail Zaslonko help 327aa5b395bSMikhail Zaslonko Enable s390x hardware support for zlib in the kernel. 328aa5b395bSMikhail Zaslonko 32964c70b1cSRichard Purdieconfig LZO_COMPRESS 33064c70b1cSRichard Purdie tristate 33164c70b1cSRichard Purdie 33264c70b1cSRichard Purdieconfig LZO_DECOMPRESS 33364c70b1cSRichard Purdie tristate 33464c70b1cSRichard Purdie 335c72ac7a1SChanho Minconfig LZ4_COMPRESS 336c72ac7a1SChanho Min tristate 337c72ac7a1SChanho Min 338c72ac7a1SChanho Minconfig LZ4HC_COMPRESS 339c72ac7a1SChanho Min tristate 340c72ac7a1SChanho Min 341e76e1fdfSKyungsik Leeconfig LZ4_DECOMPRESS 342e76e1fdfSKyungsik Lee tristate 343e76e1fdfSKyungsik Lee 344637a642fSAlexey Kardashevskiyconfig ZSTD_COMMON 34573f3d1b4SNick Terrell select XXHASH 34673f3d1b4SNick Terrell tristate 34773f3d1b4SNick Terrell 348637a642fSAlexey Kardashevskiyconfig ZSTD_COMPRESS 349637a642fSAlexey Kardashevskiy select ZSTD_COMMON 350637a642fSAlexey Kardashevskiy tristate 351637a642fSAlexey Kardashevskiy 35273f3d1b4SNick Terrellconfig ZSTD_DECOMPRESS 353637a642fSAlexey Kardashevskiy select ZSTD_COMMON 35473f3d1b4SNick Terrell tristate 35573f3d1b4SNick Terrell 35624fa0402SLasse Collinsource "lib/xz/Kconfig" 35724fa0402SLasse Collin 3581da177e4SLinus Torvalds# 359c8531ab3SH. Peter Anvin# These all provide a common interface (hence the apparent duplication with 360c8531ab3SH. Peter Anvin# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 361c8531ab3SH. Peter Anvin# 362c8531ab3SH. Peter Anvinconfig DECOMPRESS_GZIP 3637856a16eSH. Peter Anvin select ZLIB_INFLATE 364c8531ab3SH. Peter Anvin tristate 365c8531ab3SH. Peter Anvin 366c8531ab3SH. Peter Anvinconfig DECOMPRESS_BZIP2 367c8531ab3SH. Peter Anvin tristate 368c8531ab3SH. Peter Anvin 369c8531ab3SH. Peter Anvinconfig DECOMPRESS_LZMA 370c8531ab3SH. Peter Anvin tristate 371c8531ab3SH. Peter Anvin 3723ebe1243SLasse Collinconfig DECOMPRESS_XZ 3733ebe1243SLasse Collin select XZ_DEC 3743ebe1243SLasse Collin tristate 3753ebe1243SLasse Collin 376cacb246fSAlbin Tonnerreconfig DECOMPRESS_LZO 377cacb246fSAlbin Tonnerre select LZO_DECOMPRESS 378cacb246fSAlbin Tonnerre tristate 379cacb246fSAlbin Tonnerre 380e76e1fdfSKyungsik Leeconfig DECOMPRESS_LZ4 381e76e1fdfSKyungsik Lee select LZ4_DECOMPRESS 382e76e1fdfSKyungsik Lee tristate 383e76e1fdfSKyungsik Lee 3844963bb2bSNick Terrellconfig DECOMPRESS_ZSTD 3854963bb2bSNick Terrell select ZSTD_DECOMPRESS 3864963bb2bSNick Terrell tristate 3874963bb2bSNick Terrell 388c8531ab3SH. Peter Anvin# 389f14f75b8SJes Sorensen# Generic allocator support is selected if needed 390f14f75b8SJes Sorensen# 391f14f75b8SJes Sorensenconfig GENERIC_ALLOCATOR 3926341e62bSChristoph Jaeger bool 393f14f75b8SJes Sorensen 394f14f75b8SJes Sorensen# 3951da177e4SLinus Torvalds# reed solomon support is select'ed if needed 3961da177e4SLinus Torvalds# 3971da177e4SLinus Torvaldsconfig REED_SOLOMON 3981da177e4SLinus Torvalds tristate 3991da177e4SLinus Torvalds 4001da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC8 4016341e62bSChristoph Jaeger bool 4021da177e4SLinus Torvalds 4031da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC8 4046341e62bSChristoph Jaeger bool 4051da177e4SLinus Torvalds 4061da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC16 4076341e62bSChristoph Jaeger bool 4081da177e4SLinus Torvalds 4091da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC16 4106341e62bSChristoph Jaeger bool 4111da177e4SLinus Torvalds 412f7704347SDavid S. Miller# 413437aa565SIvan Djelic# BCH support is selected if needed 414437aa565SIvan Djelic# 415437aa565SIvan Djelicconfig BCH 416437aa565SIvan Djelic tristate 417437aa565SIvan Djelic 418437aa565SIvan Djelicconfig BCH_CONST_PARAMS 4196341e62bSChristoph Jaeger bool 420437aa565SIvan Djelic help 421437aa565SIvan Djelic Drivers may select this option to force specific constant 422437aa565SIvan Djelic values for parameters 'm' (Galois field order) and 't' 423437aa565SIvan Djelic (error correction capability). Those specific values must 424437aa565SIvan Djelic be set by declaring default values for symbols BCH_CONST_M 425437aa565SIvan Djelic and BCH_CONST_T. 426437aa565SIvan Djelic Doing so will enable extra compiler optimizations, 427437aa565SIvan Djelic improving encoding and decoding performance up to 2x for 428437aa565SIvan Djelic usual (m,t) values (typically such that m*t < 200). 429437aa565SIvan Djelic When this option is selected, the BCH library supports 430437aa565SIvan Djelic only a single (m,t) configuration. This is mainly useful 431437aa565SIvan Djelic for NAND flash board drivers requiring known, fixed BCH 432437aa565SIvan Djelic parameters. 433437aa565SIvan Djelic 434437aa565SIvan Djelicconfig BCH_CONST_M 435437aa565SIvan Djelic int 436437aa565SIvan Djelic range 5 15 437437aa565SIvan Djelic help 438437aa565SIvan Djelic Constant value for Galois field order 'm'. If 'k' is the 439437aa565SIvan Djelic number of data bits to protect, 'm' should be chosen such 440437aa565SIvan Djelic that (k + m*t) <= 2**m - 1. 441437aa565SIvan Djelic Drivers should declare a default value for this symbol if 442437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 443437aa565SIvan Djelic 444437aa565SIvan Djelicconfig BCH_CONST_T 445437aa565SIvan Djelic int 446437aa565SIvan Djelic help 447437aa565SIvan Djelic Constant value for error correction capability in bits 't'. 448437aa565SIvan Djelic Drivers should declare a default value for this symbol if 449437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 450437aa565SIvan Djelic 451437aa565SIvan Djelic# 452f7704347SDavid S. Miller# Textsearch support is select'ed if needed 453f7704347SDavid S. Miller# 4542de4ff7bSThomas Grafconfig TEXTSEARCH 4556341e62bSChristoph Jaeger bool 4561da177e4SLinus Torvalds 457df3fb93aSThomas Grafconfig TEXTSEARCH_KMP 458f7704347SDavid S. Miller tristate 459df3fb93aSThomas Graf 4608082e4edSPablo Neira Ayusoconfig TEXTSEARCH_BM 46129cb9f9cSDavid S. Miller tristate 4628082e4edSPablo Neira Ayuso 4636408f79cSThomas Grafconfig TEXTSEARCH_FSM 464f7704347SDavid S. Miller tristate 4656408f79cSThomas Graf 4665db53f3eSJoern Engelconfig BTREE 4676341e62bSChristoph Jaeger bool 4685db53f3eSJoern Engel 469a88cc108SChris Wilsonconfig INTERVAL_TREE 4706341e62bSChristoph Jaeger bool 471a88cc108SChris Wilson help 472a88cc108SChris Wilson Simple, embeddable, interval-tree. Can find the start of an 473a88cc108SChris Wilson overlapping range in log(n) time and then iterate over all 474a88cc108SChris Wilson overlapping nodes. The algorithm is implemented as an 475a88cc108SChris Wilson augmented rbtree. 476a88cc108SChris Wilson 477a88cc108SChris Wilson See: 478a88cc108SChris Wilson 47914bbe3e3SMatthew Wilcox (Oracle) Documentation/core-api/rbtree.rst 480a88cc108SChris Wilson 481a88cc108SChris Wilson for more information. 482a88cc108SChris Wilson 48302c02bf1SMatthew Wilcoxconfig XARRAY_MULTI 48457578c2eSMatthew Wilcox bool 48502c02bf1SMatthew Wilcox help 48602c02bf1SMatthew Wilcox Support entries which occupy multiple consecutive indices in the 48702c02bf1SMatthew Wilcox XArray. 48857578c2eSMatthew Wilcox 4893cb98950SDavid Howellsconfig ASSOCIATIVE_ARRAY 4903cb98950SDavid Howells bool 4913cb98950SDavid Howells help 4923cb98950SDavid Howells Generic associative array. Can be searched and iterated over whilst 4933cb98950SDavid Howells it is being modified. It is also reasonably quick to search and 4943cb98950SDavid Howells modify. The algorithms are non-recursive, and the trees are highly 4953cb98950SDavid Howells capacious. 4963cb98950SDavid Howells 4973cb98950SDavid Howells See: 4983cb98950SDavid Howells 4995fb94e9cSMauro Carvalho Chehab Documentation/core-api/assoc_array.rst 5003cb98950SDavid Howells 5013cb98950SDavid Howells for more information. 5023cb98950SDavid Howells 5035ea81769SAl Viroconfig HAS_IOMEM 5046341e62bSChristoph Jaeger bool 5055ea81769SAl Viro depends on !NO_IOMEM 5065ea81769SAl Viro default y 5075ea81769SAl Viro 508ce816fa8SUwe Kleine-Königconfig HAS_IOPORT_MAP 5096341e62bSChristoph Jaeger bool 510ce816fa8SUwe Kleine-König depends on HAS_IOMEM && !NO_IOPORT_MAP 511ee36c2bfSAl Viro default y 512ee36c2bfSAl Viro 513cf65a0f6SChristoph Hellwigsource "kernel/dma/Kconfig" 514411f0f3eSHeiko Carstens 515e80a0af4SBart Van Asscheconfig SGL_ALLOC 516e80a0af4SBart Van Assche bool 517e80a0af4SBart Van Assche default n 518e80a0af4SBart Van Assche 519a4ce5a48SChristoph Hellwigconfig IOMMU_HELPER 520a4ce5a48SChristoph Hellwig bool 521a4ce5a48SChristoph Hellwig 522928923c7SGeert Uytterhoevenconfig CHECK_SIGNATURE 523928923c7SGeert Uytterhoeven bool 524928923c7SGeert Uytterhoeven 525aab46da0SRusty Russellconfig CPUMASK_OFFSTACK 526aab46da0SRusty Russell bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 527aab46da0SRusty Russell help 528aab46da0SRusty Russell Use dynamic allocation for cpumask_var_t, instead of putting 529aab46da0SRusty Russell them on the stack. This is a bit more expensive, but avoids 530aab46da0SRusty Russell stack overflow. 531aab46da0SRusty Russell 5326f9c07beSYury Norovconfig FORCE_NR_CPUS 5336f9c07beSYury Norov bool "NR_CPUS is set to an actual number of CPUs" 5346f9c07beSYury Norov depends on SMP 5356f9c07beSYury Norov help 5366f9c07beSYury Norov Say Yes if you have NR_CPUS set to an actual number of possible 5376f9c07beSYury Norov CPUs in your system, not to a default value. This forces the core 5386f9c07beSYury Norov code to rely on compile-time value and optimize kernel routines 5396f9c07beSYury Norov better. 5406f9c07beSYury Norov 541c39649c3SBen Hutchingsconfig CPU_RMAP 542c39649c3SBen Hutchings bool 543c39649c3SBen Hutchings depends on SMP 544c39649c3SBen Hutchings 54575957ba3STom Herbertconfig DQL 54675957ba3STom Herbert bool 54775957ba3STom Herbert 548b0125085SGeorge Spelvinconfig GLOB 549b0125085SGeorge Spelvin bool 550b0125085SGeorge Spelvin# This actually supports modular compilation, but the module overhead 551b0125085SGeorge Spelvin# is ridiculous for the amount of code involved. Until an out-of-tree 552b0125085SGeorge Spelvin# driver asks for it, we'll just link it directly it into the kernel 553b0125085SGeorge Spelvin# when required. Since we're ignoring out-of-tree users, there's also 554b0125085SGeorge Spelvin# no need bother prompting for a manual decision: 555b0125085SGeorge Spelvin# prompt "glob_match() function" 556b0125085SGeorge Spelvin help 557b0125085SGeorge Spelvin This option provides a glob_match function for performing 558b0125085SGeorge Spelvin simple text pattern matching. It originated in the ATA code 559b0125085SGeorge Spelvin to blacklist particular drive models, but other device drivers 560b0125085SGeorge Spelvin may need similar functionality. 561b0125085SGeorge Spelvin 562b0125085SGeorge Spelvin All drivers in the Linux kernel tree that require this function 563b0125085SGeorge Spelvin should automatically select this option. Say N unless you 564b0125085SGeorge Spelvin are compiling an out-of tree driver which tells you that it 565b0125085SGeorge Spelvin depends on this. 566b0125085SGeorge Spelvin 5675f9be824SGeorge Spelvinconfig GLOB_SELFTEST 568ba95b045SGeert Uytterhoeven tristate "glob self-test on init" 5695f9be824SGeorge Spelvin depends on GLOB 5705f9be824SGeorge Spelvin help 5715f9be824SGeorge Spelvin This option enables a simple self-test of the glob_match 5725f9be824SGeorge Spelvin function on startup. It is primarily useful for people 5735f9be824SGeorge Spelvin working on the code to ensure they haven't introduced any 5745f9be824SGeorge Spelvin regressions. 5755f9be824SGeorge Spelvin 5765f9be824SGeorge Spelvin It only adds a little bit of code and slows kernel boot (or 5775f9be824SGeorge Spelvin module load) by a small amount, so you're welcome to play with 5785f9be824SGeorge Spelvin it, but you probably don't need it. 5795f9be824SGeorge Spelvin 580e9cc8bddSGeert Uytterhoeven# 581e9cc8bddSGeert Uytterhoeven# Netlink attribute parsing support is select'ed if needed 582e9cc8bddSGeert Uytterhoeven# 583e9cc8bddSGeert Uytterhoevenconfig NLATTR 584e9cc8bddSGeert Uytterhoeven bool 585e9cc8bddSGeert Uytterhoeven 58609d4e0edSPaul Mackerras# 58709d4e0edSPaul Mackerras# Generic 64-bit atomic support is selected if needed 58809d4e0edSPaul Mackerras# 58909d4e0edSPaul Mackerrasconfig GENERIC_ATOMIC64 59009d4e0edSPaul Mackerras bool 59109d4e0edSPaul Mackerras 592b411b363SPhilipp Reisnerconfig LRU_CACHE 593b411b363SPhilipp Reisner tristate 594b411b363SPhilipp Reisner 595c6df4b17SDavid Millerconfig CLZ_TAB 596c6df4b17SDavid Miller bool 597c6df4b17SDavid Miller 598511cbce2SChristoph Hellwigconfig IRQ_POLL 599511cbce2SChristoph Hellwig bool "IRQ polling library" 600511cbce2SChristoph Hellwig help 601511cbce2SChristoph Hellwig Helper library to poll interrupt mitigation using polling. 602511cbce2SChristoph Hellwig 603d9c46b18SDmitry Kasatkinconfig MPILIB 6042e5f094bSDmitry Kasatkin tristate 605c6df4b17SDavid Miller select CLZ_TAB 606d9c46b18SDmitry Kasatkin help 607d9c46b18SDmitry Kasatkin Multiprecision maths library from GnuPG. 608d9c46b18SDmitry Kasatkin It is used to implement RSA digital signature verification, 609d9c46b18SDmitry Kasatkin which is used by IMA/EVM digital signature extension. 610d9c46b18SDmitry Kasatkin 6115e8898e9SDmitry Kasatkinconfig SIGNATURE 6122e5f094bSDmitry Kasatkin tristate 6130d1f64f6SDmitry Kasatkin depends on KEYS 6140d1f64f6SDmitry Kasatkin select CRYPTO 615be440ec7SDmitry Kasatkin select CRYPTO_SHA1 616051dbb91SDmitry Kasatkin select MPILIB 617051dbb91SDmitry Kasatkin help 618051dbb91SDmitry Kasatkin Digital signature verification. Currently only RSA is supported. 619051dbb91SDmitry Kasatkin Implementation is done using GnuPG MPI library 620051dbb91SDmitry Kasatkin 6214f75da36STal Gilboaconfig DIMLIB 622424adc32SUwe Kleine-König bool 6234f75da36STal Gilboa help 6244f75da36STal Gilboa Dynamic Interrupt Moderation library. 625991ad2b2SRandy Dunlap Implements an algorithm for dynamically changing CQ moderation values 6264f75da36STal Gilboa according to run time performance. 6274f75da36STal Gilboa 628ab253839SDavid Daney# 629ab253839SDavid Daney# libfdt files, only selected if needed. 630ab253839SDavid Daney# 631ab253839SDavid Daneyconfig LIBFDT 632ab253839SDavid Daney bool 633ab253839SDavid Daney 634a77ad6eaSDavid Howellsconfig OID_REGISTRY 635a77ad6eaSDavid Howells tristate 636a77ad6eaSDavid Howells help 637a77ad6eaSDavid Howells Enable fast lookup object identifier registry. 638a77ad6eaSDavid Howells 6390635eb8aSMatthew Garrettconfig UCS2_STRING 6400635eb8aSMatthew Garrett tristate 6410635eb8aSMatthew Garrett 64200b26474SVincenzo Frascino# 64300b26474SVincenzo Frascino# generic vdso 64400b26474SVincenzo Frascino# 64500b26474SVincenzo Frascinosource "lib/vdso/Kconfig" 64600b26474SVincenzo Frascino 647ee89bd6bSGeert Uytterhoevensource "lib/fonts/Kconfig" 648ee89bd6bSGeert Uytterhoeven 649f8bcbe62SRobert Jarzmikconfig SG_SPLIT 650f8bcbe62SRobert Jarzmik def_bool n 651f8bcbe62SRobert Jarzmik help 6527f7e92f7SGeert Uytterhoeven Provides a helper to split scatterlists into chunks, each chunk being 6537f7e92f7SGeert Uytterhoeven a scatterlist. This should be selected by a driver or an API which 6547f7e92f7SGeert Uytterhoeven whishes to split a scatterlist amongst multiple DMA channels. 655f8bcbe62SRobert Jarzmik 6569b1d6c89SMing Linconfig SG_POOL 6579b1d6c89SMing Lin def_bool n 6589b1d6c89SMing Lin help 6599b1d6c89SMing Lin Provides a helper to allocate chained scatterlists. This should be 6609b1d6c89SMing Lin selected by a driver or an API which whishes to allocate chained 6619b1d6c89SMing Lin scatterlist. 6629b1d6c89SMing Lin 663308c09f1SLaura Abbott# 664308c09f1SLaura Abbott# sg chaining option 665308c09f1SLaura Abbott# 666308c09f1SLaura Abbott 6677c703e54SChristoph Hellwigconfig ARCH_NO_SG_CHAIN 668308c09f1SLaura Abbott def_bool n 669308c09f1SLaura Abbott 67061031952SRoss Zwislerconfig ARCH_HAS_PMEM_API 67161031952SRoss Zwisler bool 67261031952SRoss Zwisler 67333dd7075SDan Williamsconfig MEMREGION 67433dd7075SDan Williams bool 67533dd7075SDan Williams 6769ffc1d19SDan Williamsconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN 6779ffc1d19SDan Williams bool 6789ffc1d19SDan Williams 679bd79f947SChristoph Hellwig# use memcpy to implement user copies for nommu architectures 680bd79f947SChristoph Hellwigconfig UACCESS_MEMCPY 681bd79f947SChristoph Hellwig bool 682bd79f947SChristoph Hellwig 6830aed55afSDan Williamsconfig ARCH_HAS_UACCESS_FLUSHCACHE 6840aed55afSDan Williams bool 6850aed55afSDan Williams 686ec6347bbSDan Williams# arch has a concept of a recoverable synchronous exception due to a 687ec6347bbSDan Williams# memory-read error like x86 machine-check or ARM data-abort, and 688ec6347bbSDan Williams# implements copy_mc_to_{user,kernel} to abort and report 689ec6347bbSDan Williams# 'bytes-transferred' if that exception fires when accessing the source 690ec6347bbSDan Williams# buffer. 691ec6347bbSDan Williamsconfig ARCH_HAS_COPY_MC 692522239b4SDan Williams bool 693522239b4SDan Williams 694214d8ca6SThomas Gleixner# Temporary. Goes away when all archs are cleaned up 695214d8ca6SThomas Gleixnerconfig ARCH_STACKWALK 696214d8ca6SThomas Gleixner bool 697214d8ca6SThomas Gleixner 698cd11016eSAlexander Potapenkoconfig STACKDEPOT 699cd11016eSAlexander Potapenko bool 700cd11016eSAlexander Potapenko select STACKTRACE 701cd11016eSAlexander Potapenko 7022dba5eb1SVlastimil Babkaconfig STACKDEPOT_ALWAYS_INIT 7032dba5eb1SVlastimil Babka bool 7042dba5eb1SVlastimil Babka select STACKDEPOT 7052dba5eb1SVlastimil Babka 7064e66934eSEric Dumazetconfig REF_TRACKER 7074e66934eSEric Dumazet bool 7084e66934eSEric Dumazet depends on STACKTRACE_SUPPORT 7094e66934eSEric Dumazet select STACKDEPOT 7104e66934eSEric Dumazet 71188459642SOmar Sandovalconfig SBITMAP 71288459642SOmar Sandoval bool 71388459642SOmar Sandoval 71444091d29SJiri Pirkoconfig PARMAN 7159d25af69SGeert Uytterhoeven tristate "parman" if COMPILE_TEST 71644091d29SJiri Pirko 7173dfdecc6SRandy Dunlapconfig OBJAGG 7183dfdecc6SRandy Dunlap tristate "objagg" if COMPILE_TEST 7193dfdecc6SRandy Dunlap 7202de4ff7bSThomas Grafendmenu 721b35cd988SPalmer Dabbelt 72280b0ca98SChristoph Hellwigconfig GENERIC_IOREMAP 72380b0ca98SChristoph Hellwig bool 72480b0ca98SChristoph Hellwig 725e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHLDI3 726b35cd988SPalmer Dabbelt bool 727b35cd988SPalmer Dabbelt 728e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHRDI3 729b35cd988SPalmer Dabbelt bool 730b35cd988SPalmer Dabbelt 731e3d59805SMatt Redfearnconfig GENERIC_LIB_LSHRDI3 732b35cd988SPalmer Dabbelt bool 733b35cd988SPalmer Dabbelt 734e3d59805SMatt Redfearnconfig GENERIC_LIB_MULDI3 735b35cd988SPalmer Dabbelt bool 736b35cd988SPalmer Dabbelt 737e3d59805SMatt Redfearnconfig GENERIC_LIB_CMPDI2 738b35cd988SPalmer Dabbelt bool 739b35cd988SPalmer Dabbelt 740e3d59805SMatt Redfearnconfig GENERIC_LIB_UCMPDI2 741b35cd988SPalmer Dabbelt bool 742b8265621SJacob Keller 743527701edSPalmer Dabbeltconfig GENERIC_LIB_DEVMEM_IS_ALLOWED 744527701edSPalmer Dabbelt bool 745527701edSPalmer Dabbelt 746b8265621SJacob Kellerconfig PLDMFW 747b8265621SJacob Keller bool 748b8265621SJacob Keller default n 749b0706762SJames Bottomley 750b0706762SJames Bottomleyconfig ASN1_ENCODER 751b0706762SJames Bottomley tristate 752cd705ea8SMichael Walle 753cd705ea8SMichael Walleconfig POLYNOMIAL 754cd705ea8SMichael Walle tristate 755