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