lib: add software 842 compression/decompression
[linux-2.6-block.git] / lib / Kconfig
CommitLineData
1da177e4
LT
1#
2# Library configuration
3#
4
4370aa4a
LJ
5config BINARY_PRINTF
6 def_bool n
7
1da177e4
LT
8menu "Library routines"
9
f5e70d0f
DW
10config RAID6_PQ
11 tristate
12
a5cfc1ec
AM
13config BITREVERSE
14 tristate
15
556d2f05 16config HAVE_ARCH_BITREVERSE
841c0090 17 bool
556d2f05
YW
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
8759ef32 25config RATIONAL
6341e62b 26 bool
8759ef32 27
2922585b
DM
28config GENERIC_STRNCPY_FROM_USER
29 bool
30
a08c5356
LT
31config GENERIC_STRNLEN_USER
32 bool
33
4cd5773a
AS
34config GENERIC_NET_UTILS
35 bool
36
19870def 37config GENERIC_FIND_FIRST_BIT
9ba16087 38 bool
19870def 39
b923650b
MT
40config NO_GENERIC_PCI_IOPORT_MAP
41 bool
42
66eab4df
MT
43config GENERIC_PCI_IOMAP
44 bool
45
4673ca8e
MT
46config GENERIC_IOMAP
47 bool
66eab4df 48 select GENERIC_PCI_IOMAP
4673ca8e 49
087fafd1 50config GENERIC_IO
6341e62b 51 bool
087fafd1
RW
52 default n
53
4ccf4bea
WS
54config STMP_DEVICE
55 bool
56
22b361d1 57config PERCPU_RWSEM
6341e62b 58 bool
22b361d1 59
bc08b449
LT
60config ARCH_USE_CMPXCHG_LOCKREF
61 bool
62
72d93104
LT
63config ARCH_HAS_FAST_MULTIPLIER
64 bool
65
1da177e4
LT
66config 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
7657ec1f
EP
74config 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
f11f594e
MP
82config CRC_T10DIF
83 tristate "CRC calculation for the T10 Data Integrity Field"
68411521
HX
84 select CRYPTO
85 select CRYPTO_CRCT10DIF
f11f594e
MP
86 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
3e7cbae7
ID
91config 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
1da177e4 99config CRC32
46c5801e 100 tristate "CRC32/CRC32c functions"
1da177e4 101 default y
906d66df 102 select BITREVERSE
1da177e4
LT
103 help
104 This option is provided for the case where no in-kernel-tree
46c5801e
DW
105 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.
1da177e4 108
3863ef31
BP
109config 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
5cde7656
DW
119choice
120 prompt "CRC32 implementation"
121 depends on CRC32
122 default CRC32_SLICEBY8
82edb4ba
DW
123 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.
5cde7656
DW
127
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
ad241528
JN
166config 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
1da177e4
LT
174config LIBCRC32C
175 tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
93027354 176 select CRYPTO
69c35efc 177 select CRYPTO_CRC32C
1da177e4
LT
178 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
7150962d
AS
185config 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
e65e1fc2
AV
192config AUDIT_GENERIC
193 bool
194 depends on AUDIT && !AUDIT_ARCH
195 default y
196
4b588411
AT
197config 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
a6a9c0f1
DB
206config 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
1da177e4
LT
213#
214# compression support is select'ed if needed
215#
2da572c9
DS
216config 842_COMPRESS
217 tristate
218
219config 842_DECOMPRESS
220 tristate
221
1da177e4
LT
222config ZLIB_INFLATE
223 tristate
224
225config ZLIB_DEFLATE
226 tristate
227
64c70b1c
RP
228config LZO_COMPRESS
229 tristate
230
231config LZO_DECOMPRESS
232 tristate
233
c72ac7a1
CM
234config LZ4_COMPRESS
235 tristate
236
237config LZ4HC_COMPRESS
238 tristate
239
e76e1fdf
KL
240config LZ4_DECOMPRESS
241 tristate
242
24fa0402
LC
243source "lib/xz/Kconfig"
244
c8531ab3
PA
245#
246# These all provide a common interface (hence the apparent duplication with
247# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
248#
249config DECOMPRESS_GZIP
7856a16e 250 select ZLIB_INFLATE
c8531ab3
PA
251 tristate
252
253config DECOMPRESS_BZIP2
254 tristate
255
256config DECOMPRESS_LZMA
257 tristate
258
3ebe1243
LC
259config DECOMPRESS_XZ
260 select XZ_DEC
261 tristate
262
cacb246f
AT
263config DECOMPRESS_LZO
264 select LZO_DECOMPRESS
265 tristate
266
e76e1fdf
KL
267config DECOMPRESS_LZ4
268 select LZ4_DECOMPRESS
269 tristate
270
f14f75b8
JS
271#
272# Generic allocator support is selected if needed
273#
274config GENERIC_ALLOCATOR
6341e62b 275 bool
f14f75b8 276
1da177e4
LT
277#
278# reed solomon support is select'ed if needed
279#
280config REED_SOLOMON
281 tristate
282
283config REED_SOLOMON_ENC8
6341e62b 284 bool
1da177e4
LT
285
286config REED_SOLOMON_DEC8
6341e62b 287 bool
1da177e4
LT
288
289config REED_SOLOMON_ENC16
6341e62b 290 bool
1da177e4
LT
291
292config REED_SOLOMON_DEC16
6341e62b 293 bool
1da177e4 294
437aa565
ID
295#
296# BCH support is selected if needed
297#
298config BCH
299 tristate
300
301config BCH_CONST_PARAMS
6341e62b 302 bool
437aa565
ID
303 help
304 Drivers may select this option to force specific constant
305 values for parameters 'm' (Galois field order) and 't'
306 (error correction capability). Those specific values must
307 be set by declaring default values for symbols BCH_CONST_M
308 and BCH_CONST_T.
309 Doing so will enable extra compiler optimizations,
310 improving encoding and decoding performance up to 2x for
311 usual (m,t) values (typically such that m*t < 200).
312 When this option is selected, the BCH library supports
313 only a single (m,t) configuration. This is mainly useful
314 for NAND flash board drivers requiring known, fixed BCH
315 parameters.
316
317config BCH_CONST_M
318 int
319 range 5 15
320 help
321 Constant value for Galois field order 'm'. If 'k' is the
322 number of data bits to protect, 'm' should be chosen such
323 that (k + m*t) <= 2**m - 1.
324 Drivers should declare a default value for this symbol if
325 they select option BCH_CONST_PARAMS.
326
327config BCH_CONST_T
328 int
329 help
330 Constant value for error correction capability in bits 't'.
331 Drivers should declare a default value for this symbol if
332 they select option BCH_CONST_PARAMS.
333
f7704347
DM
334#
335# Textsearch support is select'ed if needed
336#
2de4ff7b 337config TEXTSEARCH
6341e62b 338 bool
1da177e4 339
df3fb93a 340config TEXTSEARCH_KMP
f7704347 341 tristate
df3fb93a 342
8082e4ed 343config TEXTSEARCH_BM
29cb9f9c 344 tristate
8082e4ed 345
6408f79c 346config TEXTSEARCH_FSM
f7704347 347 tristate
6408f79c 348
5db53f3e 349config BTREE
6341e62b 350 bool
5db53f3e 351
a88cc108 352config INTERVAL_TREE
6341e62b 353 bool
a88cc108
CW
354 help
355 Simple, embeddable, interval-tree. Can find the start of an
356 overlapping range in log(n) time and then iterate over all
357 overlapping nodes. The algorithm is implemented as an
358 augmented rbtree.
359
360 See:
361
362 Documentation/rbtree.txt
363
364 for more information.
365
3cb98950
DH
366config ASSOCIATIVE_ARRAY
367 bool
368 help
369 Generic associative array. Can be searched and iterated over whilst
370 it is being modified. It is also reasonably quick to search and
371 modify. The algorithms are non-recursive, and the trees are highly
372 capacious.
373
374 See:
375
376 Documentation/assoc_array.txt
377
378 for more information.
379
5ea81769 380config HAS_IOMEM
6341e62b 381 bool
5ea81769 382 depends on !NO_IOMEM
087fafd1 383 select GENERIC_IO
5ea81769
AV
384 default y
385
ce816fa8 386config HAS_IOPORT_MAP
6341e62b 387 bool
ce816fa8 388 depends on HAS_IOMEM && !NO_IOPORT_MAP
ee36c2bf
AV
389 default y
390
411f0f3e 391config HAS_DMA
6341e62b 392 bool
411f0f3e
HC
393 depends on !NO_DMA
394 default y
395
928923c7
GU
396config CHECK_SIGNATURE
397 bool
398
aab46da0
RR
399config CPUMASK_OFFSTACK
400 bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
401 help
402 Use dynamic allocation for cpumask_var_t, instead of putting
403 them on the stack. This is a bit more expensive, but avoids
404 stack overflow.
405
8c384cde
RR
406config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
407 bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
525c1f92 408 depends on BROKEN
8c384cde 409
c39649c3
BH
410config CPU_RMAP
411 bool
412 depends on SMP
413
75957ba3
TH
414config DQL
415 bool
416
b0125085
GS
417config GLOB
418 bool
419# This actually supports modular compilation, but the module overhead
420# is ridiculous for the amount of code involved. Until an out-of-tree
421# driver asks for it, we'll just link it directly it into the kernel
422# when required. Since we're ignoring out-of-tree users, there's also
423# no need bother prompting for a manual decision:
424# prompt "glob_match() function"
425 help
426 This option provides a glob_match function for performing
427 simple text pattern matching. It originated in the ATA code
428 to blacklist particular drive models, but other device drivers
429 may need similar functionality.
430
431 All drivers in the Linux kernel tree that require this function
432 should automatically select this option. Say N unless you
433 are compiling an out-of tree driver which tells you that it
434 depends on this.
435
5f9be824
GS
436config GLOB_SELFTEST
437 bool "glob self-test on init"
438 default n
439 depends on GLOB
440 help
441 This option enables a simple self-test of the glob_match
442 function on startup. It is primarily useful for people
443 working on the code to ensure they haven't introduced any
444 regressions.
445
446 It only adds a little bit of code and slows kernel boot (or
447 module load) by a small amount, so you're welcome to play with
448 it, but you probably don't need it.
449
e9cc8bdd
GU
450#
451# Netlink attribute parsing support is select'ed if needed
452#
453config NLATTR
454 bool
455
09d4e0ed
PM
456#
457# Generic 64-bit atomic support is selected if needed
458#
459config GENERIC_ATOMIC64
460 bool
461
7463449b
CM
462config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
463 def_bool y if GENERIC_ATOMIC64
464
b411b363
PR
465config LRU_CACHE
466 tristate
467
c5485a7e 468config AVERAGE
a7a9a24d
MB
469 bool "Averaging functions"
470 help
471 This option is provided for the case where no in-kernel-tree
472 modules require averaging functions, but a module built outside
473 the kernel tree does. Such modules that use library averaging
474 functions require Y here.
475
476 If unsure, say N.
c5485a7e 477
c6df4b17
DM
478config CLZ_TAB
479 bool
480
10f8113e 481config CORDIC
d89ce936 482 tristate "CORDIC algorithm"
10f8113e 483 help
435a95c5
MW
484 This option provides an implementation of the CORDIC algorithm;
485 calculations are in fixed point. Module will be called cordic.
10f8113e 486
9c1c21a0
A
487config DDR
488 bool "JEDEC DDR data"
489 help
490 Data from JEDEC specs for DDR SDRAM memories,
491 particularly the AC timing parameters and addressing
492 information. This data is useful for drivers handling
493 DDR SDRAM controllers.
494
d9c46b18 495config MPILIB
2e5f094b 496 tristate
c6df4b17 497 select CLZ_TAB
d9c46b18
DK
498 help
499 Multiprecision maths library from GnuPG.
500 It is used to implement RSA digital signature verification,
501 which is used by IMA/EVM digital signature extension.
502
5e8898e9 503config SIGNATURE
2e5f094b 504 tristate
0d1f64f6
DK
505 depends on KEYS
506 select CRYPTO
be440ec7 507 select CRYPTO_SHA1
051dbb91
DK
508 select MPILIB
509 help
510 Digital signature verification. Currently only RSA is supported.
511 Implementation is done using GnuPG MPI library
512
ab253839
DD
513#
514# libfdt files, only selected if needed.
515#
516config LIBFDT
517 bool
518
a77ad6ea
DH
519config OID_REGISTRY
520 tristate
521 help
522 Enable fast lookup object identifier registry.
523
0635eb8a
MG
524config UCS2_STRING
525 tristate
526
ee89bd6b
GU
527source "lib/fonts/Kconfig"
528
308c09f1
LA
529#
530# sg chaining option
531#
532
533config ARCH_HAS_SG_CHAIN
534 def_bool n
535
2de4ff7b 536endmenu