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