diff --git a/lfs3.h b/lfs3.h index 775f2368..38f7e3b6 100644 --- a/lfs3.h +++ b/lfs3.h @@ -153,6 +153,9 @@ enum lfs3_type { #define LFS3_o_UNGRAFT 0x00800000 // File's leaf does not match disk #define LFS3_o_UNFLUSH 0x00400000 // File's cache does not match disk +// an alias for ck work +#define LFS3_O_CK (LFS3_O_CKMETA | LFS3_O_CKDATA) + // File seek flags #define LFS3_SEEK_SET 0 // Seek relative to an absolute position #define LFS3_SEEK_CUR 1 // Seek relative to the current file position @@ -218,6 +221,17 @@ enum lfs3_type { #define LFS3_F_CKDATA 0x00002000 // Check metadata + data checksums #endif +// an alias for ck work +#define LFS3_F_CK (LFS3_F_CKMETA | LFS3_F_CKDATA) + +// an alias for all possible gc work +#define LFS3_F_GC ( \ + LFS3_IFDEF_RDONLY(0, LFS3_F_MKCONSISTENT) \ + | LFS3_IFDEF_RDONLY(0, LFS3_F_LOOKAHEAD) \ + | LFS3_IFDEF_RDONLY(0, LFS3_F_COMPACT) \ + | LFS3_F_CKMETA \ + | LFS3_F_CKDATA) + // Filesystem mount flags #define LFS3_M_MODE 1 // Mount's access mode #ifndef LFS3_RDONLY @@ -261,6 +275,17 @@ enum lfs3_type { #define LFS3_M_CKMETA 0x00001000 // Check metadata checksums #define LFS3_M_CKDATA 0x00002000 // Check metadata + data checksums +// an alias for ck work +#define LFS3_M_CK (LFS3_M_CKMETA | LFS3_M_CKDATA) + +// an alias for all possible gc work +#define LFS3_M_GC ( \ + LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT) \ + | LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD) \ + | LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACT) \ + | LFS3_M_CKMETA \ + | LFS3_M_CKDATA) + // Filesystem info flags #define LFS3_I_RDONLY 0x00000001 // Mounted read only #ifdef LFS3_GBMAP @@ -342,6 +367,17 @@ enum lfs3_btype { #define LFS3_t_DIRTY 0x02000000 // Filesystem ckpointed outside traversal #define LFS3_t_STALE 0x01000000 // Block queue probably out-of-date +// an alias for ck work +#define LFS3_T_CK (LFS3_T_CKMETA | LFS3_T_CKDATA) + +// an alias for all possible gc work +#define LFS3_T_GC ( \ + LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT) \ + | LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD) \ + | LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACT) \ + | LFS3_T_CKMETA \ + | LFS3_T_CKDATA) + // File/filesystem check flags #ifndef LFS3_RDONLY #define LFS3_CK_MKCONSISTENT \ @@ -357,6 +393,17 @@ enum lfs3_btype { #define LFS3_CK_CKMETA 0x00001000 // Check metadata checksums #define LFS3_CK_CKDATA 0x00002000 // Check metadata + data checksums +// an alias for ck work +#define LFS3_CK_CK (LFS3_CK_CKMETA | LFS3_CK_CKDATA) + +// an alias for all possible gc work +#define LFS3_CK_GC ( \ + LFS3_IFDEF_RDONLY(0, LFS3_CK_MKCONSISTENT) \ + | LFS3_IFDEF_RDONLY(0, LFS3_CK_LOOKAHEAD) \ + | LFS3_IFDEF_RDONLY(0, LFS3_CK_COMPACT) \ + | LFS3_CK_CKMETA \ + | LFS3_CK_CKDATA) + // GC flags #ifndef LFS3_RDONLY #define LFS3_GC_MKCONSISTENT \ @@ -372,8 +419,11 @@ enum lfs3_btype { #define LFS3_GC_CKMETA 0x00001000 // Check metadata checksums #define LFS3_GC_CKDATA 0x00002000 // Check metadata + data checksums -// an alias for all possible GC work -#define LFS3_GC_ALL ( \ +// an alias for ck work +#define LFS3_GC_CK (LFS3_GC_CKMETA | LFS3_GC_CKDATA) + +// an alias for all possible gc work +#define LFS3_GC_GC ( \ LFS3_IFDEF_RDONLY(0, LFS3_GC_MKCONSISTENT) \ | LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD) \ | LFS3_IFDEF_RDONLY(0, LFS3_GC_COMPACT) \ diff --git a/runners/bench_runner.h b/runners/bench_runner.h index 52752924..075b6cd6 100644 --- a/runners/bench_runner.h +++ b/runners/bench_runner.h @@ -114,7 +114,7 @@ void bench_permutation(size_t i, uint32_t *buffer, size_t size); BENCH_DEFINE(PCACHE_SIZE, LFS3_MAX(16, PROG_SIZE) ) \ BENCH_DEFINE(FCACHE_SIZE, 16 ) \ BENCH_DEFINE(LOOKAHEAD_SIZE, 16 ) \ - BENCH_DEFINE(GC_FLAGS, LFS3_GC_ALL ) \ + BENCH_DEFINE(GC_FLAGS, LFS3_GC_GC ) \ BENCH_DEFINE(GC_STEPS, 0 ) \ BENCH_DEFINE(GC_LOOKAHEAD_THRESH, -1 ) \ BENCH_DEFINE(GC_LOOKGBMAP_THRESH, -1 ) \ diff --git a/runners/test_runner.h b/runners/test_runner.h index 4af321e6..db48f4ba 100644 --- a/runners/test_runner.h +++ b/runners/test_runner.h @@ -105,7 +105,7 @@ void test_permutation(size_t i, uint32_t *buffer, size_t size); TEST_DEFINE(PCACHE_SIZE, LFS3_MAX(16, PROG_SIZE) ) \ TEST_DEFINE(FCACHE_SIZE, 16 ) \ TEST_DEFINE(LOOKAHEAD_SIZE, 16 ) \ - TEST_DEFINE(GC_FLAGS, LFS3_GC_ALL ) \ + TEST_DEFINE(GC_FLAGS, LFS3_GC_GC ) \ TEST_DEFINE(GC_STEPS, 0 ) \ TEST_DEFINE(GC_LOOKAHEAD_THRESH, -1 ) \ TEST_DEFINE(GC_LOOKGBMAP_THRESH, -1 ) \