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