Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / 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         depends on !PREEMPT_RT_FULL
395         help
396           Use dynamic allocation for cpumask_var_t, instead of putting
397           them on the stack.  This is a bit more expensive, but avoids
398           stack overflow.
399
400 config CPU_RMAP
401         bool
402         depends on SMP
403
404 config DQL
405         bool
406
407 config GLOB
408         bool
409 #       This actually supports modular compilation, but the module overhead
410 #       is ridiculous for the amount of code involved.  Until an out-of-tree
411 #       driver asks for it, we'll just link it directly it into the kernel
412 #       when required.  Since we're ignoring out-of-tree users, there's also
413 #       no need bother prompting for a manual decision:
414 #       prompt "glob_match() function"
415         help
416           This option provides a glob_match function for performing
417           simple text pattern matching.  It originated in the ATA code
418           to blacklist particular drive models, but other device drivers
419           may need similar functionality.
420
421           All drivers in the Linux kernel tree that require this function
422           should automatically select this option.  Say N unless you
423           are compiling an out-of tree driver which tells you that it
424           depends on this.
425
426 config GLOB_SELFTEST
427         bool "glob self-test on init"
428         default n
429         depends on GLOB
430         help
431           This option enables a simple self-test of the glob_match
432           function on startup.  It is primarily useful for people
433           working on the code to ensure they haven't introduced any
434           regressions.
435
436           It only adds a little bit of code and slows kernel boot (or
437           module load) by a small amount, so you're welcome to play with
438           it, but you probably don't need it.
439
440 #
441 # Netlink attribute parsing support is select'ed if needed
442 #
443 config NLATTR
444         bool
445
446 #
447 # Generic 64-bit atomic support is selected if needed
448 #
449 config GENERIC_ATOMIC64
450        bool
451
452 config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
453         def_bool y if GENERIC_ATOMIC64
454
455 config LRU_CACHE
456         tristate
457
458 config AVERAGE
459         bool "Averaging functions"
460         help
461           This option is provided for the case where no in-kernel-tree
462           modules require averaging functions, but a module built outside
463           the kernel tree does. Such modules that use library averaging
464           functions require Y here.
465
466           If unsure, say N.
467
468 config CLZ_TAB
469         bool
470
471 config CORDIC
472         tristate "CORDIC algorithm"
473         help
474           This option provides an implementation of the CORDIC algorithm;
475           calculations are in fixed point. Module will be called cordic.
476
477 config DDR
478         bool "JEDEC DDR data"
479         help
480           Data from JEDEC specs for DDR SDRAM memories,
481           particularly the AC timing parameters and addressing
482           information. This data is useful for drivers handling
483           DDR SDRAM controllers.
484
485 config MPILIB
486         tristate
487         select CLZ_TAB
488         help
489           Multiprecision maths library from GnuPG.
490           It is used to implement RSA digital signature verification,
491           which is used by IMA/EVM digital signature extension.
492
493 config SIGNATURE
494         tristate
495         depends on KEYS
496         select CRYPTO
497         select CRYPTO_SHA1
498         select MPILIB
499         help
500           Digital signature verification. Currently only RSA is supported.
501           Implementation is done using GnuPG MPI library
502
503 #
504 # libfdt files, only selected if needed.
505 #
506 config LIBFDT
507         bool
508
509 config OID_REGISTRY
510         tristate
511         help
512           Enable fast lookup object identifier registry.
513
514 config UCS2_STRING
515         tristate
516
517 source "lib/fonts/Kconfig"
518
519 #
520 # sg chaining option
521 #
522
523 config ARCH_HAS_SG_CHAIN
524         def_bool n
525
526 endmenu