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