xref: /linux/lib/Kconfig (revision ca2e334232b6cd4ae5af9da2df83c009d042aefb)
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"
27554aae35SVladimir Oltean	default n
28554aae35SVladimir Oltean	help
29554aae35SVladimir Oltean	  This option provides the packing() helper function, which permits
30554aae35SVladimir Oltean	  converting bitfields between a CPU-usable representation and a
31554aae35SVladimir Oltean	  memory representation that can have any combination of these quirks:
32554aae35SVladimir Oltean	    - Is little endian (bytes are reversed within a 32-bit group)
33554aae35SVladimir Oltean	    - The least-significant 32-bit word comes first (within a 64-bit
34554aae35SVladimir Oltean	      group)
35554aae35SVladimir Oltean	    - The most significant bit of a byte is at its right (bit 0 of a
36554aae35SVladimir Oltean	      register description is numerically 2^7).
37554aae35SVladimir Oltean	  Drivers may use these helpers to match the bit indices as described
38554aae35SVladimir Oltean	  in the data sheets of the peripherals they are in control of.
39554aae35SVladimir Oltean
40554aae35SVladimir Oltean	  When in doubt, say N.
41554aae35SVladimir Oltean
42a5cfc1ecSAkinobu Mitaconfig BITREVERSE
43a5cfc1ecSAkinobu Mita	tristate
44a5cfc1ecSAkinobu Mita
45556d2f05SYalin Wangconfig HAVE_ARCH_BITREVERSE
46841c0090SChristoph Jaeger	bool
47556d2f05SYalin Wang	default n
48556d2f05SYalin Wang	depends on BITREVERSE
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
532922585bSDavid S. Millerconfig GENERIC_STRNCPY_FROM_USER
542922585bSDavid S. Miller	bool
552922585bSDavid S. Miller
56a08c5356SLinus Torvaldsconfig GENERIC_STRNLEN_USER
57a08c5356SLinus Torvalds	bool
58a08c5356SLinus Torvalds
594cd5773aSAndy Shevchenkoconfig GENERIC_NET_UTILS
604cd5773aSAndy Shevchenko	bool
614cd5773aSAndy Shevchenko
6219870defSAlexander van Heukelumconfig GENERIC_FIND_FIRST_BIT
639ba16087SJan Beulich	bool
6419870defSAlexander van Heukelum
652c64e9cbSAndy Shevchenkosource "lib/math/Kconfig"
662c64e9cbSAndy Shevchenko
67b923650bSMichael S. Tsirkinconfig NO_GENERIC_PCI_IOPORT_MAP
68b923650bSMichael S. Tsirkin	bool
69b923650bSMichael S. Tsirkin
7066eab4dfSMichael S. Tsirkinconfig GENERIC_PCI_IOMAP
7166eab4dfSMichael S. Tsirkin	bool
7266eab4dfSMichael S. Tsirkin
734673ca8eSMichael S. Tsirkinconfig GENERIC_IOMAP
744673ca8eSMichael S. Tsirkin	bool
7566eab4dfSMichael S. Tsirkin	select GENERIC_PCI_IOMAP
764673ca8eSMichael S. Tsirkin
774ccf4beaSWolfram Sangconfig STMP_DEVICE
784ccf4beaSWolfram Sang	bool
794ccf4beaSWolfram Sang
80bc08b449SLinus Torvaldsconfig ARCH_USE_CMPXCHG_LOCKREF
81bc08b449SLinus Torvalds	bool
82bc08b449SLinus Torvalds
8372d93104SLinus Torvaldsconfig ARCH_HAS_FAST_MULTIPLIER
8472d93104SLinus Torvalds	bool
8572d93104SLinus Torvalds
862ce0d7f9SMark Brownconfig ARCH_USE_SYM_ANNOTATIONS
872ce0d7f9SMark Brown	bool
882ce0d7f9SMark Brown
89031e3601SZhichang Yuanconfig INDIRECT_PIO
90031e3601SZhichang Yuan	bool "Access I/O in non-MMIO mode"
91031e3601SZhichang Yuan	depends on ARM64
92031e3601SZhichang Yuan	help
93031e3601SZhichang Yuan	  On some platforms where no separate I/O space exists, there are I/O
94031e3601SZhichang Yuan	  hosts which can not be accessed in MMIO mode. Using the logical PIO
95031e3601SZhichang Yuan	  mechanism, the host-local I/O resource can be mapped into system
96031e3601SZhichang Yuan	  logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
97031e3601SZhichang Yuan	  system can access the I/O devices with the mapped-logic PIO through
98031e3601SZhichang Yuan	  I/O accessors.
99031e3601SZhichang Yuan
100031e3601SZhichang Yuan	  This way has relatively little I/O performance cost. Please make
101031e3601SZhichang Yuan	  sure your devices really need this configure item enabled.
102031e3601SZhichang Yuan
103031e3601SZhichang Yuan	  When in doubt, say N.
104031e3601SZhichang Yuan
105*ca2e3342SJohannes Bergconfig INDIRECT_IOMEM
106*ca2e3342SJohannes Berg	bool
107*ca2e3342SJohannes Berg	help
108*ca2e3342SJohannes Berg	  This is selected by other options/architectures to provide the
109*ca2e3342SJohannes Berg	  emulated iomem accessors.
110*ca2e3342SJohannes Berg
111*ca2e3342SJohannes Bergconfig INDIRECT_IOMEM_FALLBACK
112*ca2e3342SJohannes Berg	bool
113*ca2e3342SJohannes Berg	depends on INDIRECT_IOMEM
114*ca2e3342SJohannes Berg	help
115*ca2e3342SJohannes Berg	  If INDIRECT_IOMEM is selected, this enables falling back to plain
116*ca2e3342SJohannes Berg	  mmio accesses when the IO memory address is not a registered
117*ca2e3342SJohannes Berg	  emulated region.
118*ca2e3342SJohannes Berg
1191da177e4SLinus Torvaldsconfig CRC_CCITT
1201da177e4SLinus Torvalds	tristate "CRC-CCITT functions"
1211da177e4SLinus Torvalds	help
1221da177e4SLinus Torvalds	  This option is provided for the case where no in-kernel-tree
1231da177e4SLinus Torvalds	  modules require CRC-CCITT functions, but a module built outside
1241da177e4SLinus Torvalds	  the kernel tree does. Such modules that use library CRC-CCITT
1251da177e4SLinus Torvalds	  functions require M here.
1261da177e4SLinus Torvalds
1277657ec1fSEvgeniy Polyakovconfig CRC16
1287657ec1fSEvgeniy Polyakov	tristate "CRC16 functions"
1297657ec1fSEvgeniy Polyakov	help
1307657ec1fSEvgeniy Polyakov	  This option is provided for the case where no in-kernel-tree
1317657ec1fSEvgeniy Polyakov	  modules require CRC16 functions, but a module built outside
1327657ec1fSEvgeniy Polyakov	  the kernel tree does. Such modules that use library CRC16
1337657ec1fSEvgeniy Polyakov	  functions require M here.
1347657ec1fSEvgeniy Polyakov
135f11f594eSMartin K. Petersenconfig CRC_T10DIF
136f11f594eSMartin K. Petersen	tristate "CRC calculation for the T10 Data Integrity Field"
13768411521SHerbert Xu	select CRYPTO
13868411521SHerbert Xu	select CRYPTO_CRCT10DIF
139f11f594eSMartin K. Petersen	help
140f11f594eSMartin K. Petersen	  This option is only needed if a module that's not in the
141f11f594eSMartin K. Petersen	  kernel tree needs to calculate CRC checks for use with the
142f11f594eSMartin K. Petersen	  SCSI data integrity subsystem.
143f11f594eSMartin K. Petersen
1443e7cbae7SIvo van Doornconfig CRC_ITU_T
1453e7cbae7SIvo van Doorn	tristate "CRC ITU-T V.41 functions"
1463e7cbae7SIvo van Doorn	help
1473e7cbae7SIvo van Doorn	  This option is provided for the case where no in-kernel-tree
1483e7cbae7SIvo van Doorn	  modules require CRC ITU-T V.41 functions, but a module built outside
1493e7cbae7SIvo van Doorn	  the kernel tree does. Such modules that use library CRC ITU-T V.41
1503e7cbae7SIvo van Doorn	  functions require M here.
1513e7cbae7SIvo van Doorn
1521da177e4SLinus Torvaldsconfig CRC32
15346c5801eSDarrick J. Wong	tristate "CRC32/CRC32c functions"
1541da177e4SLinus Torvalds	default y
155906d66dfSAkinobu Mita	select BITREVERSE
1561da177e4SLinus Torvalds	help
1571da177e4SLinus Torvalds	  This option is provided for the case where no in-kernel-tree
15846c5801eSDarrick J. Wong	  modules require CRC32/CRC32c functions, but a module built outside
15946c5801eSDarrick J. Wong	  the kernel tree does. Such modules that use library CRC32/CRC32c
16046c5801eSDarrick J. Wong	  functions require M here.
1611da177e4SLinus Torvalds
1623863ef31SBob Pearsonconfig CRC32_SELFTEST
1635fb7f874SGeert Uytterhoeven	tristate "CRC32 perform self test on init"
1643863ef31SBob Pearson	depends on CRC32
1653863ef31SBob Pearson	help
1663863ef31SBob Pearson	  This option enables the CRC32 library functions to perform a
1673863ef31SBob Pearson	  self test on initialization. The self test computes crc32_le
1683863ef31SBob Pearson	  and crc32_be over byte strings with random alignment and length
1693863ef31SBob Pearson	  and computes the total elapsed time and number of bytes processed.
1703863ef31SBob Pearson
1715cde7656SDarrick J. Wongchoice
1725cde7656SDarrick J. Wong	prompt "CRC32 implementation"
1735cde7656SDarrick J. Wong	depends on CRC32
1745cde7656SDarrick J. Wong	default CRC32_SLICEBY8
17582edb4baSDarrick J. Wong	help
17682edb4baSDarrick J. Wong	  This option allows a kernel builder to override the default choice
17782edb4baSDarrick J. Wong	  of CRC32 algorithm.  Choose the default ("slice by 8") unless you
17882edb4baSDarrick J. Wong	  know that you need one of the others.
1795cde7656SDarrick J. Wong
1805cde7656SDarrick J. Wongconfig CRC32_SLICEBY8
1815cde7656SDarrick J. Wong	bool "Slice by 8 bytes"
1825cde7656SDarrick J. Wong	help
1835cde7656SDarrick J. Wong	  Calculate checksum 8 bytes at a time with a clever slicing algorithm.
1845cde7656SDarrick J. Wong	  This is the fastest algorithm, but comes with a 8KiB lookup table.
1855cde7656SDarrick J. Wong	  Most modern processors have enough cache to hold this table without
1865cde7656SDarrick J. Wong	  thrashing the cache.
1875cde7656SDarrick J. Wong
1885cde7656SDarrick J. Wong	  This is the default implementation choice.  Choose this one unless
1895cde7656SDarrick J. Wong	  you have a good reason not to.
1905cde7656SDarrick J. Wong
1915cde7656SDarrick J. Wongconfig CRC32_SLICEBY4
1925cde7656SDarrick J. Wong	bool "Slice by 4 bytes"
1935cde7656SDarrick J. Wong	help
1945cde7656SDarrick J. Wong	  Calculate checksum 4 bytes at a time with a clever slicing algorithm.
1955cde7656SDarrick J. Wong	  This is a bit slower than slice by 8, but has a smaller 4KiB lookup
1965cde7656SDarrick J. Wong	  table.
1975cde7656SDarrick J. Wong
1985cde7656SDarrick J. Wong	  Only choose this option if you know what you are doing.
1995cde7656SDarrick J. Wong
2005cde7656SDarrick J. Wongconfig CRC32_SARWATE
2015cde7656SDarrick J. Wong	bool "Sarwate's Algorithm (one byte at a time)"
2025cde7656SDarrick J. Wong	help
2035cde7656SDarrick J. Wong	  Calculate checksum a byte at a time using Sarwate's algorithm.  This
2045cde7656SDarrick J. Wong	  is not particularly fast, but has a small 256 byte lookup table.
2055cde7656SDarrick J. Wong
2065cde7656SDarrick J. Wong	  Only choose this option if you know what you are doing.
2075cde7656SDarrick J. Wong
2085cde7656SDarrick J. Wongconfig CRC32_BIT
2095cde7656SDarrick J. Wong	bool "Classic Algorithm (one bit at a time)"
2105cde7656SDarrick J. Wong	help
2115cde7656SDarrick J. Wong	  Calculate checksum one bit at a time.  This is VERY slow, but has
2125cde7656SDarrick J. Wong	  no lookup table.  This is provided as a debugging option.
2135cde7656SDarrick J. Wong
2145cde7656SDarrick J. Wong	  Only choose this option if you are debugging crc32.
2155cde7656SDarrick J. Wong
2165cde7656SDarrick J. Wongendchoice
2175cde7656SDarrick J. Wong
218feba04fdSColy Liconfig CRC64
219feba04fdSColy Li	tristate "CRC64 functions"
220feba04fdSColy Li	help
221feba04fdSColy Li	  This option is provided for the case where no in-kernel-tree
222feba04fdSColy Li	  modules require CRC64 functions, but a module built outside
223feba04fdSColy Li	  the kernel tree does. Such modules that use library CRC64
224feba04fdSColy Li	  functions require M here.
225feba04fdSColy Li
2260cbaa448SJeremy Kerrconfig CRC4
2270cbaa448SJeremy Kerr	tristate "CRC4 functions"
2280cbaa448SJeremy Kerr	help
2290cbaa448SJeremy Kerr	  This option is provided for the case where no in-kernel-tree
2300cbaa448SJeremy Kerr	  modules require CRC4 functions, but a module built outside
2310cbaa448SJeremy Kerr	  the kernel tree does. Such modules that use library CRC4
2320cbaa448SJeremy Kerr	  functions require M here.
2330cbaa448SJeremy Kerr
234ad241528SJan Nikitenkoconfig CRC7
235ad241528SJan Nikitenko	tristate "CRC7 functions"
236ad241528SJan Nikitenko	help
237ad241528SJan Nikitenko	  This option is provided for the case where no in-kernel-tree
238ad241528SJan Nikitenko	  modules require CRC7 functions, but a module built outside
239ad241528SJan Nikitenko	  the kernel tree does. Such modules that use library CRC7
240ad241528SJan Nikitenko	  functions require M here.
241ad241528SJan Nikitenko
2421da177e4SLinus Torvaldsconfig LIBCRC32C
2431da177e4SLinus Torvalds	tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
24493027354SHerbert Xu	select CRYPTO
24569c35efcSHerbert Xu	select CRYPTO_CRC32C
2461da177e4SLinus Torvalds	help
2471da177e4SLinus Torvalds	  This option is provided for the case where no in-kernel-tree
2481da177e4SLinus Torvalds	  modules require CRC32c functions, but a module built outside the
2491da177e4SLinus Torvalds	  kernel tree does. Such modules that use library CRC32c functions
2501da177e4SLinus Torvalds	  require M here.  See Castagnoli93.
2511da177e4SLinus Torvalds	  Module will be libcrc32c.
2521da177e4SLinus Torvalds
2537150962dSArend van Sprielconfig CRC8
2547150962dSArend van Spriel	tristate "CRC8 function"
2557150962dSArend van Spriel	help
2567150962dSArend van Spriel	  This option provides CRC8 function. Drivers may select this
2577150962dSArend van Spriel	  when they need to do cyclic redundancy check according CRC8
2587150962dSArend van Spriel	  algorithm. Module will be called crc8.
2597150962dSArend van Spriel
2605d240522SNick Terrellconfig XXHASH
2615d240522SNick Terrell	tristate
2625d240522SNick Terrell
263e65e1fc2SAl Viroconfig AUDIT_GENERIC
264e65e1fc2SAl Viro	bool
265e65e1fc2SAl Viro	depends on AUDIT && !AUDIT_ARCH
266e65e1fc2SAl Viro	default y
267e65e1fc2SAl Viro
2684b588411SAKASHI Takahiroconfig AUDIT_ARCH_COMPAT_GENERIC
2694b588411SAKASHI Takahiro	bool
2704b588411SAKASHI Takahiro	default n
2714b588411SAKASHI Takahiro
2724b588411SAKASHI Takahiroconfig AUDIT_COMPAT_GENERIC
2734b588411SAKASHI Takahiro	bool
2744b588411SAKASHI Takahiro	depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
2754b588411SAKASHI Takahiro	default y
2764b588411SAKASHI Takahiro
277a6a9c0f1SDaniel Borkmannconfig RANDOM32_SELFTEST
278a6a9c0f1SDaniel Borkmann	bool "PRNG perform self test on init"
279a6a9c0f1SDaniel Borkmann	help
280a6a9c0f1SDaniel Borkmann	  This option enables the 32 bit PRNG library functions to perform a
281a6a9c0f1SDaniel Borkmann	  self test on initialization.
282a6a9c0f1SDaniel Borkmann
2831da177e4SLinus Torvalds#
2841da177e4SLinus Torvalds# compression support is select'ed if needed
2851da177e4SLinus Torvalds#
2862da572c9SDan Streetmanconfig 842_COMPRESS
2875b571677SArnd Bergmann	select CRC32
2882da572c9SDan Streetman	tristate
2892da572c9SDan Streetman
2902da572c9SDan Streetmanconfig 842_DECOMPRESS
2915b571677SArnd Bergmann	select CRC32
2922da572c9SDan Streetman	tristate
2932da572c9SDan Streetman
2941da177e4SLinus Torvaldsconfig ZLIB_INFLATE
2951da177e4SLinus Torvalds	tristate
2961da177e4SLinus Torvalds
2971da177e4SLinus Torvaldsconfig ZLIB_DEFLATE
2981da177e4SLinus Torvalds	tristate
2991fd4e5c3SAndrew Morton	select BITREVERSE
3001da177e4SLinus Torvalds
301aa5b395bSMikhail Zaslonkoconfig ZLIB_DFLTCC
302aa5b395bSMikhail Zaslonko	def_bool y
303aa5b395bSMikhail Zaslonko	depends on S390
304aa5b395bSMikhail Zaslonko	prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
305aa5b395bSMikhail Zaslonko	help
306aa5b395bSMikhail Zaslonko	 Enable s390x hardware support for zlib in the kernel.
307aa5b395bSMikhail Zaslonko
30864c70b1cSRichard Purdieconfig LZO_COMPRESS
30964c70b1cSRichard Purdie	tristate
31064c70b1cSRichard Purdie
31164c70b1cSRichard Purdieconfig LZO_DECOMPRESS
31264c70b1cSRichard Purdie	tristate
31364c70b1cSRichard Purdie
314c72ac7a1SChanho Minconfig LZ4_COMPRESS
315c72ac7a1SChanho Min	tristate
316c72ac7a1SChanho Min
317c72ac7a1SChanho Minconfig LZ4HC_COMPRESS
318c72ac7a1SChanho Min	tristate
319c72ac7a1SChanho Min
320e76e1fdfSKyungsik Leeconfig LZ4_DECOMPRESS
321e76e1fdfSKyungsik Lee	tristate
322e76e1fdfSKyungsik Lee
32373f3d1b4SNick Terrellconfig ZSTD_COMPRESS
32473f3d1b4SNick Terrell	select XXHASH
32573f3d1b4SNick Terrell	tristate
32673f3d1b4SNick Terrell
32773f3d1b4SNick Terrellconfig ZSTD_DECOMPRESS
32873f3d1b4SNick Terrell	select XXHASH
32973f3d1b4SNick Terrell	tristate
33073f3d1b4SNick Terrell
33124fa0402SLasse Collinsource "lib/xz/Kconfig"
33224fa0402SLasse Collin
3331da177e4SLinus Torvalds#
334c8531ab3SH. Peter Anvin# These all provide a common interface (hence the apparent duplication with
335c8531ab3SH. Peter Anvin# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
336c8531ab3SH. Peter Anvin#
337c8531ab3SH. Peter Anvinconfig DECOMPRESS_GZIP
3387856a16eSH. Peter Anvin	select ZLIB_INFLATE
339c8531ab3SH. Peter Anvin	tristate
340c8531ab3SH. Peter Anvin
341c8531ab3SH. Peter Anvinconfig DECOMPRESS_BZIP2
342c8531ab3SH. Peter Anvin	tristate
343c8531ab3SH. Peter Anvin
344c8531ab3SH. Peter Anvinconfig DECOMPRESS_LZMA
345c8531ab3SH. Peter Anvin	tristate
346c8531ab3SH. Peter Anvin
3473ebe1243SLasse Collinconfig DECOMPRESS_XZ
3483ebe1243SLasse Collin	select XZ_DEC
3493ebe1243SLasse Collin	tristate
3503ebe1243SLasse Collin
351cacb246fSAlbin Tonnerreconfig DECOMPRESS_LZO
352cacb246fSAlbin Tonnerre	select LZO_DECOMPRESS
353cacb246fSAlbin Tonnerre	tristate
354cacb246fSAlbin Tonnerre
355e76e1fdfSKyungsik Leeconfig DECOMPRESS_LZ4
356e76e1fdfSKyungsik Lee	select LZ4_DECOMPRESS
357e76e1fdfSKyungsik Lee	tristate
358e76e1fdfSKyungsik Lee
3594963bb2bSNick Terrellconfig DECOMPRESS_ZSTD
3604963bb2bSNick Terrell	select ZSTD_DECOMPRESS
3614963bb2bSNick Terrell	tristate
3624963bb2bSNick Terrell
363c8531ab3SH. Peter Anvin#
364f14f75b8SJes Sorensen# Generic allocator support is selected if needed
365f14f75b8SJes Sorensen#
366f14f75b8SJes Sorensenconfig GENERIC_ALLOCATOR
3676341e62bSChristoph Jaeger	bool
368f14f75b8SJes Sorensen
369f14f75b8SJes Sorensen#
3701da177e4SLinus Torvalds# reed solomon support is select'ed if needed
3711da177e4SLinus Torvalds#
3721da177e4SLinus Torvaldsconfig REED_SOLOMON
3731da177e4SLinus Torvalds	tristate
3741da177e4SLinus Torvalds
3751da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC8
3766341e62bSChristoph Jaeger	bool
3771da177e4SLinus Torvalds
3781da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC8
3796341e62bSChristoph Jaeger	bool
3801da177e4SLinus Torvalds
3811da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC16
3826341e62bSChristoph Jaeger	bool
3831da177e4SLinus Torvalds
3841da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC16
3856341e62bSChristoph Jaeger	bool
3861da177e4SLinus Torvalds
387f7704347SDavid S. Miller#
388437aa565SIvan Djelic# BCH support is selected if needed
389437aa565SIvan Djelic#
390437aa565SIvan Djelicconfig BCH
391437aa565SIvan Djelic	tristate
392437aa565SIvan Djelic
393437aa565SIvan Djelicconfig BCH_CONST_PARAMS
3946341e62bSChristoph Jaeger	bool
395437aa565SIvan Djelic	help
396437aa565SIvan Djelic	  Drivers may select this option to force specific constant
397437aa565SIvan Djelic	  values for parameters 'm' (Galois field order) and 't'
398437aa565SIvan Djelic	  (error correction capability). Those specific values must
399437aa565SIvan Djelic	  be set by declaring default values for symbols BCH_CONST_M
400437aa565SIvan Djelic	  and BCH_CONST_T.
401437aa565SIvan Djelic	  Doing so will enable extra compiler optimizations,
402437aa565SIvan Djelic	  improving encoding and decoding performance up to 2x for
403437aa565SIvan Djelic	  usual (m,t) values (typically such that m*t < 200).
404437aa565SIvan Djelic	  When this option is selected, the BCH library supports
405437aa565SIvan Djelic	  only a single (m,t) configuration. This is mainly useful
406437aa565SIvan Djelic	  for NAND flash board drivers requiring known, fixed BCH
407437aa565SIvan Djelic	  parameters.
408437aa565SIvan Djelic
409437aa565SIvan Djelicconfig BCH_CONST_M
410437aa565SIvan Djelic	int
411437aa565SIvan Djelic	range 5 15
412437aa565SIvan Djelic	help
413437aa565SIvan Djelic	  Constant value for Galois field order 'm'. If 'k' is the
414437aa565SIvan Djelic	  number of data bits to protect, 'm' should be chosen such
415437aa565SIvan Djelic	  that (k + m*t) <= 2**m - 1.
416437aa565SIvan Djelic	  Drivers should declare a default value for this symbol if
417437aa565SIvan Djelic	  they select option BCH_CONST_PARAMS.
418437aa565SIvan Djelic
419437aa565SIvan Djelicconfig BCH_CONST_T
420437aa565SIvan Djelic	int
421437aa565SIvan Djelic	help
422437aa565SIvan Djelic	  Constant value for error correction capability in bits 't'.
423437aa565SIvan Djelic	  Drivers should declare a default value for this symbol if
424437aa565SIvan Djelic	  they select option BCH_CONST_PARAMS.
425437aa565SIvan Djelic
426437aa565SIvan Djelic#
427f7704347SDavid S. Miller# Textsearch support is select'ed if needed
428f7704347SDavid S. Miller#
4292de4ff7bSThomas Grafconfig TEXTSEARCH
4306341e62bSChristoph Jaeger	bool
4311da177e4SLinus Torvalds
432df3fb93aSThomas Grafconfig TEXTSEARCH_KMP
433f7704347SDavid S. Miller	tristate
434df3fb93aSThomas Graf
4358082e4edSPablo Neira Ayusoconfig TEXTSEARCH_BM
43629cb9f9cSDavid S. Miller	tristate
4378082e4edSPablo Neira Ayuso
4386408f79cSThomas Grafconfig TEXTSEARCH_FSM
439f7704347SDavid S. Miller	tristate
4406408f79cSThomas Graf
4415db53f3eSJoern Engelconfig BTREE
4426341e62bSChristoph Jaeger	bool
4435db53f3eSJoern Engel
444a88cc108SChris Wilsonconfig INTERVAL_TREE
4456341e62bSChristoph Jaeger	bool
446a88cc108SChris Wilson	help
447a88cc108SChris Wilson	  Simple, embeddable, interval-tree. Can find the start of an
448a88cc108SChris Wilson	  overlapping range in log(n) time and then iterate over all
449a88cc108SChris Wilson	  overlapping nodes. The algorithm is implemented as an
450a88cc108SChris Wilson	  augmented rbtree.
451a88cc108SChris Wilson
452a88cc108SChris Wilson	  See:
453a88cc108SChris Wilson
45414bbe3e3SMatthew Wilcox (Oracle)		Documentation/core-api/rbtree.rst
455a88cc108SChris Wilson
456a88cc108SChris Wilson	  for more information.
457a88cc108SChris Wilson
45802c02bf1SMatthew Wilcoxconfig XARRAY_MULTI
45957578c2eSMatthew Wilcox	bool
46002c02bf1SMatthew Wilcox	help
46102c02bf1SMatthew Wilcox	  Support entries which occupy multiple consecutive indices in the
46202c02bf1SMatthew Wilcox	  XArray.
46357578c2eSMatthew Wilcox
4643cb98950SDavid Howellsconfig ASSOCIATIVE_ARRAY
4653cb98950SDavid Howells	bool
4663cb98950SDavid Howells	help
4673cb98950SDavid Howells	  Generic associative array.  Can be searched and iterated over whilst
4683cb98950SDavid Howells	  it is being modified.  It is also reasonably quick to search and
4693cb98950SDavid Howells	  modify.  The algorithms are non-recursive, and the trees are highly
4703cb98950SDavid Howells	  capacious.
4713cb98950SDavid Howells
4723cb98950SDavid Howells	  See:
4733cb98950SDavid Howells
4745fb94e9cSMauro Carvalho Chehab		Documentation/core-api/assoc_array.rst
4753cb98950SDavid Howells
4763cb98950SDavid Howells	  for more information.
4773cb98950SDavid Howells
4785ea81769SAl Viroconfig HAS_IOMEM
4796341e62bSChristoph Jaeger	bool
4805ea81769SAl Viro	depends on !NO_IOMEM
4815ea81769SAl Viro	default y
4825ea81769SAl Viro
483ce816fa8SUwe Kleine-Königconfig HAS_IOPORT_MAP
4846341e62bSChristoph Jaeger	bool
485ce816fa8SUwe Kleine-König	depends on HAS_IOMEM && !NO_IOPORT_MAP
486ee36c2bfSAl Viro	default y
487ee36c2bfSAl Viro
488cf65a0f6SChristoph Hellwigsource "kernel/dma/Kconfig"
489411f0f3eSHeiko Carstens
490e80a0af4SBart Van Asscheconfig SGL_ALLOC
491e80a0af4SBart Van Assche	bool
492e80a0af4SBart Van Assche	default n
493e80a0af4SBart Van Assche
494a4ce5a48SChristoph Hellwigconfig IOMMU_HELPER
495a4ce5a48SChristoph Hellwig	bool
496a4ce5a48SChristoph Hellwig
497928923c7SGeert Uytterhoevenconfig CHECK_SIGNATURE
498928923c7SGeert Uytterhoeven	bool
499928923c7SGeert Uytterhoeven
500aab46da0SRusty Russellconfig CPUMASK_OFFSTACK
501aab46da0SRusty Russell	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
502aab46da0SRusty Russell	help
503aab46da0SRusty Russell	  Use dynamic allocation for cpumask_var_t, instead of putting
504aab46da0SRusty Russell	  them on the stack.  This is a bit more expensive, but avoids
505aab46da0SRusty Russell	  stack overflow.
506aab46da0SRusty Russell
507c39649c3SBen Hutchingsconfig CPU_RMAP
508c39649c3SBen Hutchings	bool
509c39649c3SBen Hutchings	depends on SMP
510c39649c3SBen Hutchings
51175957ba3STom Herbertconfig DQL
51275957ba3STom Herbert	bool
51375957ba3STom Herbert
514b0125085SGeorge Spelvinconfig GLOB
515b0125085SGeorge Spelvin	bool
516b0125085SGeorge Spelvin#	This actually supports modular compilation, but the module overhead
517b0125085SGeorge Spelvin#	is ridiculous for the amount of code involved.	Until an out-of-tree
518b0125085SGeorge Spelvin#	driver asks for it, we'll just link it directly it into the kernel
519b0125085SGeorge Spelvin#	when required.  Since we're ignoring out-of-tree users,	there's also
520b0125085SGeorge Spelvin#	no need bother prompting for a manual decision:
521b0125085SGeorge Spelvin#	prompt "glob_match() function"
522b0125085SGeorge Spelvin	help
523b0125085SGeorge Spelvin	  This option provides a glob_match function for performing
524b0125085SGeorge Spelvin	  simple text pattern matching.  It originated in the ATA code
525b0125085SGeorge Spelvin	  to blacklist particular drive models, but other device drivers
526b0125085SGeorge Spelvin	  may need similar functionality.
527b0125085SGeorge Spelvin
528b0125085SGeorge Spelvin	  All drivers in the Linux kernel tree that require this function
529b0125085SGeorge Spelvin	  should automatically select this option.  Say N unless you
530b0125085SGeorge Spelvin	  are compiling an out-of tree driver which tells you that it
531b0125085SGeorge Spelvin	  depends on this.
532b0125085SGeorge Spelvin
5335f9be824SGeorge Spelvinconfig GLOB_SELFTEST
534ba95b045SGeert Uytterhoeven	tristate "glob self-test on init"
5355f9be824SGeorge Spelvin	depends on GLOB
5365f9be824SGeorge Spelvin	help
5375f9be824SGeorge Spelvin	  This option enables a simple self-test of the glob_match
5385f9be824SGeorge Spelvin	  function on startup.	It is primarily useful for people
5395f9be824SGeorge Spelvin	  working on the code to ensure they haven't introduced any
5405f9be824SGeorge Spelvin	  regressions.
5415f9be824SGeorge Spelvin
5425f9be824SGeorge Spelvin	  It only adds a little bit of code and slows kernel boot (or
5435f9be824SGeorge Spelvin	  module load) by a small amount, so you're welcome to play with
5445f9be824SGeorge Spelvin	  it, but you probably don't need it.
5455f9be824SGeorge Spelvin
546e9cc8bddSGeert Uytterhoeven#
547e9cc8bddSGeert Uytterhoeven# Netlink attribute parsing support is select'ed if needed
548e9cc8bddSGeert Uytterhoeven#
549e9cc8bddSGeert Uytterhoevenconfig NLATTR
550e9cc8bddSGeert Uytterhoeven	bool
551e9cc8bddSGeert Uytterhoeven
55209d4e0edSPaul Mackerras#
55309d4e0edSPaul Mackerras# Generic 64-bit atomic support is selected if needed
55409d4e0edSPaul Mackerras#
55509d4e0edSPaul Mackerrasconfig GENERIC_ATOMIC64
55609d4e0edSPaul Mackerras       bool
55709d4e0edSPaul Mackerras
558b411b363SPhilipp Reisnerconfig LRU_CACHE
559b411b363SPhilipp Reisner	tristate
560b411b363SPhilipp Reisner
561c6df4b17SDavid Millerconfig CLZ_TAB
562c6df4b17SDavid Miller	bool
563c6df4b17SDavid Miller
564511cbce2SChristoph Hellwigconfig IRQ_POLL
565511cbce2SChristoph Hellwig	bool "IRQ polling library"
566511cbce2SChristoph Hellwig	help
567511cbce2SChristoph Hellwig	  Helper library to poll interrupt mitigation using polling.
568511cbce2SChristoph Hellwig
569d9c46b18SDmitry Kasatkinconfig MPILIB
5702e5f094bSDmitry Kasatkin	tristate
571c6df4b17SDavid Miller	select CLZ_TAB
572d9c46b18SDmitry Kasatkin	help
573d9c46b18SDmitry Kasatkin	  Multiprecision maths library from GnuPG.
574d9c46b18SDmitry Kasatkin	  It is used to implement RSA digital signature verification,
575d9c46b18SDmitry Kasatkin	  which is used by IMA/EVM digital signature extension.
576d9c46b18SDmitry Kasatkin
5775e8898e9SDmitry Kasatkinconfig SIGNATURE
5782e5f094bSDmitry Kasatkin	tristate
5790d1f64f6SDmitry Kasatkin	depends on KEYS
5800d1f64f6SDmitry Kasatkin	select CRYPTO
581be440ec7SDmitry Kasatkin	select CRYPTO_SHA1
582051dbb91SDmitry Kasatkin	select MPILIB
583051dbb91SDmitry Kasatkin	help
584051dbb91SDmitry Kasatkin	  Digital signature verification. Currently only RSA is supported.
585051dbb91SDmitry Kasatkin	  Implementation is done using GnuPG MPI library
586051dbb91SDmitry Kasatkin
5874f75da36STal Gilboaconfig DIMLIB
588424adc32SUwe Kleine-König	bool
5894f75da36STal Gilboa	help
5904f75da36STal Gilboa	  Dynamic Interrupt Moderation library.
591991ad2b2SRandy Dunlap	  Implements an algorithm for dynamically changing CQ moderation values
5924f75da36STal Gilboa	  according to run time performance.
5934f75da36STal Gilboa
594ab253839SDavid Daney#
595ab253839SDavid Daney# libfdt files, only selected if needed.
596ab253839SDavid Daney#
597ab253839SDavid Daneyconfig LIBFDT
598ab253839SDavid Daney	bool
599ab253839SDavid Daney
600a77ad6eaSDavid Howellsconfig OID_REGISTRY
601a77ad6eaSDavid Howells	tristate
602a77ad6eaSDavid Howells	help
603a77ad6eaSDavid Howells	  Enable fast lookup object identifier registry.
604a77ad6eaSDavid Howells
6050635eb8aSMatthew Garrettconfig UCS2_STRING
6060635eb8aSMatthew Garrett	tristate
6070635eb8aSMatthew Garrett
60800b26474SVincenzo Frascino#
60900b26474SVincenzo Frascino# generic vdso
61000b26474SVincenzo Frascino#
61100b26474SVincenzo Frascinosource "lib/vdso/Kconfig"
61200b26474SVincenzo Frascino
613ee89bd6bSGeert Uytterhoevensource "lib/fonts/Kconfig"
614ee89bd6bSGeert Uytterhoeven
615f8bcbe62SRobert Jarzmikconfig SG_SPLIT
616f8bcbe62SRobert Jarzmik	def_bool n
617f8bcbe62SRobert Jarzmik	help
6187f7e92f7SGeert Uytterhoeven	 Provides a helper to split scatterlists into chunks, each chunk being
6197f7e92f7SGeert Uytterhoeven	 a scatterlist. This should be selected by a driver or an API which
6207f7e92f7SGeert Uytterhoeven	 whishes to split a scatterlist amongst multiple DMA channels.
621f8bcbe62SRobert Jarzmik
6229b1d6c89SMing Linconfig SG_POOL
6239b1d6c89SMing Lin	def_bool n
6249b1d6c89SMing Lin	help
6259b1d6c89SMing Lin	 Provides a helper to allocate chained scatterlists. This should be
6269b1d6c89SMing Lin	 selected by a driver or an API which whishes to allocate chained
6279b1d6c89SMing Lin	 scatterlist.
6289b1d6c89SMing Lin
629308c09f1SLaura Abbott#
630308c09f1SLaura Abbott# sg chaining option
631308c09f1SLaura Abbott#
632308c09f1SLaura Abbott
6337c703e54SChristoph Hellwigconfig ARCH_NO_SG_CHAIN
634308c09f1SLaura Abbott	def_bool n
635308c09f1SLaura Abbott
63661031952SRoss Zwislerconfig ARCH_HAS_PMEM_API
63761031952SRoss Zwisler	bool
63861031952SRoss Zwisler
63933dd7075SDan Williamsconfig MEMREGION
64033dd7075SDan Williams	bool
64133dd7075SDan Williams
6429ffc1d19SDan Williamsconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN
6439ffc1d19SDan Williams	bool
6449ffc1d19SDan Williams
645bd79f947SChristoph Hellwig# use memcpy to implement user copies for nommu architectures
646bd79f947SChristoph Hellwigconfig UACCESS_MEMCPY
647bd79f947SChristoph Hellwig	bool
648bd79f947SChristoph Hellwig
6490aed55afSDan Williamsconfig ARCH_HAS_UACCESS_FLUSHCACHE
6500aed55afSDan Williams	bool
6510aed55afSDan Williams
652ec6347bbSDan Williams# arch has a concept of a recoverable synchronous exception due to a
653ec6347bbSDan Williams# memory-read error like x86 machine-check or ARM data-abort, and
654ec6347bbSDan Williams# implements copy_mc_to_{user,kernel} to abort and report
655ec6347bbSDan Williams# 'bytes-transferred' if that exception fires when accessing the source
656ec6347bbSDan Williams# buffer.
657ec6347bbSDan Williamsconfig ARCH_HAS_COPY_MC
658522239b4SDan Williams	bool
659522239b4SDan Williams
660214d8ca6SThomas Gleixner# Temporary. Goes away when all archs are cleaned up
661214d8ca6SThomas Gleixnerconfig ARCH_STACKWALK
662214d8ca6SThomas Gleixner       bool
663214d8ca6SThomas Gleixner
664cd11016eSAlexander Potapenkoconfig STACKDEPOT
665cd11016eSAlexander Potapenko	bool
666cd11016eSAlexander Potapenko	select STACKTRACE
667cd11016eSAlexander Potapenko
668d2620936SYogesh Lalconfig STACK_HASH_ORDER
669d2620936SYogesh Lal	int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
670d2620936SYogesh Lal	range 12 20
671d2620936SYogesh Lal	default 20
672d2620936SYogesh Lal	depends on STACKDEPOT
673d2620936SYogesh Lal	help
674d2620936SYogesh Lal	 Select the hash size as a power of 2 for the stackdepot hash table.
675d2620936SYogesh Lal	 Choose a lower value to reduce the memory impact.
676d2620936SYogesh Lal
67788459642SOmar Sandovalconfig SBITMAP
67888459642SOmar Sandoval	bool
67988459642SOmar Sandoval
68044091d29SJiri Pirkoconfig PARMAN
6819d25af69SGeert Uytterhoeven	tristate "parman" if COMPILE_TEST
68244091d29SJiri Pirko
6833dfdecc6SRandy Dunlapconfig OBJAGG
6843dfdecc6SRandy Dunlap	tristate "objagg" if COMPILE_TEST
6853dfdecc6SRandy Dunlap
68603270c13SMatthew Wilcoxconfig STRING_SELFTEST
687d6b28e09SGeert Uytterhoeven	tristate "Test string functions"
68803270c13SMatthew Wilcox
6892de4ff7bSThomas Grafendmenu
690b35cd988SPalmer Dabbelt
69180b0ca98SChristoph Hellwigconfig GENERIC_IOREMAP
69280b0ca98SChristoph Hellwig	bool
69380b0ca98SChristoph Hellwig
694e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHLDI3
695b35cd988SPalmer Dabbelt	bool
696b35cd988SPalmer Dabbelt
697e3d59805SMatt Redfearnconfig GENERIC_LIB_ASHRDI3
698b35cd988SPalmer Dabbelt	bool
699b35cd988SPalmer Dabbelt
700e3d59805SMatt Redfearnconfig GENERIC_LIB_LSHRDI3
701b35cd988SPalmer Dabbelt	bool
702b35cd988SPalmer Dabbelt
703e3d59805SMatt Redfearnconfig GENERIC_LIB_MULDI3
704b35cd988SPalmer Dabbelt	bool
705b35cd988SPalmer Dabbelt
706e3d59805SMatt Redfearnconfig GENERIC_LIB_CMPDI2
707b35cd988SPalmer Dabbelt	bool
708b35cd988SPalmer Dabbelt
709e3d59805SMatt Redfearnconfig GENERIC_LIB_UCMPDI2
710b35cd988SPalmer Dabbelt	bool
711b8265621SJacob Keller
712527701edSPalmer Dabbeltconfig GENERIC_LIB_DEVMEM_IS_ALLOWED
713527701edSPalmer Dabbelt	bool
714527701edSPalmer Dabbelt
715b8265621SJacob Kellerconfig PLDMFW
716b8265621SJacob Keller	bool
717b8265621SJacob Keller	default n
718b0706762SJames Bottomley
719b0706762SJames Bottomleyconfig ASN1_ENCODER
720b0706762SJames Bottomley       tristate
721