lib: add shared BCH ECC library
[linux-2.6.git] / lib / Kconfig
1 #
2 # Library configuration
3 #
4
5 config BINARY_PRINTF
6         def_bool n
7
8 menu "Library routines"
9
10 config RAID6_PQ
11         tristate
12
13 config BITREVERSE
14         tristate
15
16 config RATIONAL
17         boolean
18
19 config GENERIC_FIND_FIRST_BIT
20         bool
21
22 config GENERIC_FIND_NEXT_BIT
23         bool
24
25 config GENERIC_FIND_LAST_BIT
26         bool
27         default y
28
29 config CRC_CCITT
30         tristate "CRC-CCITT functions"
31         help
32           This option is provided for the case where no in-kernel-tree
33           modules require CRC-CCITT functions, but a module built outside
34           the kernel tree does. Such modules that use library CRC-CCITT
35           functions require M here.
36
37 config CRC16
38         tristate "CRC16 functions"
39         help
40           This option is provided for the case where no in-kernel-tree
41           modules require CRC16 functions, but a module built outside
42           the kernel tree does. Such modules that use library CRC16
43           functions require M here.
44
45 config CRC_T10DIF
46         tristate "CRC calculation for the T10 Data Integrity Field"
47         help
48           This option is only needed if a module that's not in the
49           kernel tree needs to calculate CRC checks for use with the
50           SCSI data integrity subsystem.
51
52 config CRC_ITU_T
53         tristate "CRC ITU-T V.41 functions"
54         help
55           This option is provided for the case where no in-kernel-tree
56           modules require CRC ITU-T V.41 functions, but a module built outside
57           the kernel tree does. Such modules that use library CRC ITU-T V.41
58           functions require M here.
59
60 config CRC32
61         tristate "CRC32 functions"
62         default y
63         select BITREVERSE
64         help
65           This option is provided for the case where no in-kernel-tree
66           modules require CRC32 functions, but a module built outside the
67           kernel tree does. Such modules that use library CRC32 functions
68           require M here.
69
70 config CRC7
71         tristate "CRC7 functions"
72         help
73           This option is provided for the case where no in-kernel-tree
74           modules require CRC7 functions, but a module built outside
75           the kernel tree does. Such modules that use library CRC7
76           functions require M here.
77
78 config LIBCRC32C
79         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
80         select CRYPTO
81         select CRYPTO_CRC32C
82         help
83           This option is provided for the case where no in-kernel-tree
84           modules require CRC32c functions, but a module built outside the
85           kernel tree does. Such modules that use library CRC32c functions
86           require M here.  See Castagnoli93.
87           Module will be libcrc32c.
88
89 config AUDIT_GENERIC
90         bool
91         depends on AUDIT && !AUDIT_ARCH
92         default y
93
94 #
95 # compression support is select'ed if needed
96 #
97 config ZLIB_INFLATE
98         tristate
99
100 config ZLIB_DEFLATE
101         tristate
102
103 config LZO_COMPRESS
104         tristate
105
106 config LZO_DECOMPRESS
107         tristate
108
109 source "lib/xz/Kconfig"
110
111 #
112 # These all provide a common interface (hence the apparent duplication with
113 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
114 #
115 config DECOMPRESS_GZIP
116         select ZLIB_INFLATE
117         tristate
118
119 config DECOMPRESS_BZIP2
120         tristate
121
122 config DECOMPRESS_LZMA
123         tristate
124
125 config DECOMPRESS_XZ
126         select XZ_DEC
127         tristate
128
129 config DECOMPRESS_LZO
130         select LZO_DECOMPRESS
131         tristate
132
133 #
134 # Generic allocator support is selected if needed
135 #
136 config GENERIC_ALLOCATOR
137         boolean
138
139 #
140 # reed solomon support is select'ed if needed
141 #
142 config REED_SOLOMON
143         tristate
144         
145 config REED_SOLOMON_ENC8
146         boolean
147
148 config REED_SOLOMON_DEC8
149         boolean
150
151 config REED_SOLOMON_ENC16
152         boolean
153
154 config REED_SOLOMON_DEC16
155         boolean
156
157 #
158 # BCH support is selected if needed
159 #
160 config BCH
161         tristate
162
163 config BCH_CONST_PARAMS
164         boolean
165         help
166           Drivers may select this option to force specific constant
167           values for parameters 'm' (Galois field order) and 't'
168           (error correction capability). Those specific values must
169           be set by declaring default values for symbols BCH_CONST_M
170           and BCH_CONST_T.
171           Doing so will enable extra compiler optimizations,
172           improving encoding and decoding performance up to 2x for
173           usual (m,t) values (typically such that m*t < 200).
174           When this option is selected, the BCH library supports
175           only a single (m,t) configuration. This is mainly useful
176           for NAND flash board drivers requiring known, fixed BCH
177           parameters.
178
179 config BCH_CONST_M
180         int
181         range 5 15
182         help
183           Constant value for Galois field order 'm'. If 'k' is the
184           number of data bits to protect, 'm' should be chosen such
185           that (k + m*t) <= 2**m - 1.
186           Drivers should declare a default value for this symbol if
187           they select option BCH_CONST_PARAMS.
188
189 config BCH_CONST_T
190         int
191         help
192           Constant value for error correction capability in bits 't'.
193           Drivers should declare a default value for this symbol if
194           they select option BCH_CONST_PARAMS.
195
196 #
197 # Textsearch support is select'ed if needed
198 #
199 config TEXTSEARCH
200         boolean
201
202 config TEXTSEARCH_KMP
203         tristate
204
205 config TEXTSEARCH_BM
206         tristate
207
208 config TEXTSEARCH_FSM
209         tristate
210
211 config BTREE
212         boolean
213
214 config HAS_IOMEM
215         boolean
216         depends on !NO_IOMEM
217         default y
218
219 config HAS_IOPORT
220         boolean
221         depends on HAS_IOMEM && !NO_IOPORT
222         default y
223
224 config HAS_DMA
225         boolean
226         depends on !NO_DMA
227         default y
228
229 config CHECK_SIGNATURE
230         bool
231
232 config CPUMASK_OFFSTACK
233         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
234         help
235           Use dynamic allocation for cpumask_var_t, instead of putting
236           them on the stack.  This is a bit more expensive, but avoids
237           stack overflow.
238
239 config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS
240        bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS
241        depends on EXPERIMENTAL && BROKEN
242
243 #
244 # Netlink attribute parsing support is select'ed if needed
245 #
246 config NLATTR
247         bool
248
249 #
250 # Generic 64-bit atomic support is selected if needed
251 #
252 config GENERIC_ATOMIC64
253        bool
254
255 config LRU_CACHE
256         tristate
257
258 config AVERAGE
259         bool
260
261 endmenu