ref: b151d01ea4b5af5160b9d215387b1b37458a6f53
parent: b251c6d77850d6996f6262c80bb04b05196ac446
author: gkostka <kostka.grzegorz@gmail.com>
date: Tue Oct 28 21:38:12 EDT 2014
Add extra config options
--- a/lwext4/ext4_config.h
+++ b/lwext4/ext4_config.h
@@ -41,21 +41,52 @@
#include <config.h>
#endif
+/*****************************************************************************/
-/**@brief Enable directory indexing feature (EXT3 feature)*/
-#ifndef CONFIG_DIR_INDEX_ENABLE
-#define CONFIG_DIR_INDEX_ENABLE 1
+#define F_SET_EXT2 2
+#define F_SET_EXT3 3
+#define F_SET_EXT4 4
+
+#ifndef CONFIG_EXT_FEATURE_SET_LVL
+#define CONFIG_EXT_FEATURE_SET_LVL F_SET_EXT4
#endif
-/**@brief Enable extents feature (EXT4 feature)*/
-#ifndef CONFIG_EXTENT_ENABLE
-#define CONFIG_EXTENT_ENABLE 1
+/*****************************************************************************/
+
+#if CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT2
+ #define CONFIG_DIR_INDEX_ENABLE 0
+ #define CONFIG_EXTENT_ENABLE 0
+
+ /*Superblock feature flag*/
+ #define CONFIG_FEATURE_COMPAT_SUPP EXT2_FEATURE_COMPAT_SUPP
+ #define CONFIG_FEATURE_INCOMPAT_SUPP EXT2_FEATURE_INCOMPAT_SUPP
+ #define CONFIG_FEATURE_RO_COMPAT_SUPP EXT2_FEATURE_RO_COMPAT_SUPP
+#elif CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT3
+ #define CONFIG_DIR_INDEX_ENABLE 1
+ #define CONFIG_EXTENT_ENABLE 0
+
+ /*Superblock feature flag*/
+ #define CONFIG_FEATURE_COMPAT_SUPP EXT3_FEATURE_COMPAT_SUPP
+ #define CONFIG_FEATURE_INCOMPAT_SUPP EXT3_FEATURE_INCOMPAT_SUPP
+ #define CONFIG_FEATURE_RO_COMPAT_SUPP EXT3_FEATURE_RO_COMPAT_SUPP
+#elif CONFIG_EXT_FEATURE_SET_LVL == F_SET_EXT4
+ #define CONFIG_DIR_INDEX_ENABLE 1
+ #define CONFIG_EXTENT_ENABLE 1
+
+ /*Superblock feature flag*/
+ #define CONFIG_FEATURE_COMPAT_SUPP EXT4_FEATURE_COMPAT_SUPP
+ #define CONFIG_FEATURE_INCOMPAT_SUPP EXT4_FEATURE_INCOMPAT_SUPP
+ #define CONFIG_FEATURE_RO_COMPAT_SUPP EXT4_FEATURE_RO_COMPAT_SUPP
+#else
+#define "Unsupported CONFIG_EXT_FEATURE_SET_LVL"
#endif
+/*****************************************************************************/
+
/**@brief Enable directory indexing comb sort*/
#ifndef CONFIG_DIR_INDEX_COMB_SORT
-#define CONFIG_DIR_INDEX_COMB_SORT 1
+#define CONFIG_DIR_INDEX_COMB_SORT 1
#endif
--- a/lwext4/ext4_fs.c
+++ b/lwext4/ext4_fs.c
@@ -287,7 +287,7 @@
/*Check features_incompatible*/
v = (ext4_get32(&fs->sb, features_incompatible) &
- (~EXT4_FEATURE_INCOMPAT_SUPP));
+ (~CONFIG_FEATURE_INCOMPAT_SUPP));
if (v){
ext4_dprintf(EXT4_DEBUG_FS,
"\nERROR sblock features_incompatible. Unsupported:\n");
@@ -298,7 +298,7 @@
/*Check features_read_only*/
v = (ext4_get32(&fs->sb, features_read_only) &
- (~EXT4_FEATURE_RO_COMPAT_SUPP));
+ (~CONFIG_FEATURE_RO_COMPAT_SUPP));
if (v){
ext4_dprintf(EXT4_DEBUG_FS,
"\nERROR sblock features_read_only . Unsupported:\n");
@@ -859,8 +859,9 @@
ext4_inode_set_indirect_block(inode_ref->inode, 2, 0);
}
-
+#if CONFIG_EXTENT_ENABLE
finish:
+#endif
/* Mark inode dirty for writing to the physical device */
inode_ref->dirty = true;