629 lines
14 KiB
Plaintext
629 lines
14 KiB
Plaintext
|
#
|
||
|
# Library configuration
|
||
|
#
|
||
|
|
||
|
config BINARY_PRINTF
|
||
|
def_bool n
|
||
|
|
||
|
menu "Library routines"
|
||
|
|
||
|
config RAID6_PQ
|
||
|
tristate
|
||
|
|
||
|
config BITREVERSE
|
||
|
tristate
|
||
|
|
||
|
config HAVE_ARCH_BITREVERSE
|
||
|
bool
|
||
|
default n
|
||
|
depends on BITREVERSE
|
||
|
help
|
||
|
This option enables the use of hardware bit-reversal instructions on
|
||
|
architectures which support such operations.
|
||
|
|
||
|
config RATIONAL
|
||
|
bool
|
||
|
|
||
|
config GENERIC_STRNCPY_FROM_USER
|
||
|
bool
|
||
|
|
||
|
config GENERIC_STRNLEN_USER
|
||
|
bool
|
||
|
|
||
|
config GENERIC_NET_UTILS
|
||
|
bool
|
||
|
|
||
|
config GENERIC_FIND_FIRST_BIT
|
||
|
bool
|
||
|
|
||
|
config NO_GENERIC_PCI_IOPORT_MAP
|
||
|
bool
|
||
|
|
||
|
config GENERIC_PCI_IOMAP
|
||
|
bool
|
||
|
|
||
|
config GENERIC_IOMAP
|
||
|
bool
|
||
|
select GENERIC_PCI_IOMAP
|
||
|
|
||
|
config STMP_DEVICE
|
||
|
bool
|
||
|
|
||
|
config ARCH_USE_CMPXCHG_LOCKREF
|
||
|
bool
|
||
|
|
||
|
config ARCH_HAS_FAST_MULTIPLIER
|
||
|
bool
|
||
|
|
||
|
config INDIRECT_PIO
|
||
|
bool "Access I/O in non-MMIO mode"
|
||
|
depends on ARM64
|
||
|
help
|
||
|
On some platforms where no separate I/O space exists, there are I/O
|
||
|
hosts which can not be accessed in MMIO mode. Using the logical PIO
|
||
|
mechanism, the host-local I/O resource can be mapped into system
|
||
|
logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
|
||
|
system can access the I/O devices with the mapped-logic PIO through
|
||
|
I/O accessors.
|
||
|
|
||
|
This way has relatively little I/O performance cost. Please make
|
||
|
sure your devices really need this configure item enabled.
|
||
|
|
||
|
When in doubt, say N.
|
||
|
|
||
|
config CRC_CCITT
|
||
|
tristate "CRC-CCITT functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC-CCITT functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC-CCITT
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC16
|
||
|
tristate "CRC16 functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC16 functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC16
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC_T10DIF
|
||
|
tristate "CRC calculation for the T10 Data Integrity Field"
|
||
|
select CRYPTO
|
||
|
select CRYPTO_CRCT10DIF
|
||
|
help
|
||
|
This option is only needed if a module that's not in the
|
||
|
kernel tree needs to calculate CRC checks for use with the
|
||
|
SCSI data integrity subsystem.
|
||
|
|
||
|
config CRC_ITU_T
|
||
|
tristate "CRC ITU-T V.41 functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC ITU-T V.41 functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC ITU-T V.41
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC32
|
||
|
tristate "CRC32/CRC32c functions"
|
||
|
default y
|
||
|
select BITREVERSE
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC32/CRC32c functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC32/CRC32c
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC32_SELFTEST
|
||
|
tristate "CRC32 perform self test on init"
|
||
|
depends on CRC32
|
||
|
help
|
||
|
This option enables the CRC32 library functions to perform a
|
||
|
self test on initialization. The self test computes crc32_le
|
||
|
and crc32_be over byte strings with random alignment and length
|
||
|
and computes the total elapsed time and number of bytes processed.
|
||
|
|
||
|
choice
|
||
|
prompt "CRC32 implementation"
|
||
|
depends on CRC32
|
||
|
default CRC32_SLICEBY8
|
||
|
help
|
||
|
This option allows a kernel builder to override the default choice
|
||
|
of CRC32 algorithm. Choose the default ("slice by 8") unless you
|
||
|
know that you need one of the others.
|
||
|
|
||
|
config CRC32_SLICEBY8
|
||
|
bool "Slice by 8 bytes"
|
||
|
help
|
||
|
Calculate checksum 8 bytes at a time with a clever slicing algorithm.
|
||
|
This is the fastest algorithm, but comes with a 8KiB lookup table.
|
||
|
Most modern processors have enough cache to hold this table without
|
||
|
thrashing the cache.
|
||
|
|
||
|
This is the default implementation choice. Choose this one unless
|
||
|
you have a good reason not to.
|
||
|
|
||
|
config CRC32_SLICEBY4
|
||
|
bool "Slice by 4 bytes"
|
||
|
help
|
||
|
Calculate checksum 4 bytes at a time with a clever slicing algorithm.
|
||
|
This is a bit slower than slice by 8, but has a smaller 4KiB lookup
|
||
|
table.
|
||
|
|
||
|
Only choose this option if you know what you are doing.
|
||
|
|
||
|
config CRC32_SARWATE
|
||
|
bool "Sarwate's Algorithm (one byte at a time)"
|
||
|
help
|
||
|
Calculate checksum a byte at a time using Sarwate's algorithm. This
|
||
|
is not particularly fast, but has a small 256 byte lookup table.
|
||
|
|
||
|
Only choose this option if you know what you are doing.
|
||
|
|
||
|
config CRC32_BIT
|
||
|
bool "Classic Algorithm (one bit at a time)"
|
||
|
help
|
||
|
Calculate checksum one bit at a time. This is VERY slow, but has
|
||
|
no lookup table. This is provided as a debugging option.
|
||
|
|
||
|
Only choose this option if you are debugging crc32.
|
||
|
|
||
|
endchoice
|
||
|
|
||
|
config CRC64
|
||
|
tristate "CRC64 functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC64 functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC64
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC4
|
||
|
tristate "CRC4 functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC4 functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC4
|
||
|
functions require M here.
|
||
|
|
||
|
config CRC7
|
||
|
tristate "CRC7 functions"
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC7 functions, but a module built outside
|
||
|
the kernel tree does. Such modules that use library CRC7
|
||
|
functions require M here.
|
||
|
|
||
|
config LIBCRC32C
|
||
|
tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
|
||
|
select CRYPTO
|
||
|
select CRYPTO_CRC32C
|
||
|
help
|
||
|
This option is provided for the case where no in-kernel-tree
|
||
|
modules require CRC32c functions, but a module built outside the
|
||
|
kernel tree does. Such modules that use library CRC32c functions
|
||
|
require M here. See Castagnoli93.
|
||
|
Module will be libcrc32c.
|
||
|
|
||
|
config CRC8
|
||
|
tristate "CRC8 function"
|
||
|
help
|
||
|
This option provides CRC8 function. Drivers may select this
|
||
|
when they need to do cyclic redundancy check according CRC8
|
||
|
algorithm. Module will be called crc8.
|
||
|
|
||
|
config XXHASH
|
||
|
tristate
|
||
|
|
||
|
config AUDIT_GENERIC
|
||
|
bool
|
||
|
depends on AUDIT && !AUDIT_ARCH
|
||
|
default y
|
||
|
|
||
|
config AUDIT_ARCH_COMPAT_GENERIC
|
||
|
bool
|
||
|
default n
|
||
|
|
||
|
config AUDIT_COMPAT_GENERIC
|
||
|
bool
|
||
|
depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
|
||
|
default y
|
||
|
|
||
|
config RANDOM32_SELFTEST
|
||
|
bool "PRNG perform self test on init"
|
||
|
help
|
||
|
This option enables the 32 bit PRNG library functions to perform a
|
||
|
self test on initialization.
|
||
|
|
||
|
#
|
||
|
# compression support is select'ed if needed
|
||
|
#
|
||
|
config 842_COMPRESS
|
||
|
select CRC32
|
||
|
tristate
|
||
|
|
||
|
config 842_DECOMPRESS
|
||
|
select CRC32
|
||
|
tristate
|
||
|
|
||
|
config ZLIB_INFLATE
|
||
|
tristate
|
||
|
|
||
|
config ZLIB_DEFLATE
|
||
|
tristate
|
||
|
select BITREVERSE
|
||
|
|
||
|
config LZO_COMPRESS
|
||
|
tristate
|
||
|
|
||
|
config LZO_DECOMPRESS
|
||
|
tristate
|
||
|
|
||
|
config LZ4_COMPRESS
|
||
|
tristate
|
||
|
|
||
|
config LZ4HC_COMPRESS
|
||
|
tristate
|
||
|
|
||
|
config LZ4_DECOMPRESS
|
||
|
tristate
|
||
|
|
||
|
config ZSTD_COMPRESS
|
||
|
select XXHASH
|
||
|
tristate
|
||
|
|
||
|
config ZSTD_DECOMPRESS
|
||
|
select XXHASH
|
||
|
tristate
|
||
|
|
||
|
source "lib/xz/Kconfig"
|
||
|
|
||
|
#
|
||
|
# These all provide a common interface (hence the apparent duplication with
|
||
|
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
|
||
|
#
|
||
|
config DECOMPRESS_GZIP
|
||
|
select ZLIB_INFLATE
|
||
|
tristate
|
||
|
|
||
|
config DECOMPRESS_BZIP2
|
||
|
tristate
|
||
|
|
||
|
config DECOMPRESS_LZMA
|
||
|
tristate
|
||
|
|
||
|
config DECOMPRESS_XZ
|
||
|
select XZ_DEC
|
||
|
tristate
|
||
|
|
||
|
config DECOMPRESS_LZO
|
||
|
select LZO_DECOMPRESS
|
||
|
tristate
|
||
|
|
||
|
config DECOMPRESS_LZ4
|
||
|
select LZ4_DECOMPRESS
|
||
|
tristate
|
||
|
|
||
|
#
|
||
|
# Generic allocator support is selected if needed
|
||
|
#
|
||
|
config GENERIC_ALLOCATOR
|
||
|
bool
|
||
|
|
||
|
#
|
||
|
# reed solomon support is select'ed if needed
|
||
|
#
|
||
|
config REED_SOLOMON
|
||
|
tristate
|
||
|
|
||
|
config REED_SOLOMON_ENC8
|
||
|
bool
|
||
|
|
||
|
config REED_SOLOMON_DEC8
|
||
|
bool
|
||
|
|
||
|
config REED_SOLOMON_ENC16
|
||
|
bool
|
||
|
|
||
|
config REED_SOLOMON_DEC16
|
||
|
bool
|
||
|
|
||
|
#
|
||
|
# BCH support is selected if needed
|
||
|
#
|
||
|
config BCH
|
||
|
tristate
|
||
|
|
||
|
config BCH_CONST_PARAMS
|
||
|
bool
|
||
|
help
|
||
|
Drivers may select this option to force specific constant
|
||
|
values for parameters 'm' (Galois field order) and 't'
|
||
|
(error correction capability). Those specific values must
|
||
|
be set by declaring default values for symbols BCH_CONST_M
|
||
|
and BCH_CONST_T.
|
||
|
Doing so will enable extra compiler optimizations,
|
||
|
improving encoding and decoding performance up to 2x for
|
||
|
usual (m,t) values (typically such that m*t < 200).
|
||
|
When this option is selected, the BCH library supports
|
||
|
only a single (m,t) configuration. This is mainly useful
|
||
|
for NAND flash board drivers requiring known, fixed BCH
|
||
|
parameters.
|
||
|
|
||
|
config BCH_CONST_M
|
||
|
int
|
||
|
range 5 15
|
||
|
help
|
||
|
Constant value for Galois field order 'm'. If 'k' is the
|
||
|
number of data bits to protect, 'm' should be chosen such
|
||
|
that (k + m*t) <= 2**m - 1.
|
||
|
Drivers should declare a default value for this symbol if
|
||
|
they select option BCH_CONST_PARAMS.
|
||
|
|
||
|
config BCH_CONST_T
|
||
|
int
|
||
|
help
|
||
|
Constant value for error correction capability in bits 't'.
|
||
|
Drivers should declare a default value for this symbol if
|
||
|
they select option BCH_CONST_PARAMS.
|
||
|
|
||
|
#
|
||
|
# Textsearch support is select'ed if needed
|
||
|
#
|
||
|
config TEXTSEARCH
|
||
|
bool
|
||
|
|
||
|
config TEXTSEARCH_KMP
|
||
|
tristate
|
||
|
|
||
|
config TEXTSEARCH_BM
|
||
|
tristate
|
||
|
|
||
|
config TEXTSEARCH_FSM
|
||
|
tristate
|
||
|
|
||
|
config BTREE
|
||
|
bool
|
||
|
|
||
|
config INTERVAL_TREE
|
||
|
bool
|
||
|
help
|
||
|
Simple, embeddable, interval-tree. Can find the start of an
|
||
|
overlapping range in log(n) time and then iterate over all
|
||
|
overlapping nodes. The algorithm is implemented as an
|
||
|
augmented rbtree.
|
||
|
|
||
|
See:
|
||
|
|
||
|
Documentation/rbtree.txt
|
||
|
|
||
|
for more information.
|
||
|
|
||
|
config RADIX_TREE_MULTIORDER
|
||
|
bool
|
||
|
|
||
|
config ASSOCIATIVE_ARRAY
|
||
|
bool
|
||
|
help
|
||
|
Generic associative array. Can be searched and iterated over whilst
|
||
|
it is being modified. It is also reasonably quick to search and
|
||
|
modify. The algorithms are non-recursive, and the trees are highly
|
||
|
capacious.
|
||
|
|
||
|
See:
|
||
|
|
||
|
Documentation/core-api/assoc_array.rst
|
||
|
|
||
|
for more information.
|
||
|
|
||
|
config HAS_IOMEM
|
||
|
bool
|
||
|
depends on !NO_IOMEM
|
||
|
select GENERIC_IO
|
||
|
default y
|
||
|
|
||
|
config HAS_IOPORT_MAP
|
||
|
bool
|
||
|
depends on HAS_IOMEM && !NO_IOPORT_MAP
|
||
|
default y
|
||
|
|
||
|
source "kernel/dma/Kconfig"
|
||
|
|
||
|
config SGL_ALLOC
|
||
|
bool
|
||
|
default n
|
||
|
|
||
|
config IOMMU_HELPER
|
||
|
bool
|
||
|
|
||
|
config CHECK_SIGNATURE
|
||
|
bool
|
||
|
|
||
|
config CPUMASK_OFFSTACK
|
||
|
bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
|
||
|
help
|
||
|
Use dynamic allocation for cpumask_var_t, instead of putting
|
||
|
them on the stack. This is a bit more expensive, but avoids
|
||
|
stack overflow.
|
||
|
|
||
|
config CPU_RMAP
|
||
|
bool
|
||
|
depends on SMP
|
||
|
|
||
|
config DQL
|
||
|
bool
|
||
|
|
||
|
config GLOB
|
||
|
bool
|
||
|
# This actually supports modular compilation, but the module overhead
|
||
|
# is ridiculous for the amount of code involved. Until an out-of-tree
|
||
|
# driver asks for it, we'll just link it directly it into the kernel
|
||
|
# when required. Since we're ignoring out-of-tree users, there's also
|
||
|
# no need bother prompting for a manual decision:
|
||
|
# prompt "glob_match() function"
|
||
|
help
|
||
|
This option provides a glob_match function for performing
|
||
|
simple text pattern matching. It originated in the ATA code
|
||
|
to blacklist particular drive models, but other device drivers
|
||
|
may need similar functionality.
|
||
|
|
||
|
All drivers in the Linux kernel tree that require this function
|
||
|
should automatically select this option. Say N unless you
|
||
|
are compiling an out-of tree driver which tells you that it
|
||
|
depends on this.
|
||
|
|
||
|
config GLOB_SELFTEST
|
||
|
tristate "glob self-test on init"
|
||
|
depends on GLOB
|
||
|
help
|
||
|
This option enables a simple self-test of the glob_match
|
||
|
function on startup. It is primarily useful for people
|
||
|
working on the code to ensure they haven't introduced any
|
||
|
regressions.
|
||
|
|
||
|
It only adds a little bit of code and slows kernel boot (or
|
||
|
module load) by a small amount, so you're welcome to play with
|
||
|
it, but you probably don't need it.
|
||
|
|
||
|
#
|
||
|
# Netlink attribute parsing support is select'ed if needed
|
||
|
#
|
||
|
config NLATTR
|
||
|
bool
|
||
|
|
||
|
#
|
||
|
# Generic 64-bit atomic support is selected if needed
|
||
|
#
|
||
|
config GENERIC_ATOMIC64
|
||
|
bool
|
||
|
|
||
|
config LRU_CACHE
|
||
|
tristate
|
||
|
|
||
|
config CLZ_TAB
|
||
|
bool
|
||
|
|
||
|
config CORDIC
|
||
|
tristate "CORDIC algorithm"
|
||
|
help
|
||
|
This option provides an implementation of the CORDIC algorithm;
|
||
|
calculations are in fixed point. Module will be called cordic.
|
||
|
|
||
|
config DDR
|
||
|
bool "JEDEC DDR data"
|
||
|
help
|
||
|
Data from JEDEC specs for DDR SDRAM memories,
|
||
|
particularly the AC timing parameters and addressing
|
||
|
information. This data is useful for drivers handling
|
||
|
DDR SDRAM controllers.
|
||
|
|
||
|
config IRQ_POLL
|
||
|
bool "IRQ polling library"
|
||
|
help
|
||
|
Helper library to poll interrupt mitigation using polling.
|
||
|
|
||
|
config MPILIB
|
||
|
tristate
|
||
|
select CLZ_TAB
|
||
|
help
|
||
|
Multiprecision maths library from GnuPG.
|
||
|
It is used to implement RSA digital signature verification,
|
||
|
which is used by IMA/EVM digital signature extension.
|
||
|
|
||
|
config SIGNATURE
|
||
|
tristate
|
||
|
depends on KEYS
|
||
|
select CRYPTO
|
||
|
select CRYPTO_SHA1
|
||
|
select MPILIB
|
||
|
help
|
||
|
Digital signature verification. Currently only RSA is supported.
|
||
|
Implementation is done using GnuPG MPI library
|
||
|
|
||
|
#
|
||
|
# libfdt files, only selected if needed.
|
||
|
#
|
||
|
config LIBFDT
|
||
|
bool
|
||
|
|
||
|
config OID_REGISTRY
|
||
|
tristate
|
||
|
help
|
||
|
Enable fast lookup object identifier registry.
|
||
|
|
||
|
config UCS2_STRING
|
||
|
tristate
|
||
|
|
||
|
#
|
||
|
# generic vdso
|
||
|
#
|
||
|
source "lib/vdso/Kconfig"
|
||
|
|
||
|
source "lib/fonts/Kconfig"
|
||
|
|
||
|
config SG_SPLIT
|
||
|
def_bool n
|
||
|
help
|
||
|
Provides a helper to split scatterlists into chunks, each chunk being
|
||
|
a scatterlist. This should be selected by a driver or an API which
|
||
|
whishes to split a scatterlist amongst multiple DMA channels.
|
||
|
|
||
|
config SG_POOL
|
||
|
def_bool n
|
||
|
help
|
||
|
Provides a helper to allocate chained scatterlists. This should be
|
||
|
selected by a driver or an API which whishes to allocate chained
|
||
|
scatterlist.
|
||
|
|
||
|
#
|
||
|
# sg chaining option
|
||
|
#
|
||
|
|
||
|
config ARCH_HAS_SG_CHAIN
|
||
|
def_bool n
|
||
|
|
||
|
config ARCH_HAS_PMEM_API
|
||
|
bool
|
||
|
|
||
|
config ARCH_HAS_UACCESS_FLUSHCACHE
|
||
|
bool
|
||
|
|
||
|
config ARCH_HAS_UACCESS_MCSAFE
|
||
|
bool
|
||
|
|
||
|
config STACKDEPOT
|
||
|
bool
|
||
|
select STACKTRACE
|
||
|
|
||
|
config SBITMAP
|
||
|
bool
|
||
|
|
||
|
config PARMAN
|
||
|
tristate "parman" if COMPILE_TEST
|
||
|
|
||
|
config PRIME_NUMBERS
|
||
|
tristate
|
||
|
|
||
|
config STRING_SELFTEST
|
||
|
tristate "Test string functions"
|
||
|
|
||
|
endmenu
|
||
|
|
||
|
config GENERIC_LIB_ASHLDI3
|
||
|
bool
|
||
|
|
||
|
config GENERIC_LIB_ASHRDI3
|
||
|
bool
|
||
|
|
||
|
config GENERIC_LIB_LSHRDI3
|
||
|
bool
|
||
|
|
||
|
config GENERIC_LIB_MULDI3
|
||
|
bool
|
||
|
|
||
|
config GENERIC_LIB_CMPDI2
|
||
|
bool
|
||
|
|
||
|
config GENERIC_LIB_UCMPDI2
|
||
|
bool
|