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