11da177e4SLinus Torvalds# 21da177e4SLinus Torvalds# Library configuration 31da177e4SLinus Torvalds# 41da177e4SLinus Torvalds 54370aa4aSLai Jiangshanconfig BINARY_PRINTF 64370aa4aSLai Jiangshan def_bool n 74370aa4aSLai Jiangshan 81da177e4SLinus Torvaldsmenu "Library routines" 91da177e4SLinus Torvalds 10f5e70d0fSDavid Woodhouseconfig RAID6_PQ 11f5e70d0fSDavid Woodhouse tristate 12f5e70d0fSDavid Woodhouse 13a5cfc1ecSAkinobu Mitaconfig BITREVERSE 14a5cfc1ecSAkinobu Mita tristate 15a5cfc1ecSAkinobu Mita 168759ef32SOskar Schirmerconfig RATIONAL 178759ef32SOskar Schirmer boolean 188759ef32SOskar Schirmer 1919870defSAlexander van Heukelumconfig GENERIC_FIND_FIRST_BIT 209ba16087SJan Beulich bool 2119870defSAlexander van Heukelum 22b923650bSMichael S. Tsirkinconfig NO_GENERIC_PCI_IOPORT_MAP 23b923650bSMichael S. Tsirkin bool 24b923650bSMichael S. Tsirkin 2566eab4dfSMichael S. Tsirkinconfig GENERIC_PCI_IOMAP 2666eab4dfSMichael S. Tsirkin bool 2766eab4dfSMichael S. Tsirkin 284673ca8eSMichael S. Tsirkinconfig GENERIC_IOMAP 294673ca8eSMichael S. Tsirkin bool 3066eab4dfSMichael S. Tsirkin select GENERIC_PCI_IOMAP 314673ca8eSMichael S. Tsirkin 321da177e4SLinus Torvaldsconfig CRC_CCITT 331da177e4SLinus Torvalds tristate "CRC-CCITT functions" 341da177e4SLinus Torvalds help 351da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 361da177e4SLinus Torvalds modules require CRC-CCITT functions, but a module built outside 371da177e4SLinus Torvalds the kernel tree does. Such modules that use library CRC-CCITT 381da177e4SLinus Torvalds functions require M here. 391da177e4SLinus Torvalds 407657ec1fSEvgeniy Polyakovconfig CRC16 417657ec1fSEvgeniy Polyakov tristate "CRC16 functions" 427657ec1fSEvgeniy Polyakov help 437657ec1fSEvgeniy Polyakov This option is provided for the case where no in-kernel-tree 447657ec1fSEvgeniy Polyakov modules require CRC16 functions, but a module built outside 457657ec1fSEvgeniy Polyakov the kernel tree does. Such modules that use library CRC16 467657ec1fSEvgeniy Polyakov functions require M here. 477657ec1fSEvgeniy Polyakov 48f11f594eSMartin K. Petersenconfig CRC_T10DIF 49f11f594eSMartin K. Petersen tristate "CRC calculation for the T10 Data Integrity Field" 50f11f594eSMartin K. Petersen help 51f11f594eSMartin K. Petersen This option is only needed if a module that's not in the 52f11f594eSMartin K. Petersen kernel tree needs to calculate CRC checks for use with the 53f11f594eSMartin K. Petersen SCSI data integrity subsystem. 54f11f594eSMartin K. Petersen 553e7cbae7SIvo van Doornconfig CRC_ITU_T 563e7cbae7SIvo van Doorn tristate "CRC ITU-T V.41 functions" 573e7cbae7SIvo van Doorn help 583e7cbae7SIvo van Doorn This option is provided for the case where no in-kernel-tree 593e7cbae7SIvo van Doorn modules require CRC ITU-T V.41 functions, but a module built outside 603e7cbae7SIvo van Doorn the kernel tree does. Such modules that use library CRC ITU-T V.41 613e7cbae7SIvo van Doorn functions require M here. 623e7cbae7SIvo van Doorn 631da177e4SLinus Torvaldsconfig CRC32 6446c5801eSDarrick J. Wong tristate "CRC32/CRC32c functions" 651da177e4SLinus Torvalds default y 66906d66dfSAkinobu Mita select BITREVERSE 671da177e4SLinus Torvalds help 681da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 6946c5801eSDarrick J. Wong modules require CRC32/CRC32c functions, but a module built outside 7046c5801eSDarrick J. Wong the kernel tree does. Such modules that use library CRC32/CRC32c 7146c5801eSDarrick J. Wong functions require M here. 721da177e4SLinus Torvalds 733863ef31SBob Pearsonconfig CRC32_SELFTEST 743863ef31SBob Pearson bool "CRC32 perform self test on init" 753863ef31SBob Pearson default n 763863ef31SBob Pearson depends on CRC32 773863ef31SBob Pearson help 783863ef31SBob Pearson This option enables the CRC32 library functions to perform a 793863ef31SBob Pearson self test on initialization. The self test computes crc32_le 803863ef31SBob Pearson and crc32_be over byte strings with random alignment and length 813863ef31SBob Pearson and computes the total elapsed time and number of bytes processed. 823863ef31SBob Pearson 83*5cde7656SDarrick J. Wongchoice 84*5cde7656SDarrick J. Wong prompt "CRC32 implementation" 85*5cde7656SDarrick J. Wong depends on CRC32 86*5cde7656SDarrick J. Wong default CRC32_SLICEBY8 87*5cde7656SDarrick J. Wong 88*5cde7656SDarrick J. Wongconfig CRC32_SLICEBY8 89*5cde7656SDarrick J. Wong bool "Slice by 8 bytes" 90*5cde7656SDarrick J. Wong help 91*5cde7656SDarrick J. Wong Calculate checksum 8 bytes at a time with a clever slicing algorithm. 92*5cde7656SDarrick J. Wong This is the fastest algorithm, but comes with a 8KiB lookup table. 93*5cde7656SDarrick J. Wong Most modern processors have enough cache to hold this table without 94*5cde7656SDarrick J. Wong thrashing the cache. 95*5cde7656SDarrick J. Wong 96*5cde7656SDarrick J. Wong This is the default implementation choice. Choose this one unless 97*5cde7656SDarrick J. Wong you have a good reason not to. 98*5cde7656SDarrick J. Wong 99*5cde7656SDarrick J. Wongconfig CRC32_SLICEBY4 100*5cde7656SDarrick J. Wong bool "Slice by 4 bytes" 101*5cde7656SDarrick J. Wong help 102*5cde7656SDarrick J. Wong Calculate checksum 4 bytes at a time with a clever slicing algorithm. 103*5cde7656SDarrick J. Wong This is a bit slower than slice by 8, but has a smaller 4KiB lookup 104*5cde7656SDarrick J. Wong table. 105*5cde7656SDarrick J. Wong 106*5cde7656SDarrick J. Wong Only choose this option if you know what you are doing. 107*5cde7656SDarrick J. Wong 108*5cde7656SDarrick J. Wongconfig CRC32_SARWATE 109*5cde7656SDarrick J. Wong bool "Sarwate's Algorithm (one byte at a time)" 110*5cde7656SDarrick J. Wong help 111*5cde7656SDarrick J. Wong Calculate checksum a byte at a time using Sarwate's algorithm. This 112*5cde7656SDarrick J. Wong is not particularly fast, but has a small 256 byte lookup table. 113*5cde7656SDarrick J. Wong 114*5cde7656SDarrick J. Wong Only choose this option if you know what you are doing. 115*5cde7656SDarrick J. Wong 116*5cde7656SDarrick J. Wongconfig CRC32_BIT 117*5cde7656SDarrick J. Wong bool "Classic Algorithm (one bit at a time)" 118*5cde7656SDarrick J. Wong help 119*5cde7656SDarrick J. Wong Calculate checksum one bit at a time. This is VERY slow, but has 120*5cde7656SDarrick J. Wong no lookup table. This is provided as a debugging option. 121*5cde7656SDarrick J. Wong 122*5cde7656SDarrick J. Wong Only choose this option if you are debugging crc32. 123*5cde7656SDarrick J. Wong 124*5cde7656SDarrick J. Wongendchoice 125*5cde7656SDarrick J. Wong 126ad241528SJan Nikitenkoconfig CRC7 127ad241528SJan Nikitenko tristate "CRC7 functions" 128ad241528SJan Nikitenko help 129ad241528SJan Nikitenko This option is provided for the case where no in-kernel-tree 130ad241528SJan Nikitenko modules require CRC7 functions, but a module built outside 131ad241528SJan Nikitenko the kernel tree does. Such modules that use library CRC7 132ad241528SJan Nikitenko functions require M here. 133ad241528SJan Nikitenko 1341da177e4SLinus Torvaldsconfig LIBCRC32C 1351da177e4SLinus Torvalds tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" 13693027354SHerbert Xu select CRYPTO 13769c35efcSHerbert Xu select CRYPTO_CRC32C 1381da177e4SLinus Torvalds help 1391da177e4SLinus Torvalds This option is provided for the case where no in-kernel-tree 1401da177e4SLinus Torvalds modules require CRC32c functions, but a module built outside the 1411da177e4SLinus Torvalds kernel tree does. Such modules that use library CRC32c functions 1421da177e4SLinus Torvalds require M here. See Castagnoli93. 1431da177e4SLinus Torvalds Module will be libcrc32c. 1441da177e4SLinus Torvalds 1457150962dSArend van Sprielconfig CRC8 1467150962dSArend van Spriel tristate "CRC8 function" 1477150962dSArend van Spriel help 1487150962dSArend van Spriel This option provides CRC8 function. Drivers may select this 1497150962dSArend van Spriel when they need to do cyclic redundancy check according CRC8 1507150962dSArend van Spriel algorithm. Module will be called crc8. 1517150962dSArend van Spriel 152e65e1fc2SAl Viroconfig AUDIT_GENERIC 153e65e1fc2SAl Viro bool 154e65e1fc2SAl Viro depends on AUDIT && !AUDIT_ARCH 155e65e1fc2SAl Viro default y 156e65e1fc2SAl Viro 1571da177e4SLinus Torvalds# 1581da177e4SLinus Torvalds# compression support is select'ed if needed 1591da177e4SLinus Torvalds# 1601da177e4SLinus Torvaldsconfig ZLIB_INFLATE 1611da177e4SLinus Torvalds tristate 1621da177e4SLinus Torvalds 1631da177e4SLinus Torvaldsconfig ZLIB_DEFLATE 1641da177e4SLinus Torvalds tristate 1651da177e4SLinus Torvalds 16664c70b1cSRichard Purdieconfig LZO_COMPRESS 16764c70b1cSRichard Purdie tristate 16864c70b1cSRichard Purdie 16964c70b1cSRichard Purdieconfig LZO_DECOMPRESS 17064c70b1cSRichard Purdie tristate 17164c70b1cSRichard Purdie 17224fa0402SLasse Collinsource "lib/xz/Kconfig" 17324fa0402SLasse Collin 1741da177e4SLinus Torvalds# 175c8531ab3SH. Peter Anvin# These all provide a common interface (hence the apparent duplication with 176c8531ab3SH. Peter Anvin# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) 177c8531ab3SH. Peter Anvin# 178c8531ab3SH. Peter Anvinconfig DECOMPRESS_GZIP 1797856a16eSH. Peter Anvin select ZLIB_INFLATE 180c8531ab3SH. Peter Anvin tristate 181c8531ab3SH. Peter Anvin 182c8531ab3SH. Peter Anvinconfig DECOMPRESS_BZIP2 183c8531ab3SH. Peter Anvin tristate 184c8531ab3SH. Peter Anvin 185c8531ab3SH. Peter Anvinconfig DECOMPRESS_LZMA 186c8531ab3SH. Peter Anvin tristate 187c8531ab3SH. Peter Anvin 1883ebe1243SLasse Collinconfig DECOMPRESS_XZ 1893ebe1243SLasse Collin select XZ_DEC 1903ebe1243SLasse Collin tristate 1913ebe1243SLasse Collin 192cacb246fSAlbin Tonnerreconfig DECOMPRESS_LZO 193cacb246fSAlbin Tonnerre select LZO_DECOMPRESS 194cacb246fSAlbin Tonnerre tristate 195cacb246fSAlbin Tonnerre 196c8531ab3SH. Peter Anvin# 197f14f75b8SJes Sorensen# Generic allocator support is selected if needed 198f14f75b8SJes Sorensen# 199f14f75b8SJes Sorensenconfig GENERIC_ALLOCATOR 200f14f75b8SJes Sorensen boolean 201f14f75b8SJes Sorensen 202f14f75b8SJes Sorensen# 2031da177e4SLinus Torvalds# reed solomon support is select'ed if needed 2041da177e4SLinus Torvalds# 2051da177e4SLinus Torvaldsconfig REED_SOLOMON 2061da177e4SLinus Torvalds tristate 2071da177e4SLinus Torvalds 2081da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC8 2091da177e4SLinus Torvalds boolean 2101da177e4SLinus Torvalds 2111da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC8 2121da177e4SLinus Torvalds boolean 2131da177e4SLinus Torvalds 2141da177e4SLinus Torvaldsconfig REED_SOLOMON_ENC16 2151da177e4SLinus Torvalds boolean 2161da177e4SLinus Torvalds 2171da177e4SLinus Torvaldsconfig REED_SOLOMON_DEC16 2181da177e4SLinus Torvalds boolean 2191da177e4SLinus Torvalds 220f7704347SDavid S. Miller# 221437aa565SIvan Djelic# BCH support is selected if needed 222437aa565SIvan Djelic# 223437aa565SIvan Djelicconfig BCH 224437aa565SIvan Djelic tristate 225437aa565SIvan Djelic 226437aa565SIvan Djelicconfig BCH_CONST_PARAMS 227437aa565SIvan Djelic boolean 228437aa565SIvan Djelic help 229437aa565SIvan Djelic Drivers may select this option to force specific constant 230437aa565SIvan Djelic values for parameters 'm' (Galois field order) and 't' 231437aa565SIvan Djelic (error correction capability). Those specific values must 232437aa565SIvan Djelic be set by declaring default values for symbols BCH_CONST_M 233437aa565SIvan Djelic and BCH_CONST_T. 234437aa565SIvan Djelic Doing so will enable extra compiler optimizations, 235437aa565SIvan Djelic improving encoding and decoding performance up to 2x for 236437aa565SIvan Djelic usual (m,t) values (typically such that m*t < 200). 237437aa565SIvan Djelic When this option is selected, the BCH library supports 238437aa565SIvan Djelic only a single (m,t) configuration. This is mainly useful 239437aa565SIvan Djelic for NAND flash board drivers requiring known, fixed BCH 240437aa565SIvan Djelic parameters. 241437aa565SIvan Djelic 242437aa565SIvan Djelicconfig BCH_CONST_M 243437aa565SIvan Djelic int 244437aa565SIvan Djelic range 5 15 245437aa565SIvan Djelic help 246437aa565SIvan Djelic Constant value for Galois field order 'm'. If 'k' is the 247437aa565SIvan Djelic number of data bits to protect, 'm' should be chosen such 248437aa565SIvan Djelic that (k + m*t) <= 2**m - 1. 249437aa565SIvan Djelic Drivers should declare a default value for this symbol if 250437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 251437aa565SIvan Djelic 252437aa565SIvan Djelicconfig BCH_CONST_T 253437aa565SIvan Djelic int 254437aa565SIvan Djelic help 255437aa565SIvan Djelic Constant value for error correction capability in bits 't'. 256437aa565SIvan Djelic Drivers should declare a default value for this symbol if 257437aa565SIvan Djelic they select option BCH_CONST_PARAMS. 258437aa565SIvan Djelic 259437aa565SIvan Djelic# 260f7704347SDavid S. Miller# Textsearch support is select'ed if needed 261f7704347SDavid S. Miller# 2622de4ff7bSThomas Grafconfig TEXTSEARCH 263f7704347SDavid S. Miller boolean 2641da177e4SLinus Torvalds 265df3fb93aSThomas Grafconfig TEXTSEARCH_KMP 266f7704347SDavid S. Miller tristate 267df3fb93aSThomas Graf 2688082e4edSPablo Neira Ayusoconfig TEXTSEARCH_BM 26929cb9f9cSDavid S. Miller tristate 2708082e4edSPablo Neira Ayuso 2716408f79cSThomas Grafconfig TEXTSEARCH_FSM 272f7704347SDavid S. Miller tristate 2736408f79cSThomas Graf 2745db53f3eSJoern Engelconfig BTREE 2755db53f3eSJoern Engel boolean 2765db53f3eSJoern Engel 2775ea81769SAl Viroconfig HAS_IOMEM 278ee36c2bfSAl Viro boolean 2795ea81769SAl Viro depends on !NO_IOMEM 2805ea81769SAl Viro default y 2815ea81769SAl Viro 2825ea81769SAl Viroconfig HAS_IOPORT 2835ea81769SAl Viro boolean 2845ea81769SAl Viro depends on HAS_IOMEM && !NO_IOPORT 285ee36c2bfSAl Viro default y 286ee36c2bfSAl Viro 287411f0f3eSHeiko Carstensconfig HAS_DMA 288411f0f3eSHeiko Carstens boolean 289411f0f3eSHeiko Carstens depends on !NO_DMA 290411f0f3eSHeiko Carstens default y 291411f0f3eSHeiko Carstens 292928923c7SGeert Uytterhoevenconfig CHECK_SIGNATURE 293928923c7SGeert Uytterhoeven bool 294928923c7SGeert Uytterhoeven 295aab46da0SRusty Russellconfig CPUMASK_OFFSTACK 296aab46da0SRusty Russell bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS 297aab46da0SRusty Russell help 298aab46da0SRusty Russell Use dynamic allocation for cpumask_var_t, instead of putting 299aab46da0SRusty Russell them on the stack. This is a bit more expensive, but avoids 300aab46da0SRusty Russell stack overflow. 301aab46da0SRusty Russell 3028c384cdeSRusty Russellconfig DISABLE_OBSOLETE_CPUMASK_FUNCTIONS 3038c384cdeSRusty Russell bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS 3048c384cdeSRusty Russell depends on EXPERIMENTAL && BROKEN 3058c384cdeSRusty Russell 306c39649c3SBen Hutchingsconfig CPU_RMAP 307c39649c3SBen Hutchings bool 308c39649c3SBen Hutchings depends on SMP 309c39649c3SBen Hutchings 31075957ba3STom Herbertconfig DQL 31175957ba3STom Herbert bool 31275957ba3STom Herbert 313e9cc8bddSGeert Uytterhoeven# 314e9cc8bddSGeert Uytterhoeven# Netlink attribute parsing support is select'ed if needed 315e9cc8bddSGeert Uytterhoeven# 316e9cc8bddSGeert Uytterhoevenconfig NLATTR 317e9cc8bddSGeert Uytterhoeven bool 318e9cc8bddSGeert Uytterhoeven 31909d4e0edSPaul Mackerras# 32009d4e0edSPaul Mackerras# Generic 64-bit atomic support is selected if needed 32109d4e0edSPaul Mackerras# 32209d4e0edSPaul Mackerrasconfig GENERIC_ATOMIC64 32309d4e0edSPaul Mackerras bool 32409d4e0edSPaul Mackerras 325b411b363SPhilipp Reisnerconfig LRU_CACHE 326b411b363SPhilipp Reisner tristate 327b411b363SPhilipp Reisner 328c5485a7eSBruno Randolfconfig AVERAGE 329a7a9a24dSMichael Buesch bool "Averaging functions" 330a7a9a24dSMichael Buesch help 331a7a9a24dSMichael Buesch This option is provided for the case where no in-kernel-tree 332a7a9a24dSMichael Buesch modules require averaging functions, but a module built outside 333a7a9a24dSMichael Buesch the kernel tree does. Such modules that use library averaging 334a7a9a24dSMichael Buesch functions require Y here. 335a7a9a24dSMichael Buesch 336a7a9a24dSMichael Buesch If unsure, say N. 337c5485a7eSBruno Randolf 338c6df4b17SDavid Millerconfig CLZ_TAB 339c6df4b17SDavid Miller bool 340c6df4b17SDavid Miller 34110f8113eSArend van Sprielconfig CORDIC 342d89ce936SMichael Witten tristate "CORDIC algorithm" 34310f8113eSArend van Spriel help 344435a95c5SMichael Witten This option provides an implementation of the CORDIC algorithm; 345435a95c5SMichael Witten calculations are in fixed point. Module will be called cordic. 34610f8113eSArend van Spriel 347d9c46b18SDmitry Kasatkinconfig MPILIB 3482e5f094bSDmitry Kasatkin tristate 349c6df4b17SDavid Miller select CLZ_TAB 350d9c46b18SDmitry Kasatkin help 351d9c46b18SDmitry Kasatkin Multiprecision maths library from GnuPG. 352d9c46b18SDmitry Kasatkin It is used to implement RSA digital signature verification, 353d9c46b18SDmitry Kasatkin which is used by IMA/EVM digital signature extension. 354d9c46b18SDmitry Kasatkin 3557e8dec91SDmitry Kasatkinconfig MPILIB_EXTRA 3562e5f094bSDmitry Kasatkin bool 3577e8dec91SDmitry Kasatkin depends on MPILIB 3587e8dec91SDmitry Kasatkin help 35968adcad5SDmitry Kasatkin Additional sources of multiprecision maths library from GnuPG. 36068adcad5SDmitry Kasatkin This code is unnecessary for RSA digital signature verification, 36168adcad5SDmitry Kasatkin but can be compiled if needed. 3627e8dec91SDmitry Kasatkin 3635e8898e9SDmitry Kasatkinconfig SIGNATURE 3642e5f094bSDmitry Kasatkin tristate 365be440ec7SDmitry Kasatkin depends on KEYS && CRYPTO 366be440ec7SDmitry Kasatkin select CRYPTO_SHA1 367051dbb91SDmitry Kasatkin select MPILIB 368051dbb91SDmitry Kasatkin help 369051dbb91SDmitry Kasatkin Digital signature verification. Currently only RSA is supported. 370051dbb91SDmitry Kasatkin Implementation is done using GnuPG MPI library 371051dbb91SDmitry Kasatkin 3722de4ff7bSThomas Grafendmenu 373