xref: /openbmc/linux/lib/Kconfig (revision c0e297dc)
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 PERCPU_RWSEM
57	bool
58
59config ARCH_USE_CMPXCHG_LOCKREF
60	bool
61
62config ARCH_HAS_FAST_MULTIPLIER
63	bool
64
65config CRC_CCITT
66	tristate "CRC-CCITT functions"
67	help
68	  This option is provided for the case where no in-kernel-tree
69	  modules require CRC-CCITT functions, but a module built outside
70	  the kernel tree does. Such modules that use library CRC-CCITT
71	  functions require M here.
72
73config CRC16
74	tristate "CRC16 functions"
75	help
76	  This option is provided for the case where no in-kernel-tree
77	  modules require CRC16 functions, but a module built outside
78	  the kernel tree does. Such modules that use library CRC16
79	  functions require M here.
80
81config CRC_T10DIF
82	tristate "CRC calculation for the T10 Data Integrity Field"
83	select CRYPTO
84	select CRYPTO_CRCT10DIF
85	help
86	  This option is only needed if a module that's not in the
87	  kernel tree needs to calculate CRC checks for use with the
88	  SCSI data integrity subsystem.
89
90config CRC_ITU_T
91	tristate "CRC ITU-T V.41 functions"
92	help
93	  This option is provided for the case where no in-kernel-tree
94	  modules require CRC ITU-T V.41 functions, but a module built outside
95	  the kernel tree does. Such modules that use library CRC ITU-T V.41
96	  functions require M here.
97
98config CRC32
99	tristate "CRC32/CRC32c functions"
100	default y
101	select BITREVERSE
102	help
103	  This option is provided for the case where no in-kernel-tree
104	  modules require CRC32/CRC32c functions, but a module built outside
105	  the kernel tree does. Such modules that use library CRC32/CRC32c
106	  functions require M here.
107
108config CRC32_SELFTEST
109	bool "CRC32 perform self test on init"
110	default n
111	depends on CRC32
112	help
113	  This option enables the CRC32 library functions to perform a
114	  self test on initialization. The self test computes crc32_le
115	  and crc32_be over byte strings with random alignment and length
116	  and computes the total elapsed time and number of bytes processed.
117
118choice
119	prompt "CRC32 implementation"
120	depends on CRC32
121	default CRC32_SLICEBY8
122	help
123	  This option allows a kernel builder to override the default choice
124	  of CRC32 algorithm.  Choose the default ("slice by 8") unless you
125	  know that you need one of the others.
126
127config CRC32_SLICEBY8
128	bool "Slice by 8 bytes"
129	help
130	  Calculate checksum 8 bytes at a time with a clever slicing algorithm.
131	  This is the fastest algorithm, but comes with a 8KiB lookup table.
132	  Most modern processors have enough cache to hold this table without
133	  thrashing the cache.
134
135	  This is the default implementation choice.  Choose this one unless
136	  you have a good reason not to.
137
138config CRC32_SLICEBY4
139	bool "Slice by 4 bytes"
140	help
141	  Calculate checksum 4 bytes at a time with a clever slicing algorithm.
142	  This is a bit slower than slice by 8, but has a smaller 4KiB lookup
143	  table.
144
145	  Only choose this option if you know what you are doing.
146
147config CRC32_SARWATE
148	bool "Sarwate's Algorithm (one byte at a time)"
149	help
150	  Calculate checksum a byte at a time using Sarwate's algorithm.  This
151	  is not particularly fast, but has a small 256 byte lookup table.
152
153	  Only choose this option if you know what you are doing.
154
155config CRC32_BIT
156	bool "Classic Algorithm (one bit at a time)"
157	help
158	  Calculate checksum one bit at a time.  This is VERY slow, but has
159	  no lookup table.  This is provided as a debugging option.
160
161	  Only choose this option if you are debugging crc32.
162
163endchoice
164
165config CRC7
166	tristate "CRC7 functions"
167	help
168	  This option is provided for the case where no in-kernel-tree
169	  modules require CRC7 functions, but a module built outside
170	  the kernel tree does. Such modules that use library CRC7
171	  functions require M here.
172
173config LIBCRC32C
174	tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
175	select CRYPTO
176	select CRYPTO_CRC32C
177	help
178	  This option is provided for the case where no in-kernel-tree
179	  modules require CRC32c functions, but a module built outside the
180	  kernel tree does. Such modules that use library CRC32c functions
181	  require M here.  See Castagnoli93.
182	  Module will be libcrc32c.
183
184config CRC8
185	tristate "CRC8 function"
186	help
187	  This option provides CRC8 function. Drivers may select this
188	  when they need to do cyclic redundancy check according CRC8
189	  algorithm. Module will be called crc8.
190
191config AUDIT_GENERIC
192	bool
193	depends on AUDIT && !AUDIT_ARCH
194	default y
195
196config AUDIT_ARCH_COMPAT_GENERIC
197	bool
198	default n
199
200config AUDIT_COMPAT_GENERIC
201	bool
202	depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
203	default y
204
205config 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#
215config 842_COMPRESS
216	tristate
217
218config 842_DECOMPRESS
219	tristate
220
221config ZLIB_INFLATE
222	tristate
223
224config ZLIB_DEFLATE
225	tristate
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 ASSOCIATIVE_ARRAY
366	bool
367	help
368	  Generic associative array.  Can be searched and iterated over whilst
369	  it is being modified.  It is also reasonably quick to search and
370	  modify.  The algorithms are non-recursive, and the trees are highly
371	  capacious.
372
373	  See:
374
375		Documentation/assoc_array.txt
376
377	  for more information.
378
379config HAS_IOMEM
380	bool
381	depends on !NO_IOMEM
382	select GENERIC_IO
383	default y
384
385config HAS_IOPORT_MAP
386	bool
387	depends on HAS_IOMEM && !NO_IOPORT_MAP
388	default y
389
390config HAS_DMA
391	bool
392	depends on !NO_DMA
393	default y
394
395config CHECK_SIGNATURE
396	bool
397
398config CPUMASK_OFFSTACK
399	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
400	help
401	  Use dynamic allocation for cpumask_var_t, instead of putting
402	  them on the stack.  This is a bit more expensive, but avoids
403	  stack overflow.
404
405config CPU_RMAP
406	bool
407	depends on SMP
408
409config DQL
410	bool
411
412config GLOB
413	bool
414#	This actually supports modular compilation, but the module overhead
415#	is ridiculous for the amount of code involved.	Until an out-of-tree
416#	driver asks for it, we'll just link it directly it into the kernel
417#	when required.  Since we're ignoring out-of-tree users,	there's also
418#	no need bother prompting for a manual decision:
419#	prompt "glob_match() function"
420	help
421	  This option provides a glob_match function for performing
422	  simple text pattern matching.  It originated in the ATA code
423	  to blacklist particular drive models, but other device drivers
424	  may need similar functionality.
425
426	  All drivers in the Linux kernel tree that require this function
427	  should automatically select this option.  Say N unless you
428	  are compiling an out-of tree driver which tells you that it
429	  depends on this.
430
431config GLOB_SELFTEST
432	bool "glob self-test on init"
433	default n
434	depends on GLOB
435	help
436	  This option enables a simple self-test of the glob_match
437	  function on startup.	It is primarily useful for people
438	  working on the code to ensure they haven't introduced any
439	  regressions.
440
441	  It only adds a little bit of code and slows kernel boot (or
442	  module load) by a small amount, so you're welcome to play with
443	  it, but you probably don't need it.
444
445#
446# Netlink attribute parsing support is select'ed if needed
447#
448config NLATTR
449	bool
450
451#
452# Generic 64-bit atomic support is selected if needed
453#
454config GENERIC_ATOMIC64
455       bool
456
457config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
458	def_bool y if GENERIC_ATOMIC64
459
460config LRU_CACHE
461	tristate
462
463config AVERAGE
464	bool "Averaging functions"
465	help
466	  This option is provided for the case where no in-kernel-tree
467	  modules require averaging functions, but a module built outside
468	  the kernel tree does. Such modules that use library averaging
469	  functions require Y here.
470
471	  If unsure, say N.
472
473config CLZ_TAB
474	bool
475
476config CORDIC
477	tristate "CORDIC algorithm"
478	help
479	  This option provides an implementation of the CORDIC algorithm;
480	  calculations are in fixed point. Module will be called cordic.
481
482config DDR
483	bool "JEDEC DDR data"
484	help
485	  Data from JEDEC specs for DDR SDRAM memories,
486	  particularly the AC timing parameters and addressing
487	  information. This data is useful for drivers handling
488	  DDR SDRAM controllers.
489
490config MPILIB
491	tristate
492	select CLZ_TAB
493	help
494	  Multiprecision maths library from GnuPG.
495	  It is used to implement RSA digital signature verification,
496	  which is used by IMA/EVM digital signature extension.
497
498config SIGNATURE
499	tristate
500	depends on KEYS
501	select CRYPTO
502	select CRYPTO_SHA1
503	select MPILIB
504	help
505	  Digital signature verification. Currently only RSA is supported.
506	  Implementation is done using GnuPG MPI library
507
508#
509# libfdt files, only selected if needed.
510#
511config LIBFDT
512	bool
513
514config OID_REGISTRY
515	tristate
516	help
517	  Enable fast lookup object identifier registry.
518
519config UCS2_STRING
520        tristate
521
522source "lib/fonts/Kconfig"
523
524#
525# sg chaining option
526#
527
528config ARCH_HAS_SG_CHAIN
529	def_bool n
530
531config ARCH_HAS_PMEM_API
532	bool
533
534endmenu
535