1 | /* |
2 | * Copyright (c) 2013 Grzegorz Kostka (kostka.grzegorz@gmail.com) |
3 | * All rights reserved. |
4 | * |
5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions |
7 | * are met: |
8 | * |
9 | * - Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. |
11 | * - Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. |
14 | * - The name of the author may not be used to endorse or promote products |
15 | * derived from this software without specific prior written permission. |
16 | * |
17 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
18 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
19 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
20 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
21 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
22 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
23 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
28 | |
29 | /** @addtogroup lwext4 |
30 | * @{ |
31 | */ |
32 | /** |
33 | * @file ext4_config.h |
34 | * @brief Configuration file. |
35 | */ |
36 | |
37 | #ifndef EXT4_CONFIG_H_ |
38 | #define EXT4_CONFIG_H_ |
39 | |
40 | #ifdef __cplusplus |
41 | extern "C" { |
42 | #endif |
43 | |
44 | #if !CONFIG_USE_DEFAULT_CFG |
45 | #include "generated/ext4_config.h" |
46 | #endif |
47 | |
48 | /*****************************************************************************/ |
49 | |
50 | #define F_SET_EXT2 2 |
51 | #define F_SET_EXT3 3 |
52 | #define F_SET_EXT4 4 |
53 | |
54 | #ifndef CONFIG_EXT_FEATURE_SET_LVL |
55 | #define CONFIG_EXT_FEATURE_SET_LVL F_SET_EXT4 |
56 | #endif |
57 | |
58 | /*****************************************************************************/ |
59 | |
60 | #if CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT2 |
61 | /*Superblock features flag EXT2*/ |
62 | #define CONFIG_SUPPORTED_FCOM EXT2_SUPPORTED_FCOM |
63 | #define CONFIG_SUPPORTED_FINCOM (EXT2_SUPPORTED_FINCOM | EXT_FINCOM_IGNORED) |
64 | #define CONFIG_SUPPORTED_FRO_COM EXT2_SUPPORTED_FRO_COM |
65 | |
66 | #elif CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT3 |
67 | /*Superblock features flag EXT3*/ |
68 | #define CONFIG_SUPPORTED_FCOM EXT3_SUPPORTED_FCOM |
69 | #define CONFIG_SUPPORTED_FINCOM (EXT3_SUPPORTED_FINCOM | EXT_FINCOM_IGNORED) |
70 | #define CONFIG_SUPPORTED_FRO_COM EXT3_SUPPORTED_FRO_COM |
71 | #elif CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT4 |
72 | /*Superblock features flag EXT4*/ |
73 | #define CONFIG_SUPPORTED_FCOM EXT4_SUPPORTED_FCOM |
74 | #define CONFIG_SUPPORTED_FINCOM (EXT4_SUPPORTED_FINCOM | EXT_FINCOM_IGNORED) |
75 | #define CONFIG_SUPPORTED_FRO_COM EXT4_SUPPORTED_FRO_COM |
76 | #else |
77 | #define "Unsupported CONFIG_EXT_FEATURE_SET_LVL" |
78 | #endif |
79 | |
80 | #define CONFIG_DIR_INDEX_ENABLE (CONFIG_SUPPORTED_FCOM & EXT4_FCOM_DIR_INDEX) |
81 | #define CONFIG_EXTENT_ENABLE (CONFIG_SUPPORTED_FINCOM & EXT4_FINCOM_EXTENTS) |
82 | #define CONFIG_META_CSUM_ENABLE (CONFIG_SUPPORTED_FRO_COM & EXT4_FRO_COM_METADATA_CSUM) |
83 | |
84 | /*****************************************************************************/ |
85 | |
86 | /**@brief Enable/disable journaling*/ |
87 | #ifndef CONFIG_JOURNALING_ENABLE |
88 | #define CONFIG_JOURNALING_ENABLE 1 |
89 | #endif |
90 | |
91 | /**@brief Enable/disable xattr*/ |
92 | #ifndef CONFIG_XATTR_ENABLE |
93 | #define CONFIG_XATTR_ENABLE 1 |
94 | #endif |
95 | |
96 | /**@brief Enable/disable extents*/ |
97 | #ifndef CONFIG_EXTENTS_ENABLE |
98 | #define CONFIG_EXTENTS_ENABLE 1 |
99 | #endif |
100 | |
101 | /**@brief Include error codes from ext4_errno or standard library.*/ |
102 | #ifndef CONFIG_HAVE_OWN_ERRNO |
103 | #define CONFIG_HAVE_OWN_ERRNO 0 |
104 | #endif |
105 | |
106 | /**@brief Debug printf enable (stdout)*/ |
107 | #ifndef CONFIG_DEBUG_PRINTF |
108 | #define CONFIG_DEBUG_PRINTF 1 |
109 | #endif |
110 | |
111 | /**@brief Assert printf enable (stdout)*/ |
112 | #ifndef CONFIG_DEBUG_ASSERT |
113 | #define CONFIG_DEBUG_ASSERT 1 |
114 | #endif |
115 | |
116 | /**@brief Include assert codes from ext4_debug or standard library.*/ |
117 | #ifndef CONFIG_HAVE_OWN_ASSERT |
118 | #define CONFIG_HAVE_OWN_ASSERT 1 |
119 | #endif |
120 | |
121 | /**@brief Statistics of block device*/ |
122 | #ifndef CONFIG_BLOCK_DEV_ENABLE_STATS |
123 | #define CONFIG_BLOCK_DEV_ENABLE_STATS 1 |
124 | #endif |
125 | |
126 | /**@brief Cache size of block device.*/ |
127 | #ifndef CONFIG_BLOCK_DEV_CACHE_SIZE |
128 | #define CONFIG_BLOCK_DEV_CACHE_SIZE 8 |
129 | #endif |
130 | |
131 | |
132 | /**@brief Maximum block device name*/ |
133 | #ifndef CONFIG_EXT4_MAX_BLOCKDEV_NAME |
134 | #define CONFIG_EXT4_MAX_BLOCKDEV_NAME 32 |
135 | #endif |
136 | |
137 | |
138 | /**@brief Maximum block device count*/ |
139 | #ifndef CONFIG_EXT4_BLOCKDEVS_COUNT |
140 | #define CONFIG_EXT4_BLOCKDEVS_COUNT 2 |
141 | #endif |
142 | |
143 | /**@brief Maximum mountpoint name*/ |
144 | #ifndef CONFIG_EXT4_MAX_MP_NAME |
145 | #define CONFIG_EXT4_MAX_MP_NAME 32 |
146 | #endif |
147 | |
148 | /**@brief Maximum mountpoint count*/ |
149 | #ifndef CONFIG_EXT4_MOUNTPOINTS_COUNT |
150 | #define CONFIG_EXT4_MOUNTPOINTS_COUNT 2 |
151 | #endif |
152 | |
153 | /**@brief Include open flags from ext4_errno or standard library.*/ |
154 | #ifndef CONFIG_HAVE_OWN_OFLAGS |
155 | #define CONFIG_HAVE_OWN_OFLAGS 1 |
156 | #endif |
157 | |
158 | /**@brief Maximum single truncate size. Transactions must be limited to reduce |
159 | * number of allocetions for single transaction*/ |
160 | #ifndef CONFIG_MAX_TRUNCATE_SIZE |
161 | #define CONFIG_MAX_TRUNCATE_SIZE (16ul * 1024ul * 1024ul) |
162 | #endif |
163 | |
164 | |
165 | /**@brief Unaligned access switch on/off*/ |
166 | #ifndef CONFIG_UNALIGNED_ACCESS |
167 | #define CONFIG_UNALIGNED_ACCESS 0 |
168 | #endif |
169 | |
170 | /**@brief Switches use of malloc/free functions family |
171 | * from standard library to user provided*/ |
172 | #ifndef CONFIG_USE_USER_MALLOC |
173 | #define CONFIG_USE_USER_MALLOC 0 |
174 | #endif |
175 | |
176 | #ifdef __cplusplus |
177 | } |
178 | #endif |
179 | |
180 | #endif /* EXT4_CONFIG_H_ */ |
181 | |
182 | /** |
183 | * @} |
184 | */ |
185 | |