blob: 5e7165e6a346c9bec878b78c8c8c3d175fc98dfd [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
Arnd Bergmanne6226992021-05-17 09:22:34 +020053config ARCH_HAS_STRNCPY_FROM_USER
David S. Miller29225852012-05-24 13:12:28 -070054 bool
55
Arnd Bergmanne6226992021-05-17 09:22:34 +020056config ARCH_HAS_STRNLEN_USER
Linus Torvaldsa08c5352012-05-26 11:06:38 -070057 bool
58
Arnd Bergmanne6226992021-05-17 09:22:34 +020059config GENERIC_STRNCPY_FROM_USER
60 def_bool !ARCH_HAS_STRNCPY_FROM_USER
61
62config GENERIC_STRNLEN_USER
63 def_bool !ARCH_HAS_STRNLEN_USER
64
Andy Shevchenko4cd57732013-06-04 19:46:26 +030065config GENERIC_NET_UTILS
66 bool
67
Alexander van Heukelum19870de2008-04-25 13:12:53 +020068config GENERIC_FIND_FIRST_BIT
Jan Beulich9ba16082008-10-15 22:01:38 -070069 bool
Alexander van Heukelum19870de2008-04-25 13:12:53 +020070
Andy Shevchenko2c64e9c2019-05-14 15:43:05 -070071source "lib/math/Kconfig"
72
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020073config NO_GENERIC_PCI_IOPORT_MAP
74 bool
75
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020076config GENERIC_PCI_IOMAP
77 bool
78
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020079config GENERIC_IOMAP
80 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020081 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020082
Wolfram Sang4ccf4be2011-08-31 20:35:40 +020083config STMP_DEVICE
84 bool
85
Linus Torvaldsbc08b442013-09-02 12:12:15 -070086config ARCH_USE_CMPXCHG_LOCKREF
87 bool
88
Linus Torvalds72d93102014-09-13 11:14:53 -070089config ARCH_HAS_FAST_MULTIPLIER
90 bool
91
Mark Brown2ce0d7f2020-04-16 19:24:02 +010092config ARCH_USE_SYM_ANNOTATIONS
93 bool
94
Zhichang Yuan031e3602018-03-15 02:15:50 +080095config INDIRECT_PIO
96 bool "Access I/O in non-MMIO mode"
97 depends on ARM64
98 help
99 On some platforms where no separate I/O space exists, there are I/O
100 hosts which can not be accessed in MMIO mode. Using the logical PIO
101 mechanism, the host-local I/O resource can be mapped into system
102 logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
103 system can access the I/O devices with the mapped-logic PIO through
104 I/O accessors.
105
106 This way has relatively little I/O performance cost. Please make
107 sure your devices really need this configure item enabled.
108
109 When in doubt, say N.
110
Johannes Bergca2e3342021-03-05 13:19:52 +0100111config INDIRECT_IOMEM
112 bool
113 help
114 This is selected by other options/architectures to provide the
115 emulated iomem accessors.
116
117config INDIRECT_IOMEM_FALLBACK
118 bool
119 depends on INDIRECT_IOMEM
120 help
121 If INDIRECT_IOMEM is selected, this enables falling back to plain
122 mmio accesses when the IO memory address is not a registered
123 emulated region.
124
Linus Torvalds1da177e2005-04-16 15:20:36 -0700125config CRC_CCITT
126 tristate "CRC-CCITT functions"
127 help
128 This option is provided for the case where no in-kernel-tree
129 modules require CRC-CCITT functions, but a module built outside
130 the kernel tree does. Such modules that use library CRC-CCITT
131 functions require M here.
132
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +0400133config CRC16
134 tristate "CRC16 functions"
135 help
136 This option is provided for the case where no in-kernel-tree
137 modules require CRC16 functions, but a module built outside
138 the kernel tree does. Such modules that use library CRC16
139 functions require M here.
140
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400141config CRC_T10DIF
142 tristate "CRC calculation for the T10 Data Integrity Field"
Herbert Xu684115212013-09-07 12:56:26 +1000143 select CRYPTO
144 select CRYPTO_CRCT10DIF
Martin K. Petersenf11f5942008-06-25 11:22:42 -0400145 help
146 This option is only needed if a module that's not in the
147 kernel tree needs to calculate CRC checks for use with the
148 SCSI data integrity subsystem.
149
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +0200150config CRC_ITU_T
151 tristate "CRC ITU-T V.41 functions"
152 help
153 This option is provided for the case where no in-kernel-tree
154 modules require CRC ITU-T V.41 functions, but a module built outside
155 the kernel tree does. Such modules that use library CRC ITU-T V.41
156 functions require M here.
157
Linus Torvalds1da177e2005-04-16 15:20:36 -0700158config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -0700159 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -0800161 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700162 help
163 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -0700164 modules require CRC32/CRC32c functions, but a module built outside
165 the kernel tree does. Such modules that use library CRC32/CRC32c
166 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700167
Bob Pearson3863ef32012-03-23 15:02:22 -0700168config CRC32_SELFTEST
Geert Uytterhoeven5fb7f872017-02-24 15:00:49 -0800169 tristate "CRC32 perform self test on init"
Bob Pearson3863ef32012-03-23 15:02:22 -0700170 depends on CRC32
171 help
172 This option enables the CRC32 library functions to perform a
173 self test on initialization. The self test computes crc32_le
174 and crc32_be over byte strings with random alignment and length
175 and computes the total elapsed time and number of bytes processed.
176
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700177choice
178 prompt "CRC32 implementation"
179 depends on CRC32
180 default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -0700181 help
182 This option allows a kernel builder to override the default choice
183 of CRC32 algorithm. Choose the default ("slice by 8") unless you
184 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700185
186config CRC32_SLICEBY8
187 bool "Slice by 8 bytes"
188 help
189 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
190 This is the fastest algorithm, but comes with a 8KiB lookup table.
191 Most modern processors have enough cache to hold this table without
192 thrashing the cache.
193
194 This is the default implementation choice. Choose this one unless
195 you have a good reason not to.
196
197config CRC32_SLICEBY4
198 bool "Slice by 4 bytes"
199 help
200 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
201 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
202 table.
203
204 Only choose this option if you know what you are doing.
205
206config CRC32_SARWATE
207 bool "Sarwate's Algorithm (one byte at a time)"
208 help
209 Calculate checksum a byte at a time using Sarwate's algorithm. This
210 is not particularly fast, but has a small 256 byte lookup table.
211
212 Only choose this option if you know what you are doing.
213
214config CRC32_BIT
215 bool "Classic Algorithm (one bit at a time)"
216 help
217 Calculate checksum one bit at a time. This is VERY slow, but has
218 no lookup table. This is provided as a debugging option.
219
220 Only choose this option if you are debugging crc32.
221
222endchoice
223
Coly Lifeba04f2018-08-21 21:57:11 -0700224config CRC64
225 tristate "CRC64 functions"
226 help
227 This option is provided for the case where no in-kernel-tree
228 modules require CRC64 functions, but a module built outside
229 the kernel tree does. Such modules that use library CRC64
230 functions require M here.
231
Jeremy Kerr0cbaa442017-06-06 16:08:39 -0500232config CRC4
233 tristate "CRC4 functions"
234 help
235 This option is provided for the case where no in-kernel-tree
236 modules require CRC4 functions, but a module built outside
237 the kernel tree does. Such modules that use library CRC4
238 functions require M here.
239
Jan Nikitenkoad241522007-07-17 04:04:03 -0700240config CRC7
241 tristate "CRC7 functions"
242 help
243 This option is provided for the case where no in-kernel-tree
244 modules require CRC7 functions, but a module built outside
245 the kernel tree does. Such modules that use library CRC7
246 functions require M here.
247
Linus Torvalds1da177e2005-04-16 15:20:36 -0700248config LIBCRC32C
249 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800250 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800251 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700252 help
253 This option is provided for the case where no in-kernel-tree
254 modules require CRC32c functions, but a module built outside the
255 kernel tree does. Such modules that use library CRC32c functions
256 require M here. See Castagnoli93.
257 Module will be libcrc32c.
258
Arend van Spriel71509622011-05-31 11:22:15 +0200259config CRC8
260 tristate "CRC8 function"
261 help
262 This option provides CRC8 function. Drivers may select this
263 when they need to do cyclic redundancy check according CRC8
264 algorithm. Module will be called crc8.
265
Nick Terrell5d240522017-08-04 13:19:17 -0700266config XXHASH
267 tristate
268
Al Viroe65e1fc2006-09-12 03:04:40 -0400269config AUDIT_GENERIC
270 bool
271 depends on AUDIT && !AUDIT_ARCH
272 default y
273
AKASHI Takahiro4b588412014-03-15 14:48:00 +0900274config AUDIT_ARCH_COMPAT_GENERIC
275 bool
276 default n
277
278config AUDIT_COMPAT_GENERIC
279 bool
280 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
281 default y
282
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100283config RANDOM32_SELFTEST
284 bool "PRNG perform self test on init"
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100285 help
286 This option enables the 32 bit PRNG library functions to perform a
287 self test on initialization.
288
Linus Torvalds1da177e2005-04-16 15:20:36 -0700289#
290# compression support is select'ed if needed
291#
Dan Streetman2da572c2015-05-07 13:49:14 -0400292config 842_COMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100293 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400294 tristate
295
296config 842_DECOMPRESS
Arnd Bergmann5b571672016-01-13 23:24:02 +0100297 select CRC32
Dan Streetman2da572c2015-05-07 13:49:14 -0400298 tristate
299
Linus Torvalds1da177e2005-04-16 15:20:36 -0700300config ZLIB_INFLATE
301 tristate
302
303config ZLIB_DEFLATE
304 tristate
Andrew Morton1fd4e5c2015-10-15 15:28:35 -0700305 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700306
Mikhail Zaslonkoaa5b3952020-01-30 22:16:17 -0800307config ZLIB_DFLTCC
308 def_bool y
309 depends on S390
310 prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
311 help
312 Enable s390x hardware support for zlib in the kernel.
313
Richard Purdie64c70b12007-07-10 17:22:24 -0700314config LZO_COMPRESS
315 tristate
316
317config LZO_DECOMPRESS
318 tristate
319
Chanho Minc72ac7a2013-07-08 16:01:49 -0700320config LZ4_COMPRESS
321 tristate
322
323config LZ4HC_COMPRESS
324 tristate
325
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700326config LZ4_DECOMPRESS
327 tristate
328
Nick Terrell73f3d1b2017-08-09 19:35:53 -0700329config ZSTD_COMPRESS
330 select XXHASH
331 tristate
332
333config ZSTD_DECOMPRESS
334 select XXHASH
335 tristate
336
Lasse Collin24fa0402011-01-12 17:01:22 -0800337source "lib/xz/Kconfig"
338
Linus Torvalds1da177e2005-04-16 15:20:36 -0700339#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800340# These all provide a common interface (hence the apparent duplication with
341# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
342#
343config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800344 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800345 tristate
346
347config DECOMPRESS_BZIP2
348 tristate
349
350config DECOMPRESS_LZMA
351 tristate
352
Lasse Collin3ebe1242011-01-12 17:01:23 -0800353config DECOMPRESS_XZ
354 select XZ_DEC
355 tristate
356
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800357config DECOMPRESS_LZO
358 select LZO_DECOMPRESS
359 tristate
360
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700361config DECOMPRESS_LZ4
362 select LZ4_DECOMPRESS
363 tristate
364
Nick Terrell4963bb22020-07-30 12:08:35 -0700365config DECOMPRESS_ZSTD
366 select ZSTD_DECOMPRESS
367 tristate
368
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800369#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700370# Generic allocator support is selected if needed
371#
372config GENERIC_ALLOCATOR
Christoph Jaeger6341e622014-12-20 15:41:11 -0500373 bool
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700374
375#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700376# reed solomon support is select'ed if needed
377#
378config REED_SOLOMON
379 tristate
380
381config REED_SOLOMON_ENC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500382 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700383
384config REED_SOLOMON_DEC8
Christoph Jaeger6341e622014-12-20 15:41:11 -0500385 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700386
387config REED_SOLOMON_ENC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500388 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700389
390config REED_SOLOMON_DEC16
Christoph Jaeger6341e622014-12-20 15:41:11 -0500391 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700392
David S. Millerf7704342005-06-24 17:39:03 -0700393#
Ivan Djelic437aa562011-03-11 11:05:32 +0100394# BCH support is selected if needed
395#
396config BCH
397 tristate
398
399config BCH_CONST_PARAMS
Christoph Jaeger6341e622014-12-20 15:41:11 -0500400 bool
Ivan Djelic437aa562011-03-11 11:05:32 +0100401 help
402 Drivers may select this option to force specific constant
403 values for parameters 'm' (Galois field order) and 't'
404 (error correction capability). Those specific values must
405 be set by declaring default values for symbols BCH_CONST_M
406 and BCH_CONST_T.
407 Doing so will enable extra compiler optimizations,
408 improving encoding and decoding performance up to 2x for
409 usual (m,t) values (typically such that m*t < 200).
410 When this option is selected, the BCH library supports
411 only a single (m,t) configuration. This is mainly useful
412 for NAND flash board drivers requiring known, fixed BCH
413 parameters.
414
415config BCH_CONST_M
416 int
417 range 5 15
418 help
419 Constant value for Galois field order 'm'. If 'k' is the
420 number of data bits to protect, 'm' should be chosen such
421 that (k + m*t) <= 2**m - 1.
422 Drivers should declare a default value for this symbol if
423 they select option BCH_CONST_PARAMS.
424
425config BCH_CONST_T
426 int
427 help
428 Constant value for error correction capability in bits 't'.
429 Drivers should declare a default value for this symbol if
430 they select option BCH_CONST_PARAMS.
431
432#
David S. Millerf7704342005-06-24 17:39:03 -0700433# Textsearch support is select'ed if needed
434#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700435config TEXTSEARCH
Christoph Jaeger6341e622014-12-20 15:41:11 -0500436 bool
Linus Torvalds1da177e2005-04-16 15:20:36 -0700437
Thomas Grafdf3fb932005-06-23 20:58:37 -0700438config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700439 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700440
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700441config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700442 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700443
Thomas Graf6408f792005-06-23 20:59:16 -0700444config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700445 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700446
Joern Engel5db53f32009-11-20 20:13:39 +0100447config BTREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500448 bool
Joern Engel5db53f32009-11-20 20:13:39 +0100449
Chris Wilsona88cc102014-03-17 12:21:54 +0000450config INTERVAL_TREE
Christoph Jaeger6341e622014-12-20 15:41:11 -0500451 bool
Chris Wilsona88cc102014-03-17 12:21:54 +0000452 help
453 Simple, embeddable, interval-tree. Can find the start of an
454 overlapping range in log(n) time and then iterate over all
455 overlapping nodes. The algorithm is implemented as an
456 augmented rbtree.
457
458 See:
459
Matthew Wilcox (Oracle)14bbe3e2020-04-01 10:33:43 -0700460 Documentation/core-api/rbtree.rst
Chris Wilsona88cc102014-03-17 12:21:54 +0000461
462 for more information.
463
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400464config XARRAY_MULTI
Matthew Wilcox57578c22016-05-20 17:01:54 -0700465 bool
Matthew Wilcox02c02bf2017-11-03 23:09:45 -0400466 help
467 Support entries which occupy multiple consecutive indices in the
468 XArray.
Matthew Wilcox57578c22016-05-20 17:01:54 -0700469
David Howells3cb98952013-09-24 10:35:17 +0100470config ASSOCIATIVE_ARRAY
471 bool
472 help
473 Generic associative array. Can be searched and iterated over whilst
474 it is being modified. It is also reasonably quick to search and
475 modify. The algorithms are non-recursive, and the trees are highly
476 capacious.
477
478 See:
479
Mauro Carvalho Chehab5fb94e92018-05-08 15:14:57 -0300480 Documentation/core-api/assoc_array.rst
David Howells3cb98952013-09-24 10:35:17 +0100481
482 for more information.
483
Al Viro5ea81762007-02-11 15:41:31 +0000484config HAS_IOMEM
Christoph Jaeger6341e622014-12-20 15:41:11 -0500485 bool
Al Viro5ea81762007-02-11 15:41:31 +0000486 depends on !NO_IOMEM
487 default y
488
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700489config HAS_IOPORT_MAP
Christoph Jaeger6341e622014-12-20 15:41:11 -0500490 bool
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700491 depends on HAS_IOMEM && !NO_IOPORT_MAP
Al Viroee36c2b2006-12-13 00:35:00 -0800492 default y
493
Christoph Hellwigcf65a0f2018-06-12 19:01:45 +0200494source "kernel/dma/Kconfig"
Heiko Carstens411f0f32007-05-06 14:49:09 -0700495
Bart Van Asschee80a0af2018-01-05 08:26:46 -0800496config SGL_ALLOC
497 bool
498 default n
499
Christoph Hellwiga4ce5a42018-04-03 15:47:59 +0200500config IOMMU_HELPER
501 bool
502
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700503config CHECK_SIGNATURE
504 bool
505
Rusty Russellaab46da2008-12-13 21:20:27 +1030506config CPUMASK_OFFSTACK
507 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
508 help
509 Use dynamic allocation for cpumask_var_t, instead of putting
510 them on the stack. This is a bit more expensive, but avoids
511 stack overflow.
512
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000513config CPU_RMAP
514 bool
515 depends on SMP
516
Tom Herbert75957ba2011-11-28 16:32:35 +0000517config DQL
518 bool
519
George Spelvinb0125082014-08-06 16:09:23 -0700520config GLOB
521 bool
522# This actually supports modular compilation, but the module overhead
523# is ridiculous for the amount of code involved. Until an out-of-tree
524# driver asks for it, we'll just link it directly it into the kernel
525# when required. Since we're ignoring out-of-tree users, there's also
526# no need bother prompting for a manual decision:
527# prompt "glob_match() function"
528 help
529 This option provides a glob_match function for performing
530 simple text pattern matching. It originated in the ATA code
531 to blacklist particular drive models, but other device drivers
532 may need similar functionality.
533
534 All drivers in the Linux kernel tree that require this function
535 should automatically select this option. Say N unless you
536 are compiling an out-of tree driver which tells you that it
537 depends on this.
538
George Spelvin5f9be822014-08-06 16:09:25 -0700539config GLOB_SELFTEST
Geert Uytterhoevenba95b042017-02-24 15:00:52 -0800540 tristate "glob self-test on init"
George Spelvin5f9be822014-08-06 16:09:25 -0700541 depends on GLOB
542 help
543 This option enables a simple self-test of the glob_match
544 function on startup. It is primarily useful for people
545 working on the code to ensure they haven't introduced any
546 regressions.
547
548 It only adds a little bit of code and slows kernel boot (or
549 module load) by a small amount, so you're welcome to play with
550 it, but you probably don't need it.
551
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800552#
553# Netlink attribute parsing support is select'ed if needed
554#
555config NLATTR
556 bool
557
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000558#
559# Generic 64-bit atomic support is selected if needed
560#
561config GENERIC_ATOMIC64
562 bool
563
Philipp Reisnerb411b362009-09-25 16:07:19 -0700564config LRU_CACHE
565 tristate
566
David Millerc6df4b12012-02-02 00:17:54 +0200567config CLZ_TAB
568 bool
569
Christoph Hellwig511cbce2015-11-10 14:56:14 +0100570config IRQ_POLL
571 bool "IRQ polling library"
572 help
573 Helper library to poll interrupt mitigation using polling.
574
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300575config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200576 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200577 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300578 help
579 Multiprecision maths library from GnuPG.
580 It is used to implement RSA digital signature verification,
581 which is used by IMA/EVM digital signature extension.
582
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200583config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200584 tristate
Dmitry Kasatkin0d1f64f2014-07-11 18:59:45 +0300585 depends on KEYS
586 select CRYPTO
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200587 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300588 select MPILIB
589 help
590 Digital signature verification. Currently only RSA is supported.
591 Implementation is done using GnuPG MPI library
592
Tal Gilboa4f75da32019-01-10 17:33:17 +0200593config DIMLIB
Uwe Kleine-König424adc32019-09-24 18:02:59 +0200594 bool
Tal Gilboa4f75da32019-01-10 17:33:17 +0200595 help
596 Dynamic Interrupt Moderation library.
Randy Dunlap991ad2b2019-09-25 17:20:42 -0700597 Implements an algorithm for dynamically changing CQ moderation values
Tal Gilboa4f75da32019-01-10 17:33:17 +0200598 according to run time performance.
599
David Daneyab253832012-07-05 18:12:38 +0200600#
601# libfdt files, only selected if needed.
602#
603config LIBFDT
604 bool
605
David Howellsa77ad6e2012-09-21 23:30:46 +0100606config OID_REGISTRY
607 tristate
608 help
609 Enable fast lookup object identifier registry.
610
Matthew Garrett0635eb82013-04-15 13:09:45 -0700611config UCS2_STRING
Krzysztof Kozlowski68d4b3d2019-12-06 17:04:08 -0800612 tristate
Matthew Garrett0635eb82013-04-15 13:09:45 -0700613
Vincenzo Frascino00b26472019-06-21 10:52:29 +0100614#
615# generic vdso
616#
617source "lib/vdso/Kconfig"
618
Geert Uytterhoevenee89bd62013-06-09 11:46:43 +0200619source "lib/fonts/Kconfig"
620
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200621config SG_SPLIT
622 def_bool n
623 help
Geert Uytterhoeven7f7e92f2015-09-04 12:45:05 +0200624 Provides a helper to split scatterlists into chunks, each chunk being
625 a scatterlist. This should be selected by a driver or an API which
626 whishes to split a scatterlist amongst multiple DMA channels.
Robert Jarzmikf8bcbe62015-08-08 10:44:10 +0200627
Ming Lin9b1d6c82016-04-04 14:48:11 -0700628config SG_POOL
629 def_bool n
630 help
631 Provides a helper to allocate chained scatterlists. This should be
632 selected by a driver or an API which whishes to allocate chained
633 scatterlist.
634
Laura Abbott308c09f2014-08-08 14:23:25 -0700635#
636# sg chaining option
637#
638
Christoph Hellwig7c703e52018-11-09 09:51:00 +0100639config ARCH_NO_SG_CHAIN
Laura Abbott308c09f2014-08-08 14:23:25 -0700640 def_bool n
641
Ross Zwisler61031952015-06-25 03:08:39 -0400642config ARCH_HAS_PMEM_API
643 bool
644
Dan Williams33dd7072019-11-06 17:43:31 -0800645config MEMREGION
646 bool
647
Dan Williams9ffc1d12020-01-30 12:06:07 -0800648config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
649 bool
650
Christoph Hellwigbd79f942019-04-23 18:38:08 +0200651# use memcpy to implement user copies for nommu architectures
652config UACCESS_MEMCPY
653 bool
654
Dan Williams0aed55a2017-05-29 12:22:50 -0700655config ARCH_HAS_UACCESS_FLUSHCACHE
656 bool
657
Dan Williamsec6347b2020-10-05 20:40:16 -0700658# arch has a concept of a recoverable synchronous exception due to a
659# memory-read error like x86 machine-check or ARM data-abort, and
660# implements copy_mc_to_{user,kernel} to abort and report
661# 'bytes-transferred' if that exception fires when accessing the source
662# buffer.
663config ARCH_HAS_COPY_MC
Dan Williams522239b2018-05-22 23:17:03 -0700664 bool
665
Thomas Gleixner214d8ca2019-04-25 11:45:21 +0200666# Temporary. Goes away when all archs are cleaned up
667config ARCH_STACKWALK
668 bool
669
Alexander Potapenkocd110162016-03-25 14:22:08 -0700670config STACKDEPOT
671 bool
672 select STACKTRACE
673
Yogesh Lald2620932021-02-25 17:21:24 -0800674config STACK_HASH_ORDER
675 int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
676 range 12 20
677 default 20
678 depends on STACKDEPOT
679 help
680 Select the hash size as a power of 2 for the stackdepot hash table.
681 Choose a lower value to reduce the memory impact.
682
Omar Sandoval88459642016-09-17 08:38:44 -0600683config SBITMAP
684 bool
685
Jiri Pirko44091d22017-02-03 10:29:06 +0100686config PARMAN
Geert Uytterhoeven9d25af62017-02-24 11:25:55 +0100687 tristate "parman" if COMPILE_TEST
Jiri Pirko44091d22017-02-03 10:29:06 +0100688
Randy Dunlap3dfdecc2019-09-09 14:54:21 -0700689config OBJAGG
690 tristate "objagg" if COMPILE_TEST
691
Thomas Graf2de4ff72005-06-23 20:49:30 -0700692endmenu
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700693
Christoph Hellwig80b0ca92019-08-13 11:24:04 +0200694config GENERIC_IOREMAP
695 bool
696
Matt Redfearne3d59802018-04-11 08:50:17 +0100697config GENERIC_LIB_ASHLDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700698 bool
699
Matt Redfearne3d59802018-04-11 08:50:17 +0100700config GENERIC_LIB_ASHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700701 bool
702
Matt Redfearne3d59802018-04-11 08:50:17 +0100703config GENERIC_LIB_LSHRDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700704 bool
705
Matt Redfearne3d59802018-04-11 08:50:17 +0100706config GENERIC_LIB_MULDI3
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700707 bool
708
Matt Redfearne3d59802018-04-11 08:50:17 +0100709config GENERIC_LIB_CMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700710 bool
711
Matt Redfearne3d59802018-04-11 08:50:17 +0100712config GENERIC_LIB_UCMPDI2
Palmer Dabbeltb35cd982017-05-23 10:28:26 -0700713 bool
Jacob Kellerb8265622020-07-23 17:21:59 -0700714
Palmer Dabbelt527701e2020-07-09 11:43:21 -0700715config GENERIC_LIB_DEVMEM_IS_ALLOWED
716 bool
717
Jacob Kellerb8265622020-07-23 17:21:59 -0700718config PLDMFW
719 bool
720 default n
James Bottomleyb0706762021-01-27 11:06:13 -0800721
722config ASN1_ENCODER
723 tristate