]> Git Repo - J-linux.git/blob - lib/Kconfig
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / lib / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Library configuration
4 #
5
6 config BINARY_PRINTF
7         def_bool n
8
9 menu "Library routines"
10
11 config RAID6_PQ
12         tristate
13
14 config 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
22 config LINEAR_RANGES
23         tristate
24
25 config 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
43 config 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
55 config BITREVERSE
56         tristate
57
58 config 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
65 config ARCH_HAS_STRNCPY_FROM_USER
66         bool
67
68 config ARCH_HAS_STRNLEN_USER
69         bool
70
71 config GENERIC_STRNCPY_FROM_USER
72         def_bool !ARCH_HAS_STRNCPY_FROM_USER
73
74 config GENERIC_STRNLEN_USER
75         def_bool !ARCH_HAS_STRNLEN_USER
76
77 config GENERIC_NET_UTILS
78         bool
79
80 source "lib/math/Kconfig"
81
82 config NO_GENERIC_PCI_IOPORT_MAP
83         bool
84
85 config GENERIC_IOMAP
86         bool
87         select GENERIC_PCI_IOMAP
88
89 config STMP_DEVICE
90         bool
91
92 config ARCH_USE_CMPXCHG_LOCKREF
93         bool
94
95 config ARCH_HAS_FAST_MULTIPLIER
96         bool
97
98 config ARCH_USE_SYM_ANNOTATIONS
99         bool
100
101 config 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
118 config INDIRECT_IOMEM
119         bool
120         help
121           This is selected by other options/architectures to provide the
122           emulated iomem accessors.
123
124 config 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
132 config 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
139 source "lib/crypto/Kconfig"
140
141 config CRC_CCITT
142         tristate "CRC-CCITT functions"
143         help
144           This option is provided for the case where no in-kernel-tree
145           modules require CRC-CCITT functions, but a module built outside
146           the kernel tree does. Such modules that use library CRC-CCITT
147           functions require M here.
148
149 config CRC16
150         tristate "CRC16 functions"
151         help
152           This option is provided for the case where no in-kernel-tree
153           modules require CRC16 functions, but a module built outside
154           the kernel tree does. Such modules that use library CRC16
155           functions require M here.
156
157 config CRC_T10DIF
158         tristate "CRC calculation for the T10 Data Integrity Field"
159         select CRYPTO
160         select CRYPTO_CRCT10DIF
161         help
162           This option is only needed if a module that's not in the
163           kernel tree needs to calculate CRC checks for use with the
164           SCSI data integrity subsystem.
165
166 config CRC64_ROCKSOFT
167         tristate "CRC calculation for the Rocksoft model CRC64"
168         select CRC64
169         select CRYPTO
170         select CRYPTO_CRC64_ROCKSOFT
171         help
172           This option provides a CRC64 API to a registered crypto driver.
173           This is used with the block layer's data integrity subsystem.
174
175 config CRC_ITU_T
176         tristate "CRC ITU-T V.41 functions"
177         help
178           This option is provided for the case where no in-kernel-tree
179           modules require CRC ITU-T V.41 functions, but a module built outside
180           the kernel tree does. Such modules that use library CRC ITU-T V.41
181           functions require M here.
182
183 config CRC32
184         tristate "CRC32/CRC32c functions"
185         default y
186         select BITREVERSE
187         help
188           This option is provided for the case where no in-kernel-tree
189           modules require CRC32/CRC32c functions, but a module built outside
190           the kernel tree does. Such modules that use library CRC32/CRC32c
191           functions require M here.
192
193 config CRC32_SELFTEST
194         tristate "CRC32 perform self test on init"
195         depends on CRC32
196         help
197           This option enables the CRC32 library functions to perform a
198           self test on initialization. The self test computes crc32_le
199           and crc32_be over byte strings with random alignment and length
200           and computes the total elapsed time and number of bytes processed.
201
202 choice
203         prompt "CRC32 implementation"
204         depends on CRC32
205         default CRC32_SLICEBY8
206         help
207           This option allows a kernel builder to override the default choice
208           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
209           know that you need one of the others.
210
211 config CRC32_SLICEBY8
212         bool "Slice by 8 bytes"
213         help
214           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
215           This is the fastest algorithm, but comes with a 8KiB lookup table.
216           Most modern processors have enough cache to hold this table without
217           thrashing the cache.
218
219           This is the default implementation choice.  Choose this one unless
220           you have a good reason not to.
221
222 config CRC32_SLICEBY4
223         bool "Slice by 4 bytes"
224         help
225           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
226           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
227           table.
228
229           Only choose this option if you know what you are doing.
230
231 config CRC32_SARWATE
232         bool "Sarwate's Algorithm (one byte at a time)"
233         help
234           Calculate checksum a byte at a time using Sarwate's algorithm.  This
235           is not particularly fast, but has a small 256 byte lookup table.
236
237           Only choose this option if you know what you are doing.
238
239 config CRC32_BIT
240         bool "Classic Algorithm (one bit at a time)"
241         help
242           Calculate checksum one bit at a time.  This is VERY slow, but has
243           no lookup table.  This is provided as a debugging option.
244
245           Only choose this option if you are debugging crc32.
246
247 endchoice
248
249 config CRC64
250         tristate "CRC64 functions"
251         help
252           This option is provided for the case where no in-kernel-tree
253           modules require CRC64 functions, but a module built outside
254           the kernel tree does. Such modules that use library CRC64
255           functions require M here.
256
257 config CRC4
258         tristate "CRC4 functions"
259         help
260           This option is provided for the case where no in-kernel-tree
261           modules require CRC4 functions, but a module built outside
262           the kernel tree does. Such modules that use library CRC4
263           functions require M here.
264
265 config CRC7
266         tristate "CRC7 functions"
267         help
268           This option is provided for the case where no in-kernel-tree
269           modules require CRC7 functions, but a module built outside
270           the kernel tree does. Such modules that use library CRC7
271           functions require M here.
272
273 config LIBCRC32C
274         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
275         select CRYPTO
276         select CRYPTO_CRC32C
277         help
278           This option is provided for the case where no in-kernel-tree
279           modules require CRC32c functions, but a module built outside the
280           kernel tree does. Such modules that use library CRC32c functions
281           require M here.  See Castagnoli93.
282           Module will be libcrc32c.
283
284 config CRC8
285         tristate "CRC8 function"
286         help
287           This option provides CRC8 function. Drivers may select this
288           when they need to do cyclic redundancy check according CRC8
289           algorithm. Module will be called crc8.
290
291 config XXHASH
292         tristate
293
294 config AUDIT_GENERIC
295         bool
296         depends on AUDIT && !AUDIT_ARCH
297         default y
298
299 config AUDIT_ARCH_COMPAT_GENERIC
300         bool
301         default n
302
303 config AUDIT_COMPAT_GENERIC
304         bool
305         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
306         default y
307
308 config RANDOM32_SELFTEST
309         bool "PRNG perform self test on init"
310         help
311           This option enables the 32 bit PRNG library functions to perform a
312           self test on initialization.
313
314 #
315 # compression support is select'ed if needed
316 #
317 config 842_COMPRESS
318         select CRC32
319         tristate
320
321 config 842_DECOMPRESS
322         select CRC32
323         tristate
324
325 config ZLIB_INFLATE
326         tristate
327
328 config ZLIB_DEFLATE
329         tristate
330         select BITREVERSE
331
332 config ZLIB_DFLTCC
333         def_bool y
334         depends on S390
335         prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
336         help
337          Enable s390x hardware support for zlib in the kernel.
338
339 config LZO_COMPRESS
340         tristate
341
342 config LZO_DECOMPRESS
343         tristate
344
345 config LZ4_COMPRESS
346         tristate
347
348 config LZ4HC_COMPRESS
349         tristate
350
351 config LZ4_DECOMPRESS
352         tristate
353
354 config ZSTD_COMMON
355         select XXHASH
356         tristate
357
358 config ZSTD_COMPRESS
359         select ZSTD_COMMON
360         tristate
361
362 config ZSTD_DECOMPRESS
363         select ZSTD_COMMON
364         tristate
365
366 source "lib/xz/Kconfig"
367
368 #
369 # These all provide a common interface (hence the apparent duplication with
370 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
371 #
372 config DECOMPRESS_GZIP
373         select ZLIB_INFLATE
374         tristate
375
376 config DECOMPRESS_BZIP2
377         tristate
378
379 config DECOMPRESS_LZMA
380         tristate
381
382 config DECOMPRESS_XZ
383         select XZ_DEC
384         tristate
385
386 config DECOMPRESS_LZO
387         select LZO_DECOMPRESS
388         tristate
389
390 config DECOMPRESS_LZ4
391         select LZ4_DECOMPRESS
392         tristate
393
394 config DECOMPRESS_ZSTD
395         select ZSTD_DECOMPRESS
396         tristate
397
398 #
399 # Generic allocator support is selected if needed
400 #
401 config GENERIC_ALLOCATOR
402         bool
403
404 #
405 # reed solomon support is select'ed if needed
406 #
407 config REED_SOLOMON
408         tristate
409         
410 config REED_SOLOMON_ENC8
411         bool
412
413 config REED_SOLOMON_DEC8
414         bool
415
416 config REED_SOLOMON_ENC16
417         bool
418
419 config REED_SOLOMON_DEC16
420         bool
421
422 #
423 # BCH support is selected if needed
424 #
425 config BCH
426         tristate
427         select BITREVERSE
428
429 config BCH_CONST_PARAMS
430         bool
431         help
432           Drivers may select this option to force specific constant
433           values for parameters 'm' (Galois field order) and 't'
434           (error correction capability). Those specific values must
435           be set by declaring default values for symbols BCH_CONST_M
436           and BCH_CONST_T.
437           Doing so will enable extra compiler optimizations,
438           improving encoding and decoding performance up to 2x for
439           usual (m,t) values (typically such that m*t < 200).
440           When this option is selected, the BCH library supports
441           only a single (m,t) configuration. This is mainly useful
442           for NAND flash board drivers requiring known, fixed BCH
443           parameters.
444
445 config BCH_CONST_M
446         int
447         range 5 15
448         help
449           Constant value for Galois field order 'm'. If 'k' is the
450           number of data bits to protect, 'm' should be chosen such
451           that (k + m*t) <= 2**m - 1.
452           Drivers should declare a default value for this symbol if
453           they select option BCH_CONST_PARAMS.
454
455 config BCH_CONST_T
456         int
457         help
458           Constant value for error correction capability in bits 't'.
459           Drivers should declare a default value for this symbol if
460           they select option BCH_CONST_PARAMS.
461
462 #
463 # Textsearch support is select'ed if needed
464 #
465 config TEXTSEARCH
466         bool
467
468 config TEXTSEARCH_KMP
469         tristate
470
471 config TEXTSEARCH_BM
472         tristate
473
474 config TEXTSEARCH_FSM
475         tristate
476
477 config BTREE
478         bool
479
480 config INTERVAL_TREE
481         bool
482         help
483           Simple, embeddable, interval-tree. Can find the start of an
484           overlapping range in log(n) time and then iterate over all
485           overlapping nodes. The algorithm is implemented as an
486           augmented rbtree.
487
488           See:
489
490                 Documentation/core-api/rbtree.rst
491
492           for more information.
493
494 config INTERVAL_TREE_SPAN_ITER
495         bool
496         depends on INTERVAL_TREE
497
498 config XARRAY_MULTI
499         bool
500         help
501           Support entries which occupy multiple consecutive indices in the
502           XArray.
503
504 config ASSOCIATIVE_ARRAY
505         bool
506         help
507           Generic associative array.  Can be searched and iterated over whilst
508           it is being modified.  It is also reasonably quick to search and
509           modify.  The algorithms are non-recursive, and the trees are highly
510           capacious.
511
512           See:
513
514                 Documentation/core-api/assoc_array.rst
515
516           for more information.
517
518 config CLOSURES
519         bool
520
521 config HAS_IOMEM
522         bool
523         depends on !NO_IOMEM
524         default y
525
526 config HAS_IOPORT
527         bool
528
529 config HAS_IOPORT_MAP
530         bool
531         depends on HAS_IOMEM && !NO_IOPORT_MAP
532         default y
533
534 source "kernel/dma/Kconfig"
535
536 config SGL_ALLOC
537         bool
538         default n
539
540 config IOMMU_HELPER
541         bool
542
543 config CHECK_SIGNATURE
544         bool
545
546 config CPUMASK_OFFSTACK
547         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
548         help
549           Use dynamic allocation for cpumask_var_t, instead of putting
550           them on the stack.  This is a bit more expensive, but avoids
551           stack overflow.
552
553 config FORCE_NR_CPUS
554         def_bool !SMP
555
556 config CPU_RMAP
557         bool
558         depends on SMP
559
560 config DQL
561         bool
562
563 config GLOB
564         bool
565 #       This actually supports modular compilation, but the module overhead
566 #       is ridiculous for the amount of code involved.  Until an out-of-tree
567 #       driver asks for it, we'll just link it directly it into the kernel
568 #       when required.  Since we're ignoring out-of-tree users, there's also
569 #       no need bother prompting for a manual decision:
570 #       prompt "glob_match() function"
571         help
572           This option provides a glob_match function for performing
573           simple text pattern matching.  It originated in the ATA code
574           to blacklist particular drive models, but other device drivers
575           may need similar functionality.
576
577           All drivers in the Linux kernel tree that require this function
578           should automatically select this option.  Say N unless you
579           are compiling an out-of tree driver which tells you that it
580           depends on this.
581
582 config GLOB_SELFTEST
583         tristate "glob self-test on init"
584         depends on GLOB
585         help
586           This option enables a simple self-test of the glob_match
587           function on startup.  It is primarily useful for people
588           working on the code to ensure they haven't introduced any
589           regressions.
590
591           It only adds a little bit of code and slows kernel boot (or
592           module load) by a small amount, so you're welcome to play with
593           it, but you probably don't need it.
594
595 #
596 # Netlink attribute parsing support is select'ed if needed
597 #
598 config NLATTR
599         bool
600
601 #
602 # Generic 64-bit atomic support is selected if needed
603 #
604 config GENERIC_ATOMIC64
605        bool
606
607 config LRU_CACHE
608         tristate
609
610 config CLZ_TAB
611         bool
612
613 config IRQ_POLL
614         bool "IRQ polling library"
615         help
616           Helper library to poll interrupt mitigation using polling.
617
618 config MPILIB
619         tristate
620         select CLZ_TAB
621         help
622           Multiprecision maths library from GnuPG.
623           It is used to implement RSA digital signature verification,
624           which is used by IMA/EVM digital signature extension.
625
626 config SIGNATURE
627         tristate
628         depends on KEYS
629         select CRYPTO
630         select CRYPTO_SHA1
631         select MPILIB
632         help
633           Digital signature verification. Currently only RSA is supported.
634           Implementation is done using GnuPG MPI library
635
636 config DIMLIB
637         tristate
638         depends on NET
639         help
640           Dynamic Interrupt Moderation library.
641           Implements an algorithm for dynamically changing CQ moderation values
642           according to run time performance.
643
644 #
645 # libfdt files, only selected if needed.
646 #
647 config LIBFDT
648         bool
649
650 config OID_REGISTRY
651         tristate
652         help
653           Enable fast lookup object identifier registry.
654
655 config UCS2_STRING
656         tristate
657
658 #
659 # generic vdso
660 #
661 source "lib/vdso/Kconfig"
662
663 source "lib/fonts/Kconfig"
664
665 config SG_SPLIT
666         def_bool n
667         help
668          Provides a helper to split scatterlists into chunks, each chunk being
669          a scatterlist. This should be selected by a driver or an API which
670          whishes to split a scatterlist amongst multiple DMA channels.
671
672 config SG_POOL
673         def_bool n
674         help
675          Provides a helper to allocate chained scatterlists. This should be
676          selected by a driver or an API which whishes to allocate chained
677          scatterlist.
678
679 #
680 # sg chaining option
681 #
682
683 config ARCH_NO_SG_CHAIN
684         def_bool n
685
686 config ARCH_HAS_PMEM_API
687         bool
688
689 config MEMREGION
690         bool
691
692 config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION
693         bool
694
695 config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
696         bool
697
698 # use memcpy to implement user copies for nommu architectures
699 config UACCESS_MEMCPY
700         bool
701
702 config ARCH_HAS_UACCESS_FLUSHCACHE
703         bool
704
705 # arch has a concept of a recoverable synchronous exception due to a
706 # memory-read error like x86 machine-check or ARM data-abort, and
707 # implements copy_mc_to_{user,kernel} to abort and report
708 # 'bytes-transferred' if that exception fires when accessing the source
709 # buffer.
710 config ARCH_HAS_COPY_MC
711         bool
712
713 # Temporary. Goes away when all archs are cleaned up
714 config ARCH_STACKWALK
715        bool
716
717 config STACKDEPOT
718         bool
719         select STACKTRACE
720         help
721           Stack depot: stack trace storage that avoids duplication
722
723 config STACKDEPOT_ALWAYS_INIT
724         bool
725         select STACKDEPOT
726         help
727           Always initialize stack depot during early boot
728
729 config STACKDEPOT_MAX_FRAMES
730         int "Maximum number of frames in trace saved in stack depot"
731         range 1 256
732         default 64
733         depends on STACKDEPOT
734
735 config REF_TRACKER
736         bool
737         depends on STACKTRACE_SUPPORT
738         select STACKDEPOT
739
740 config SBITMAP
741         bool
742
743 config PARMAN
744         tristate "parman" if COMPILE_TEST
745
746 config OBJAGG
747         tristate "objagg" if COMPILE_TEST
748
749 config LWQ_TEST
750         bool "Boot-time test for lwq queuing"
751         help
752           Run boot-time test of light-weight queuing.
753
754 endmenu
755
756 config GENERIC_IOREMAP
757         bool
758
759 config GENERIC_LIB_ASHLDI3
760         bool
761
762 config GENERIC_LIB_ASHRDI3
763         bool
764
765 config GENERIC_LIB_LSHRDI3
766         bool
767
768 config GENERIC_LIB_MULDI3
769         bool
770
771 config GENERIC_LIB_CMPDI2
772         bool
773
774 config GENERIC_LIB_UCMPDI2
775         bool
776
777 config GENERIC_LIB_DEVMEM_IS_ALLOWED
778         bool
779
780 config PLDMFW
781         bool
782         default n
783
784 config ASN1_ENCODER
785        tristate
786
787 config POLYNOMIAL
788        tristate
789
790 config FIRMWARE_TABLE
791         bool
792
793 config UNION_FIND
794         bool
795
796 config MIN_HEAP
797         bool
This page took 0.066887 seconds and 4 git commands to generate.