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