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