blob: a0e5900a9d85eedba0da1420836797476753f8a0 [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
Oskar Schirmer8759ef32009-06-11 14:51:15 +010016config RATIONAL
17 boolean
18
Alexander van Heukelum19870de2008-04-25 13:12:53 +020019config GENERIC_FIND_FIRST_BIT
Jan Beulich9ba16082008-10-15 22:01:38 -070020 bool
Alexander van Heukelum19870de2008-04-25 13:12:53 +020021
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020022config NO_GENERIC_PCI_IOPORT_MAP
23 bool
24
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020025config GENERIC_PCI_IOMAP
26 bool
27
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020028config GENERIC_IOMAP
29 bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020030 select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020031
Richard Weinberger087fafd2012-02-07 01:22:46 +010032config GENERIC_IO
33 boolean
34 default n
35
Linus Torvalds1da177e2005-04-16 15:20:36 -070036config CRC_CCITT
37 tristate "CRC-CCITT functions"
38 help
39 This option is provided for the case where no in-kernel-tree
40 modules require CRC-CCITT functions, but a module built outside
41 the kernel tree does. Such modules that use library CRC-CCITT
42 functions require M here.
43
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +040044config CRC16
45 tristate "CRC16 functions"
46 help
47 This option is provided for the case where no in-kernel-tree
48 modules require CRC16 functions, but a module built outside
49 the kernel tree does. Such modules that use library CRC16
50 functions require M here.
51
Martin K. Petersenf11f5942008-06-25 11:22:42 -040052config CRC_T10DIF
53 tristate "CRC calculation for the T10 Data Integrity Field"
54 help
55 This option is only needed if a module that's not in the
56 kernel tree needs to calculate CRC checks for use with the
57 SCSI data integrity subsystem.
58
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +020059config CRC_ITU_T
60 tristate "CRC ITU-T V.41 functions"
61 help
62 This option is provided for the case where no in-kernel-tree
63 modules require CRC ITU-T V.41 functions, but a module built outside
64 the kernel tree does. Such modules that use library CRC ITU-T V.41
65 functions require M here.
66
Linus Torvalds1da177e2005-04-16 15:20:36 -070067config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -070068 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -080070 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -070071 help
72 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -070073 modules require CRC32/CRC32c functions, but a module built outside
74 the kernel tree does. Such modules that use library CRC32/CRC32c
75 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -070076
Bob Pearson3863ef32012-03-23 15:02:22 -070077config CRC32_SELFTEST
78 bool "CRC32 perform self test on init"
79 default n
80 depends on CRC32
81 help
82 This option enables the CRC32 library functions to perform a
83 self test on initialization. The self test computes crc32_le
84 and crc32_be over byte strings with random alignment and length
85 and computes the total elapsed time and number of bytes processed.
86
Darrick J. Wong5cde7652012-03-23 15:02:26 -070087choice
88 prompt "CRC32 implementation"
89 depends on CRC32
90 default CRC32_SLICEBY8
91
92config CRC32_SLICEBY8
93 bool "Slice by 8 bytes"
94 help
95 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
96 This is the fastest algorithm, but comes with a 8KiB lookup table.
97 Most modern processors have enough cache to hold this table without
98 thrashing the cache.
99
100 This is the default implementation choice. Choose this one unless
101 you have a good reason not to.
102
103config CRC32_SLICEBY4
104 bool "Slice by 4 bytes"
105 help
106 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
107 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
108 table.
109
110 Only choose this option if you know what you are doing.
111
112config CRC32_SARWATE
113 bool "Sarwate's Algorithm (one byte at a time)"
114 help
115 Calculate checksum a byte at a time using Sarwate's algorithm. This
116 is not particularly fast, but has a small 256 byte lookup table.
117
118 Only choose this option if you know what you are doing.
119
120config CRC32_BIT
121 bool "Classic Algorithm (one bit at a time)"
122 help
123 Calculate checksum one bit at a time. This is VERY slow, but has
124 no lookup table. This is provided as a debugging option.
125
126 Only choose this option if you are debugging crc32.
127
128endchoice
129
Jan Nikitenkoad241522007-07-17 04:04:03 -0700130config CRC7
131 tristate "CRC7 functions"
132 help
133 This option is provided for the case where no in-kernel-tree
134 modules require CRC7 functions, but a module built outside
135 the kernel tree does. Such modules that use library CRC7
136 functions require M here.
137
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138config LIBCRC32C
139 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800140 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800141 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700142 help
143 This option is provided for the case where no in-kernel-tree
144 modules require CRC32c functions, but a module built outside the
145 kernel tree does. Such modules that use library CRC32c functions
146 require M here. See Castagnoli93.
147 Module will be libcrc32c.
148
Arend van Spriel71509622011-05-31 11:22:15 +0200149config CRC8
150 tristate "CRC8 function"
151 help
152 This option provides CRC8 function. Drivers may select this
153 when they need to do cyclic redundancy check according CRC8
154 algorithm. Module will be called crc8.
155
Al Viroe65e1fc2006-09-12 03:04:40 -0400156config AUDIT_GENERIC
157 bool
158 depends on AUDIT && !AUDIT_ARCH
159 default y
160
Linus Torvalds1da177e2005-04-16 15:20:36 -0700161#
162# compression support is select'ed if needed
163#
164config ZLIB_INFLATE
165 tristate
166
167config ZLIB_DEFLATE
168 tristate
169
Richard Purdie64c70b12007-07-10 17:22:24 -0700170config LZO_COMPRESS
171 tristate
172
173config LZO_DECOMPRESS
174 tristate
175
Lasse Collin24fa0402011-01-12 17:01:22 -0800176source "lib/xz/Kconfig"
177
Linus Torvalds1da177e2005-04-16 15:20:36 -0700178#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800179# These all provide a common interface (hence the apparent duplication with
180# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
181#
182config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800183 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800184 tristate
185
186config DECOMPRESS_BZIP2
187 tristate
188
189config DECOMPRESS_LZMA
190 tristate
191
Lasse Collin3ebe1242011-01-12 17:01:23 -0800192config DECOMPRESS_XZ
193 select XZ_DEC
194 tristate
195
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800196config DECOMPRESS_LZO
197 select LZO_DECOMPRESS
198 tristate
199
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800200#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700201# Generic allocator support is selected if needed
202#
203config GENERIC_ALLOCATOR
204 boolean
205
206#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700207# reed solomon support is select'ed if needed
208#
209config REED_SOLOMON
210 tristate
211
212config REED_SOLOMON_ENC8
213 boolean
214
215config REED_SOLOMON_DEC8
216 boolean
217
218config REED_SOLOMON_ENC16
219 boolean
220
221config REED_SOLOMON_DEC16
222 boolean
223
David S. Millerf7704342005-06-24 17:39:03 -0700224#
Ivan Djelic437aa562011-03-11 11:05:32 +0100225# BCH support is selected if needed
226#
227config BCH
228 tristate
229
230config BCH_CONST_PARAMS
231 boolean
232 help
233 Drivers may select this option to force specific constant
234 values for parameters 'm' (Galois field order) and 't'
235 (error correction capability). Those specific values must
236 be set by declaring default values for symbols BCH_CONST_M
237 and BCH_CONST_T.
238 Doing so will enable extra compiler optimizations,
239 improving encoding and decoding performance up to 2x for
240 usual (m,t) values (typically such that m*t < 200).
241 When this option is selected, the BCH library supports
242 only a single (m,t) configuration. This is mainly useful
243 for NAND flash board drivers requiring known, fixed BCH
244 parameters.
245
246config BCH_CONST_M
247 int
248 range 5 15
249 help
250 Constant value for Galois field order 'm'. If 'k' is the
251 number of data bits to protect, 'm' should be chosen such
252 that (k + m*t) <= 2**m - 1.
253 Drivers should declare a default value for this symbol if
254 they select option BCH_CONST_PARAMS.
255
256config BCH_CONST_T
257 int
258 help
259 Constant value for error correction capability in bits 't'.
260 Drivers should declare a default value for this symbol if
261 they select option BCH_CONST_PARAMS.
262
263#
David S. Millerf7704342005-06-24 17:39:03 -0700264# Textsearch support is select'ed if needed
265#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700266config TEXTSEARCH
David S. Millerf7704342005-06-24 17:39:03 -0700267 boolean
Linus Torvalds1da177e2005-04-16 15:20:36 -0700268
Thomas Grafdf3fb932005-06-23 20:58:37 -0700269config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700270 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700271
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700272config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700273 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700274
Thomas Graf6408f792005-06-23 20:59:16 -0700275config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700276 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700277
Joern Engel5db53f32009-11-20 20:13:39 +0100278config BTREE
279 boolean
280
Al Viro5ea81762007-02-11 15:41:31 +0000281config HAS_IOMEM
Al Viroee36c2b2006-12-13 00:35:00 -0800282 boolean
Al Viro5ea81762007-02-11 15:41:31 +0000283 depends on !NO_IOMEM
Richard Weinberger087fafd2012-02-07 01:22:46 +0100284 select GENERIC_IO
Al Viro5ea81762007-02-11 15:41:31 +0000285 default y
286
287config HAS_IOPORT
288 boolean
289 depends on HAS_IOMEM && !NO_IOPORT
Al Viroee36c2b2006-12-13 00:35:00 -0800290 default y
291
Heiko Carstens411f0f32007-05-06 14:49:09 -0700292config HAS_DMA
293 boolean
294 depends on !NO_DMA
295 default y
296
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700297config CHECK_SIGNATURE
298 bool
299
Rusty Russellaab46da2008-12-13 21:20:27 +1030300config CPUMASK_OFFSTACK
301 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
302 help
303 Use dynamic allocation for cpumask_var_t, instead of putting
304 them on the stack. This is a bit more expensive, but avoids
305 stack overflow.
306
Rusty Russell8c384cd2009-01-01 10:12:30 +1030307config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
308 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
309 depends on EXPERIMENTAL && BROKEN
310
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000311config CPU_RMAP
312 bool
313 depends on SMP
314
Tom Herbert75957ba2011-11-28 16:32:35 +0000315config DQL
316 bool
317
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800318#
319# Netlink attribute parsing support is select'ed if needed
320#
321config NLATTR
322 bool
323
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000324#
325# Generic 64-bit atomic support is selected if needed
326#
327config GENERIC_ATOMIC64
328 bool
329
Philipp Reisnerb411b362009-09-25 16:07:19 -0700330config LRU_CACHE
331 tristate
332
Bruno Randolfc5485a72010-11-16 10:58:37 +0900333config AVERAGE
Michael Buescha7a9a242011-03-01 20:03:05 +0100334 bool "Averaging functions"
335 help
336 This option is provided for the case where no in-kernel-tree
337 modules require averaging functions, but a module built outside
338 the kernel tree does. Such modules that use library averaging
339 functions require Y here.
340
341 If unsure, say N.
Bruno Randolfc5485a72010-11-16 10:58:37 +0900342
David Millerc6df4b12012-02-02 00:17:54 +0200343config CLZ_TAB
344 bool
345
Arend van Spriel10f81132011-05-31 11:22:16 +0200346config CORDIC
Michael Wittend89ce932011-07-29 12:59:51 +0000347 tristate "CORDIC algorithm"
Arend van Spriel10f81132011-05-31 11:22:16 +0200348 help
Michael Witten435a95c2011-07-29 13:36:04 +0000349 This option provides an implementation of the CORDIC algorithm;
350 calculations are in fixed point. Module will be called cordic.
Arend van Spriel10f81132011-05-31 11:22:16 +0200351
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300352config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200353 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200354 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300355 help
356 Multiprecision maths library from GnuPG.
357 It is used to implement RSA digital signature verification,
358 which is used by IMA/EVM digital signature extension.
359
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200360config MPILIB_EXTRA
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200361 bool
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200362 depends on MPILIB
363 help
Dmitry Kasatkin68adcad2012-01-17 17:12:05 +0200364 Additional sources of multiprecision maths library from GnuPG.
365 This code is unnecessary for RSA digital signature verification,
366 but can be compiled if needed.
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200367
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200368config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200369 tristate
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200370 depends on KEYS && CRYPTO
371 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300372 select MPILIB
373 help
374 Digital signature verification. Currently only RSA is supported.
375 Implementation is done using GnuPG MPI library
376
Thomas Graf2de4ff72005-06-23 20:49:30 -0700377endmenu