3958dc4389f993cc204670706e834c42be80165b
[linux-3.10.git] / 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 RATIONAL
17         boolean
18
19 config GENERIC_STRNCPY_FROM_USER
20         bool
21
22 config GENERIC_STRNLEN_USER
23         bool
24
25 config GENERIC_FIND_FIRST_BIT
26         bool
27
28 config NO_GENERIC_PCI_IOPORT_MAP
29         bool
30
31 config GENERIC_PCI_IOMAP
32         bool
33
34 config GENERIC_IOMAP
35         bool
36         select GENERIC_PCI_IOMAP
37
38 config GENERIC_IO
39         boolean
40         default n
41
42 config STMP_DEVICE
43         bool
44
45 config PERCPU_RWSEM
46         boolean
47
48 config CRC_CCITT
49         tristate "CRC-CCITT functions"
50         help
51           This option is provided for the case where no in-kernel-tree
52           modules require CRC-CCITT functions, but a module built outside
53           the kernel tree does. Such modules that use library CRC-CCITT
54           functions require M here.
55
56 config CRC16
57         tristate "CRC16 functions"
58         help
59           This option is provided for the case where no in-kernel-tree
60           modules require CRC16 functions, but a module built outside
61           the kernel tree does. Such modules that use library CRC16
62           functions require M here.
63
64 config CRC_T10DIF
65         tristate "CRC calculation for the T10 Data Integrity Field"
66         help
67           This option is only needed if a module that's not in the
68           kernel tree needs to calculate CRC checks for use with the
69           SCSI data integrity subsystem.
70
71 config CRC_ITU_T
72         tristate "CRC ITU-T V.41 functions"
73         help
74           This option is provided for the case where no in-kernel-tree
75           modules require CRC ITU-T V.41 functions, but a module built outside
76           the kernel tree does. Such modules that use library CRC ITU-T V.41
77           functions require M here.
78
79 config CRC32
80         tristate "CRC32/CRC32c functions"
81         default y
82         select BITREVERSE
83         help
84           This option is provided for the case where no in-kernel-tree
85           modules require CRC32/CRC32c functions, but a module built outside
86           the kernel tree does. Such modules that use library CRC32/CRC32c
87           functions require M here.
88
89 config CRC32_SELFTEST
90         bool "CRC32 perform self test on init"
91         default n
92         depends on CRC32
93         help
94           This option enables the CRC32 library functions to perform a
95           self test on initialization. The self test computes crc32_le
96           and crc32_be over byte strings with random alignment and length
97           and computes the total elapsed time and number of bytes processed.
98
99 choice
100         prompt "CRC32 implementation"
101         depends on CRC32
102         default CRC32_SLICEBY8
103         help
104           This option allows a kernel builder to override the default choice
105           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
106           know that you need one of the others.
107
108 config CRC32_SLICEBY8
109         bool "Slice by 8 bytes"
110         help
111           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
112           This is the fastest algorithm, but comes with a 8KiB lookup table.
113           Most modern processors have enough cache to hold this table without
114           thrashing the cache.
115
116           This is the default implementation choice.  Choose this one unless
117           you have a good reason not to.
118
119 config CRC32_SLICEBY4
120         bool "Slice by 4 bytes"
121         help
122           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
123           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
124           table.
125
126           Only choose this option if you know what you are doing.
127
128 config CRC32_SARWATE
129         bool "Sarwate's Algorithm (one byte at a time)"
130         help
131           Calculate checksum a byte at a time using Sarwate's algorithm.  This
132           is not particularly fast, but has a small 256 byte lookup table.
133
134           Only choose this option if you know what you are doing.
135
136 config CRC32_BIT
137         bool "Classic Algorithm (one bit at a time)"
138         help
139           Calculate checksum one bit at a time.  This is VERY slow, but has
140           no lookup table.  This is provided as a debugging option.
141
142           Only choose this option if you are debugging crc32.
143
144 endchoice
145
146 config CRC7
147         tristate "CRC7 functions"
148         help
149           This option is provided for the case where no in-kernel-tree
150           modules require CRC7 functions, but a module built outside
151           the kernel tree does. Such modules that use library CRC7
152           functions require M here.
153
154 config LIBCRC32C
155         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
156         select CRYPTO
157         select CRYPTO_CRC32C
158         help
159           This option is provided for the case where no in-kernel-tree
160           modules require CRC32c functions, but a module built outside the
161           kernel tree does. Such modules that use library CRC32c functions
162           require M here.  See Castagnoli93.
163           Module will be libcrc32c.
164
165 config CRC8
166         tristate "CRC8 function"
167         help
168           This option provides CRC8 function. Drivers may select this
169           when they need to do cyclic redundancy check according CRC8
170           algorithm. Module will be called crc8.
171
172 config AUDIT_GENERIC
173         bool
174         depends on AUDIT && !AUDIT_ARCH
175         default y
176
177 #
178 # compression support is select'ed if needed
179 #
180 config ZLIB_INFLATE
181         tristate
182
183 config ZLIB_DEFLATE
184         tristate
185
186 config LZO_COMPRESS
187         tristate
188
189 config LZO_DECOMPRESS
190         tristate
191
192 source "lib/xz/Kconfig"
193
194 #
195 # These all provide a common interface (hence the apparent duplication with
196 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
197 #
198 config DECOMPRESS_GZIP
199         select ZLIB_INFLATE
200         tristate
201
202 config DECOMPRESS_BZIP2
203         tristate
204
205 config DECOMPRESS_LZMA
206         tristate
207
208 config DECOMPRESS_XZ
209         select XZ_DEC
210         tristate
211
212 config DECOMPRESS_LZO
213         select LZO_DECOMPRESS
214         tristate
215
216 #
217 # Generic allocator support is selected if needed
218 #
219 config GENERIC_ALLOCATOR
220         boolean
221
222 #
223 # reed solomon support is select'ed if needed
224 #
225 config REED_SOLOMON
226         tristate
227         
228 config REED_SOLOMON_ENC8
229         boolean
230
231 config REED_SOLOMON_DEC8
232         boolean
233
234 config REED_SOLOMON_ENC16
235         boolean
236
237 config REED_SOLOMON_DEC16
238         boolean
239
240 #
241 # BCH support is selected if needed
242 #
243 config BCH
244         tristate
245
246 config BCH_CONST_PARAMS
247         boolean
248         help
249           Drivers may select this option to force specific constant
250           values for parameters 'm' (Galois field order) and 't'
251           (error correction capability). Those specific values must
252           be set by declaring default values for symbols BCH_CONST_M
253           and BCH_CONST_T.
254           Doing so will enable extra compiler optimizations,
255           improving encoding and decoding performance up to 2x for
256           usual (m,t) values (typically such that m*t < 200).
257           When this option is selected, the BCH library supports
258           only a single (m,t) configuration. This is mainly useful
259           for NAND flash board drivers requiring known, fixed BCH
260           parameters.
261
262 config BCH_CONST_M
263         int
264         range 5 15
265         help
266           Constant value for Galois field order 'm'. If 'k' is the
267           number of data bits to protect, 'm' should be chosen such
268           that (k + m*t) <= 2**m - 1.
269           Drivers should declare a default value for this symbol if
270           they select option BCH_CONST_PARAMS.
271
272 config BCH_CONST_T
273         int
274         help
275           Constant value for error correction capability in bits 't'.
276           Drivers should declare a default value for this symbol if
277           they select option BCH_CONST_PARAMS.
278
279 #
280 # Textsearch support is select'ed if needed
281 #
282 config TEXTSEARCH
283         boolean
284
285 config TEXTSEARCH_KMP
286         tristate
287
288 config TEXTSEARCH_BM
289         tristate
290
291 config TEXTSEARCH_FSM
292         tristate
293
294 config BTREE
295         boolean
296
297 config HAS_IOMEM
298         boolean
299         depends on !NO_IOMEM
300         select GENERIC_IO
301         default y
302
303 config HAS_IOPORT
304         boolean
305         depends on HAS_IOMEM && !NO_IOPORT
306         default y
307
308 config HAS_DMA
309         boolean
310         depends on !NO_DMA
311         default y
312
313 config CHECK_SIGNATURE
314         bool
315
316 config CPUMASK_OFFSTACK
317         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
318         help
319           Use dynamic allocation for cpumask_var_t, instead of putting
320           them on the stack.  This is a bit more expensive, but avoids
321           stack overflow.
322
323 config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
324        bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
325        depends on BROKEN
326
327 config CPU_RMAP
328         bool
329         depends on SMP
330
331 config DQL
332         bool
333
334 #
335 # Netlink attribute parsing support is select'ed if needed
336 #
337 config NLATTR
338         bool
339
340 #
341 # Generic 64-bit atomic support is selected if needed
342 #
343 config GENERIC_ATOMIC64
344        bool
345
346 config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
347         def_bool y if GENERIC_ATOMIC64
348
349 config LRU_CACHE
350         tristate
351
352 config AVERAGE
353         bool "Averaging functions"
354         help
355           This option is provided for the case where no in-kernel-tree
356           modules require averaging functions, but a module built outside
357           the kernel tree does. Such modules that use library averaging
358           functions require Y here.
359
360           If unsure, say N.
361
362 config CLZ_TAB
363         bool
364
365 config CORDIC
366         tristate "CORDIC algorithm"
367         help
368           This option provides an implementation of the CORDIC algorithm;
369           calculations are in fixed point. Module will be called cordic.
370
371 config DDR
372         bool "JEDEC DDR data"
373         help
374           Data from JEDEC specs for DDR SDRAM memories,
375           particularly the AC timing parameters and addressing
376           information. This data is useful for drivers handling
377           DDR SDRAM controllers.
378
379 config MPILIB
380         tristate
381         select CLZ_TAB
382         help
383           Multiprecision maths library from GnuPG.
384           It is used to implement RSA digital signature verification,
385           which is used by IMA/EVM digital signature extension.
386
387 config SIGNATURE
388         tristate
389         depends on KEYS && CRYPTO
390         select CRYPTO_SHA1
391         select MPILIB
392         help
393           Digital signature verification. Currently only RSA is supported.
394           Implementation is done using GnuPG MPI library
395
396 #
397 # libfdt files, only selected if needed.
398 #
399 config LIBFDT
400         bool
401
402 config OID_REGISTRY
403         tristate
404         help
405           Enable fast lookup object identifier registry.
406
407 endmenu