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