blob: 49cb46337db9413e1ba62ac10339ceb6466c47a9 [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
6def_bool n
7
Linus Torvalds1da177e2005-04-16 15:20:36 -07008menu "Library routines"
9
David Woodhousef5e70d02009-07-13 11:35:12 +010010config RAID6_PQ
11tristate
12
Akinobu Mitaa5cfc1ec582006-12-08 02:36:25 -080013config BITREVERSE
14tristate
15
Oskar Schirmer8759ef32009-06-11 14:51:15 +010016config RATIONAL
17boolean
18
David S. Miller29225852012-05-24 13:12:28 -070019config GENERIC_STRNCPY_FROM_USER
20bool
21
Alexander van Heukelum19870de2008-04-25 13:12:53 +020022config GENERIC_FIND_FIRST_BIT
Jan Beulich9ba16082008-10-15 22:01:38 -070023bool
Alexander van Heukelum19870de2008-04-25 13:12:53 +020024
Michael S. Tsirkinb9236502012-01-30 00:20:48 +020025config NO_GENERIC_PCI_IOPORT_MAP
26bool
27
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020028config GENERIC_PCI_IOMAP
29bool
30
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020031config GENERIC_IOMAP
32bool
Michael S. Tsirkin66eab4d2011-11-24 20:45:20 +020033select GENERIC_PCI_IOMAP
Michael S. Tsirkin4673ca82011-11-24 14:54:28 +020034
Richard Weinberger087fafd12012-02-07 01:22:46 +010035config GENERIC_IO
36boolean
37default n
38
Linus Torvalds1da177e2005-04-16 15:20:36 -070039config CRC_CCITT
40tristate "CRC-CCITT functions"
41help
42 This option is provided for the case where no in-kernel-tree
43 modules require CRC-CCITT functions, but a module built outside
44 the kernel tree does. Such modules that use library CRC-CCITT
45 functions require M here.
46
Evgeniy Polyakov7657ec12005-08-17 15:17:26 +040047config CRC16
48tristate "CRC16 functions"
49help
50 This option is provided for the case where no in-kernel-tree
51 modules require CRC16 functions, but a module built outside
52 the kernel tree does. Such modules that use library CRC16
53 functions require M here.
54
Martin K. Petersenf11f5942008-06-25 11:22:42 -040055config CRC_T10DIF
56tristate "CRC calculation for the T10 Data Integrity Field"
57help
58 This option is only needed if a module that's not in the
59 kernel tree needs to calculate CRC checks for use with the
60 SCSI data integrity subsystem.
61
Ivo van Doorn3e7cbae2006-06-12 16:17:04 +020062config CRC_ITU_T
63tristate "CRC ITU-T V.41 functions"
64help
65 This option is provided for the case where no in-kernel-tree
66 modules require CRC ITU-T V.41 functions, but a module built outside
67 the kernel tree does. Such modules that use library CRC ITU-T V.41
68 functions require M here.
69
Linus Torvalds1da177e2005-04-16 15:20:36 -070070config CRC32
Darrick J. Wong46c58012012-03-23 15:02:25 -070071tristate "CRC32/CRC32c functions"
Linus Torvalds1da177e2005-04-16 15:20:36 -070072default y
Akinobu Mita906d66df2006-12-08 02:36:25 -080073select BITREVERSE
Linus Torvalds1da177e2005-04-16 15:20:36 -070074help
75 This option is provided for the case where no in-kernel-tree
Darrick J. Wong46c58012012-03-23 15:02:25 -070076 modules require CRC32/CRC32c functions, but a module built outside
77 the kernel tree does. Such modules that use library CRC32/CRC32c
78 functions require M here.
Linus Torvalds1da177e2005-04-16 15:20:36 -070079
Bob Pearson3863ef32012-03-23 15:02:22 -070080config CRC32_SELFTEST
81bool "CRC32 perform self test on init"
82default n
83depends on CRC32
84help
85 This option enables the CRC32 library functions to perform a
86 self test on initialization. The self test computes crc32_le
87 and crc32_be over byte strings with random alignment and length
88 and computes the total elapsed time and number of bytes processed.
89
Darrick J. Wong5cde7652012-03-23 15:02:26 -070090choice
91prompt "CRC32 implementation"
92depends on CRC32
93default CRC32_SLICEBY8
Darrick J. Wong82edb4b2012-03-28 14:42:56 -070094help
95 This option allows a kernel builder to override the default choice
96 of CRC32 algorithm. Choose the default ("slice by 8") unless you
97 know that you need one of the others.
Darrick J. Wong5cde7652012-03-23 15:02:26 -070098
99config CRC32_SLICEBY8
100bool "Slice by 8 bytes"
101help
102 Calculate checksum 8 bytes at a time with a clever slicing algorithm.
103 This is the fastest algorithm, but comes with a 8KiB lookup table.
104 Most modern processors have enough cache to hold this table without
105 thrashing the cache.
106
107 This is the default implementation choice. Choose this one unless
108 you have a good reason not to.
109
110config CRC32_SLICEBY4
111bool "Slice by 4 bytes"
112help
113 Calculate checksum 4 bytes at a time with a clever slicing algorithm.
114 This is a bit slower than slice by 8, but has a smaller 4KiB lookup
115 table.
116
117 Only choose this option if you know what you are doing.
118
119config CRC32_SARWATE
120bool "Sarwate's Algorithm (one byte at a time)"
121help
122 Calculate checksum a byte at a time using Sarwate's algorithm. This
123 is not particularly fast, but has a small 256 byte lookup table.
124
125 Only choose this option if you know what you are doing.
126
127config CRC32_BIT
128bool "Classic Algorithm (one bit at a time)"
129help
130 Calculate checksum one bit at a time. This is VERY slow, but has
131 no lookup table. This is provided as a debugging option.
132
133 Only choose this option if you are debugging crc32.
134
135endchoice
136
Jan Nikitenkoad241522007-07-17 04:04:03 -0700137config CRC7
138tristate "CRC7 functions"
139help
140 This option is provided for the case where no in-kernel-tree
141 modules require CRC7 functions, but a module built outside
142 the kernel tree does. Such modules that use library CRC7
143 functions require M here.
144
Linus Torvalds1da177e2005-04-16 15:20:36 -0700145config LIBCRC32C
146tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
Herbert Xu93027352008-11-13 22:05:13 +0800147select CRYPTO
Herbert Xu69c35ef2008-11-07 15:11:47 +0800148select CRYPTO_CRC32C
Linus Torvalds1da177e2005-04-16 15:20:36 -0700149help
150 This option is provided for the case where no in-kernel-tree
151 modules require CRC32c functions, but a module built outside the
152 kernel tree does. Such modules that use library CRC32c functions
153 require M here. See Castagnoli93.
154 Module will be libcrc32c.
155
Arend van Spriel71509622011-05-31 11:22:15 +0200156config CRC8
157tristate "CRC8 function"
158help
159 This option provides CRC8 function. Drivers may select this
160 when they need to do cyclic redundancy check according CRC8
161 algorithm. Module will be called crc8.
162
Al Viroe65e1fc2006-09-12 03:04:40 -0400163config AUDIT_GENERIC
164bool
165depends on AUDIT && !AUDIT_ARCH
166default y
167
Linus Torvalds1da177e2005-04-16 15:20:36 -0700168#
169# compression support is select'ed if needed
170#
171config ZLIB_INFLATE
172tristate
173
174config ZLIB_DEFLATE
175tristate
176
Richard Purdie64c70b12007-07-10 17:22:24 -0700177config LZO_COMPRESS
178tristate
179
180config LZO_DECOMPRESS
181tristate
182
Lasse Collin24fa0402011-01-12 17:01:22 -0800183source "lib/xz/Kconfig"
184
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185#
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800186# These all provide a common interface (hence the apparent duplication with
187# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
188#
189config DECOMPRESS_GZIP
H. Peter Anvin7856a16e2009-01-07 00:01:43 -0800190select ZLIB_INFLATE
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800191tristate
192
193config DECOMPRESS_BZIP2
194tristate
195
196config DECOMPRESS_LZMA
197tristate
198
Lasse Collin3ebe1242011-01-12 17:01:23 -0800199config DECOMPRESS_XZ
200select XZ_DEC
201tristate
202
Albin Tonnerrecacb2462010-01-08 14:42:46 -0800203config DECOMPRESS_LZO
204select LZO_DECOMPRESS
205tristate
206
H. Peter Anvinc8531ab2009-01-05 13:48:31 -0800207#
Jes Sorensenf14f75b2005-06-21 17:15:02 -0700208# Generic allocator support is selected if needed
209#
210config GENERIC_ALLOCATOR
211boolean
212
213#
Linus Torvalds1da177e2005-04-16 15:20:36 -0700214# reed solomon support is select'ed if needed
215#
216config REED_SOLOMON
217tristate
218
219config REED_SOLOMON_ENC8
220boolean
221
222config REED_SOLOMON_DEC8
223boolean
224
225config REED_SOLOMON_ENC16
226boolean
227
228config REED_SOLOMON_DEC16
229boolean
230
David S. Millerf7704342005-06-24 17:39:03 -0700231#
Ivan Djelic437aa562011-03-11 11:05:32 +0100232# BCH support is selected if needed
233#
234config BCH
235tristate
236
237config BCH_CONST_PARAMS
238boolean
239help
240 Drivers may select this option to force specific constant
241 values for parameters 'm' (Galois field order) and 't'
242 (error correction capability). Those specific values must
243 be set by declaring default values for symbols BCH_CONST_M
244 and BCH_CONST_T.
245 Doing so will enable extra compiler optimizations,
246 improving encoding and decoding performance up to 2x for
247 usual (m,t) values (typically such that m*t < 200).
248 When this option is selected, the BCH library supports
249 only a single (m,t) configuration. This is mainly useful
250 for NAND flash board drivers requiring known, fixed BCH
251 parameters.
252
253config BCH_CONST_M
254int
255range 5 15
256help
257 Constant value for Galois field order 'm'. If 'k' is the
258 number of data bits to protect, 'm' should be chosen such
259 that (k + m*t) <= 2**m - 1.
260 Drivers should declare a default value for this symbol if
261 they select option BCH_CONST_PARAMS.
262
263config BCH_CONST_T
264int
265help
266 Constant value for error correction capability in bits 't'.
267 Drivers should declare a default value for this symbol if
268 they select option BCH_CONST_PARAMS.
269
270#
David S. Millerf7704342005-06-24 17:39:03 -0700271# Textsearch support is select'ed if needed
272#
Thomas Graf2de4ff72005-06-23 20:49:30 -0700273config TEXTSEARCH
David S. Millerf7704342005-06-24 17:39:03 -0700274boolean
Linus Torvalds1da177e2005-04-16 15:20:36 -0700275
Thomas Grafdf3fb932005-06-23 20:58:37 -0700276config TEXTSEARCH_KMP
David S. Millerf7704342005-06-24 17:39:03 -0700277tristate
Thomas Grafdf3fb932005-06-23 20:58:37 -0700278
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700279config TEXTSEARCH_BM
David S. Miller29cb9f92005-08-25 16:23:11 -0700280tristate
Pablo Neira Ayuso8082e4e2005-08-25 16:12:22 -0700281
Thomas Graf6408f792005-06-23 20:59:16 -0700282config TEXTSEARCH_FSM
David S. Millerf7704342005-06-24 17:39:03 -0700283tristate
Thomas Graf6408f792005-06-23 20:59:16 -0700284
Joern Engel5db53f32009-11-20 20:13:39 +0100285config BTREE
286boolean
287
Al Viro5ea81762007-02-11 15:41:31 +0000288config HAS_IOMEM
Al Viroee36c2b2006-12-13 00:35:00 -0800289boolean
Al Viro5ea81762007-02-11 15:41:31 +0000290depends on !NO_IOMEM
Richard Weinberger087fafd12012-02-07 01:22:46 +0100291select GENERIC_IO
Al Viro5ea81762007-02-11 15:41:31 +0000292default y
293
294config HAS_IOPORT
295boolean
296depends on HAS_IOMEM && !NO_IOPORT
Al Viroee36c2b2006-12-13 00:35:00 -0800297default y
298
Heiko Carstens411f0f32007-05-06 14:49:09 -0700299config HAS_DMA
300boolean
301depends on !NO_DMA
302default y
303
Geert Uytterhoeven928923c2007-08-22 14:01:36 -0700304config CHECK_SIGNATURE
305bool
306
Rusty Russellaab46da2008-12-13 21:20:27 +1030307config CPUMASK_OFFSTACK
308bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
309help
310 Use dynamic allocation for cpumask_var_t, instead of putting
311 them on the stack. This is a bit more expensive, but avoids
312 stack overflow.
313
Rusty Russell8c384cd2009-01-01 10:12:30 +1030314config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
315 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
316 depends on EXPERIMENTAL && BROKEN
317
Ben Hutchingsc39649c2011-01-19 11:03:25 +0000318config CPU_RMAP
319bool
320depends on SMP
321
Tom Herbert75957ba2011-11-28 16:32:35 +0000322config DQL
323bool
324
Geert Uytterhoevene9cc8bd2009-03-04 14:53:30 +0800325#
326# Netlink attribute parsing support is select'ed if needed
327#
328config NLATTR
329bool
330
Paul Mackerras09d4e0e2009-06-12 21:10:05 +0000331#
332# Generic 64-bit atomic support is selected if needed
333#
334config GENERIC_ATOMIC64
335 bool
336
Philipp Reisnerb411b362009-09-25 16:07:19 -0700337config LRU_CACHE
338tristate
339
Bruno Randolfc5485a72010-11-16 10:58:37 +0900340config AVERAGE
Michael Buescha7a9a242011-03-01 20:03:05 +0100341bool "Averaging functions"
342help
343 This option is provided for the case where no in-kernel-tree
344 modules require averaging functions, but a module built outside
345 the kernel tree does. Such modules that use library averaging
346 functions require Y here.
347
348 If unsure, say N.
Bruno Randolfc5485a72010-11-16 10:58:37 +0900349
David Millerc6df4b12012-02-02 00:17:54 +0200350config CLZ_TAB
351bool
352
Arend van Spriel10f81132011-05-31 11:22:16 +0200353config CORDIC
Michael Wittend89ce932011-07-29 12:59:51 +0000354tristate "CORDIC algorithm"
Arend van Spriel10f81132011-05-31 11:22:16 +0200355help
Michael Witten435a95c2011-07-29 13:36:04 +0000356 This option provides an implementation of the CORDIC algorithm;
357 calculations are in fixed point. Module will be called cordic.
Arend van Spriel10f81132011-05-31 11:22:16 +0200358
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300359config MPILIB
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200360tristate
David Millerc6df4b12012-02-02 00:17:54 +0200361select CLZ_TAB
Dmitry Kasatkind9c46b12011-08-31 14:05:16 +0300362help
363 Multiprecision maths library from GnuPG.
364 It is used to implement RSA digital signature verification,
365 which is used by IMA/EVM digital signature extension.
366
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200367config MPILIB_EXTRA
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200368bool
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200369depends on MPILIB
370help
Dmitry Kasatkin68adcad2012-01-17 17:12:05 +0200371 Additional sources of multiprecision maths library from GnuPG.
372 This code is unnecessary for RSA digital signature verification,
373 but can be compiled if needed.
Dmitry Kasatkin7e8dec92011-11-07 15:16:37 +0200374
Dmitry Kasatkin5e8898e2012-01-17 17:12:03 +0200375config SIGNATURE
Dmitry Kasatkin2e5f0942012-01-17 17:12:06 +0200376tristate
Dmitry Kasatkinbe440ec2012-01-17 17:12:04 +0200377depends on KEYS && CRYPTO
378select CRYPTO_SHA1
Dmitry Kasatkin051dbb92011-10-14 15:25:16 +0300379select MPILIB
380help
381 Digital signature verification. Currently only RSA is supported.
382 Implementation is done using GnuPG MPI library
383
Thomas Graf2de4ff72005-06-23 20:49:30 -0700384endmenu