Merge tag 'bug-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
[firefly-linux-kernel-4.4.55.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_FIND_FIRST_BIT
20         bool
21
22 config NO_GENERIC_PCI_IOPORT_MAP
23         bool
24
25 config GENERIC_PCI_IOMAP
26         bool
27
28 config GENERIC_IOMAP
29         bool
30         select GENERIC_PCI_IOMAP
31
32 config 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
40 config 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
48 config 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
55 config 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
63 config CRC32
64         tristate "CRC32/CRC32c functions"
65         default y
66         select BITREVERSE
67         help
68           This option is provided for the case where no in-kernel-tree
69           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.
72
73 config 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
83 choice
84         prompt "CRC32 implementation"
85         depends on CRC32
86         default CRC32_SLICEBY8
87
88 config 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
99 config 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
108 config 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
116 config 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
124 endchoice
125
126 config 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
134 config LIBCRC32C
135         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
136         select CRYPTO
137         select CRYPTO_CRC32C
138         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
145 config 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
152 config AUDIT_GENERIC
153         bool
154         depends on AUDIT && !AUDIT_ARCH
155         default y
156
157 #
158 # compression support is select'ed if needed
159 #
160 config ZLIB_INFLATE
161         tristate
162
163 config ZLIB_DEFLATE
164         tristate
165
166 config LZO_COMPRESS
167         tristate
168
169 config LZO_DECOMPRESS
170         tristate
171
172 source "lib/xz/Kconfig"
173
174 #
175 # These all provide a common interface (hence the apparent duplication with
176 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
177 #
178 config DECOMPRESS_GZIP
179         select ZLIB_INFLATE
180         tristate
181
182 config DECOMPRESS_BZIP2
183         tristate
184
185 config DECOMPRESS_LZMA
186         tristate
187
188 config DECOMPRESS_XZ
189         select XZ_DEC
190         tristate
191
192 config DECOMPRESS_LZO
193         select LZO_DECOMPRESS
194         tristate
195
196 #
197 # Generic allocator support is selected if needed
198 #
199 config GENERIC_ALLOCATOR
200         boolean
201
202 #
203 # reed solomon support is select'ed if needed
204 #
205 config REED_SOLOMON
206         tristate
207         
208 config REED_SOLOMON_ENC8
209         boolean
210
211 config REED_SOLOMON_DEC8
212         boolean
213
214 config REED_SOLOMON_ENC16
215         boolean
216
217 config REED_SOLOMON_DEC16
218         boolean
219
220 #
221 # BCH support is selected if needed
222 #
223 config BCH
224         tristate
225
226 config 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
242 config 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
252 config 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 #
260 # Textsearch support is select'ed if needed
261 #
262 config TEXTSEARCH
263         boolean
264
265 config TEXTSEARCH_KMP
266         tristate
267
268 config TEXTSEARCH_BM
269         tristate
270
271 config TEXTSEARCH_FSM
272         tristate
273
274 config BTREE
275         boolean
276
277 config HAS_IOMEM
278         boolean
279         depends on !NO_IOMEM
280         default y
281
282 config HAS_IOPORT
283         boolean
284         depends on HAS_IOMEM && !NO_IOPORT
285         default y
286
287 config HAS_DMA
288         boolean
289         depends on !NO_DMA
290         default y
291
292 config CHECK_SIGNATURE
293         bool
294
295 config 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
302 config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
303        bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
304        depends on EXPERIMENTAL && BROKEN
305
306 config CPU_RMAP
307         bool
308         depends on SMP
309
310 config DQL
311         bool
312
313 #
314 # Netlink attribute parsing support is select'ed if needed
315 #
316 config NLATTR
317         bool
318
319 #
320 # Generic 64-bit atomic support is selected if needed
321 #
322 config GENERIC_ATOMIC64
323        bool
324
325 config LRU_CACHE
326         tristate
327
328 config AVERAGE
329         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.
337
338 config CLZ_TAB
339         bool
340
341 config CORDIC
342         tristate "CORDIC algorithm"
343         help
344           This option provides an implementation of the CORDIC algorithm;
345           calculations are in fixed point. Module will be called cordic.
346
347 config MPILIB
348         tristate
349         select CLZ_TAB
350         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
355 config MPILIB_EXTRA
356         bool
357         depends on MPILIB
358         help
359           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.
362
363 config SIGNATURE
364         tristate
365         depends on KEYS && CRYPTO
366         select CRYPTO_SHA1
367         select MPILIB
368         help
369           Digital signature verification. Currently only RSA is supported.
370           Implementation is done using GnuPG MPI library
371
372 endmenu