linux/lib/Kconfig
<<
>>
Prefs
   1#
   2# Library configuration
   3#
   4
   5config BINARY_PRINTF
   6        def_bool n
   7
   8menu "Library routines"
   9
  10config RAID6_PQ
  11        tristate
  12
  13config BITREVERSE
  14        tristate
  15
  16config HAVE_ARCH_BITREVERSE
  17        bool
  18        default n
  19        depends on BITREVERSE
  20        help
  21          This option enables the use of hardware bit-reversal instructions on
  22          architectures which support such operations.
  23
  24config RATIONAL
  25        bool
  26
  27config GENERIC_STRNCPY_FROM_USER
  28        bool
  29
  30config GENERIC_STRNLEN_USER
  31        bool
  32
  33config GENERIC_NET_UTILS
  34        bool
  35
  36config GENERIC_FIND_FIRST_BIT
  37        bool
  38
  39config NO_GENERIC_PCI_IOPORT_MAP
  40        bool
  41
  42config GENERIC_PCI_IOMAP
  43        bool
  44
  45config GENERIC_IOMAP
  46        bool
  47        select GENERIC_PCI_IOMAP
  48
  49config STMP_DEVICE
  50        bool
  51
  52config ARCH_USE_CMPXCHG_LOCKREF
  53        bool
  54
  55config ARCH_HAS_FAST_MULTIPLIER
  56        bool
  57
  58config CRC_CCITT
  59        tristate "CRC-CCITT functions"
  60        help
  61          This option is provided for the case where no in-kernel-tree
  62          modules require CRC-CCITT functions, but a module built outside
  63          the kernel tree does. Such modules that use library CRC-CCITT
  64          functions require M here.
  65
  66config CRC16
  67        tristate "CRC16 functions"
  68        help
  69          This option is provided for the case where no in-kernel-tree
  70          modules require CRC16 functions, but a module built outside
  71          the kernel tree does. Such modules that use library CRC16
  72          functions require M here.
  73
  74config CRC_T10DIF
  75        tristate "CRC calculation for the T10 Data Integrity Field"
  76        select CRYPTO
  77        select CRYPTO_CRCT10DIF
  78        help
  79          This option is only needed if a module that's not in the
  80          kernel tree needs to calculate CRC checks for use with the
  81          SCSI data integrity subsystem.
  82
  83config CRC_ITU_T
  84        tristate "CRC ITU-T V.41 functions"
  85        help
  86          This option is provided for the case where no in-kernel-tree
  87          modules require CRC ITU-T V.41 functions, but a module built outside
  88          the kernel tree does. Such modules that use library CRC ITU-T V.41
  89          functions require M here.
  90
  91config CRC32
  92        tristate "CRC32/CRC32c functions"
  93        default y
  94        select BITREVERSE
  95        help
  96          This option is provided for the case where no in-kernel-tree
  97          modules require CRC32/CRC32c functions, but a module built outside
  98          the kernel tree does. Such modules that use library CRC32/CRC32c
  99          functions require M here.
 100
 101config CRC32_SELFTEST
 102        tristate "CRC32 perform self test on init"
 103        depends on CRC32
 104        help
 105          This option enables the CRC32 library functions to perform a
 106          self test on initialization. The self test computes crc32_le
 107          and crc32_be over byte strings with random alignment and length
 108          and computes the total elapsed time and number of bytes processed.
 109
 110choice
 111        prompt "CRC32 implementation"
 112        depends on CRC32
 113        default CRC32_SLICEBY8
 114        help
 115          This option allows a kernel builder to override the default choice
 116          of CRC32 algorithm.  Choose the default ("slice by 8") unless you
 117          know that you need one of the others.
 118
 119config CRC32_SLICEBY8
 120        bool "Slice by 8 bytes"
 121        help
 122          Calculate checksum 8 bytes at a time with a clever slicing algorithm.
 123          This is the fastest algorithm, but comes with a 8KiB lookup table.
 124          Most modern processors have enough cache to hold this table without
 125          thrashing the cache.
 126
 127          This is the default implementation choice.  Choose this one unless
 128          you have a good reason not to.
 129
 130config CRC32_SLICEBY4
 131        bool "Slice by 4 bytes"
 132        help
 133          Calculate checksum 4 bytes at a time with a clever slicing algorithm.
 134          This is a bit slower than slice by 8, but has a smaller 4KiB lookup
 135          table.
 136
 137          Only choose this option if you know what you are doing.
 138
 139config CRC32_SARWATE
 140        bool "Sarwate's Algorithm (one byte at a time)"
 141        help
 142          Calculate checksum a byte at a time using Sarwate's algorithm.  This
 143          is not particularly fast, but has a small 256 byte lookup table.
 144
 145          Only choose this option if you know what you are doing.
 146
 147config CRC32_BIT
 148        bool "Classic Algorithm (one bit at a time)"
 149        help
 150          Calculate checksum one bit at a time.  This is VERY slow, but has
 151          no lookup table.  This is provided as a debugging option.
 152
 153          Only choose this option if you are debugging crc32.
 154
 155endchoice
 156
 157config CRC4
 158        tristate "CRC4 functions"
 159        help
 160          This option is provided for the case where no in-kernel-tree
 161          modules require CRC4 functions, but a module built outside
 162          the kernel tree does. Such modules that use library CRC4
 163          functions require M here.
 164
 165config CRC7
 166        tristate "CRC7 functions"
 167        help
 168          This option is provided for the case where no in-kernel-tree
 169          modules require CRC7 functions, but a module built outside
 170          the kernel tree does. Such modules that use library CRC7
 171          functions require M here.
 172
 173config LIBCRC32C
 174        tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
 175        select CRYPTO
 176        select CRYPTO_CRC32C
 177        help
 178          This option is provided for the case where no in-kernel-tree
 179          modules require CRC32c functions, but a module built outside the
 180          kernel tree does. Such modules that use library CRC32c functions
 181          require M here.  See Castagnoli93.
 182          Module will be libcrc32c.
 183
 184config CRC8
 185        tristate "CRC8 function"
 186        help
 187          This option provides CRC8 function. Drivers may select this
 188          when they need to do cyclic redundancy check according CRC8
 189          algorithm. Module will be called crc8.
 190
 191config XXHASH
 192        tristate
 193
 194config AUDIT_GENERIC
 195        bool
 196        depends on AUDIT && !AUDIT_ARCH
 197        default y
 198
 199config AUDIT_ARCH_COMPAT_GENERIC
 200        bool
 201        default n
 202
 203config AUDIT_COMPAT_GENERIC
 204        bool
 205        depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
 206        default y
 207
 208config RANDOM32_SELFTEST
 209        bool "PRNG perform self test on init"
 210        default n
 211        help
 212          This option enables the 32 bit PRNG library functions to perform a
 213          self test on initialization.
 214
 215#
 216# compression support is select'ed if needed
 217#
 218config 842_COMPRESS
 219        select CRC32
 220        tristate
 221
 222config 842_DECOMPRESS
 223        select CRC32
 224        tristate
 225
 226config ZLIB_INFLATE
 227        tristate
 228
 229config ZLIB_DEFLATE
 230        tristate
 231        select BITREVERSE
 232
 233config LZO_COMPRESS
 234        tristate
 235
 236config LZO_DECOMPRESS
 237        tristate
 238
 239config LZ4_COMPRESS
 240        tristate
 241
 242config LZ4HC_COMPRESS
 243        tristate
 244
 245config LZ4_DECOMPRESS
 246        tristate
 247
 248config ZSTD_COMPRESS
 249        select XXHASH
 250        tristate
 251
 252config ZSTD_DECOMPRESS
 253        select XXHASH
 254        tristate
 255
 256source "lib/xz/Kconfig"
 257
 258#
 259# These all provide a common interface (hence the apparent duplication with
 260# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 261#
 262config DECOMPRESS_GZIP
 263        select ZLIB_INFLATE
 264        tristate
 265
 266config DECOMPRESS_BZIP2
 267        tristate
 268
 269config DECOMPRESS_LZMA
 270        tristate
 271
 272config DECOMPRESS_XZ
 273        select XZ_DEC
 274        tristate
 275
 276config DECOMPRESS_LZO
 277        select LZO_DECOMPRESS
 278        tristate
 279
 280config DECOMPRESS_LZ4
 281        select LZ4_DECOMPRESS
 282        tristate
 283
 284#
 285# Generic allocator support is selected if needed
 286#
 287config GENERIC_ALLOCATOR
 288        bool
 289
 290#
 291# reed solomon support is select'ed if needed
 292#
 293config REED_SOLOMON
 294        tristate
 295        
 296config REED_SOLOMON_ENC8
 297        bool
 298
 299config REED_SOLOMON_DEC8
 300        bool
 301
 302config REED_SOLOMON_ENC16
 303        bool
 304
 305config REED_SOLOMON_DEC16
 306        bool
 307
 308#
 309# BCH support is selected if needed
 310#
 311config BCH
 312        tristate
 313
 314config BCH_CONST_PARAMS
 315        bool
 316        help
 317          Drivers may select this option to force specific constant
 318          values for parameters 'm' (Galois field order) and 't'
 319          (error correction capability). Those specific values must
 320          be set by declaring default values for symbols BCH_CONST_M
 321          and BCH_CONST_T.
 322          Doing so will enable extra compiler optimizations,
 323          improving encoding and decoding performance up to 2x for
 324          usual (m,t) values (typically such that m*t < 200).
 325          When this option is selected, the BCH library supports
 326          only a single (m,t) configuration. This is mainly useful
 327          for NAND flash board drivers requiring known, fixed BCH
 328          parameters.
 329
 330config BCH_CONST_M
 331        int
 332        range 5 15
 333        help
 334          Constant value for Galois field order 'm'. If 'k' is the
 335          number of data bits to protect, 'm' should be chosen such
 336          that (k + m*t) <= 2**m - 1.
 337          Drivers should declare a default value for this symbol if
 338          they select option BCH_CONST_PARAMS.
 339
 340config BCH_CONST_T
 341        int
 342        help
 343          Constant value for error correction capability in bits 't'.
 344          Drivers should declare a default value for this symbol if
 345          they select option BCH_CONST_PARAMS.
 346
 347#
 348# Textsearch support is select'ed if needed
 349#
 350config TEXTSEARCH
 351        bool
 352
 353config TEXTSEARCH_KMP
 354        tristate
 355
 356config TEXTSEARCH_BM
 357        tristate
 358
 359config TEXTSEARCH_FSM
 360        tristate
 361
 362config BTREE
 363        bool
 364
 365config INTERVAL_TREE
 366        bool
 367        help
 368          Simple, embeddable, interval-tree. Can find the start of an
 369          overlapping range in log(n) time and then iterate over all
 370          overlapping nodes. The algorithm is implemented as an
 371          augmented rbtree.
 372
 373          See:
 374
 375                Documentation/rbtree.txt
 376
 377          for more information.
 378
 379config RADIX_TREE_MULTIORDER
 380        bool
 381
 382config ASSOCIATIVE_ARRAY
 383        bool
 384        help
 385          Generic associative array.  Can be searched and iterated over whilst
 386          it is being modified.  It is also reasonably quick to search and
 387          modify.  The algorithms are non-recursive, and the trees are highly
 388          capacious.
 389
 390          See:
 391
 392                Documentation/assoc_array.txt
 393
 394          for more information.
 395
 396config HAS_IOMEM
 397        bool
 398        depends on !NO_IOMEM
 399        select GENERIC_IO
 400        default y
 401
 402config HAS_IOPORT_MAP
 403        bool
 404        depends on HAS_IOMEM && !NO_IOPORT_MAP
 405        default y
 406
 407config HAS_DMA
 408        bool
 409        depends on !NO_DMA
 410        default y
 411
 412config SGL_ALLOC
 413        bool
 414        default n
 415
 416config DMA_DIRECT_OPS
 417        bool
 418        depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
 419        default n
 420
 421config DMA_VIRT_OPS
 422        bool
 423        depends on HAS_DMA && (!64BIT || ARCH_DMA_ADDR_T_64BIT)
 424        default n
 425
 426config CHECK_SIGNATURE
 427        bool
 428
 429config CPUMASK_OFFSTACK
 430        bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
 431        help
 432          Use dynamic allocation for cpumask_var_t, instead of putting
 433          them on the stack.  This is a bit more expensive, but avoids
 434          stack overflow.
 435
 436config CPU_RMAP
 437        bool
 438        depends on SMP
 439
 440config DQL
 441        bool
 442
 443config GLOB
 444        bool
 445#       This actually supports modular compilation, but the module overhead
 446#       is ridiculous for the amount of code involved.  Until an out-of-tree
 447#       driver asks for it, we'll just link it directly it into the kernel
 448#       when required.  Since we're ignoring out-of-tree users, there's also
 449#       no need bother prompting for a manual decision:
 450#       prompt "glob_match() function"
 451        help
 452          This option provides a glob_match function for performing
 453          simple text pattern matching.  It originated in the ATA code
 454          to blacklist particular drive models, but other device drivers
 455          may need similar functionality.
 456
 457          All drivers in the Linux kernel tree that require this function
 458          should automatically select this option.  Say N unless you
 459          are compiling an out-of tree driver which tells you that it
 460          depends on this.
 461
 462config GLOB_SELFTEST
 463        tristate "glob self-test on init"
 464        depends on GLOB
 465        help
 466          This option enables a simple self-test of the glob_match
 467          function on startup.  It is primarily useful for people
 468          working on the code to ensure they haven't introduced any
 469          regressions.
 470
 471          It only adds a little bit of code and slows kernel boot (or
 472          module load) by a small amount, so you're welcome to play with
 473          it, but you probably don't need it.
 474
 475#
 476# Netlink attribute parsing support is select'ed if needed
 477#
 478config NLATTR
 479        bool
 480
 481#
 482# Generic 64-bit atomic support is selected if needed
 483#
 484config GENERIC_ATOMIC64
 485       bool
 486
 487config LRU_CACHE
 488        tristate
 489
 490config CLZ_TAB
 491        bool
 492
 493config CORDIC
 494        tristate "CORDIC algorithm"
 495        help
 496          This option provides an implementation of the CORDIC algorithm;
 497          calculations are in fixed point. Module will be called cordic.
 498
 499config DDR
 500        bool "JEDEC DDR data"
 501        help
 502          Data from JEDEC specs for DDR SDRAM memories,
 503          particularly the AC timing parameters and addressing
 504          information. This data is useful for drivers handling
 505          DDR SDRAM controllers.
 506
 507config IRQ_POLL
 508        bool "IRQ polling library"
 509        help
 510          Helper library to poll interrupt mitigation using polling.
 511
 512config MPILIB
 513        tristate
 514        select CLZ_TAB
 515        help
 516          Multiprecision maths library from GnuPG.
 517          It is used to implement RSA digital signature verification,
 518          which is used by IMA/EVM digital signature extension.
 519
 520config SIGNATURE
 521        tristate
 522        depends on KEYS
 523        select CRYPTO
 524        select CRYPTO_SHA1
 525        select MPILIB
 526        help
 527          Digital signature verification. Currently only RSA is supported.
 528          Implementation is done using GnuPG MPI library
 529
 530#
 531# libfdt files, only selected if needed.
 532#
 533config LIBFDT
 534        bool
 535
 536config OID_REGISTRY
 537        tristate
 538        help
 539          Enable fast lookup object identifier registry.
 540
 541config UCS2_STRING
 542        tristate
 543
 544source "lib/fonts/Kconfig"
 545
 546config SG_SPLIT
 547        def_bool n
 548        help
 549         Provides a helper to split scatterlists into chunks, each chunk being
 550         a scatterlist. This should be selected by a driver or an API which
 551         whishes to split a scatterlist amongst multiple DMA channels.
 552
 553config SG_POOL
 554        def_bool n
 555        help
 556         Provides a helper to allocate chained scatterlists. This should be
 557         selected by a driver or an API which whishes to allocate chained
 558         scatterlist.
 559
 560#
 561# sg chaining option
 562#
 563
 564config ARCH_HAS_SG_CHAIN
 565        def_bool n
 566
 567config ARCH_HAS_PMEM_API
 568        bool
 569
 570config ARCH_HAS_UACCESS_FLUSHCACHE
 571        bool
 572
 573config STACKDEPOT
 574        bool
 575        select STACKTRACE
 576
 577config SBITMAP
 578        bool
 579
 580config PARMAN
 581        tristate "parman" if COMPILE_TEST
 582
 583config PRIME_NUMBERS
 584        tristate
 585
 586config STRING_SELFTEST
 587        tristate "Test string functions"
 588
 589endmenu
 590
 591config GENERIC_ASHLDI3
 592        bool
 593
 594config GENERIC_ASHRDI3
 595        bool
 596
 597config GENERIC_LSHRDI3
 598        bool
 599
 600config GENERIC_MULDI3
 601        bool
 602
 603config GENERIC_CMPDI2
 604        bool
 605
 606config GENERIC_UCMPDI2
 607        bool
 608