xref: /OK3568_Linux_fs/kernel/lib/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Library configuration
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunconfig BINARY_PRINTF
7*4882a593Smuzhiyun	def_bool n
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmenu "Library routines"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyunconfig RAID6_PQ
12*4882a593Smuzhiyun	tristate
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunconfig RAID6_PQ_BENCHMARK
15*4882a593Smuzhiyun	bool "Automatically choose fastest RAID6 PQ functions"
16*4882a593Smuzhiyun	depends on RAID6_PQ
17*4882a593Smuzhiyun	default y
18*4882a593Smuzhiyun	help
19*4882a593Smuzhiyun	  Benchmark all available RAID6 PQ functions on init and choose the
20*4882a593Smuzhiyun	  fastest one.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyunconfig LINEAR_RANGES
23*4882a593Smuzhiyun	tristate
24*4882a593Smuzhiyun
25*4882a593Smuzhiyunconfig PACKING
26*4882a593Smuzhiyun	bool "Generic bitfield packing and unpacking"
27*4882a593Smuzhiyun	default n
28*4882a593Smuzhiyun	help
29*4882a593Smuzhiyun	  This option provides the packing() helper function, which permits
30*4882a593Smuzhiyun	  converting bitfields between a CPU-usable representation and a
31*4882a593Smuzhiyun	  memory representation that can have any combination of these quirks:
32*4882a593Smuzhiyun	    - Is little endian (bytes are reversed within a 32-bit group)
33*4882a593Smuzhiyun	    - The least-significant 32-bit word comes first (within a 64-bit
34*4882a593Smuzhiyun	      group)
35*4882a593Smuzhiyun	    - The most significant bit of a byte is at its right (bit 0 of a
36*4882a593Smuzhiyun	      register description is numerically 2^7).
37*4882a593Smuzhiyun	  Drivers may use these helpers to match the bit indices as described
38*4882a593Smuzhiyun	  in the data sheets of the peripherals they are in control of.
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	  When in doubt, say N.
41*4882a593Smuzhiyun
42*4882a593Smuzhiyunconfig BITREVERSE
43*4882a593Smuzhiyun	tristate
44*4882a593Smuzhiyun
45*4882a593Smuzhiyunconfig HAVE_ARCH_BITREVERSE
46*4882a593Smuzhiyun	bool
47*4882a593Smuzhiyun	default n
48*4882a593Smuzhiyun	help
49*4882a593Smuzhiyun	  This option enables the use of hardware bit-reversal instructions on
50*4882a593Smuzhiyun	  architectures which support such operations.
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunconfig GENERIC_STRNCPY_FROM_USER
53*4882a593Smuzhiyun	bool
54*4882a593Smuzhiyun
55*4882a593Smuzhiyunconfig GENERIC_STRNLEN_USER
56*4882a593Smuzhiyun	bool
57*4882a593Smuzhiyun
58*4882a593Smuzhiyunconfig GENERIC_NET_UTILS
59*4882a593Smuzhiyun	bool
60*4882a593Smuzhiyun
61*4882a593Smuzhiyunconfig GENERIC_FIND_FIRST_BIT
62*4882a593Smuzhiyun	bool
63*4882a593Smuzhiyun
64*4882a593Smuzhiyunsource "lib/math/Kconfig"
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunconfig NO_GENERIC_PCI_IOPORT_MAP
67*4882a593Smuzhiyun	bool
68*4882a593Smuzhiyun
69*4882a593Smuzhiyunconfig GENERIC_PCI_IOMAP
70*4882a593Smuzhiyun	bool
71*4882a593Smuzhiyun
72*4882a593Smuzhiyunconfig GENERIC_IOMAP
73*4882a593Smuzhiyun	bool
74*4882a593Smuzhiyun	select GENERIC_PCI_IOMAP
75*4882a593Smuzhiyun
76*4882a593Smuzhiyunconfig STMP_DEVICE
77*4882a593Smuzhiyun	bool
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig ARCH_USE_CMPXCHG_LOCKREF
80*4882a593Smuzhiyun	bool
81*4882a593Smuzhiyun
82*4882a593Smuzhiyunconfig ARCH_HAS_FAST_MULTIPLIER
83*4882a593Smuzhiyun	bool
84*4882a593Smuzhiyun
85*4882a593Smuzhiyunconfig ARCH_USE_SYM_ANNOTATIONS
86*4882a593Smuzhiyun	bool
87*4882a593Smuzhiyun
88*4882a593Smuzhiyunconfig INDIRECT_PIO
89*4882a593Smuzhiyun	bool "Access I/O in non-MMIO mode"
90*4882a593Smuzhiyun	depends on ARM64
91*4882a593Smuzhiyun	help
92*4882a593Smuzhiyun	  On some platforms where no separate I/O space exists, there are I/O
93*4882a593Smuzhiyun	  hosts which can not be accessed in MMIO mode. Using the logical PIO
94*4882a593Smuzhiyun	  mechanism, the host-local I/O resource can be mapped into system
95*4882a593Smuzhiyun	  logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
96*4882a593Smuzhiyun	  system can access the I/O devices with the mapped-logic PIO through
97*4882a593Smuzhiyun	  I/O accessors.
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun	  This way has relatively little I/O performance cost. Please make
100*4882a593Smuzhiyun	  sure your devices really need this configure item enabled.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun	  When in doubt, say N.
103*4882a593Smuzhiyun
104*4882a593Smuzhiyunsource "lib/crypto/Kconfig"
105*4882a593Smuzhiyun
106*4882a593Smuzhiyunconfig LIB_MEMNEQ
107*4882a593Smuzhiyun	bool
108*4882a593Smuzhiyun
109*4882a593Smuzhiyunconfig CRC_CCITT
110*4882a593Smuzhiyun	tristate "CRC-CCITT functions"
111*4882a593Smuzhiyun	help
112*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
113*4882a593Smuzhiyun	  modules require CRC-CCITT functions, but a module built outside
114*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC-CCITT
115*4882a593Smuzhiyun	  functions require M here.
116*4882a593Smuzhiyun
117*4882a593Smuzhiyunconfig CRC16
118*4882a593Smuzhiyun	tristate "CRC16 functions"
119*4882a593Smuzhiyun	help
120*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
121*4882a593Smuzhiyun	  modules require CRC16 functions, but a module built outside
122*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC16
123*4882a593Smuzhiyun	  functions require M here.
124*4882a593Smuzhiyun
125*4882a593Smuzhiyunconfig CRC_T10DIF
126*4882a593Smuzhiyun	tristate "CRC calculation for the T10 Data Integrity Field"
127*4882a593Smuzhiyun	select CRYPTO
128*4882a593Smuzhiyun	select CRYPTO_CRCT10DIF
129*4882a593Smuzhiyun	help
130*4882a593Smuzhiyun	  This option is only needed if a module that's not in the
131*4882a593Smuzhiyun	  kernel tree needs to calculate CRC checks for use with the
132*4882a593Smuzhiyun	  SCSI data integrity subsystem.
133*4882a593Smuzhiyun
134*4882a593Smuzhiyunconfig CRC_ITU_T
135*4882a593Smuzhiyun	tristate "CRC ITU-T V.41 functions"
136*4882a593Smuzhiyun	help
137*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
138*4882a593Smuzhiyun	  modules require CRC ITU-T V.41 functions, but a module built outside
139*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC ITU-T V.41
140*4882a593Smuzhiyun	  functions require M here.
141*4882a593Smuzhiyun
142*4882a593Smuzhiyunconfig CRC32
143*4882a593Smuzhiyun	tristate "CRC32/CRC32c functions"
144*4882a593Smuzhiyun	default y
145*4882a593Smuzhiyun	select BITREVERSE
146*4882a593Smuzhiyun	help
147*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
148*4882a593Smuzhiyun	  modules require CRC32/CRC32c functions, but a module built outside
149*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC32/CRC32c
150*4882a593Smuzhiyun	  functions require M here.
151*4882a593Smuzhiyun
152*4882a593Smuzhiyunconfig CRC32_SELFTEST
153*4882a593Smuzhiyun	tristate "CRC32 perform self test on init"
154*4882a593Smuzhiyun	depends on CRC32
155*4882a593Smuzhiyun	help
156*4882a593Smuzhiyun	  This option enables the CRC32 library functions to perform a
157*4882a593Smuzhiyun	  self test on initialization. The self test computes crc32_le
158*4882a593Smuzhiyun	  and crc32_be over byte strings with random alignment and length
159*4882a593Smuzhiyun	  and computes the total elapsed time and number of bytes processed.
160*4882a593Smuzhiyun
161*4882a593Smuzhiyunchoice
162*4882a593Smuzhiyun	prompt "CRC32 implementation"
163*4882a593Smuzhiyun	depends on CRC32
164*4882a593Smuzhiyun	default CRC32_SLICEBY8
165*4882a593Smuzhiyun	help
166*4882a593Smuzhiyun	  This option allows a kernel builder to override the default choice
167*4882a593Smuzhiyun	  of CRC32 algorithm.  Choose the default ("slice by 8") unless you
168*4882a593Smuzhiyun	  know that you need one of the others.
169*4882a593Smuzhiyun
170*4882a593Smuzhiyunconfig CRC32_SLICEBY8
171*4882a593Smuzhiyun	bool "Slice by 8 bytes"
172*4882a593Smuzhiyun	help
173*4882a593Smuzhiyun	  Calculate checksum 8 bytes at a time with a clever slicing algorithm.
174*4882a593Smuzhiyun	  This is the fastest algorithm, but comes with a 8KiB lookup table.
175*4882a593Smuzhiyun	  Most modern processors have enough cache to hold this table without
176*4882a593Smuzhiyun	  thrashing the cache.
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun	  This is the default implementation choice.  Choose this one unless
179*4882a593Smuzhiyun	  you have a good reason not to.
180*4882a593Smuzhiyun
181*4882a593Smuzhiyunconfig CRC32_SLICEBY4
182*4882a593Smuzhiyun	bool "Slice by 4 bytes"
183*4882a593Smuzhiyun	help
184*4882a593Smuzhiyun	  Calculate checksum 4 bytes at a time with a clever slicing algorithm.
185*4882a593Smuzhiyun	  This is a bit slower than slice by 8, but has a smaller 4KiB lookup
186*4882a593Smuzhiyun	  table.
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun	  Only choose this option if you know what you are doing.
189*4882a593Smuzhiyun
190*4882a593Smuzhiyunconfig CRC32_SARWATE
191*4882a593Smuzhiyun	bool "Sarwate's Algorithm (one byte at a time)"
192*4882a593Smuzhiyun	help
193*4882a593Smuzhiyun	  Calculate checksum a byte at a time using Sarwate's algorithm.  This
194*4882a593Smuzhiyun	  is not particularly fast, but has a small 256 byte lookup table.
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun	  Only choose this option if you know what you are doing.
197*4882a593Smuzhiyun
198*4882a593Smuzhiyunconfig CRC32_BIT
199*4882a593Smuzhiyun	bool "Classic Algorithm (one bit at a time)"
200*4882a593Smuzhiyun	help
201*4882a593Smuzhiyun	  Calculate checksum one bit at a time.  This is VERY slow, but has
202*4882a593Smuzhiyun	  no lookup table.  This is provided as a debugging option.
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun	  Only choose this option if you are debugging crc32.
205*4882a593Smuzhiyun
206*4882a593Smuzhiyunendchoice
207*4882a593Smuzhiyun
208*4882a593Smuzhiyunconfig CRC64
209*4882a593Smuzhiyun	tristate "CRC64 functions"
210*4882a593Smuzhiyun	help
211*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
212*4882a593Smuzhiyun	  modules require CRC64 functions, but a module built outside
213*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC64
214*4882a593Smuzhiyun	  functions require M here.
215*4882a593Smuzhiyun
216*4882a593Smuzhiyunconfig CRC4
217*4882a593Smuzhiyun	tristate "CRC4 functions"
218*4882a593Smuzhiyun	help
219*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
220*4882a593Smuzhiyun	  modules require CRC4 functions, but a module built outside
221*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC4
222*4882a593Smuzhiyun	  functions require M here.
223*4882a593Smuzhiyun
224*4882a593Smuzhiyunconfig CRC7
225*4882a593Smuzhiyun	tristate "CRC7 functions"
226*4882a593Smuzhiyun	help
227*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
228*4882a593Smuzhiyun	  modules require CRC7 functions, but a module built outside
229*4882a593Smuzhiyun	  the kernel tree does. Such modules that use library CRC7
230*4882a593Smuzhiyun	  functions require M here.
231*4882a593Smuzhiyun
232*4882a593Smuzhiyunconfig LIBCRC32C
233*4882a593Smuzhiyun	tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
234*4882a593Smuzhiyun	select CRYPTO
235*4882a593Smuzhiyun	select CRYPTO_CRC32C
236*4882a593Smuzhiyun	help
237*4882a593Smuzhiyun	  This option is provided for the case where no in-kernel-tree
238*4882a593Smuzhiyun	  modules require CRC32c functions, but a module built outside the
239*4882a593Smuzhiyun	  kernel tree does. Such modules that use library CRC32c functions
240*4882a593Smuzhiyun	  require M here.  See Castagnoli93.
241*4882a593Smuzhiyun	  Module will be libcrc32c.
242*4882a593Smuzhiyun
243*4882a593Smuzhiyunconfig CRC8
244*4882a593Smuzhiyun	tristate "CRC8 function"
245*4882a593Smuzhiyun	help
246*4882a593Smuzhiyun	  This option provides CRC8 function. Drivers may select this
247*4882a593Smuzhiyun	  when they need to do cyclic redundancy check according CRC8
248*4882a593Smuzhiyun	  algorithm. Module will be called crc8.
249*4882a593Smuzhiyun
250*4882a593Smuzhiyunconfig XXHASH
251*4882a593Smuzhiyun	tristate
252*4882a593Smuzhiyun
253*4882a593Smuzhiyunconfig AUDIT_GENERIC
254*4882a593Smuzhiyun	bool
255*4882a593Smuzhiyun	depends on AUDIT && !AUDIT_ARCH
256*4882a593Smuzhiyun	default y
257*4882a593Smuzhiyun
258*4882a593Smuzhiyunconfig AUDIT_ARCH_COMPAT_GENERIC
259*4882a593Smuzhiyun	bool
260*4882a593Smuzhiyun	default n
261*4882a593Smuzhiyun
262*4882a593Smuzhiyunconfig AUDIT_COMPAT_GENERIC
263*4882a593Smuzhiyun	bool
264*4882a593Smuzhiyun	depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
265*4882a593Smuzhiyun	default y
266*4882a593Smuzhiyun
267*4882a593Smuzhiyunconfig RANDOM32_SELFTEST
268*4882a593Smuzhiyun	bool "PRNG perform self test on init"
269*4882a593Smuzhiyun	help
270*4882a593Smuzhiyun	  This option enables the 32 bit PRNG library functions to perform a
271*4882a593Smuzhiyun	  self test on initialization.
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun#
274*4882a593Smuzhiyun# compression support is select'ed if needed
275*4882a593Smuzhiyun#
276*4882a593Smuzhiyunconfig 842_COMPRESS
277*4882a593Smuzhiyun	select CRC32
278*4882a593Smuzhiyun	tristate
279*4882a593Smuzhiyun
280*4882a593Smuzhiyunconfig 842_DECOMPRESS
281*4882a593Smuzhiyun	select CRC32
282*4882a593Smuzhiyun	tristate
283*4882a593Smuzhiyun
284*4882a593Smuzhiyunconfig ZLIB_INFLATE
285*4882a593Smuzhiyun	tristate
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunconfig ZLIB_DEFLATE
288*4882a593Smuzhiyun	tristate
289*4882a593Smuzhiyun	select BITREVERSE
290*4882a593Smuzhiyun
291*4882a593Smuzhiyunconfig ZLIB_DFLTCC
292*4882a593Smuzhiyun	def_bool y
293*4882a593Smuzhiyun	depends on S390
294*4882a593Smuzhiyun	prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
295*4882a593Smuzhiyun	help
296*4882a593Smuzhiyun	 Enable s390x hardware support for zlib in the kernel.
297*4882a593Smuzhiyun
298*4882a593Smuzhiyunconfig LZO_COMPRESS
299*4882a593Smuzhiyun	tristate
300*4882a593Smuzhiyun
301*4882a593Smuzhiyunconfig LZO_DECOMPRESS
302*4882a593Smuzhiyun	tristate
303*4882a593Smuzhiyun
304*4882a593Smuzhiyunconfig LZ4_COMPRESS
305*4882a593Smuzhiyun	tristate
306*4882a593Smuzhiyun
307*4882a593Smuzhiyunconfig LZ4HC_COMPRESS
308*4882a593Smuzhiyun	tristate
309*4882a593Smuzhiyun
310*4882a593Smuzhiyunconfig LZ4_DECOMPRESS
311*4882a593Smuzhiyun	tristate
312*4882a593Smuzhiyun
313*4882a593Smuzhiyunconfig ZSTD_COMPRESS
314*4882a593Smuzhiyun	select XXHASH
315*4882a593Smuzhiyun	tristate
316*4882a593Smuzhiyun
317*4882a593Smuzhiyunconfig ZSTD_DECOMPRESS
318*4882a593Smuzhiyun	select XXHASH
319*4882a593Smuzhiyun	tristate
320*4882a593Smuzhiyun
321*4882a593Smuzhiyunsource "lib/xz/Kconfig"
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun#
324*4882a593Smuzhiyun# These all provide a common interface (hence the apparent duplication with
325*4882a593Smuzhiyun# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
326*4882a593Smuzhiyun#
327*4882a593Smuzhiyunconfig DECOMPRESS_GZIP
328*4882a593Smuzhiyun	select ZLIB_INFLATE
329*4882a593Smuzhiyun	tristate
330*4882a593Smuzhiyun
331*4882a593Smuzhiyunconfig DECOMPRESS_BZIP2
332*4882a593Smuzhiyun	tristate
333*4882a593Smuzhiyun
334*4882a593Smuzhiyunconfig DECOMPRESS_LZMA
335*4882a593Smuzhiyun	tristate
336*4882a593Smuzhiyun
337*4882a593Smuzhiyunconfig DECOMPRESS_XZ
338*4882a593Smuzhiyun	select XZ_DEC
339*4882a593Smuzhiyun	tristate
340*4882a593Smuzhiyun
341*4882a593Smuzhiyunconfig DECOMPRESS_LZO
342*4882a593Smuzhiyun	select LZO_DECOMPRESS
343*4882a593Smuzhiyun	tristate
344*4882a593Smuzhiyun
345*4882a593Smuzhiyunconfig DECOMPRESS_LZ4
346*4882a593Smuzhiyun	select LZ4_DECOMPRESS
347*4882a593Smuzhiyun	tristate
348*4882a593Smuzhiyun
349*4882a593Smuzhiyunconfig DECOMPRESS_ZSTD
350*4882a593Smuzhiyun	select ZSTD_DECOMPRESS
351*4882a593Smuzhiyun	tristate
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun#
354*4882a593Smuzhiyun# Generic allocator support is selected if needed
355*4882a593Smuzhiyun#
356*4882a593Smuzhiyunconfig GENERIC_ALLOCATOR
357*4882a593Smuzhiyun	bool
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun#
360*4882a593Smuzhiyun# reed solomon support is select'ed if needed
361*4882a593Smuzhiyun#
362*4882a593Smuzhiyunconfig REED_SOLOMON
363*4882a593Smuzhiyun	tristate
364*4882a593Smuzhiyun
365*4882a593Smuzhiyunconfig REED_SOLOMON_ENC8
366*4882a593Smuzhiyun	bool
367*4882a593Smuzhiyun
368*4882a593Smuzhiyunconfig REED_SOLOMON_DEC8
369*4882a593Smuzhiyun	bool
370*4882a593Smuzhiyun
371*4882a593Smuzhiyunconfig REED_SOLOMON_ENC16
372*4882a593Smuzhiyun	bool
373*4882a593Smuzhiyun
374*4882a593Smuzhiyunconfig REED_SOLOMON_DEC16
375*4882a593Smuzhiyun	bool
376*4882a593Smuzhiyun
377*4882a593Smuzhiyun#
378*4882a593Smuzhiyun# BCH support is selected if needed
379*4882a593Smuzhiyun#
380*4882a593Smuzhiyunconfig BCH
381*4882a593Smuzhiyun	tristate
382*4882a593Smuzhiyun
383*4882a593Smuzhiyunconfig BCH_CONST_PARAMS
384*4882a593Smuzhiyun	bool
385*4882a593Smuzhiyun	help
386*4882a593Smuzhiyun	  Drivers may select this option to force specific constant
387*4882a593Smuzhiyun	  values for parameters 'm' (Galois field order) and 't'
388*4882a593Smuzhiyun	  (error correction capability). Those specific values must
389*4882a593Smuzhiyun	  be set by declaring default values for symbols BCH_CONST_M
390*4882a593Smuzhiyun	  and BCH_CONST_T.
391*4882a593Smuzhiyun	  Doing so will enable extra compiler optimizations,
392*4882a593Smuzhiyun	  improving encoding and decoding performance up to 2x for
393*4882a593Smuzhiyun	  usual (m,t) values (typically such that m*t < 200).
394*4882a593Smuzhiyun	  When this option is selected, the BCH library supports
395*4882a593Smuzhiyun	  only a single (m,t) configuration. This is mainly useful
396*4882a593Smuzhiyun	  for NAND flash board drivers requiring known, fixed BCH
397*4882a593Smuzhiyun	  parameters.
398*4882a593Smuzhiyun
399*4882a593Smuzhiyunconfig BCH_CONST_M
400*4882a593Smuzhiyun	int
401*4882a593Smuzhiyun	range 5 15
402*4882a593Smuzhiyun	help
403*4882a593Smuzhiyun	  Constant value for Galois field order 'm'. If 'k' is the
404*4882a593Smuzhiyun	  number of data bits to protect, 'm' should be chosen such
405*4882a593Smuzhiyun	  that (k + m*t) <= 2**m - 1.
406*4882a593Smuzhiyun	  Drivers should declare a default value for this symbol if
407*4882a593Smuzhiyun	  they select option BCH_CONST_PARAMS.
408*4882a593Smuzhiyun
409*4882a593Smuzhiyunconfig BCH_CONST_T
410*4882a593Smuzhiyun	int
411*4882a593Smuzhiyun	help
412*4882a593Smuzhiyun	  Constant value for error correction capability in bits 't'.
413*4882a593Smuzhiyun	  Drivers should declare a default value for this symbol if
414*4882a593Smuzhiyun	  they select option BCH_CONST_PARAMS.
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun#
417*4882a593Smuzhiyun# Textsearch support is select'ed if needed
418*4882a593Smuzhiyun#
419*4882a593Smuzhiyunconfig TEXTSEARCH
420*4882a593Smuzhiyun	bool
421*4882a593Smuzhiyun
422*4882a593Smuzhiyunconfig TEXTSEARCH_KMP
423*4882a593Smuzhiyun	tristate
424*4882a593Smuzhiyun
425*4882a593Smuzhiyunconfig TEXTSEARCH_BM
426*4882a593Smuzhiyun	tristate
427*4882a593Smuzhiyun
428*4882a593Smuzhiyunconfig TEXTSEARCH_FSM
429*4882a593Smuzhiyun	tristate
430*4882a593Smuzhiyun
431*4882a593Smuzhiyunconfig BTREE
432*4882a593Smuzhiyun	bool
433*4882a593Smuzhiyun
434*4882a593Smuzhiyunconfig INTERVAL_TREE
435*4882a593Smuzhiyun	bool
436*4882a593Smuzhiyun	help
437*4882a593Smuzhiyun	  Simple, embeddable, interval-tree. Can find the start of an
438*4882a593Smuzhiyun	  overlapping range in log(n) time and then iterate over all
439*4882a593Smuzhiyun	  overlapping nodes. The algorithm is implemented as an
440*4882a593Smuzhiyun	  augmented rbtree.
441*4882a593Smuzhiyun
442*4882a593Smuzhiyun	  See:
443*4882a593Smuzhiyun
444*4882a593Smuzhiyun		Documentation/core-api/rbtree.rst
445*4882a593Smuzhiyun
446*4882a593Smuzhiyun	  for more information.
447*4882a593Smuzhiyun
448*4882a593Smuzhiyunconfig XARRAY_MULTI
449*4882a593Smuzhiyun	bool
450*4882a593Smuzhiyun	help
451*4882a593Smuzhiyun	  Support entries which occupy multiple consecutive indices in the
452*4882a593Smuzhiyun	  XArray.
453*4882a593Smuzhiyun
454*4882a593Smuzhiyunconfig ASSOCIATIVE_ARRAY
455*4882a593Smuzhiyun	bool
456*4882a593Smuzhiyun	help
457*4882a593Smuzhiyun	  Generic associative array.  Can be searched and iterated over whilst
458*4882a593Smuzhiyun	  it is being modified.  It is also reasonably quick to search and
459*4882a593Smuzhiyun	  modify.  The algorithms are non-recursive, and the trees are highly
460*4882a593Smuzhiyun	  capacious.
461*4882a593Smuzhiyun
462*4882a593Smuzhiyun	  See:
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun		Documentation/core-api/assoc_array.rst
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun	  for more information.
467*4882a593Smuzhiyun
468*4882a593Smuzhiyunconfig HAS_IOMEM
469*4882a593Smuzhiyun	bool
470*4882a593Smuzhiyun	depends on !NO_IOMEM
471*4882a593Smuzhiyun	default y
472*4882a593Smuzhiyun
473*4882a593Smuzhiyunconfig HAS_IOPORT_MAP
474*4882a593Smuzhiyun	bool
475*4882a593Smuzhiyun	depends on HAS_IOMEM && !NO_IOPORT_MAP
476*4882a593Smuzhiyun	default y
477*4882a593Smuzhiyun
478*4882a593Smuzhiyunsource "kernel/dma/Kconfig"
479*4882a593Smuzhiyun
480*4882a593Smuzhiyunconfig SGL_ALLOC
481*4882a593Smuzhiyun	bool
482*4882a593Smuzhiyun	default n
483*4882a593Smuzhiyun
484*4882a593Smuzhiyunconfig IOMMU_HELPER
485*4882a593Smuzhiyun	bool
486*4882a593Smuzhiyun
487*4882a593Smuzhiyunconfig CHECK_SIGNATURE
488*4882a593Smuzhiyun	bool
489*4882a593Smuzhiyun
490*4882a593Smuzhiyunconfig CPUMASK_OFFSTACK
491*4882a593Smuzhiyun	bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
492*4882a593Smuzhiyun	help
493*4882a593Smuzhiyun	  Use dynamic allocation for cpumask_var_t, instead of putting
494*4882a593Smuzhiyun	  them on the stack.  This is a bit more expensive, but avoids
495*4882a593Smuzhiyun	  stack overflow.
496*4882a593Smuzhiyun
497*4882a593Smuzhiyunconfig CPU_RMAP
498*4882a593Smuzhiyun	bool
499*4882a593Smuzhiyun	depends on SMP
500*4882a593Smuzhiyun
501*4882a593Smuzhiyunconfig DQL
502*4882a593Smuzhiyun	bool
503*4882a593Smuzhiyun
504*4882a593Smuzhiyunconfig GLOB
505*4882a593Smuzhiyun	bool
506*4882a593Smuzhiyun#	This actually supports modular compilation, but the module overhead
507*4882a593Smuzhiyun#	is ridiculous for the amount of code involved.	Until an out-of-tree
508*4882a593Smuzhiyun#	driver asks for it, we'll just link it directly it into the kernel
509*4882a593Smuzhiyun#	when required.  Since we're ignoring out-of-tree users,	there's also
510*4882a593Smuzhiyun#	no need bother prompting for a manual decision:
511*4882a593Smuzhiyun#	prompt "glob_match() function"
512*4882a593Smuzhiyun	help
513*4882a593Smuzhiyun	  This option provides a glob_match function for performing
514*4882a593Smuzhiyun	  simple text pattern matching.  It originated in the ATA code
515*4882a593Smuzhiyun	  to blacklist particular drive models, but other device drivers
516*4882a593Smuzhiyun	  may need similar functionality.
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun	  All drivers in the Linux kernel tree that require this function
519*4882a593Smuzhiyun	  should automatically select this option.  Say N unless you
520*4882a593Smuzhiyun	  are compiling an out-of tree driver which tells you that it
521*4882a593Smuzhiyun	  depends on this.
522*4882a593Smuzhiyun
523*4882a593Smuzhiyunconfig GLOB_SELFTEST
524*4882a593Smuzhiyun	tristate "glob self-test on init"
525*4882a593Smuzhiyun	depends on GLOB
526*4882a593Smuzhiyun	help
527*4882a593Smuzhiyun	  This option enables a simple self-test of the glob_match
528*4882a593Smuzhiyun	  function on startup.	It is primarily useful for people
529*4882a593Smuzhiyun	  working on the code to ensure they haven't introduced any
530*4882a593Smuzhiyun	  regressions.
531*4882a593Smuzhiyun
532*4882a593Smuzhiyun	  It only adds a little bit of code and slows kernel boot (or
533*4882a593Smuzhiyun	  module load) by a small amount, so you're welcome to play with
534*4882a593Smuzhiyun	  it, but you probably don't need it.
535*4882a593Smuzhiyun
536*4882a593Smuzhiyun#
537*4882a593Smuzhiyun# Netlink attribute parsing support is select'ed if needed
538*4882a593Smuzhiyun#
539*4882a593Smuzhiyunconfig NLATTR
540*4882a593Smuzhiyun	bool
541*4882a593Smuzhiyun
542*4882a593Smuzhiyun#
543*4882a593Smuzhiyun# Generic 64-bit atomic support is selected if needed
544*4882a593Smuzhiyun#
545*4882a593Smuzhiyunconfig GENERIC_ATOMIC64
546*4882a593Smuzhiyun       bool
547*4882a593Smuzhiyun
548*4882a593Smuzhiyunconfig LRU_CACHE
549*4882a593Smuzhiyun	tristate
550*4882a593Smuzhiyun
551*4882a593Smuzhiyunconfig CLZ_TAB
552*4882a593Smuzhiyun	bool
553*4882a593Smuzhiyun
554*4882a593Smuzhiyunconfig IRQ_POLL
555*4882a593Smuzhiyun	bool "IRQ polling library"
556*4882a593Smuzhiyun	help
557*4882a593Smuzhiyun	  Helper library to poll interrupt mitigation using polling.
558*4882a593Smuzhiyun
559*4882a593Smuzhiyunconfig MPILIB
560*4882a593Smuzhiyun	tristate
561*4882a593Smuzhiyun	select CLZ_TAB
562*4882a593Smuzhiyun	help
563*4882a593Smuzhiyun	  Multiprecision maths library from GnuPG.
564*4882a593Smuzhiyun	  It is used to implement RSA digital signature verification,
565*4882a593Smuzhiyun	  which is used by IMA/EVM digital signature extension.
566*4882a593Smuzhiyun
567*4882a593Smuzhiyunconfig SIGNATURE
568*4882a593Smuzhiyun	tristate
569*4882a593Smuzhiyun	depends on KEYS
570*4882a593Smuzhiyun	select CRYPTO
571*4882a593Smuzhiyun	select CRYPTO_SHA1
572*4882a593Smuzhiyun	select MPILIB
573*4882a593Smuzhiyun	help
574*4882a593Smuzhiyun	  Digital signature verification. Currently only RSA is supported.
575*4882a593Smuzhiyun	  Implementation is done using GnuPG MPI library
576*4882a593Smuzhiyun
577*4882a593Smuzhiyunconfig DIMLIB
578*4882a593Smuzhiyun	bool
579*4882a593Smuzhiyun	help
580*4882a593Smuzhiyun	  Dynamic Interrupt Moderation library.
581*4882a593Smuzhiyun	  Implements an algorithm for dynamically changing CQ moderation values
582*4882a593Smuzhiyun	  according to run time performance.
583*4882a593Smuzhiyun
584*4882a593Smuzhiyun#
585*4882a593Smuzhiyun# libfdt files, only selected if needed.
586*4882a593Smuzhiyun#
587*4882a593Smuzhiyunconfig LIBFDT
588*4882a593Smuzhiyun	bool
589*4882a593Smuzhiyun
590*4882a593Smuzhiyunconfig OID_REGISTRY
591*4882a593Smuzhiyun	tristate
592*4882a593Smuzhiyun	help
593*4882a593Smuzhiyun	  Enable fast lookup object identifier registry.
594*4882a593Smuzhiyun
595*4882a593Smuzhiyunconfig UCS2_STRING
596*4882a593Smuzhiyun	tristate
597*4882a593Smuzhiyun
598*4882a593Smuzhiyun#
599*4882a593Smuzhiyun# generic vdso
600*4882a593Smuzhiyun#
601*4882a593Smuzhiyunsource "lib/vdso/Kconfig"
602*4882a593Smuzhiyun
603*4882a593Smuzhiyunsource "lib/fonts/Kconfig"
604*4882a593Smuzhiyun
605*4882a593Smuzhiyunconfig SG_SPLIT
606*4882a593Smuzhiyun	def_bool n
607*4882a593Smuzhiyun	help
608*4882a593Smuzhiyun	 Provides a helper to split scatterlists into chunks, each chunk being
609*4882a593Smuzhiyun	 a scatterlist. This should be selected by a driver or an API which
610*4882a593Smuzhiyun	 whishes to split a scatterlist amongst multiple DMA channels.
611*4882a593Smuzhiyun
612*4882a593Smuzhiyunconfig SG_POOL
613*4882a593Smuzhiyun	def_bool n
614*4882a593Smuzhiyun	help
615*4882a593Smuzhiyun	 Provides a helper to allocate chained scatterlists. This should be
616*4882a593Smuzhiyun	 selected by a driver or an API which whishes to allocate chained
617*4882a593Smuzhiyun	 scatterlist.
618*4882a593Smuzhiyun
619*4882a593Smuzhiyun#
620*4882a593Smuzhiyun# sg chaining option
621*4882a593Smuzhiyun#
622*4882a593Smuzhiyun
623*4882a593Smuzhiyunconfig ARCH_NO_SG_CHAIN
624*4882a593Smuzhiyun	def_bool n
625*4882a593Smuzhiyun
626*4882a593Smuzhiyunconfig ARCH_HAS_PMEM_API
627*4882a593Smuzhiyun	bool
628*4882a593Smuzhiyun
629*4882a593Smuzhiyunconfig MEMREGION
630*4882a593Smuzhiyun	bool
631*4882a593Smuzhiyun
632*4882a593Smuzhiyunconfig ARCH_HAS_MEMREMAP_COMPAT_ALIGN
633*4882a593Smuzhiyun	bool
634*4882a593Smuzhiyun
635*4882a593Smuzhiyun# use memcpy to implement user copies for nommu architectures
636*4882a593Smuzhiyunconfig UACCESS_MEMCPY
637*4882a593Smuzhiyun	bool
638*4882a593Smuzhiyun
639*4882a593Smuzhiyunconfig ARCH_HAS_UACCESS_FLUSHCACHE
640*4882a593Smuzhiyun	bool
641*4882a593Smuzhiyun
642*4882a593Smuzhiyun# arch has a concept of a recoverable synchronous exception due to a
643*4882a593Smuzhiyun# memory-read error like x86 machine-check or ARM data-abort, and
644*4882a593Smuzhiyun# implements copy_mc_to_{user,kernel} to abort and report
645*4882a593Smuzhiyun# 'bytes-transferred' if that exception fires when accessing the source
646*4882a593Smuzhiyun# buffer.
647*4882a593Smuzhiyunconfig ARCH_HAS_COPY_MC
648*4882a593Smuzhiyun	bool
649*4882a593Smuzhiyun
650*4882a593Smuzhiyun# Temporary. Goes away when all archs are cleaned up
651*4882a593Smuzhiyunconfig ARCH_STACKWALK
652*4882a593Smuzhiyun       bool
653*4882a593Smuzhiyun
654*4882a593Smuzhiyunconfig STACKDEPOT
655*4882a593Smuzhiyun	bool
656*4882a593Smuzhiyun	select STACKTRACE
657*4882a593Smuzhiyun
658*4882a593Smuzhiyunconfig STACK_HASH_ORDER
659*4882a593Smuzhiyun	int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
660*4882a593Smuzhiyun	range 12 20
661*4882a593Smuzhiyun	default 20
662*4882a593Smuzhiyun	depends on STACKDEPOT
663*4882a593Smuzhiyun	help
664*4882a593Smuzhiyun	 Select the hash size as a power of 2 for the stackdepot hash table.
665*4882a593Smuzhiyun	 Choose a lower value to reduce the memory impact.
666*4882a593Smuzhiyun
667*4882a593Smuzhiyunconfig SBITMAP
668*4882a593Smuzhiyun	bool
669*4882a593Smuzhiyun
670*4882a593Smuzhiyunconfig PARMAN
671*4882a593Smuzhiyun	tristate "parman" if COMPILE_TEST
672*4882a593Smuzhiyun
673*4882a593Smuzhiyunconfig OBJAGG
674*4882a593Smuzhiyun	tristate "objagg" if COMPILE_TEST
675*4882a593Smuzhiyun
676*4882a593Smuzhiyunconfig STRING_SELFTEST
677*4882a593Smuzhiyun	tristate "Test string functions"
678*4882a593Smuzhiyun
679*4882a593Smuzhiyunendmenu
680*4882a593Smuzhiyun
681*4882a593Smuzhiyunconfig GENERIC_IOREMAP
682*4882a593Smuzhiyun	bool
683*4882a593Smuzhiyun
684*4882a593Smuzhiyunconfig GENERIC_LIB_ASHLDI3
685*4882a593Smuzhiyun	bool
686*4882a593Smuzhiyun
687*4882a593Smuzhiyunconfig GENERIC_LIB_ASHRDI3
688*4882a593Smuzhiyun	bool
689*4882a593Smuzhiyun
690*4882a593Smuzhiyunconfig GENERIC_LIB_LSHRDI3
691*4882a593Smuzhiyun	bool
692*4882a593Smuzhiyun
693*4882a593Smuzhiyunconfig GENERIC_LIB_MULDI3
694*4882a593Smuzhiyun	bool
695*4882a593Smuzhiyun
696*4882a593Smuzhiyunconfig GENERIC_LIB_CMPDI2
697*4882a593Smuzhiyun	bool
698*4882a593Smuzhiyun
699*4882a593Smuzhiyunconfig GENERIC_LIB_UCMPDI2
700*4882a593Smuzhiyun	bool
701*4882a593Smuzhiyun
702*4882a593Smuzhiyunconfig PLDMFW
703*4882a593Smuzhiyun	bool
704*4882a593Smuzhiyun	default n
705