Merge tag 'cpumask-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.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 HAVE_ARCH_BITREVERSE
17         bool
18         default n
19         depends on BITREVERSE
20         help
21           This option enables the use of hardware bit-reversal instructions on
22           architectures which support such operations.
23
24 config RATIONAL
25         bool
26
27 config GENERIC_STRNCPY_FROM_USER
28         bool
29
30 config GENERIC_STRNLEN_USER
31         bool
32
33 config GENERIC_NET_UTILS
34         bool
35
36 config GENERIC_FIND_FIRST_BIT
37         bool
38
39 config NO_GENERIC_PCI_IOPORT_MAP
40         bool
41
42 config GENERIC_PCI_IOMAP
43         bool
44
45 config GENERIC_IOMAP
46         bool
47         select GENERIC_PCI_IOMAP
48
49 config GENERIC_IO
50         bool
51         default n
52
53 config STMP_DEVICE
54         bool
55
56 config PERCPU_RWSEM
57         bool
58
59 config ARCH_USE_CMPXCHG_LOCKREF
60         bool
61
62 config ARCH_HAS_FAST_MULTIPLIER
63         bool
64
65 config CRC_CCITT
66         tristate "CRC-CCITT functions"
67         help
68           This option is provided for the case where no in-kernel-tree
69           modules require CRC-CCITT functions, but a module built outside
70           the kernel tree does. Such modules that use library CRC-CCITT
71           functions require M here.
72
73 config CRC16
74         tristate "CRC16 functions"
75         help
76           This option is provided for the case where no in-kernel-tree
77           modules require CRC16 functions, but a module built outside
78           the kernel tree does. Such modules that use library CRC16
79           functions require M here.
80
81 config CRC_T10DIF
82         tristate "CRC calculation for the T10 Data Integrity Field"
83         select CRYPTO
84         select CRYPTO_CRCT10DIF
85         help
86           This option is only needed if a module that's not in the
87           kernel tree needs to calculate CRC checks for use with the
88           SCSI data integrity subsystem.
89
90 config CRC_ITU_T
91         tristate "CRC ITU-T V.41 functions"
92         help
93           This option is provided for the case where no in-kernel-tree
94           modules require CRC ITU-T V.41 functions, but a module built outside
95           the kernel tree does. Such modules that use library CRC ITU-T V.41
96           functions require M here.
97
98 config CRC32
99         tristate "CRC32/CRC32c functions"
100         default y
101         select BITREVERSE
102         help
103           This option is provided for the case where no in-kernel-tree
104           modules require CRC32/CRC32c functions, but a module built outside
105           the kernel tree does. Such modules that use library CRC32/CRC32c
106           functions require M here.
107
108 config CRC32_SELFTEST
109         bool "CRC32 perform self test on init"
110         default n
111         depends on CRC32
112         help
113           This option enables the CRC32 library functions to perform a
114           self test on initialization. The self test computes crc32_le
115           and crc32_be over byte strings with random alignment and length
116           and computes the total elapsed time and number of bytes processed.
117
118 choice
119         prompt "CRC32 implementation"
120         depends on CRC32
121         default CRC32_SLICEBY8
122         help
123           This option allows a kernel builder to override the default choice
124           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
125           know that you need one of the others.
126
127 config CRC32_SLICEBY8
128         bool "Slice by 8 bytes"
129         help
130           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
131           This is the fastest algorithm, but comes with a 8KiB lookup table.
132           Most modern processors have enough cache to hold this table without
133           thrashing the cache.
134
135           This is the default implementation choice.  Choose this one unless
136           you have a good reason not to.
137
138 config CRC32_SLICEBY4
139         bool "Slice by 4 bytes"
140         help
141           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
142           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
143           table.
144
145           Only choose this option if you know what you are doing.
146
147 config CRC32_SARWATE
148         bool "Sarwate's Algorithm (one byte at a time)"
149         help
150           Calculate checksum a byte at a time using Sarwate's algorithm.  This
151           is not particularly fast, but has a small 256 byte lookup table.
152
153           Only choose this option if you know what you are doing.
154
155 config CRC32_BIT
156         bool "Classic Algorithm (one bit at a time)"
157         help
158           Calculate checksum one bit at a time.  This is VERY slow, but has
159           no lookup table.  This is provided as a debugging option.
160
161           Only choose this option if you are debugging crc32.
162
163 endchoice
164
165 config CRC7
166         tristate "CRC7 functions"
167         help
168           This option is provided for the case where no in-kernel-tree
169           modules require CRC7 functions, but a module built outside
170           the kernel tree does. Such modules that use library CRC7
171           functions require M here.
172
173 config LIBCRC32C
174         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
175         select CRYPTO
176         select CRYPTO_CRC32C
177         help
178           This option is provided for the case where no in-kernel-tree
179           modules require CRC32c functions, but a module built outside the
180           kernel tree does. Such modules that use library CRC32c functions
181           require M here.  See Castagnoli93.
182           Module will be libcrc32c.
183
184 config CRC8
185         tristate "CRC8 function"
186         help
187           This option provides CRC8 function. Drivers may select this
188           when they need to do cyclic redundancy check according CRC8
189           algorithm. Module will be called crc8.
190
191 config AUDIT_GENERIC
192         bool
193         depends on AUDIT && !AUDIT_ARCH
194         default y
195
196 config AUDIT_ARCH_COMPAT_GENERIC
197         bool
198         default n
199
200 config AUDIT_COMPAT_GENERIC
201         bool
202         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
203         default y
204
205 config RANDOM32_SELFTEST
206         bool "PRNG perform self test on init"
207         default n
208         help
209           This option enables the 32 bit PRNG library functions to perform a
210           self test on initialization.
211
212 #
213 # compression support is select'ed if needed
214 #
215 config ZLIB_INFLATE
216         tristate
217
218 config ZLIB_DEFLATE
219         tristate
220
221 config LZO_COMPRESS
222         tristate
223
224 config LZO_DECOMPRESS
225         tristate
226
227 config LZ4_COMPRESS
228         tristate
229
230 config LZ4HC_COMPRESS
231         tristate
232
233 config LZ4_DECOMPRESS
234         tristate
235
236 source "lib/xz/Kconfig"
237
238 #
239 # These all provide a common interface (hence the apparent duplication with
240 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
241 #
242 config DECOMPRESS_GZIP
243         select ZLIB_INFLATE
244         tristate
245
246 config DECOMPRESS_BZIP2
247         tristate
248
249 config DECOMPRESS_LZMA
250         tristate
251
252 config DECOMPRESS_XZ
253         select XZ_DEC
254         tristate
255
256 config DECOMPRESS_LZO
257         select LZO_DECOMPRESS
258         tristate
259
260 config DECOMPRESS_LZ4
261         select LZ4_DECOMPRESS
262         tristate
263
264 #
265 # Generic allocator support is selected if needed
266 #
267 config GENERIC_ALLOCATOR
268         bool
269
270 #
271 # reed solomon support is select'ed if needed
272 #
273 config REED_SOLOMON
274         tristate
275         
276 config REED_SOLOMON_ENC8
277         bool
278
279 config REED_SOLOMON_DEC8
280         bool
281
282 config REED_SOLOMON_ENC16
283         bool
284
285 config REED_SOLOMON_DEC16
286         bool
287
288 #
289 # BCH support is selected if needed
290 #
291 config BCH
292         tristate
293
294 config BCH_CONST_PARAMS
295         bool
296         help
297           Drivers may select this option to force specific constant
298           values for parameters 'm' (Galois field order) and 't'
299           (error correction capability). Those specific values must
300           be set by declaring default values for symbols BCH_CONST_M
301           and BCH_CONST_T.
302           Doing so will enable extra compiler optimizations,
303           improving encoding and decoding performance up to 2x for
304           usual (m,t) values (typically such that m*t < 200).
305           When this option is selected, the BCH library supports
306           only a single (m,t) configuration. This is mainly useful
307           for NAND flash board drivers requiring known, fixed BCH
308           parameters.
309
310 config BCH_CONST_M
311         int
312         range 5 15
313         help
314           Constant value for Galois field order 'm'. If 'k' is the
315           number of data bits to protect, 'm' should be chosen such
316           that (k + m*t) <= 2**m - 1.
317           Drivers should declare a default value for this symbol if
318           they select option BCH_CONST_PARAMS.
319
320 config BCH_CONST_T
321         int
322         help
323           Constant value for error correction capability in bits 't'.
324           Drivers should declare a default value for this symbol if
325           they select option BCH_CONST_PARAMS.
326
327 #
328 # Textsearch support is select'ed if needed
329 #
330 config TEXTSEARCH
331         bool
332
333 config TEXTSEARCH_KMP
334         tristate
335
336 config TEXTSEARCH_BM
337         tristate
338
339 config TEXTSEARCH_FSM
340         tristate
341
342 config BTREE
343         bool
344
345 config INTERVAL_TREE
346         bool
347         help
348           Simple, embeddable, interval-tree. Can find the start of an
349           overlapping range in log(n) time and then iterate over all
350           overlapping nodes. The algorithm is implemented as an
351           augmented rbtree.
352
353           See:
354
355                 Documentation/rbtree.txt
356
357           for more information.
358
359 config ASSOCIATIVE_ARRAY
360         bool
361         help
362           Generic associative array.  Can be searched and iterated over whilst
363           it is being modified.  It is also reasonably quick to search and
364           modify.  The algorithms are non-recursive, and the trees are highly
365           capacious.
366
367           See:
368
369                 Documentation/assoc_array.txt
370
371           for more information.
372
373 config HAS_IOMEM
374         bool
375         depends on !NO_IOMEM
376         select GENERIC_IO
377         default y
378
379 config HAS_IOPORT_MAP
380         bool
381         depends on HAS_IOMEM && !NO_IOPORT_MAP
382         default y
383
384 config HAS_DMA
385         bool
386         depends on !NO_DMA
387         default y
388
389 config CHECK_SIGNATURE
390         bool
391
392 config CPUMASK_OFFSTACK
393         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
394         help
395           Use dynamic allocation for cpumask_var_t, instead of putting
396           them on the stack.  This is a bit more expensive, but avoids
397           stack overflow.
398
399 config CPU_RMAP
400         bool
401         depends on SMP
402
403 config DQL
404         bool
405
406 config GLOB
407         bool
408 #       This actually supports modular compilation, but the module overhead
409 #       is ridiculous for the amount of code involved.  Until an out-of-tree
410 #       driver asks for it, we'll just link it directly it into the kernel
411 #       when required.  Since we're ignoring out-of-tree users, there's also
412 #       no need bother prompting for a manual decision:
413 #       prompt "glob_match() function"
414         help
415           This option provides a glob_match function for performing
416           simple text pattern matching.  It originated in the ATA code
417           to blacklist particular drive models, but other device drivers
418           may need similar functionality.
419
420           All drivers in the Linux kernel tree that require this function
421           should automatically select this option.  Say N unless you
422           are compiling an out-of tree driver which tells you that it
423           depends on this.
424
425 config GLOB_SELFTEST
426         bool "glob self-test on init"
427         default n
428         depends on GLOB
429         help
430           This option enables a simple self-test of the glob_match
431           function on startup.  It is primarily useful for people
432           working on the code to ensure they haven't introduced any
433           regressions.
434
435           It only adds a little bit of code and slows kernel boot (or
436           module load) by a small amount, so you're welcome to play with
437           it, but you probably don't need it.
438
439 #
440 # Netlink attribute parsing support is select'ed if needed
441 #
442 config NLATTR
443         bool
444
445 #
446 # Generic 64-bit atomic support is selected if needed
447 #
448 config GENERIC_ATOMIC64
449        bool
450
451 config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
452         def_bool y if GENERIC_ATOMIC64
453
454 config LRU_CACHE
455         tristate
456
457 config AVERAGE
458         bool "Averaging functions"
459         help
460           This option is provided for the case where no in-kernel-tree
461           modules require averaging functions, but a module built outside
462           the kernel tree does. Such modules that use library averaging
463           functions require Y here.
464
465           If unsure, say N.
466
467 config CLZ_TAB
468         bool
469
470 config CORDIC
471         tristate "CORDIC algorithm"
472         help
473           This option provides an implementation of the CORDIC algorithm;
474           calculations are in fixed point. Module will be called cordic.
475
476 config DDR
477         bool "JEDEC DDR data"
478         help
479           Data from JEDEC specs for DDR SDRAM memories,
480           particularly the AC timing parameters and addressing
481           information. This data is useful for drivers handling
482           DDR SDRAM controllers.
483
484 config MPILIB
485         tristate
486         select CLZ_TAB
487         help
488           Multiprecision maths library from GnuPG.
489           It is used to implement RSA digital signature verification,
490           which is used by IMA/EVM digital signature extension.
491
492 config SIGNATURE
493         tristate
494         depends on KEYS
495         select CRYPTO
496         select CRYPTO_SHA1
497         select MPILIB
498         help
499           Digital signature verification. Currently only RSA is supported.
500           Implementation is done using GnuPG MPI library
501
502 #
503 # libfdt files, only selected if needed.
504 #
505 config LIBFDT
506         bool
507
508 config OID_REGISTRY
509         tristate
510         help
511           Enable fast lookup object identifier registry.
512
513 config UCS2_STRING
514         tristate
515
516 source "lib/fonts/Kconfig"
517
518 #
519 # sg chaining option
520 #
521
522 config ARCH_HAS_SG_CHAIN
523         def_bool n
524
525 endmenu