xref: /linux/lib/Kconfig (revision b6ebbac51bedf9e98e837688bc838f400196da5e)
1#
2# Library configuration
3#
4
5config BINARY_PRINTF
6	def_bool n
7
8menu "Library routines"
9
10config RAID6_PQ
11	tristate
12
13config BITREVERSE
14	tristate
15
16config 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
24config RATIONAL
25	bool
26
27config GENERIC_STRNCPY_FROM_USER
28	bool
29
30config GENERIC_STRNLEN_USER
31	bool
32
33config GENERIC_NET_UTILS
34	bool
35
36config GENERIC_FIND_FIRST_BIT
37	bool
38
39config NO_GENERIC_PCI_IOPORT_MAP
40	bool
41
42config GENERIC_PCI_IOMAP
43	bool
44
45config GENERIC_IOMAP
46	bool
47	select GENERIC_PCI_IOMAP
48
49config GENERIC_IO
50	bool
51	default n
52
53config STMP_DEVICE
54	bool
55
56config ARCH_USE_CMPXCHG_LOCKREF
57	bool
58
59config ARCH_HAS_FAST_MULTIPLIER
60	bool
61
62config 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
70config 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
78config 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
87config 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
95config 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
105config 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
115choice
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
124config 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
135config 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
144config 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
152config 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
160endchoice
161
162config 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
170config 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
181config 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
188config AUDIT_GENERIC
189	bool
190	depends on AUDIT && !AUDIT_ARCH
191	default y
192
193config AUDIT_ARCH_COMPAT_GENERIC
194	bool
195	default n
196
197config AUDIT_COMPAT_GENERIC
198	bool
199	depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
200	default y
201
202config RANDOM32_SELFTEST
203	bool "PRNG perform self test on init"
204	default n
205	help
206	  This option enables the 32 bit PRNG library functions to perform a
207	  self test on initialization.
208
209#
210# compression support is select'ed if needed
211#
212config 842_COMPRESS
213	select CRC32
214	tristate
215
216config 842_DECOMPRESS
217	select CRC32
218	tristate
219
220config ZLIB_INFLATE
221	tristate
222
223config ZLIB_DEFLATE
224	tristate
225	select BITREVERSE
226
227config LZO_COMPRESS
228	tristate
229
230config LZO_DECOMPRESS
231	tristate
232
233config LZ4_COMPRESS
234	tristate
235
236config LZ4HC_COMPRESS
237	tristate
238
239config LZ4_DECOMPRESS
240	tristate
241
242source "lib/xz/Kconfig"
243
244#
245# These all provide a common interface (hence the apparent duplication with
246# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
247#
248config DECOMPRESS_GZIP
249	select ZLIB_INFLATE
250	tristate
251
252config DECOMPRESS_BZIP2
253	tristate
254
255config DECOMPRESS_LZMA
256	tristate
257
258config DECOMPRESS_XZ
259	select XZ_DEC
260	tristate
261
262config DECOMPRESS_LZO
263	select LZO_DECOMPRESS
264	tristate
265
266config DECOMPRESS_LZ4
267	select LZ4_DECOMPRESS
268	tristate
269
270#
271# Generic allocator support is selected if needed
272#
273config GENERIC_ALLOCATOR
274	bool
275
276#
277# reed solomon support is select'ed if needed
278#
279config REED_SOLOMON
280	tristate
281
282config REED_SOLOMON_ENC8
283	bool
284
285config REED_SOLOMON_DEC8
286	bool
287
288config REED_SOLOMON_ENC16
289	bool
290
291config REED_SOLOMON_DEC16
292	bool
293
294#
295# BCH support is selected if needed
296#
297config BCH
298	tristate
299
300config BCH_CONST_PARAMS
301	bool
302	help
303	  Drivers may select this option to force specific constant
304	  values for parameters 'm' (Galois field order) and 't'
305	  (error correction capability). Those specific values must
306	  be set by declaring default values for symbols BCH_CONST_M
307	  and BCH_CONST_T.
308	  Doing so will enable extra compiler optimizations,
309	  improving encoding and decoding performance up to 2x for
310	  usual (m,t) values (typically such that m*t < 200).
311	  When this option is selected, the BCH library supports
312	  only a single (m,t) configuration. This is mainly useful
313	  for NAND flash board drivers requiring known, fixed BCH
314	  parameters.
315
316config BCH_CONST_M
317	int
318	range 5 15
319	help
320	  Constant value for Galois field order 'm'. If 'k' is the
321	  number of data bits to protect, 'm' should be chosen such
322	  that (k + m*t) <= 2**m - 1.
323	  Drivers should declare a default value for this symbol if
324	  they select option BCH_CONST_PARAMS.
325
326config BCH_CONST_T
327	int
328	help
329	  Constant value for error correction capability in bits 't'.
330	  Drivers should declare a default value for this symbol if
331	  they select option BCH_CONST_PARAMS.
332
333#
334# Textsearch support is select'ed if needed
335#
336config TEXTSEARCH
337	bool
338
339config TEXTSEARCH_KMP
340	tristate
341
342config TEXTSEARCH_BM
343	tristate
344
345config TEXTSEARCH_FSM
346	tristate
347
348config BTREE
349	bool
350
351config INTERVAL_TREE
352	bool
353	help
354	  Simple, embeddable, interval-tree. Can find the start of an
355	  overlapping range in log(n) time and then iterate over all
356	  overlapping nodes. The algorithm is implemented as an
357	  augmented rbtree.
358
359	  See:
360
361		Documentation/rbtree.txt
362
363	  for more information.
364
365config RADIX_TREE_MULTIORDER
366	bool
367
368config ASSOCIATIVE_ARRAY
369	bool
370	help
371	  Generic associative array.  Can be searched and iterated over whilst
372	  it is being modified.  It is also reasonably quick to search and
373	  modify.  The algorithms are non-recursive, and the trees are highly
374	  capacious.
375
376	  See:
377
378		Documentation/assoc_array.txt
379
380	  for more information.
381
382config HAS_IOMEM
383	bool
384	depends on !NO_IOMEM
385	select GENERIC_IO
386	default y
387
388config HAS_IOPORT_MAP
389	bool
390	depends on HAS_IOMEM && !NO_IOPORT_MAP
391	default y
392
393config HAS_DMA
394	bool
395	depends on !NO_DMA
396	default y
397
398config CHECK_SIGNATURE
399	bool
400
401config CPUMASK_OFFSTACK
402	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
403	help
404	  Use dynamic allocation for cpumask_var_t, instead of putting
405	  them on the stack.  This is a bit more expensive, but avoids
406	  stack overflow.
407
408config CPU_RMAP
409	bool
410	depends on SMP
411
412config DQL
413	bool
414
415config GLOB
416	bool
417#	This actually supports modular compilation, but the module overhead
418#	is ridiculous for the amount of code involved.	Until an out-of-tree
419#	driver asks for it, we'll just link it directly it into the kernel
420#	when required.  Since we're ignoring out-of-tree users,	there's also
421#	no need bother prompting for a manual decision:
422#	prompt "glob_match() function"
423	help
424	  This option provides a glob_match function for performing
425	  simple text pattern matching.  It originated in the ATA code
426	  to blacklist particular drive models, but other device drivers
427	  may need similar functionality.
428
429	  All drivers in the Linux kernel tree that require this function
430	  should automatically select this option.  Say N unless you
431	  are compiling an out-of tree driver which tells you that it
432	  depends on this.
433
434config GLOB_SELFTEST
435	bool "glob self-test on init"
436	default n
437	depends on GLOB
438	help
439	  This option enables a simple self-test of the glob_match
440	  function on startup.	It is primarily useful for people
441	  working on the code to ensure they haven't introduced any
442	  regressions.
443
444	  It only adds a little bit of code and slows kernel boot (or
445	  module load) by a small amount, so you're welcome to play with
446	  it, but you probably don't need it.
447
448#
449# Netlink attribute parsing support is select'ed if needed
450#
451config NLATTR
452	bool
453
454#
455# Generic 64-bit atomic support is selected if needed
456#
457config GENERIC_ATOMIC64
458       bool
459
460config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
461	def_bool y if GENERIC_ATOMIC64
462
463config LRU_CACHE
464	tristate
465
466config CLZ_TAB
467	bool
468
469config CORDIC
470	tristate "CORDIC algorithm"
471	help
472	  This option provides an implementation of the CORDIC algorithm;
473	  calculations are in fixed point. Module will be called cordic.
474
475config DDR
476	bool "JEDEC DDR data"
477	help
478	  Data from JEDEC specs for DDR SDRAM memories,
479	  particularly the AC timing parameters and addressing
480	  information. This data is useful for drivers handling
481	  DDR SDRAM controllers.
482
483config IRQ_POLL
484	bool "IRQ polling library"
485	help
486	  Helper library to poll interrupt mitigation using polling.
487
488config MPILIB
489	tristate
490	select CLZ_TAB
491	help
492	  Multiprecision maths library from GnuPG.
493	  It is used to implement RSA digital signature verification,
494	  which is used by IMA/EVM digital signature extension.
495
496config SIGNATURE
497	tristate
498	depends on KEYS
499	select CRYPTO
500	select CRYPTO_SHA1
501	select MPILIB
502	help
503	  Digital signature verification. Currently only RSA is supported.
504	  Implementation is done using GnuPG MPI library
505
506#
507# libfdt files, only selected if needed.
508#
509config LIBFDT
510	bool
511
512config OID_REGISTRY
513	tristate
514	help
515	  Enable fast lookup object identifier registry.
516
517config UCS2_STRING
518        tristate
519
520source "lib/fonts/Kconfig"
521
522config SG_SPLIT
523	def_bool n
524	help
525	 Provides a helper to split scatterlists into chunks, each chunk being
526	 a scatterlist. This should be selected by a driver or an API which
527	 whishes to split a scatterlist amongst multiple DMA channels.
528
529config SG_POOL
530	def_bool n
531	help
532	 Provides a helper to allocate chained scatterlists. This should be
533	 selected by a driver or an API which whishes to allocate chained
534	 scatterlist.
535
536#
537# sg chaining option
538#
539
540config ARCH_HAS_SG_CHAIN
541	def_bool n
542
543config ARCH_HAS_PMEM_API
544	bool
545
546config ARCH_HAS_MMIO_FLUSH
547	bool
548
549config STACKDEPOT
550	bool
551	select STACKTRACE
552
553endmenu
554