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