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