GNU Linux-libre 4.14.328-gnu1
[releases.git] / lib / Kconfig
1 #
2 # Library configuration
3 #
4
5 config BINARY_PRINTF
6         def_bool n
7
8 menu "Library routines"
9
10 config RAID6_PQ
11         tristate
12
13 config BITREVERSE
14         tristate
15
16 config HAVE_ARCH_BITREVERSE
17         bool
18         default n
19         help
20           This option enables the use of hardware bit-reversal instructions on
21           architectures which support such operations.
22
23 config RATIONAL
24         bool
25
26 config GENERIC_STRNCPY_FROM_USER
27         bool
28
29 config GENERIC_STRNLEN_USER
30         bool
31
32 config GENERIC_NET_UTILS
33         bool
34
35 config GENERIC_FIND_FIRST_BIT
36         bool
37
38 config NO_GENERIC_PCI_IOPORT_MAP
39         bool
40
41 config GENERIC_PCI_IOMAP
42         bool
43
44 config GENERIC_IOMAP
45         bool
46         select GENERIC_PCI_IOMAP
47
48 config GENERIC_IO
49         bool
50         default n
51
52 config STMP_DEVICE
53         bool
54
55 config ARCH_USE_CMPXCHG_LOCKREF
56         bool
57
58 config ARCH_HAS_FAST_MULTIPLIER
59         bool
60
61 config CRC_CCITT
62         tristate "CRC-CCITT functions"
63         help
64           This option is provided for the case where no in-kernel-tree
65           modules require CRC-CCITT functions, but a module built outside
66           the kernel tree does. Such modules that use library CRC-CCITT
67           functions require M here.
68
69 config CRC16
70         tristate "CRC16 functions"
71         help
72           This option is provided for the case where no in-kernel-tree
73           modules require CRC16 functions, but a module built outside
74           the kernel tree does. Such modules that use library CRC16
75           functions require M here.
76
77 config CRC_T10DIF
78         tristate "CRC calculation for the T10 Data Integrity Field"
79         select CRYPTO
80         select CRYPTO_CRCT10DIF
81         help
82           This option is only needed if a module that's not in the
83           kernel tree needs to calculate CRC checks for use with the
84           SCSI data integrity subsystem.
85
86 config CRC_ITU_T
87         tristate "CRC ITU-T V.41 functions"
88         help
89           This option is provided for the case where no in-kernel-tree
90           modules require CRC ITU-T V.41 functions, but a module built outside
91           the kernel tree does. Such modules that use library CRC ITU-T V.41
92           functions require M here.
93
94 config CRC32
95         tristate "CRC32/CRC32c functions"
96         default y
97         select BITREVERSE
98         help
99           This option is provided for the case where no in-kernel-tree
100           modules require CRC32/CRC32c functions, but a module built outside
101           the kernel tree does. Such modules that use library CRC32/CRC32c
102           functions require M here.
103
104 config CRC32_SELFTEST
105         tristate "CRC32 perform self test on init"
106         depends on CRC32
107         help
108           This option enables the CRC32 library functions to perform a
109           self test on initialization. The self test computes crc32_le
110           and crc32_be over byte strings with random alignment and length
111           and computes the total elapsed time and number of bytes processed.
112
113 choice
114         prompt "CRC32 implementation"
115         depends on CRC32
116         default CRC32_SLICEBY8
117         help
118           This option allows a kernel builder to override the default choice
119           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
120           know that you need one of the others.
121
122 config CRC32_SLICEBY8
123         bool "Slice by 8 bytes"
124         help
125           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
126           This is the fastest algorithm, but comes with a 8KiB lookup table.
127           Most modern processors have enough cache to hold this table without
128           thrashing the cache.
129
130           This is the default implementation choice.  Choose this one unless
131           you have a good reason not to.
132
133 config CRC32_SLICEBY4
134         bool "Slice by 4 bytes"
135         help
136           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
137           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
138           table.
139
140           Only choose this option if you know what you are doing.
141
142 config CRC32_SARWATE
143         bool "Sarwate's Algorithm (one byte at a time)"
144         help
145           Calculate checksum a byte at a time using Sarwate's algorithm.  This
146           is not particularly fast, but has a small 256 byte lookup table.
147
148           Only choose this option if you know what you are doing.
149
150 config CRC32_BIT
151         bool "Classic Algorithm (one bit at a time)"
152         help
153           Calculate checksum one bit at a time.  This is VERY slow, but has
154           no lookup table.  This is provided as a debugging option.
155
156           Only choose this option if you are debugging crc32.
157
158 endchoice
159
160 config CRC4
161         tristate "CRC4 functions"
162         help
163           This option is provided for the case where no in-kernel-tree
164           modules require CRC4 functions, but a module built outside
165           the kernel tree does. Such modules that use library CRC4
166           functions require M here.
167
168 config CRC7
169         tristate "CRC7 functions"
170         help
171           This option is provided for the case where no in-kernel-tree
172           modules require CRC7 functions, but a module built outside
173           the kernel tree does. Such modules that use library CRC7
174           functions require M here.
175
176 config LIBCRC32C
177         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
178         select CRYPTO
179         select CRYPTO_CRC32C
180         help
181           This option is provided for the case where no in-kernel-tree
182           modules require CRC32c functions, but a module built outside the
183           kernel tree does. Such modules that use library CRC32c functions
184           require M here.  See Castagnoli93.
185           Module will be libcrc32c.
186
187 config CRC8
188         tristate "CRC8 function"
189         help
190           This option provides CRC8 function. Drivers may select this
191           when they need to do cyclic redundancy check according CRC8
192           algorithm. Module will be called crc8.
193
194 config XXHASH
195         tristate
196
197 config AUDIT_GENERIC
198         bool
199         depends on AUDIT && !AUDIT_ARCH
200         default y
201
202 config AUDIT_ARCH_COMPAT_GENERIC
203         bool
204         default n
205
206 config AUDIT_COMPAT_GENERIC
207         bool
208         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
209         default y
210
211 config RANDOM32_SELFTEST
212         bool "PRNG perform self test on init"
213         default n
214         help
215           This option enables the 32 bit PRNG library functions to perform a
216           self test on initialization.
217
218 #
219 # compression support is select'ed if needed
220 #
221 config 842_COMPRESS
222         select CRC32
223         tristate
224
225 config 842_DECOMPRESS
226         select CRC32
227         tristate
228
229 config ZLIB_INFLATE
230         tristate
231
232 config ZLIB_DEFLATE
233         tristate
234         select BITREVERSE
235
236 config LZO_COMPRESS
237         tristate
238
239 config LZO_DECOMPRESS
240         tristate
241
242 config LZ4_COMPRESS
243         tristate
244
245 config LZ4HC_COMPRESS
246         tristate
247
248 config LZ4_DECOMPRESS
249         tristate
250
251 config ZSTD_COMPRESS
252         select XXHASH
253         tristate
254
255 config ZSTD_DECOMPRESS
256         select XXHASH
257         tristate
258
259 source "lib/xz/Kconfig"
260
261 #
262 # These all provide a common interface (hence the apparent duplication with
263 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
264 #
265 config DECOMPRESS_GZIP
266         select ZLIB_INFLATE
267         tristate
268
269 config DECOMPRESS_BZIP2
270         tristate
271
272 config DECOMPRESS_LZMA
273         tristate
274
275 config DECOMPRESS_XZ
276         select XZ_DEC
277         tristate
278
279 config DECOMPRESS_LZO
280         select LZO_DECOMPRESS
281         tristate
282
283 config DECOMPRESS_LZ4
284         select LZ4_DECOMPRESS
285         tristate
286
287 #
288 # Generic allocator support is selected if needed
289 #
290 config GENERIC_ALLOCATOR
291         bool
292
293 #
294 # reed solomon support is select'ed if needed
295 #
296 config REED_SOLOMON
297         tristate
298         
299 config REED_SOLOMON_ENC8
300         bool
301
302 config REED_SOLOMON_DEC8
303         bool
304
305 config REED_SOLOMON_ENC16
306         bool
307
308 config REED_SOLOMON_DEC16
309         bool
310
311 #
312 # BCH support is selected if needed
313 #
314 config BCH
315         tristate
316
317 config BCH_CONST_PARAMS
318         bool
319         help
320           Drivers may select this option to force specific constant
321           values for parameters 'm' (Galois field order) and 't'
322           (error correction capability). Those specific values must
323           be set by declaring default values for symbols BCH_CONST_M
324           and BCH_CONST_T.
325           Doing so will enable extra compiler optimizations,
326           improving encoding and decoding performance up to 2x for
327           usual (m,t) values (typically such that m*t < 200).
328           When this option is selected, the BCH library supports
329           only a single (m,t) configuration. This is mainly useful
330           for NAND flash board drivers requiring known, fixed BCH
331           parameters.
332
333 config BCH_CONST_M
334         int
335         range 5 15
336         help
337           Constant value for Galois field order 'm'. If 'k' is the
338           number of data bits to protect, 'm' should be chosen such
339           that (k + m*t) <= 2**m - 1.
340           Drivers should declare a default value for this symbol if
341           they select option BCH_CONST_PARAMS.
342
343 config BCH_CONST_T
344         int
345         help
346           Constant value for error correction capability in bits 't'.
347           Drivers should declare a default value for this symbol if
348           they select option BCH_CONST_PARAMS.
349
350 #
351 # Textsearch support is select'ed if needed
352 #
353 config TEXTSEARCH
354         bool
355
356 config TEXTSEARCH_KMP
357         tristate
358
359 config TEXTSEARCH_BM
360         tristate
361
362 config TEXTSEARCH_FSM
363         tristate
364
365 config BTREE
366         bool
367
368 config INTERVAL_TREE
369         bool
370         help
371           Simple, embeddable, interval-tree. Can find the start of an
372           overlapping range in log(n) time and then iterate over all
373           overlapping nodes. The algorithm is implemented as an
374           augmented rbtree.
375
376           See:
377
378                 Documentation/rbtree.txt
379
380           for more information.
381
382 config RADIX_TREE_MULTIORDER
383         bool
384
385 config ASSOCIATIVE_ARRAY
386         bool
387         help
388           Generic associative array.  Can be searched and iterated over whilst
389           it is being modified.  It is also reasonably quick to search and
390           modify.  The algorithms are non-recursive, and the trees are highly
391           capacious.
392
393           See:
394
395                 Documentation/assoc_array.txt
396
397           for more information.
398
399 config HAS_IOMEM
400         bool
401         depends on !NO_IOMEM
402         select GENERIC_IO
403         default y
404
405 config HAS_IOPORT_MAP
406         bool
407         depends on HAS_IOMEM && !NO_IOPORT_MAP
408         default y
409
410 config HAS_DMA
411         bool
412         depends on !NO_DMA
413         default y
414
415 config SGL_ALLOC
416         bool
417         default n
418
419 config DMA_NOOP_OPS
420         bool
421         depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
422         default n
423
424 config DMA_VIRT_OPS
425         bool
426         depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
427         default n
428
429 config CHECK_SIGNATURE
430         bool
431
432 config CPUMASK_OFFSTACK
433         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
434         help
435           Use dynamic allocation for cpumask_var_t, instead of putting
436           them on the stack.  This is a bit more expensive, but avoids
437           stack overflow.
438
439 config CPU_RMAP
440         bool
441         depends on SMP
442
443 config DQL
444         bool
445
446 config GLOB
447         bool
448 #       This actually supports modular compilation, but the module overhead
449 #       is ridiculous for the amount of code involved.  Until an out-of-tree
450 #       driver asks for it, we'll just link it directly it into the kernel
451 #       when required.  Since we're ignoring out-of-tree users, there's also
452 #       no need bother prompting for a manual decision:
453 #       prompt "glob_match() function"
454         help
455           This option provides a glob_match function for performing
456           simple text pattern matching.  It originated in the ATA code
457           to blacklist particular drive models, but other device drivers
458           may need similar functionality.
459
460           All drivers in the Linux kernel tree that require this function
461           should automatically select this option.  Say N unless you
462           are compiling an out-of tree driver which tells you that it
463           depends on this.
464
465 config GLOB_SELFTEST
466         tristate "glob self-test on init"
467         depends on GLOB
468         help
469           This option enables a simple self-test of the glob_match
470           function on startup.  It is primarily useful for people
471           working on the code to ensure they haven't introduced any
472           regressions.
473
474           It only adds a little bit of code and slows kernel boot (or
475           module load) by a small amount, so you're welcome to play with
476           it, but you probably don't need it.
477
478 #
479 # Netlink attribute parsing support is select'ed if needed
480 #
481 config NLATTR
482         bool
483
484 #
485 # Generic 64-bit atomic support is selected if needed
486 #
487 config GENERIC_ATOMIC64
488        bool
489
490 config LRU_CACHE
491         tristate
492
493 config CLZ_TAB
494         bool
495
496 config CORDIC
497         tristate "CORDIC algorithm"
498         help
499           This option provides an implementation of the CORDIC algorithm;
500           calculations are in fixed point. Module will be called cordic.
501
502 config DDR
503         bool "JEDEC DDR data"
504         help
505           Data from JEDEC specs for DDR SDRAM memories,
506           particularly the AC timing parameters and addressing
507           information. This data is useful for drivers handling
508           DDR SDRAM controllers.
509
510 config IRQ_POLL
511         bool "IRQ polling library"
512         help
513           Helper library to poll interrupt mitigation using polling.
514
515 config MPILIB
516         tristate
517         select CLZ_TAB
518         help
519           Multiprecision maths library from GnuPG.
520           It is used to implement RSA digital signature verification,
521           which is used by IMA/EVM digital signature extension.
522
523 config SIGNATURE
524         tristate
525         depends on KEYS
526         select CRYPTO
527         select CRYPTO_SHA1
528         select MPILIB
529         help
530           Digital signature verification. Currently only RSA is supported.
531           Implementation is done using GnuPG MPI library
532
533 #
534 # libfdt files, only selected if needed.
535 #
536 config LIBFDT
537         bool
538
539 config OID_REGISTRY
540         tristate
541         help
542           Enable fast lookup object identifier registry.
543
544 config UCS2_STRING
545         tristate
546
547 source "lib/fonts/Kconfig"
548
549 config SG_SPLIT
550         def_bool n
551         help
552          Provides a helper to split scatterlists into chunks, each chunk being
553          a scatterlist. This should be selected by a driver or an API which
554          whishes to split a scatterlist amongst multiple DMA channels.
555
556 config SG_POOL
557         def_bool n
558         help
559          Provides a helper to allocate chained scatterlists. This should be
560          selected by a driver or an API which whishes to allocate chained
561          scatterlist.
562
563 #
564 # sg chaining option
565 #
566
567 config ARCH_HAS_SG_CHAIN
568         def_bool n
569
570 config ARCH_HAS_PMEM_API
571         bool
572
573 config ARCH_HAS_UACCESS_FLUSHCACHE
574         bool
575
576 config STACKDEPOT
577         bool
578         select STACKTRACE
579
580 config SBITMAP
581         bool
582
583 config PARMAN
584         tristate "parman" if COMPILE_TEST
585
586 config PRIME_NUMBERS
587         tristate
588
589 config STRING_SELFTEST
590         bool "Test string functions"
591
592 endmenu