blob: 43359bb1ca9087510a13e04f052082c45ade967e [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
Linus Torvalds1da177e2005-04-16 15:20:36 -070032config CRC_CCITT
33 tristate "CRC-CCITT functions"
34 help
35 This option is provided for the case where no in-kernel-tree
36 modules require CRC-CCITT functions, but a module built outside
37 the kernel tree does. Such modules that use library CRC-CCITT
38 functions require M here.
39
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +040040config CRC16
41 tristate "CRC16 functions"
42 help
43 This option is provided for the case where no in-kernel-tree
44 modules require CRC16 functions, but a module built outside
45 the kernel tree does. Such modules that use library CRC16
46 functions require M here.
47
Martin K. Petersenf11f5942008-06-25 11:22:42 -040048config CRC_T10DIF
49 tristate "CRC calculation for the T10 Data Integrity Field"
50 help
51 This option is only needed if a module that's not in the
52 kernel tree needs to calculate CRC checks for use with the
53 SCSI data integrity subsystem.
54
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +020055config CRC_ITU_T
56 tristate "CRC ITU-T V.41 functions"
57 help
58 This option is provided for the case where no in-kernel-tree
59 modules require CRC ITU-T V.41 functions, but a module built outside
60 the kernel tree does. Such modules that use library CRC ITU-T V.41
61 functions require M here.
62
Linus Torvalds1da177e2005-04-16 15:20:36 -070063config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -070064 tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -070065 default y
Akinobu Mita906d66d2006-12-08 02:36:25 -080066 select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -070067 help
68 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -070069 modules require CRC32/CRC32c functions, but a module built outside
70 the kernel tree does. Such modules that use library CRC32/CRC32c
71 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -070072
Bob Pearson3863ef32012-03-23 15:02:22 -070073config CRC32_SELFTEST
74 bool "CRC32 perform self test on init"
75 default n
76 depends on CRC32
77 help
78 This option enables the CRC32 library functions to perform a
79 self test on initialization. The self test computes crc32_le
80 and crc32_be over byte strings with random alignment and length
81 and computes the total elapsed time and number of bytes processed.
82
Darrick J. Wong5cde7652012-03-23 15:02:26 -070083choice
84 prompt "CRC32 implementation"
85 depends on CRC32
86 default CRC32_SLICEBY8
87
88config CRC32_SLICEBY8
89 bool "Slice by 8 bytes"
90 help
91 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
92 This is the fastest algorithm, but comes with a 8KiB lookup table.
93 Most modern processors have enough cache to hold this table without
94 thrashing the cache.
95
96 This is the default implementation choice. Choose this one unless
97 you have a good reason not to.
98
99config CRC32_SLICEBY4
100 bool "Slice by 4 bytes"
101 help
102 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
103 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
104 table.
105
106 Only choose this option if you know what you are doing.
107
108config CRC32_SARWATE
109 bool "Sarwate's Algorithm (one byte at a time)"
110 help
111 Calculate checksum a byte at a time using Sarwate's algorithm. This
112 is not particularly fast, but has a small 256 byte lookup table.
113
114 Only choose this option if you know what you are doing.
115
116config CRC32_BIT
117 bool "Classic Algorithm (one bit at a time)"
118 help
119 Calculate checksum one bit at a time. This is VERY slow, but has
120 no lookup table. This is provided as a debugging option.
121
122 Only choose this option if you are debugging crc32.
123
124endchoice
125
Jan Nikitenkoad241522007-07-17 04:04:03 -0700126config CRC7
127 tristate "CRC7 functions"
128 help
129 This option is provided for the case where no in-kernel-tree
130 modules require CRC7 functions, but a module built outside
131 the kernel tree does. Such modules that use library CRC7
132 functions require M here.
133
Linus Torvalds1da177e2005-04-16 15:20:36 -0700134config LIBCRC32C
135 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800136 select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800137 select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700138 help
139 This option is provided for the case where no in-kernel-tree
140 modules require CRC32c functions, but a module built outside the
141 kernel tree does. Such modules that use library CRC32c functions
142 require M here. See Castagnoli93.
143 Module will be libcrc32c.
144
Arend van Spriel71509622011-05-31 11:22:15 +0200145config CRC8
146 tristate "CRC8 function"
147 help
148 This option provides CRC8 function. Drivers may select this
149 when they need to do cyclic redundancy check according CRC8
150 algorithm. Module will be called crc8.
151
Al Viroe65e1fc2006-09-12 03:04:40 -0400152config AUDIT_GENERIC
153 bool
154 depends on AUDIT && !AUDIT_ARCH
155 default y
156
Linus Torvalds1da177e2005-04-16 15:20:36 -0700157#
158# compression support is select'ed if needed
159#
160config ZLIB_INFLATE
161 tristate
162
163config ZLIB_DEFLATE
164 tristate
165
Richard Purdie64c70b12007-07-10 17:22:24 -0700166config LZO_COMPRESS
167 tristate
168
169config LZO_DECOMPRESS
170 tristate
171
Lasse Collin24fa0402011-01-12 17:01:22 -0800172source "lib/xz/Kconfig"
173
Linus Torvalds1da177e2005-04-16 15:20:36 -0700174#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800175# These all provide a common interface (hence the apparent duplication with
176# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
177#
178config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800179 select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800180 tristate
181
182config DECOMPRESS_BZIP2
183 tristate
184
185config DECOMPRESS_LZMA
186 tristate
187
Lasse Collin3ebe1242011-01-12 17:01:23 -0800188config DECOMPRESS_XZ
189 select XZ_DEC
190 tristate
191
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800192config DECOMPRESS_LZO
193 select LZO_DECOMPRESS
194 tristate
195
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800196#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700197# Generic allocator support is selected if needed
198#
199config GENERIC_ALLOCATOR
200 boolean
201
202#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700203# reed solomon support is select'ed if needed
204#
205config REED_SOLOMON
206 tristate
207
208config REED_SOLOMON_ENC8
209 boolean
210
211config REED_SOLOMON_DEC8
212 boolean
213
214config REED_SOLOMON_ENC16
215 boolean
216
217config REED_SOLOMON_DEC16
218 boolean
219
David S. Millerf7704342005-06-24 17:39:03 -0700220#
Ivan Djelic437aa562011-03-11 11:05:32 +0100221# BCH support is selected if needed
222#
223config BCH
224 tristate
225
226config BCH_CONST_PARAMS
227 boolean
228 help
229 Drivers may select this option to force specific constant
230 values for parameters 'm' (Galois field order) and 't'
231 (error correction capability). Those specific values must
232 be set by declaring default values for symbols BCH_CONST_M
233 and BCH_CONST_T.
234 Doing so will enable extra compiler optimizations,
235 improving encoding and decoding performance up to 2x for
236 usual (m,t) values (typically such that m*t < 200).
237 When this option is selected, the BCH library supports
238 only a single (m,t) configuration. This is mainly useful
239 for NAND flash board drivers requiring known, fixed BCH
240 parameters.
241
242config BCH_CONST_M
243 int
244 range 5 15
245 help
246 Constant value for Galois field order 'm'. If 'k' is the
247 number of data bits to protect, 'm' should be chosen such
248 that (k + m*t) <= 2**m - 1.
249 Drivers should declare a default value for this symbol if
250 they select option BCH_CONST_PARAMS.
251
252config BCH_CONST_T
253 int
254 help
255 Constant value for error correction capability in bits 't'.
256 Drivers should declare a default value for this symbol if
257 they select option BCH_CONST_PARAMS.
258
259#
David S. Millerf7704342005-06-24 17:39:03 -0700260# Textsearch support is select'ed if needed
261#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700262config TEXTSEARCH
David S. Millerf7704342005-06-24 17:39:03 -0700263 boolean
Linus Torvalds1da177e2005-04-16 15:20:36 -0700264
Thomas Grafdf3fb932005-06-23 20:58:37 -0700265config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700266 tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700267
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700268config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700269 tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700270
Thomas Graf6408f792005-06-23 20:59:16 -0700271config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700272 tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700273
Joern Engel5db53f32009-11-20 20:13:39 +0100274config BTREE
275 boolean
276
Al Viro5ea81762007-02-11 15:41:31 +0000277config HAS_IOMEM
Al Viroee36c2b2006-12-13 00:35:00 -0800278 boolean
Al Viro5ea81762007-02-11 15:41:31 +0000279 depends on !NO_IOMEM
280 default y
281
282config HAS_IOPORT
283 boolean
284 depends on HAS_IOMEM && !NO_IOPORT
Al Viroee36c2b2006-12-13 00:35:00 -0800285 default y
286
Heiko Carstens411f0f32007-05-06 14:49:09 -0700287config HAS_DMA
288 boolean
289 depends on !NO_DMA
290 default y
291
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700292config CHECK_SIGNATURE
293 bool
294
Rusty Russellaab46da2008-12-13 21:20:27 +1030295config CPUMASK_OFFSTACK
296 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
297 help
298 Use dynamic allocation for cpumask_var_t, instead of putting
299 them on the stack. This is a bit more expensive, but avoids
300 stack overflow.
301
Rusty Russell8c384cd2009-01-01 10:12:30 +1030302config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
303 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
304 depends on EXPERIMENTAL && BROKEN
305
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000306config CPU_RMAP
307 bool
308 depends on SMP
309
Tom Herbert75957ba2011-11-28 16:32:35 +0000310config DQL
311 bool
312
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800313#
314# Netlink attribute parsing support is select'ed if needed
315#
316config NLATTR
317 bool
318
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000319#
320# Generic 64-bit atomic support is selected if needed
321#
322config GENERIC_ATOMIC64
323 bool
324
Philipp Reisnerb411b362009-09-25 16:07:19 -0700325config LRU_CACHE
326 tristate
327
Bruno Randolfc5485a72010-11-16 10:58:37 +0900328config AVERAGE
Michael Buescha7a9a242011-03-01 20:03:05 +0100329 bool "Averaging functions"
330 help
331 This option is provided for the case where no in-kernel-tree
332 modules require averaging functions, but a module built outside
333 the kernel tree does. Such modules that use library averaging
334 functions require Y here.
335
336 If unsure, say N.
Bruno Randolfc5485a72010-11-16 10:58:37 +0900337
David Millerc6df4b12012-02-02 00:17:54 +0200338config CLZ_TAB
339 bool
340
Arend van Spriel10f81132011-05-31 11:22:16 +0200341config CORDIC
Michael Wittend89ce932011-07-29 12:59:51 +0000342 tristate "CORDIC algorithm"
Arend van Spriel10f81132011-05-31 11:22:16 +0200343 help
Michael Witten435a95c2011-07-29 13:36:04 +0000344 This option provides an implementation of the CORDIC algorithm;
345 calculations are in fixed point. Module will be called cordic.
Arend van Spriel10f81132011-05-31 11:22:16 +0200346
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300347config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200348 tristate
David Millerc6df4b12012-02-02 00:17:54 +0200349 select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300350 help
351 Multiprecision maths library from GnuPG.
352 It is used to implement RSA digital signature verification,
353 which is used by IMA/EVM digital signature extension.
354
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200355config MPILIB_EXTRA
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200356 bool
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200357 depends on MPILIB
358 help
Dmitry Kasatkin68adcad2012-01-17 17:12:05 +0200359 Additional sources of multiprecision maths library from GnuPG.
360 This code is unnecessary for RSA digital signature verification,
361 but can be compiled if needed.
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200362
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200363config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200364 tristate
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200365 depends on KEYS && CRYPTO
366 select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300367 select MPILIB
368 help
369 Digital signature verification. Currently only RSA is supported.
370 Implementation is done using GnuPG MPI library
371
Thomas Graf2de4ff72005-06-23 20:49:30 -0700372endmenu