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