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