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