blob: d241fe476fdacaa9b8936150f89472775d5ef092 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#
3# Library configuration
4#
5
Lai Jiangshan4370aa42009-03-06 17:21:46 +01006config BINARY_PRINTF
7 def_bool n
8
Linus Torvalds1da177e2005-04-16 15:20:36 -07009menu "Library routines"
10
David Woodhousef5e70d02009-07-13 11:35:12 +010011config RAID6_PQ
12 tristate
13
Daniel Verkampbe85f932018-11-12 15:26:52 -080014config RAID6_PQ_BENCHMARK
15 bool "Automatically choose fastest RAID6 PQ functions"
16 depends on RAID6_PQ
17 default y
18 help
19 Benchmark all available RAID6 PQ functions on init and choose the
20 fastest one.
21
Matti Vaittinend2218d42020-05-08 18:39:35 +030022config LINEAR_RANGES
23 tristate
24
Vladimir Oltean554aae32019-05-02 23:23:29 +030025config PACKING
26 bool "Generic bitfield packing and unpacking"
27 default n
28 help
29 This option provides the packing() helper function, which permits
30 converting bitfields between a CPU-usable representation and a
31 memory representation that can have any combination of these quirks:
32 - Is little endian (bytes are reversed within a 32-bit group)
33 - The least-significant 32-bit word comes first (within a 64-bit
34 group)
35 - The most significant bit of a byte is at its right (bit 0 of a
36 register description is numerically 2^7).
37 Drivers may use these helpers to match the bit indices as described
38 in the data sheets of the peripherals they are in control of.
39
40 When in doubt, say N.
41
Akinobu Mitaa5cfc1ec582006-12-08 02:36:25 -080042config BITREVERSE
43 tristate
44
Yalin Wang556d2f02014-11-03 03:01:03 +010045config HAVE_ARCH_BITREVERSE
Christoph Jaeger841c0092015-02-16 16:00:20 -080046 bool
Yalin Wang556d2f02014-11-03 03:01:03 +010047 default n
48 depends on BITREVERSE
49 help
Andrew Morton9e522c02015-04-16 12:49:07 -070050 This option enables the use of hardware bit-reversal instructions on
51 architectures which support such operations.
Yalin Wang556d2f02014-11-03 03:01:03 +010052
David S. Miller29225852012-05-24 13:12:28 -070053config GENERIC_STRNCPY_FROM_USER
54 bool
55
Linus Torvaldsa08c5352012-05-26 11:06:38 -070056config GENERIC_STRNLEN_USER
57 bool
58
Andy Shevchenko4cd57732013-06-04 19:46:26 +030059config GENERIC_NET_UTILS
60 bool
61
Alexander van Heukelum19870de2008-04-25 13:12:53 +020062config GENERIC_FIND_FIRST_BIT
Jan Beulich9ba16082008-10-15 22:01:38 -070063 bool
Alexander van Heukelum19870de2008-04-25 13:12:53 +020064
Andy Shevchenko2c64e9c2019-05-14 15:43:05 -070065source "lib/math/Kconfig"
66
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020067config NO_GENERIC_PCI_IOPORT_MAP
68 bool
69
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020070config GENERIC_PCI_IOMAP
71 bool
72
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020073config GENERIC_IOMAP
74 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020075 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020076
Wolfram Sang4ccf4be2011-08-31 20:35:40 +020077config STMP_DEVICE
78 bool
79
Linus Torvaldsbc08b442013-09-02 12:12:15 -070080config ARCH_USE_CMPXCHG_LOCKREF
81 bool
82
Linus Torvalds72d93102014-09-13 11:14:53 -070083config ARCH_HAS_FAST_MULTIPLIER
84 bool
85
Mark Brown2ce0d7f2020-04-16 19:24:02 +010086config ARCH_USE_SYM_ANNOTATIONS
87 bool
88
Zhichang Yuan031e3602018-03-15 02:15:50 +080089config INDIRECT_PIO
90 bool "Access I/O in non-MMIO mode"
91 depends on ARM64
92 help
93 On some platforms where no separate I/O space exists, there are I/O
94 hosts which can not be accessed in MMIO mode. Using the logical PIO
95 mechanism, the host-local I/O resource can be mapped into system
96 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
97 system can access the I/O devices with the mapped-logic PIO through
98 I/O accessors.
99
100 This way has relatively little I/O performance cost. Please make
101 sure your devices really need this configure item enabled.
102
103 When in doubt, say N.
104
Johannes Bergca2e3342021-03-05 13:19:52 +0100105config INDIRECT_IOMEM
106 bool
107 help
108 This is selected by other options/architectures to provide the
109 emulated iomem accessors.
110
111config INDIRECT_IOMEM_FALLBACK
112 bool
113 depends on INDIRECT_IOMEM
114 help
115 If INDIRECT_IOMEM is selected, this enables falling back to plain
116 mmio accesses when the IO memory address is not a registered
117 emulated region.
118
Linus Torvalds1da177e2005-04-16 15:20:36 -0700119config CRC_CCITT
120 tristate "CRC-CCITT functions"
121 help
122 This option is provided for the case where no in-kernel-tree
123 modules require CRC-CCITT functions, but a module built outside
124 the kernel tree does. Such modules that use library CRC-CCITT
125 functions require M here.
126
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +0400127config CRC16
128 tristate "CRC16 functions"
129 help
130 This option is provided for the case where no in-kernel-tree
131 modules require CRC16 functions, but a module built outside
132 the kernel tree does. Such modules that use library CRC16
133 functions require M here.
134
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400135config CRC_T10DIF
136 tristate "CRC calculation for the T10 Data Integrity Field"
Herbert Xu684115212013-09-07 12:56:26 +1000137 select CRYPTO
138 select CRYPTO_CRCT10DIF
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400139 help
140 This option is only needed if a module that's not in the
141 kernel tree needs to calculate CRC checks for use with the
142 SCSI data integrity subsystem.
143
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +0200144config CRC_ITU_T
145 tristate "CRC ITU-T V.41 functions"
146 help
147 This option is provided for the case where no in-kernel-tree
148 modules require CRC ITU-T V.41 functions, but a module built outside
149 the kernel tree does. Such modules that use library CRC ITU-T V.41
150 functions require M here.
151
Linus Torvalds1da177e2005-04-16 15:20:36 -0700152config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -0700153 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700154 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -0800155 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700156 help
157 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -0700158 modules require CRC32/CRC32c functions, but a module built outside
159 the kernel tree does. Such modules that use library CRC32/CRC32c
160 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161
Bob Pearson3863ef32012-03-23 15:02:22 -0700162config CRC32_SELFTEST
Geert Uytterhoeven5fb7f872017-02-24 15:00:49 -0800163 tristate "CRC32 perform self test on init"
Bob Pearson3863ef32012-03-23 15:02:22 -0700164 depends on CRC32
165 help
166 This option enables the CRC32 library functions to perform a
167 self test on initialization. The self test computes crc32_le
168 and crc32_be over byte strings with random alignment and length
169 and computes the total elapsed time and number of bytes processed.
170
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700171choice
172 prompt "CRC32 implementation"
173 depends on CRC32
174 default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -0700175 help
176 This option allows a kernel builder to override the default choice
177 of CRC32 algorithm. Choose the default ("slice by 8") unless you
178 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700179
180config CRC32_SLICEBY8
181 bool "Slice by 8 bytes"
182 help
183 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
184 This is the fastest algorithm, but comes with a 8KiB lookup table.
185 Most modern processors have enough cache to hold this table without
186 thrashing the cache.
187
188 This is the default implementation choice. Choose this one unless
189 you have a good reason not to.
190
191config CRC32_SLICEBY4
192 bool "Slice by 4 bytes"
193 help
194 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
195 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
196 table.
197
198 Only choose this option if you know what you are doing.
199
200config CRC32_SARWATE
201 bool "Sarwate's Algorithm (one byte at a time)"
202 help
203 Calculate checksum a byte at a time using Sarwate's algorithm. This
204 is not particularly fast, but has a small 256 byte lookup table.
205
206 Only choose this option if you know what you are doing.
207
208config CRC32_BIT
209 bool "Classic Algorithm (one bit at a time)"
210 help
211 Calculate checksum one bit at a time. This is VERY slow, but has
212 no lookup table. This is provided as a debugging option.
213
214 Only choose this option if you are debugging crc32.
215
216endchoice
217
Coly Lifeba04f2018-08-21 21:57:11 -0700218config CRC64
219 tristate "CRC64 functions"
220 help
221 This option is provided for the case where no in-kernel-tree
222 modules require CRC64 functions, but a module built outside
223 the kernel tree does. Such modules that use library CRC64
224 functions require M here.
225
Jeremy Kerr0cbaa442017-06-06 16:08:39 -0500226config CRC4
227 tristate "CRC4 functions"
228 help
229 This option is provided for the case where no in-kernel-tree
230 modules require CRC4 functions, but a module built outside
231 the kernel tree does. Such modules that use library CRC4
232 functions require M here.
233
Jan Nikitenkoad241522007-07-17 04:04:03 -0700234config CRC7
235 tristate "CRC7 functions"
236 help
237 This option is provided for the case where no in-kernel-tree
238 modules require CRC7 functions, but a module built outside
239 the kernel tree does. Such modules that use library CRC7
240 functions require M here.
241
Linus Torvalds1da177e2005-04-16 15:20:36 -0700242config LIBCRC32C
243 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800244 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800245 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700246 help
247 This option is provided for the case where no in-kernel-tree
248 modules require CRC32c functions, but a module built outside the
249 kernel tree does. Such modules that use library CRC32c functions
250 require M here. See Castagnoli93.
251 Module will be libcrc32c.
252
Arend van Spriel71509622011-05-31 11:22:15 +0200253config CRC8
254 tristate "CRC8 function"
255 help
256 This option provides CRC8 function. Drivers may select this
257 when they need to do cyclic redundancy check according CRC8
258 algorithm. Module will be called crc8.
259
Nick Terrell5d240522017-08-04 13:19:17 -0700260config XXHASH
261 tristate
262
Al Viroe65e1fc2006-09-12 03:04:40 -0400263config AUDIT_GENERIC
264 bool
265 depends on AUDIT && !AUDIT_ARCH
266 default y
267
AKASHI Takahiro4b588412014-03-15 14:48:00 +0900268config AUDIT_ARCH_COMPAT_GENERIC
269 bool
270 default n
271
272config AUDIT_COMPAT_GENERIC
273 bool
274 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
275 default y
276
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100277config RANDOM32_SELFTEST
278 bool "PRNG perform self test on init"
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100279 help
280 This option enables the 32 bit PRNG library functions to perform a
281 self test on initialization.
282
Linus Torvalds1da177e2005-04-16 15:20:36 -0700283#
284# compression support is select'ed if needed
285#
Dan Streetman2da572c2015-05-07 13:49:14 -0400286config 842_COMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100287 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400288 tristate
289
290config 842_DECOMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100291 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400292 tristate
293
Linus Torvalds1da177e2005-04-16 15:20:36 -0700294config ZLIB_INFLATE
295 tristate
296
297config ZLIB_DEFLATE
298 tristate
Andrew Morton1fd4e5c2015-10-15 15:28:35 -0700299 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700300
Mikhail Zaslonkoaa5b3952020-01-30 22:16:17 -0800301config ZLIB_DFLTCC
302 def_bool y
303 depends on S390
304 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
305 help
306 Enable s390x hardware support for zlib in the kernel.
307
Richard Purdie64c70b12007-07-10 17:22:24 -0700308config LZO_COMPRESS
309 tristate
310
311config LZO_DECOMPRESS
312 tristate
313
Chanho Minc72ac7a2013-07-08 16:01:49 -0700314config LZ4_COMPRESS
315 tristate
316
317config LZ4HC_COMPRESS
318 tristate
319
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700320config LZ4_DECOMPRESS
321 tristate
322
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700323config ZSTD_COMPRESS
324 select XXHASH
325 tristate
326
327config ZSTD_DECOMPRESS
328 select XXHASH
329 tristate
330
Lasse Collin24fa0402011-01-12 17:01:22 -0800331source "lib/xz/Kconfig"
332
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800334# These all provide a common interface (hence the apparent duplication with
335# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
336#
337config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800338 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800339 tristate
340
341config DECOMPRESS_BZIP2
342 tristate
343
344config DECOMPRESS_LZMA
345 tristate
346
Lasse Collin3ebe1242011-01-12 17:01:23 -0800347config DECOMPRESS_XZ
348 select XZ_DEC
349 tristate
350
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800351config DECOMPRESS_LZO
352 select LZO_DECOMPRESS
353 tristate
354
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700355config DECOMPRESS_LZ4
356 select LZ4_DECOMPRESS
357 tristate
358
Nick Terrell4963bb22020-07-30 12:08:35 -0700359config DECOMPRESS_ZSTD
360 select ZSTD_DECOMPRESS
361 tristate
362
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800363#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700364# Generic allocator support is selected if needed
365#
366config GENERIC_ALLOCATOR
Christoph Jaeger6341e622014-12-20 15:41:11 -0500367 bool
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700368
369#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700370# reed solomon support is select'ed if needed
371#
372config REED_SOLOMON
373 tristate
374
375config REED_SOLOMON_ENC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500376 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700377
378config REED_SOLOMON_DEC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500379 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700380
381config REED_SOLOMON_ENC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500382 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700383
384config REED_SOLOMON_DEC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500385 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700386
David S. Millerf7704342005-06-24 17:39:03 -0700387#
Ivan Djelic437aa562011-03-11 11:05:32 +0100388# BCH support is selected if needed
389#
390config BCH
391 tristate
392
393config BCH_CONST_PARAMS
Christoph Jaeger6341e622014-12-20 15:41:11 -0500394 bool
Ivan Djelic437aa562011-03-11 11:05:32 +0100395 help
396 Drivers may select this option to force specific constant
397 values for parameters 'm' (Galois field order) and 't'
398 (error correction capability). Those specific values must
399 be set by declaring default values for symbols BCH_CONST_M
400 and BCH_CONST_T.
401 Doing so will enable extra compiler optimizations,
402 improving encoding and decoding performance up to 2x for
403 usual (m,t) values (typically such that m*t < 200).
404 When this option is selected, the BCH library supports
405 only a single (m,t) configuration. This is mainly useful
406 for NAND flash board drivers requiring known, fixed BCH
407 parameters.
408
409config BCH_CONST_M
410 int
411 range 5 15
412 help
413 Constant value for Galois field order 'm'. If 'k' is the
414 number of data bits to protect, 'm' should be chosen such
415 that (k + m*t) <= 2**m - 1.
416 Drivers should declare a default value for this symbol if
417 they select option BCH_CONST_PARAMS.
418
419config BCH_CONST_T
420 int
421 help
422 Constant value for error correction capability in bits 't'.
423 Drivers should declare a default value for this symbol if
424 they select option BCH_CONST_PARAMS.
425
426#
David S. Millerf7704342005-06-24 17:39:03 -0700427# Textsearch support is select'ed if needed
428#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700429config TEXTSEARCH
Christoph Jaeger6341e622014-12-20 15:41:11 -0500430 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700431
Thomas Grafdf3fb932005-06-23 20:58:37 -0700432config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700433 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700434
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700435config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700436 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700437
Thomas Graf6408f792005-06-23 20:59:16 -0700438config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700439 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700440
Joern Engel5db53f32009-11-20 20:13:39 +0100441config BTREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500442 bool
Joern Engel5db53f32009-11-20 20:13:39 +0100443
Chris Wilsona88cc102014-03-17 12:21:54 +0000444config INTERVAL_TREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500445 bool
Chris Wilsona88cc102014-03-17 12:21:54 +0000446 help
447 Simple, embeddable, interval-tree. Can find the start of an
448 overlapping range in log(n) time and then iterate over all
449 overlapping nodes. The algorithm is implemented as an
450 augmented rbtree.
451
452 See:
453
Matthew Wilcox (Oracle)14bbe3e2020-04-01 10:33:43 -0700454 Documentation/core-api/rbtree.rst
Chris Wilsona88cc102014-03-17 12:21:54 +0000455
456 for more information.
457
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400458config XARRAY_MULTI
Matthew Wilcox57578c22016-05-20 17:01:54 -0700459 bool
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400460 help
461 Support entries which occupy multiple consecutive indices in the
462 XArray.
Matthew Wilcox57578c22016-05-20 17:01:54 -0700463
David Howells3cb98952013-09-24 10:35:17 +0100464config ASSOCIATIVE_ARRAY
465 bool
466 help
467 Generic associative array. Can be searched and iterated over whilst
468 it is being modified. It is also reasonably quick to search and
469 modify. The algorithms are non-recursive, and the trees are highly
470 capacious.
471
472 See:
473
Mauro Carvalho Chehab5fb94e92018-05-08 15:14:57 -0300474 Documentation/core-api/assoc_array.rst
David Howells3cb98952013-09-24 10:35:17 +0100475
476 for more information.
477
Al Viro5ea81762007-02-11 15:41:31 +0000478config HAS_IOMEM
Christoph Jaeger6341e622014-12-20 15:41:11 -0500479 bool
Al Viro5ea81762007-02-11 15:41:31 +0000480 depends on !NO_IOMEM
481 default y
482
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700483config HAS_IOPORT_MAP
Christoph Jaeger6341e622014-12-20 15:41:11 -0500484 bool
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700485 depends on HAS_IOMEM && !NO_IOPORT_MAP
Al Viroee36c2b2006-12-13 00:35:00 -0800486 default y
487
Christoph Hellwigcf65a0f2018-06-12 19:01:45 +0200488source "kernel/dma/Kconfig"
Heiko Carstens411f0f32007-05-06 14:49:09 -0700489
Bart Van Asschee80a0af2018-01-05 08:26:46 -0800490config SGL_ALLOC
491 bool
492 default n
493
Christoph Hellwiga4ce5a42018-04-03 15:47:59 +0200494config IOMMU_HELPER
495 bool
496
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700497config CHECK_SIGNATURE
498 bool
499
Rusty Russellaab46da2008-12-13 21:20:27 +1030500config CPUMASK_OFFSTACK
501 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
502 help
503 Use dynamic allocation for cpumask_var_t, instead of putting
504 them on the stack. This is a bit more expensive, but avoids
505 stack overflow.
506
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000507config CPU_RMAP
508 bool
509 depends on SMP
510
Tom Herbert75957ba2011-11-28 16:32:35 +0000511config DQL
512 bool
513
George Spelvinb0125082014-08-06 16:09:23 -0700514config GLOB
515 bool
516# This actually supports modular compilation, but the module overhead
517# is ridiculous for the amount of code involved. Until an out-of-tree
518# driver asks for it, we'll just link it directly it into the kernel
519# when required. Since we're ignoring out-of-tree users, there's also
520# no need bother prompting for a manual decision:
521# prompt "glob_match() function"
522 help
523 This option provides a glob_match function for performing
524 simple text pattern matching. It originated in the ATA code
525 to blacklist particular drive models, but other device drivers
526 may need similar functionality.
527
528 All drivers in the Linux kernel tree that require this function
529 should automatically select this option. Say N unless you
530 are compiling an out-of tree driver which tells you that it
531 depends on this.
532
George Spelvin5f9be822014-08-06 16:09:25 -0700533config GLOB_SELFTEST
Geert Uytterhoevenba95b042017-02-24 15:00:52 -0800534 tristate "glob self-test on init"
George Spelvin5f9be822014-08-06 16:09:25 -0700535 depends on GLOB
536 help
537 This option enables a simple self-test of the glob_match
538 function on startup. It is primarily useful for people
539 working on the code to ensure they haven't introduced any
540 regressions.
541
542 It only adds a little bit of code and slows kernel boot (or
543 module load) by a small amount, so you're welcome to play with
544 it, but you probably don't need it.
545
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800546#
547# Netlink attribute parsing support is select'ed if needed
548#
549config NLATTR
550 bool
551
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000552#
553# Generic 64-bit atomic support is selected if needed
554#
555config GENERIC_ATOMIC64
556 bool
557
Philipp Reisnerb411b362009-09-25 16:07:19 -0700558config LRU_CACHE
559 tristate
560
David Millerc6df4b12012-02-02 00:17:54 +0200561config CLZ_TAB
562 bool
563
Christoph Hellwig511cbce2015-11-10 14:56:14 +0100564config IRQ_POLL
565 bool "IRQ polling library"
566 help
567 Helper library to poll interrupt mitigation using polling.
568
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300569config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200570 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200571 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300572 help
573 Multiprecision maths library from GnuPG.
574 It is used to implement RSA digital signature verification,
575 which is used by IMA/EVM digital signature extension.
576
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200577config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200578 tristate
Dmitry Kasatkin0d1f64f2014-07-11 18:59:45 +0300579 depends on KEYS
580 select CRYPTO
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200581 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300582 select MPILIB
583 help
584 Digital signature verification. Currently only RSA is supported.
585 Implementation is done using GnuPG MPI library
586
Tal Gilboa4f75da32019-01-10 17:33:17 +0200587config DIMLIB
Uwe Kleine-König424adc32019-09-24 18:02:59 +0200588 bool
Tal Gilboa4f75da32019-01-10 17:33:17 +0200589 help
590 Dynamic Interrupt Moderation library.
Randy Dunlap991ad2b2019-09-25 17:20:42 -0700591 Implements an algorithm for dynamically changing CQ moderation values
Tal Gilboa4f75da32019-01-10 17:33:17 +0200592 according to run time performance.
593
David Daneyab253832012-07-05 18:12:38 +0200594#
595# libfdt files, only selected if needed.
596#
597config LIBFDT
598 bool
599
David Howellsa77ad6e2012-09-21 23:30:46 +0100600config OID_REGISTRY
601 tristate
602 help
603 Enable fast lookup object identifier registry.
604
Matthew Garrett0635eb82013-04-15 13:09:45 -0700605config UCS2_STRING
Krzysztof Kozlowski68d4b3d2019-12-06 17:04:08 -0800606 tristate
Matthew Garrett0635eb82013-04-15 13:09:45 -0700607
Vincenzo Frascino00b26472019-06-21 10:52:29 +0100608#
609# generic vdso
610#
611source "lib/vdso/Kconfig"
612
Geert Uytterhoevenee89bd62013-06-09 11:46:43 +0200613source "lib/fonts/Kconfig"
614
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200615config SG_SPLIT
616 def_bool n
617 help
Geert Uytterhoeven7f7e92f2015-09-04 12:45:05 +0200618 Provides a helper to split scatterlists into chunks, each chunk being
619 a scatterlist. This should be selected by a driver or an API which
620 whishes to split a scatterlist amongst multiple DMA channels.
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200621
Ming Lin9b1d6c82016-04-04 14:48:11 -0700622config SG_POOL
623 def_bool n
624 help
625 Provides a helper to allocate chained scatterlists. This should be
626 selected by a driver or an API which whishes to allocate chained
627 scatterlist.
628
Laura Abbott308c09f2014-08-08 14:23:25 -0700629#
630# sg chaining option
631#
632
Christoph Hellwig7c703e52018-11-09 09:51:00 +0100633config ARCH_NO_SG_CHAIN
Laura Abbott308c09f2014-08-08 14:23:25 -0700634 def_bool n
635
Ross Zwisler61031952015-06-25 03:08:39 -0400636config ARCH_HAS_PMEM_API
637 bool
638
Dan Williams33dd7072019-11-06 17:43:31 -0800639config MEMREGION
640 bool
641
Dan Williams9ffc1d12020-01-30 12:06:07 -0800642config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
643 bool
644
Christoph Hellwigbd79f942019-04-23 18:38:08 +0200645# use memcpy to implement user copies for nommu architectures
646config UACCESS_MEMCPY
647 bool
648
Dan Williams0aed55a2017-05-29 12:22:50 -0700649config ARCH_HAS_UACCESS_FLUSHCACHE
650 bool
651
Dan Williamsec6347b2020-10-05 20:40:16 -0700652# arch has a concept of a recoverable synchronous exception due to a
653# memory-read error like x86 machine-check or ARM data-abort, and
654# implements copy_mc_to_{user,kernel} to abort and report
655# 'bytes-transferred' if that exception fires when accessing the source
656# buffer.
657config ARCH_HAS_COPY_MC
Dan Williams522239b2018-05-22 23:17:03 -0700658 bool
659
Thomas Gleixner214d8ca2019-04-25 11:45:21 +0200660# Temporary. Goes away when all archs are cleaned up
661config ARCH_STACKWALK
662 bool
663
Alexander Potapenkocd110162016-03-25 14:22:08 -0700664config STACKDEPOT
665 bool
666 select STACKTRACE
667
Yogesh Lald2620932021-02-25 17:21:24 -0800668config STACK_HASH_ORDER
669 int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
670 range 12 20
671 default 20
672 depends on STACKDEPOT
673 help
674 Select the hash size as a power of 2 for the stackdepot hash table.
675 Choose a lower value to reduce the memory impact.
676
Omar Sandoval88459642016-09-17 08:38:44 -0600677config SBITMAP
678 bool
679
Jiri Pirko44091d22017-02-03 10:29:06 +0100680config PARMAN
Geert Uytterhoeven9d25af62017-02-24 11:25:55 +0100681 tristate "parman" if COMPILE_TEST
Jiri Pirko44091d22017-02-03 10:29:06 +0100682
Randy Dunlap3dfdecc2019-09-09 14:54:21 -0700683config OBJAGG
684 tristate "objagg" if COMPILE_TEST
685
Matthew Wilcox03270c12017-09-08 16:13:52 -0700686config STRING_SELFTEST
Geert Uytterhoevend6b28e02017-11-17 15:27:56 -0800687 tristate "Test string functions"
Matthew Wilcox03270c12017-09-08 16:13:52 -0700688
Thomas Graf2de4ff72005-06-23 20:49:30 -0700689endmenu
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700690
Christoph Hellwig80b0ca92019-08-13 11:24:04 +0200691config GENERIC_IOREMAP
692 bool
693
Matt Redfearne3d59802018-04-11 08:50:17 +0100694config GENERIC_LIB_ASHLDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700695 bool
696
Matt Redfearne3d59802018-04-11 08:50:17 +0100697config GENERIC_LIB_ASHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700698 bool
699
Matt Redfearne3d59802018-04-11 08:50:17 +0100700config GENERIC_LIB_LSHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700701 bool
702
Matt Redfearne3d59802018-04-11 08:50:17 +0100703config GENERIC_LIB_MULDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700704 bool
705
Matt Redfearne3d59802018-04-11 08:50:17 +0100706config GENERIC_LIB_CMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700707 bool
708
Matt Redfearne3d59802018-04-11 08:50:17 +0100709config GENERIC_LIB_UCMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700710 bool
Jacob Kellerb8265622020-07-23 17:21:59 -0700711
Palmer Dabbelt527701e2020-07-09 11:43:21 -0700712config GENERIC_LIB_DEVMEM_IS_ALLOWED
713 bool
714
Jacob Kellerb8265622020-07-23 17:21:59 -0700715config PLDMFW
716 bool
717 default n
James Bottomleyb0706762021-01-27 11:06:13 -0800718
719config ASN1_ENCODER
720 tristate