xref: /linux/lib/Kconfig (revision 8cd3c556b5ce58e2a6f9a084711e6fc03f375745)
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
195source "lib/xz/Kconfig"
196
197#
198# These all provide a common interface (hence the apparent duplication with
199# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
200#
201config DECOMPRESS_GZIP
202	select ZLIB_INFLATE
203	tristate
204
205config DECOMPRESS_BZIP2
206	tristate
207
208config DECOMPRESS_LZMA
209	tristate
210
211config DECOMPRESS_XZ
212	select XZ_DEC
213	tristate
214
215config DECOMPRESS_LZO
216	select LZO_DECOMPRESS
217	tristate
218
219#
220# Generic allocator support is selected if needed
221#
222config GENERIC_ALLOCATOR
223	boolean
224
225#
226# reed solomon support is select'ed if needed
227#
228config REED_SOLOMON
229	tristate
230
231config REED_SOLOMON_ENC8
232	boolean
233
234config REED_SOLOMON_DEC8
235	boolean
236
237config REED_SOLOMON_ENC16
238	boolean
239
240config REED_SOLOMON_DEC16
241	boolean
242
243#
244# BCH support is selected if needed
245#
246config BCH
247	tristate
248
249config BCH_CONST_PARAMS
250	boolean
251	help
252	  Drivers may select this option to force specific constant
253	  values for parameters 'm' (Galois field order) and 't'
254	  (error correction capability). Those specific values must
255	  be set by declaring default values for symbols BCH_CONST_M
256	  and BCH_CONST_T.
257	  Doing so will enable extra compiler optimizations,
258	  improving encoding and decoding performance up to 2x for
259	  usual (m,t) values (typically such that m*t < 200).
260	  When this option is selected, the BCH library supports
261	  only a single (m,t) configuration. This is mainly useful
262	  for NAND flash board drivers requiring known, fixed BCH
263	  parameters.
264
265config BCH_CONST_M
266	int
267	range 5 15
268	help
269	  Constant value for Galois field order 'm'. If 'k' is the
270	  number of data bits to protect, 'm' should be chosen such
271	  that (k + m*t) <= 2**m - 1.
272	  Drivers should declare a default value for this symbol if
273	  they select option BCH_CONST_PARAMS.
274
275config BCH_CONST_T
276	int
277	help
278	  Constant value for error correction capability in bits 't'.
279	  Drivers should declare a default value for this symbol if
280	  they select option BCH_CONST_PARAMS.
281
282#
283# Textsearch support is select'ed if needed
284#
285config TEXTSEARCH
286	boolean
287
288config TEXTSEARCH_KMP
289	tristate
290
291config TEXTSEARCH_BM
292	tristate
293
294config TEXTSEARCH_FSM
295	tristate
296
297config BTREE
298	boolean
299
300config HAS_IOMEM
301	boolean
302	depends on !NO_IOMEM
303	select GENERIC_IO
304	default y
305
306config HAS_IOPORT
307	boolean
308	depends on HAS_IOMEM && !NO_IOPORT
309	default y
310
311config HAS_DMA
312	boolean
313	depends on !NO_DMA
314	default y
315
316config CHECK_SIGNATURE
317	bool
318
319config CPUMASK_OFFSTACK
320	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
321	help
322	  Use dynamic allocation for cpumask_var_t, instead of putting
323	  them on the stack.  This is a bit more expensive, but avoids
324	  stack overflow.
325
326config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
327       bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
328       depends on BROKEN
329
330config CPU_RMAP
331	bool
332	depends on SMP
333
334config DQL
335	bool
336
337#
338# Netlink attribute parsing support is select'ed if needed
339#
340config NLATTR
341	bool
342
343#
344# Generic 64-bit atomic support is selected if needed
345#
346config GENERIC_ATOMIC64
347       bool
348
349config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
350	def_bool y if GENERIC_ATOMIC64
351
352config LRU_CACHE
353	tristate
354
355config AVERAGE
356	bool "Averaging functions"
357	help
358	  This option is provided for the case where no in-kernel-tree
359	  modules require averaging functions, but a module built outside
360	  the kernel tree does. Such modules that use library averaging
361	  functions require Y here.
362
363	  If unsure, say N.
364
365config CLZ_TAB
366	bool
367
368config CORDIC
369	tristate "CORDIC algorithm"
370	help
371	  This option provides an implementation of the CORDIC algorithm;
372	  calculations are in fixed point. Module will be called cordic.
373
374config DDR
375	bool "JEDEC DDR data"
376	help
377	  Data from JEDEC specs for DDR SDRAM memories,
378	  particularly the AC timing parameters and addressing
379	  information. This data is useful for drivers handling
380	  DDR SDRAM controllers.
381
382config MPILIB
383	tristate
384	select CLZ_TAB
385	help
386	  Multiprecision maths library from GnuPG.
387	  It is used to implement RSA digital signature verification,
388	  which is used by IMA/EVM digital signature extension.
389
390config SIGNATURE
391	tristate
392	depends on KEYS && CRYPTO
393	select CRYPTO_SHA1
394	select MPILIB
395	help
396	  Digital signature verification. Currently only RSA is supported.
397	  Implementation is done using GnuPG MPI library
398
399#
400# libfdt files, only selected if needed.
401#
402config LIBFDT
403	bool
404
405config OID_REGISTRY
406	tristate
407	help
408	  Enable fast lookup object identifier registry.
409
410config UCS2_STRING
411        tristate
412
413source "lib/fonts/Kconfig"
414
415endmenu
416