blob: cd177caf38761a2e7301d1ab71cc2fe62df98d6f [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# Library configuration
3#
4
Lai Jiangshan4370aa42009-03-06 17:21:46 +01005config BINARY_PRINTF
6 def_bool n
7
Linus Torvalds1da177e2005-04-16 15:20:36 -07008menu "Library routines"
9
David Woodhousef5e70d02009-07-13 11:35:12 +010010config RAID6_PQ
11 tristate
12
Akinobu Mitaa5cfc1e2006-12-08 02:36:25 -080013config BITREVERSE
14 tristate
15
Yalin Wang556d2f02014-11-03 03:01:03 +010016config HAVE_ARCH_BITREVERSE
17 boolean
18 default n
19 depends on BITREVERSE
20 help
21 This option provides an config for the architecture which have instruction
22 can do bitreverse operation, we use the hardware instruction if the architecture
23 have this capability.
24
Oskar Schirmer8759ef32009-06-11 14:51:15 +010025config RATIONAL
26 boolean
27
David S. Miller29225852012-05-24 13:12:28 -070028config GENERIC_STRNCPY_FROM_USER
29 bool
30
Linus Torvaldsa08c5352012-05-26 11:06:38 -070031config GENERIC_STRNLEN_USER
32 bool
33
Andy Shevchenko4cd57732013-06-04 19:46:26 +030034config GENERIC_NET_UTILS
35 bool
36
Alexander van Heukelum19870de2008-04-25 13:12:53 +020037config GENERIC_FIND_FIRST_BIT
Jan Beulich9ba16082008-10-15 22:01:38 -070038 bool
Alexander van Heukelum19870de2008-04-25 13:12:53 +020039
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020040config NO_GENERIC_PCI_IOPORT_MAP
41 bool
42
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020043config GENERIC_PCI_IOMAP
44 bool
45
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020046config GENERIC_IOMAP
47 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020048 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020049
Richard Weinberger087fafd2012-02-07 01:22:46 +010050config GENERIC_IO
51 boolean
52 default n
53
Wolfram Sang4ccf4be2011-08-31 20:35:40 +020054config STMP_DEVICE
55 bool
56
Oleg Nesterov22b361d2012-12-17 16:01:39 -080057config PERCPU_RWSEM
58 boolean
59
Linus Torvaldsbc08b442013-09-02 12:12:15 -070060config ARCH_USE_CMPXCHG_LOCKREF
61 bool
62
Linus Torvalds72d93102014-09-13 11:14:53 -070063config ARCH_HAS_FAST_MULTIPLIER
64 bool
65
Linus Torvalds1da177e2005-04-16 15:20:36 -070066config CRC_CCITT
67 tristate "CRC-CCITT functions"
68 help
69 This option is provided for the case where no in-kernel-tree
70 modules require CRC-CCITT functions, but a module built outside
71 the kernel tree does. Such modules that use library CRC-CCITT
72 functions require M here.
73
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +040074config CRC16
75 tristate "CRC16 functions"
76 help
77 This option is provided for the case where no in-kernel-tree
78 modules require CRC16 functions, but a module built outside
79 the kernel tree does. Such modules that use library CRC16
80 functions require M here.
81
Martin K. Petersenf11f5942008-06-25 11:22:42 -040082config CRC_T10DIF
83 tristate "CRC calculation for the T10 Data Integrity Field"
Herbert Xu684115212013-09-07 12:56:26 +100084 select CRYPTO
85 select CRYPTO_CRCT10DIF
Martin K. Petersenf11f5942008-06-25 11:22:42 -040086 help
87 This option is only needed if a module that's not in the
88 kernel tree needs to calculate CRC checks for use with the
89 SCSI data integrity subsystem.
90
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +020091config CRC_ITU_T
92 tristate "CRC ITU-T V.41 functions"
93 help
94 This option is provided for the case where no in-kernel-tree
95 modules require CRC ITU-T V.41 functions, but a module built outside
96 the kernel tree does. Such modules that use library CRC ITU-T V.41
97 functions require M here.
98
Linus Torvalds1da177e2005-04-16 15:20:36 -070099config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -0700100 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700101 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -0800102 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700103 help
104 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -0700105 modules require CRC32/CRC32c functions, but a module built outside
106 the kernel tree does. Such modules that use library CRC32/CRC32c
107 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108
Bob Pearson3863ef32012-03-23 15:02:22 -0700109config CRC32_SELFTEST
110 bool "CRC32 perform self test on init"
111 default n
112 depends on CRC32
113 help
114 This option enables the CRC32 library functions to perform a
115 self test on initialization. The self test computes crc32_le
116 and crc32_be over byte strings with random alignment and length
117 and computes the total elapsed time and number of bytes processed.
118
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700119choice
120 prompt "CRC32 implementation"
121 depends on CRC32
122 default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -0700123 help
124 This option allows a kernel builder to override the default choice
125 of CRC32 algorithm. Choose the default ("slice by 8") unless you
126 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -0700127
128config CRC32_SLICEBY8
129 bool "Slice by 8 bytes"
130 help
131 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
132 This is the fastest algorithm, but comes with a 8KiB lookup table.
133 Most modern processors have enough cache to hold this table without
134 thrashing the cache.
135
136 This is the default implementation choice. Choose this one unless
137 you have a good reason not to.
138
139config CRC32_SLICEBY4
140 bool "Slice by 4 bytes"
141 help
142 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
143 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
144 table.
145
146 Only choose this option if you know what you are doing.
147
148config CRC32_SARWATE
149 bool "Sarwate's Algorithm (one byte at a time)"
150 help
151 Calculate checksum a byte at a time using Sarwate's algorithm. This
152 is not particularly fast, but has a small 256 byte lookup table.
153
154 Only choose this option if you know what you are doing.
155
156config CRC32_BIT
157 bool "Classic Algorithm (one bit at a time)"
158 help
159 Calculate checksum one bit at a time. This is VERY slow, but has
160 no lookup table. This is provided as a debugging option.
161
162 Only choose this option if you are debugging crc32.
163
164endchoice
165
Jan Nikitenkoad241522007-07-17 04:04:03 -0700166config CRC7
167 tristate "CRC7 functions"
168 help
169 This option is provided for the case where no in-kernel-tree
170 modules require CRC7 functions, but a module built outside
171 the kernel tree does. Such modules that use library CRC7
172 functions require M here.
173
Linus Torvalds1da177e2005-04-16 15:20:36 -0700174config LIBCRC32C
175 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800176 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800177 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700178 help
179 This option is provided for the case where no in-kernel-tree
180 modules require CRC32c functions, but a module built outside the
181 kernel tree does. Such modules that use library CRC32c functions
182 require M here. See Castagnoli93.
183 Module will be libcrc32c.
184
Arend van Spriel71509622011-05-31 11:22:15 +0200185config CRC8
186 tristate "CRC8 function"
187 help
188 This option provides CRC8 function. Drivers may select this
189 when they need to do cyclic redundancy check according CRC8
190 algorithm. Module will be called crc8.
191
Al Viroe65e1fc2006-09-12 03:04:40 -0400192config AUDIT_GENERIC
193 bool
194 depends on AUDIT && !AUDIT_ARCH
195 default y
196
AKASHI Takahiro4b588412014-03-15 14:48:00 +0900197config AUDIT_ARCH_COMPAT_GENERIC
198 bool
199 default n
200
201config AUDIT_COMPAT_GENERIC
202 bool
203 depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
204 default y
205
Daniel Borkmanna6a9c0f2013-11-11 12:20:37 +0100206config RANDOM32_SELFTEST
207 bool "PRNG perform self test on init"
208 default n
209 help
210 This option enables the 32 bit PRNG library functions to perform a
211 self test on initialization.
212
Linus Torvalds1da177e2005-04-16 15:20:36 -0700213#
214# compression support is select'ed if needed
215#
216config ZLIB_INFLATE
217 tristate
218
219config ZLIB_DEFLATE
220 tristate
221
Richard Purdie64c70b12007-07-10 17:22:24 -0700222config LZO_COMPRESS
223 tristate
224
225config LZO_DECOMPRESS
226 tristate
227
Chanho Minc72ac7a2013-07-08 16:01:49 -0700228config LZ4_COMPRESS
229 tristate
230
231config LZ4HC_COMPRESS
232 tristate
233
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700234config LZ4_DECOMPRESS
235 tristate
236
Lasse Collin24fa0402011-01-12 17:01:22 -0800237source "lib/xz/Kconfig"
238
Linus Torvalds1da177e2005-04-16 15:20:36 -0700239#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800240# These all provide a common interface (hence the apparent duplication with
241# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
242#
243config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800244 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800245 tristate
246
247config DECOMPRESS_BZIP2
248 tristate
249
250config DECOMPRESS_LZMA
251 tristate
252
Lasse Collin3ebe1242011-01-12 17:01:23 -0800253config DECOMPRESS_XZ
254 select XZ_DEC
255 tristate
256
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800257config DECOMPRESS_LZO
258 select LZO_DECOMPRESS
259 tristate
260
Kyungsik Leee76e1fd2013-07-08 16:01:46 -0700261config DECOMPRESS_LZ4
262 select LZ4_DECOMPRESS
263 tristate
264
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800265#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700266# Generic allocator support is selected if needed
267#
268config GENERIC_ALLOCATOR
269 boolean
270
271#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700272# reed solomon support is select'ed if needed
273#
274config REED_SOLOMON
275 tristate
276
277config REED_SOLOMON_ENC8
278 boolean
279
280config REED_SOLOMON_DEC8
281 boolean
282
283config REED_SOLOMON_ENC16
284 boolean
285
286config REED_SOLOMON_DEC16
287 boolean
288
David S. Millerf7704342005-06-24 17:39:03 -0700289#
Ivan Djelic437aa562011-03-11 11:05:32 +0100290# BCH support is selected if needed
291#
292config BCH
293 tristate
294
295config BCH_CONST_PARAMS
296 boolean
297 help
298 Drivers may select this option to force specific constant
299 values for parameters 'm' (Galois field order) and 't'
300 (error correction capability). Those specific values must
301 be set by declaring default values for symbols BCH_CONST_M
302 and BCH_CONST_T.
303 Doing so will enable extra compiler optimizations,
304 improving encoding and decoding performance up to 2x for
305 usual (m,t) values (typically such that m*t < 200).
306 When this option is selected, the BCH library supports
307 only a single (m,t) configuration. This is mainly useful
308 for NAND flash board drivers requiring known, fixed BCH
309 parameters.
310
311config BCH_CONST_M
312 int
313 range 5 15
314 help
315 Constant value for Galois field order 'm'. If 'k' is the
316 number of data bits to protect, 'm' should be chosen such
317 that (k + m*t) <= 2**m - 1.
318 Drivers should declare a default value for this symbol if
319 they select option BCH_CONST_PARAMS.
320
321config BCH_CONST_T
322 int
323 help
324 Constant value for error correction capability in bits 't'.
325 Drivers should declare a default value for this symbol if
326 they select option BCH_CONST_PARAMS.
327
328#
David S. Millerf7704342005-06-24 17:39:03 -0700329# Textsearch support is select'ed if needed
330#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700331config TEXTSEARCH
David S. Millerf7704342005-06-24 17:39:03 -0700332 boolean
Linus Torvalds1da177e2005-04-16 15:20:36 -0700333
Thomas Grafdf3fb932005-06-23 20:58:37 -0700334config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700335 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700336
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700337config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700338 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700339
Thomas Graf6408f792005-06-23 20:59:16 -0700340config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700341 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700342
Joern Engel5db53f32009-11-20 20:13:39 +0100343config BTREE
344 boolean
345
Chris Wilsona88cc102014-03-17 12:21:54 +0000346config INTERVAL_TREE
347 boolean
348 help
349 Simple, embeddable, interval-tree. Can find the start of an
350 overlapping range in log(n) time and then iterate over all
351 overlapping nodes. The algorithm is implemented as an
352 augmented rbtree.
353
354 See:
355
356 Documentation/rbtree.txt
357
358 for more information.
359
David Howells3cb98952013-09-24 10:35:17 +0100360config ASSOCIATIVE_ARRAY
361 bool
362 help
363 Generic associative array. Can be searched and iterated over whilst
364 it is being modified. It is also reasonably quick to search and
365 modify. The algorithms are non-recursive, and the trees are highly
366 capacious.
367
368 See:
369
370 Documentation/assoc_array.txt
371
372 for more information.
373
Al Viro5ea81762007-02-11 15:41:31 +0000374config HAS_IOMEM
Al Viroee36c2b2006-12-13 00:35:00 -0800375 boolean
Al Viro5ea81762007-02-11 15:41:31 +0000376 depends on !NO_IOMEM
Richard Weinberger087fafd2012-02-07 01:22:46 +0100377 select GENERIC_IO
Al Viro5ea81762007-02-11 15:41:31 +0000378 default y
379
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700380config HAS_IOPORT_MAP
Al Viro5ea81762007-02-11 15:41:31 +0000381 boolean
Uwe Kleine-Königce816fa2014-04-07 15:39:19 -0700382 depends on HAS_IOMEM && !NO_IOPORT_MAP
Al Viroee36c2b2006-12-13 00:35:00 -0800383 default y
384
Heiko Carstens411f0f32007-05-06 14:49:09 -0700385config HAS_DMA
386 boolean
387 depends on !NO_DMA
388 default y
389
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700390config CHECK_SIGNATURE
391 bool
392
Rusty Russellaab46da2008-12-13 21:20:27 +1030393config CPUMASK_OFFSTACK
394 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
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
Rusty Russell8c384cd2009-01-01 10:12:30 +1030400config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
401 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
Kees Cook525c1f92013-01-16 18:54:16 -0800402 depends on BROKEN
Rusty Russell8c384cd2009-01-01 10:12:30 +1030403
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000404config CPU_RMAP
405 bool
406 depends on SMP
407
Tom Herbert75957ba2011-11-28 16:32:35 +0000408config DQL
409 bool
410
George Spelvinb0125082014-08-06 16:09:23 -0700411config GLOB
412 bool
413# This actually supports modular compilation, but the module overhead
414# is ridiculous for the amount of code involved. Until an out-of-tree
415# driver asks for it, we'll just link it directly it into the kernel
416# when required. Since we're ignoring out-of-tree users, there's also
417# no need bother prompting for a manual decision:
418# prompt "glob_match() function"
419 help
420 This option provides a glob_match function for performing
421 simple text pattern matching. It originated in the ATA code
422 to blacklist particular drive models, but other device drivers
423 may need similar functionality.
424
425 All drivers in the Linux kernel tree that require this function
426 should automatically select this option. Say N unless you
427 are compiling an out-of tree driver which tells you that it
428 depends on this.
429
George Spelvin5f9be822014-08-06 16:09:25 -0700430config GLOB_SELFTEST
431 bool "glob self-test on init"
432 default n
433 depends on GLOB
434 help
435 This option enables a simple self-test of the glob_match
436 function on startup. It is primarily useful for people
437 working on the code to ensure they haven't introduced any
438 regressions.
439
440 It only adds a little bit of code and slows kernel boot (or
441 module load) by a small amount, so you're welcome to play with
442 it, but you probably don't need it.
443
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800444#
445# Netlink attribute parsing support is select'ed if needed
446#
447config NLATTR
448 bool
449
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000450#
451# Generic 64-bit atomic support is selected if needed
452#
453config GENERIC_ATOMIC64
454 bool
455
Catalin Marinas74634492012-07-30 14:41:09 -0700456config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
457 def_bool y if GENERIC_ATOMIC64
458
Philipp Reisnerb411b362009-09-25 16:07:19 -0700459config LRU_CACHE
460 tristate
461
Bruno Randolfc5485a72010-11-16 10:58:37 +0900462config AVERAGE
Michael Buescha7a9a242011-03-01 20:03:05 +0100463 bool "Averaging functions"
464 help
465 This option is provided for the case where no in-kernel-tree
466 modules require averaging functions, but a module built outside
467 the kernel tree does. Such modules that use library averaging
468 functions require Y here.
469
470 If unsure, say N.
Bruno Randolfc5485a72010-11-16 10:58:37 +0900471
David Millerc6df4b12012-02-02 00:17:54 +0200472config CLZ_TAB
473 bool
474
Arend van Spriel10f81132011-05-31 11:22:16 +0200475config CORDIC
Michael Wittend89ce932011-07-29 12:59:51 +0000476 tristate "CORDIC algorithm"
Arend van Spriel10f81132011-05-31 11:22:16 +0200477 help
Michael Witten435a95c2011-07-29 13:36:04 +0000478 This option provides an implementation of the CORDIC algorithm;
479 calculations are in fixed point. Module will be called cordic.
Arend van Spriel10f81132011-05-31 11:22:16 +0200480
Aneesh V9c1c21a2012-04-27 17:54:03 +0530481config DDR
482 bool "JEDEC DDR data"
483 help
484 Data from JEDEC specs for DDR SDRAM memories,
485 particularly the AC timing parameters and addressing
486 information. This data is useful for drivers handling
487 DDR SDRAM controllers.
488
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300489config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200490 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200491 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300492 help
493 Multiprecision maths library from GnuPG.
494 It is used to implement RSA digital signature verification,
495 which is used by IMA/EVM digital signature extension.
496
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200497config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200498 tristate
Dmitry Kasatkin0d1f64f2014-07-11 18:59:45 +0300499 depends on KEYS
500 select CRYPTO
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200501 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300502 select MPILIB
503 help
504 Digital signature verification. Currently only RSA is supported.
505 Implementation is done using GnuPG MPI library
506
David Daneyab253832012-07-05 18:12:38 +0200507#
508# libfdt files, only selected if needed.
509#
510config LIBFDT
511 bool
512
David Howellsa77ad6e2012-09-21 23:30:46 +0100513config OID_REGISTRY
514 tristate
515 help
516 Enable fast lookup object identifier registry.
517
Matthew Garrett0635eb82013-04-15 13:09:45 -0700518config UCS2_STRING
519 tristate
520
Geert Uytterhoevenee89bd62013-06-09 11:46:43 +0200521source "lib/fonts/Kconfig"
522
Laura Abbott308c09f2014-08-08 14:23:25 -0700523#
524# sg chaining option
525#
526
527config ARCH_HAS_SG_CHAIN
528 def_bool n
529
Thomas Graf2de4ff72005-06-23 20:49:30 -0700530endmenu