xref: /linux/lib/Kconfig (revision 0d456bad36d42d16022be045c8a53ddbb59ee478)
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 RATIONAL
17	boolean
18
19config GENERIC_STRNCPY_FROM_USER
20	bool
21
22config GENERIC_STRNLEN_USER
23	bool
24
25config GENERIC_FIND_FIRST_BIT
26	bool
27
28config NO_GENERIC_PCI_IOPORT_MAP
29	bool
30
31config GENERIC_PCI_IOMAP
32	bool
33
34config GENERIC_IOMAP
35	bool
36	select GENERIC_PCI_IOMAP
37
38config GENERIC_IO
39	boolean
40	default n
41
42config STMP_DEVICE
43	bool
44
45config PERCPU_RWSEM
46	boolean
47
48config CRC_CCITT
49	tristate "CRC-CCITT functions"
50	help
51	  This option is provided for the case where no in-kernel-tree
52	  modules require CRC-CCITT functions, but a module built outside
53	  the kernel tree does. Such modules that use library CRC-CCITT
54	  functions require M here.
55
56config CRC16
57	tristate "CRC16 functions"
58	help
59	  This option is provided for the case where no in-kernel-tree
60	  modules require CRC16 functions, but a module built outside
61	  the kernel tree does. Such modules that use library CRC16
62	  functions require M here.
63
64config CRC_T10DIF
65	tristate "CRC calculation for the T10 Data Integrity Field"
66	help
67	  This option is only needed if a module that's not in the
68	  kernel tree needs to calculate CRC checks for use with the
69	  SCSI data integrity subsystem.
70
71config CRC_ITU_T
72	tristate "CRC ITU-T V.41 functions"
73	help
74	  This option is provided for the case where no in-kernel-tree
75	  modules require CRC ITU-T V.41 functions, but a module built outside
76	  the kernel tree does. Such modules that use library CRC ITU-T V.41
77	  functions require M here.
78
79config CRC32
80	tristate "CRC32/CRC32c functions"
81	default y
82	select BITREVERSE
83	help
84	  This option is provided for the case where no in-kernel-tree
85	  modules require CRC32/CRC32c functions, but a module built outside
86	  the kernel tree does. Such modules that use library CRC32/CRC32c
87	  functions require M here.
88
89config CRC32_SELFTEST
90	bool "CRC32 perform self test on init"
91	default n
92	depends on CRC32
93	help
94	  This option enables the CRC32 library functions to perform a
95	  self test on initialization. The self test computes crc32_le
96	  and crc32_be over byte strings with random alignment and length
97	  and computes the total elapsed time and number of bytes processed.
98
99choice
100	prompt "CRC32 implementation"
101	depends on CRC32
102	default CRC32_SLICEBY8
103	help
104	  This option allows a kernel builder to override the default choice
105	  of CRC32 algorithm.  Choose the default ("slice by 8") unless you
106	  know that you need one of the others.
107
108config CRC32_SLICEBY8
109	bool "Slice by 8 bytes"
110	help
111	  Calculate checksum 8 bytes at a time with a clever slicing algorithm.
112	  This is the fastest algorithm, but comes with a 8KiB lookup table.
113	  Most modern processors have enough cache to hold this table without
114	  thrashing the cache.
115
116	  This is the default implementation choice.  Choose this one unless
117	  you have a good reason not to.
118
119config CRC32_SLICEBY4
120	bool "Slice by 4 bytes"
121	help
122	  Calculate checksum 4 bytes at a time with a clever slicing algorithm.
123	  This is a bit slower than slice by 8, but has a smaller 4KiB lookup
124	  table.
125
126	  Only choose this option if you know what you are doing.
127
128config CRC32_SARWATE
129	bool "Sarwate's Algorithm (one byte at a time)"
130	help
131	  Calculate checksum a byte at a time using Sarwate's algorithm.  This
132	  is not particularly fast, but has a small 256 byte lookup table.
133
134	  Only choose this option if you know what you are doing.
135
136config CRC32_BIT
137	bool "Classic Algorithm (one bit at a time)"
138	help
139	  Calculate checksum one bit at a time.  This is VERY slow, but has
140	  no lookup table.  This is provided as a debugging option.
141
142	  Only choose this option if you are debugging crc32.
143
144endchoice
145
146config CRC7
147	tristate "CRC7 functions"
148	help
149	  This option is provided for the case where no in-kernel-tree
150	  modules require CRC7 functions, but a module built outside
151	  the kernel tree does. Such modules that use library CRC7
152	  functions require M here.
153
154config LIBCRC32C
155	tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
156	select CRYPTO
157	select CRYPTO_CRC32C
158	help
159	  This option is provided for the case where no in-kernel-tree
160	  modules require CRC32c functions, but a module built outside the
161	  kernel tree does. Such modules that use library CRC32c functions
162	  require M here.  See Castagnoli93.
163	  Module will be libcrc32c.
164
165config CRC8
166	tristate "CRC8 function"
167	help
168	  This option provides CRC8 function. Drivers may select this
169	  when they need to do cyclic redundancy check according CRC8
170	  algorithm. Module will be called crc8.
171
172config AUDIT_GENERIC
173	bool
174	depends on AUDIT && !AUDIT_ARCH
175	default y
176
177#
178# compression support is select'ed if needed
179#
180config ZLIB_INFLATE
181	tristate
182
183config ZLIB_DEFLATE
184	tristate
185
186config LZO_COMPRESS
187	tristate
188
189config LZO_DECOMPRESS
190	tristate
191
192source "lib/xz/Kconfig"
193
194#
195# These all provide a common interface (hence the apparent duplication with
196# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
197#
198config DECOMPRESS_GZIP
199	select ZLIB_INFLATE
200	tristate
201
202config DECOMPRESS_BZIP2
203	tristate
204
205config DECOMPRESS_LZMA
206	tristate
207
208config DECOMPRESS_XZ
209	select XZ_DEC
210	tristate
211
212config DECOMPRESS_LZO
213	select LZO_DECOMPRESS
214	tristate
215
216#
217# Generic allocator support is selected if needed
218#
219config GENERIC_ALLOCATOR
220	boolean
221
222#
223# reed solomon support is select'ed if needed
224#
225config REED_SOLOMON
226	tristate
227
228config REED_SOLOMON_ENC8
229	boolean
230
231config REED_SOLOMON_DEC8
232	boolean
233
234config REED_SOLOMON_ENC16
235	boolean
236
237config REED_SOLOMON_DEC16
238	boolean
239
240#
241# BCH support is selected if needed
242#
243config BCH
244	tristate
245
246config BCH_CONST_PARAMS
247	boolean
248	help
249	  Drivers may select this option to force specific constant
250	  values for parameters 'm' (Galois field order) and 't'
251	  (error correction capability). Those specific values must
252	  be set by declaring default values for symbols BCH_CONST_M
253	  and BCH_CONST_T.
254	  Doing so will enable extra compiler optimizations,
255	  improving encoding and decoding performance up to 2x for
256	  usual (m,t) values (typically such that m*t < 200).
257	  When this option is selected, the BCH library supports
258	  only a single (m,t) configuration. This is mainly useful
259	  for NAND flash board drivers requiring known, fixed BCH
260	  parameters.
261
262config BCH_CONST_M
263	int
264	range 5 15
265	help
266	  Constant value for Galois field order 'm'. If 'k' is the
267	  number of data bits to protect, 'm' should be chosen such
268	  that (k + m*t) <= 2**m - 1.
269	  Drivers should declare a default value for this symbol if
270	  they select option BCH_CONST_PARAMS.
271
272config BCH_CONST_T
273	int
274	help
275	  Constant value for error correction capability in bits 't'.
276	  Drivers should declare a default value for this symbol if
277	  they select option BCH_CONST_PARAMS.
278
279#
280# Textsearch support is select'ed if needed
281#
282config TEXTSEARCH
283	boolean
284
285config TEXTSEARCH_KMP
286	tristate
287
288config TEXTSEARCH_BM
289	tristate
290
291config TEXTSEARCH_FSM
292	tristate
293
294config BTREE
295	boolean
296
297config HAS_IOMEM
298	boolean
299	depends on !NO_IOMEM
300	select GENERIC_IO
301	default y
302
303config HAS_IOPORT
304	boolean
305	depends on HAS_IOMEM && !NO_IOPORT
306	default y
307
308config HAS_DMA
309	boolean
310	depends on !NO_DMA
311	default y
312
313config CHECK_SIGNATURE
314	bool
315
316config CPUMASK_OFFSTACK
317	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
318	help
319	  Use dynamic allocation for cpumask_var_t, instead of putting
320	  them on the stack.  This is a bit more expensive, but avoids
321	  stack overflow.
322
323config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
324       bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
325       depends on EXPERIMENTAL && BROKEN
326
327config CPU_RMAP
328	bool
329	depends on SMP
330
331config DQL
332	bool
333
334#
335# Netlink attribute parsing support is select'ed if needed
336#
337config NLATTR
338	bool
339
340#
341# Generic 64-bit atomic support is selected if needed
342#
343config GENERIC_ATOMIC64
344       bool
345
346config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
347	def_bool y if GENERIC_ATOMIC64
348
349config LRU_CACHE
350	tristate
351
352config AVERAGE
353	bool "Averaging functions"
354	help
355	  This option is provided for the case where no in-kernel-tree
356	  modules require averaging functions, but a module built outside
357	  the kernel tree does. Such modules that use library averaging
358	  functions require Y here.
359
360	  If unsure, say N.
361
362config CLZ_TAB
363	bool
364
365config CORDIC
366	tristate "CORDIC algorithm"
367	help
368	  This option provides an implementation of the CORDIC algorithm;
369	  calculations are in fixed point. Module will be called cordic.
370
371config DDR
372	bool "JEDEC DDR data"
373	help
374	  Data from JEDEC specs for DDR SDRAM memories,
375	  particularly the AC timing parameters and addressing
376	  information. This data is useful for drivers handling
377	  DDR SDRAM controllers.
378
379config MPILIB
380	tristate
381	select CLZ_TAB
382	help
383	  Multiprecision maths library from GnuPG.
384	  It is used to implement RSA digital signature verification,
385	  which is used by IMA/EVM digital signature extension.
386
387config SIGNATURE
388	tristate
389	depends on KEYS && CRYPTO
390	select CRYPTO_SHA1
391	select MPILIB
392	help
393	  Digital signature verification. Currently only RSA is supported.
394	  Implementation is done using GnuPG MPI library
395
396#
397# libfdt files, only selected if needed.
398#
399config LIBFDT
400	bool
401
402config OID_REGISTRY
403	tristate
404	help
405	  Enable fast lookup object identifier registry.
406
407endmenu
408