forked from Imagelibrary/littlefs
Added LFS_T_RDONLY, LFS_T_RDWR, etc
These mimic the relevant LFS_O_* flags, and allow users to assert
whether or not a traversal will mutate the filesystem:
LFS_T_MODE 0x00000001 The traversal's access mode
LFS_T_RDWR 0x00000000 Open traversal as read and write
LFS_T_RDONLY 0x00000001 Open traversal as read only
In theory, these could also change internal allocations, but littlefs
doesn't really work that way.
Note we _don't_ add related LFS_GC_RDONLY, LFS_GC_RDWR, etc flags. These
are sort of implied by the relevant LFS_M_* flags.
Adds a bit more code, probably because of the slightly more complicated
internal constants for the internal traversals. But I think the
self-documentingness is worth it:
code stack ctx
before: 37200 2288 636
after: 37220 (+0.1%) 2288 (+0.0%) 636 (+0.0%)
This commit is contained in:
37
lfs.c
37
lfs.c
@@ -7052,6 +7052,10 @@ static inline bool lfsr_a_islazy(uint32_t flags) {
|
||||
}
|
||||
|
||||
// traversal flags
|
||||
static inline bool lfsr_t_isrdonly(uint32_t flags) {
|
||||
return flags & LFS_T_RDONLY;
|
||||
}
|
||||
|
||||
static inline bool lfsr_t_ismtreeonly(uint32_t flags) {
|
||||
return flags & LFS_T_MTREEONLY;
|
||||
}
|
||||
@@ -10259,7 +10263,7 @@ static lfs_sblock_t lfs_alloc(lfs_t *lfs, bool erase) {
|
||||
// in-use in the next lookahead window
|
||||
//
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t, LFS_T_LOOKAHEAD);
|
||||
lfsr_traversal_init(&t, LFS_T_RDONLY | LFS_T_LOOKAHEAD);
|
||||
while (true) {
|
||||
lfsr_tag_t tag;
|
||||
lfsr_bptr_t bptr;
|
||||
@@ -13753,7 +13757,8 @@ int lfsr_file_ckmeta(lfs_t *lfs, lfsr_file_t *file) {
|
||||
// can't read from writeonly files
|
||||
LFS_ASSERT(!lfsr_o_iswronly(file->b.o.flags));
|
||||
|
||||
return lfsr_file_ck(lfs, file, LFS_T_CKMETA);
|
||||
return lfsr_file_ck(lfs, file,
|
||||
LFS_T_RDONLY | LFS_T_CKMETA);
|
||||
}
|
||||
|
||||
int lfsr_file_ckdata(lfs_t *lfs, lfsr_file_t *file) {
|
||||
@@ -13761,7 +13766,8 @@ int lfsr_file_ckdata(lfs_t *lfs, lfsr_file_t *file) {
|
||||
// can't read from writeonly files
|
||||
LFS_ASSERT(!lfsr_o_iswronly(file->b.o.flags));
|
||||
|
||||
return lfsr_file_ck(lfs, file, LFS_T_CKMETA | LFS_T_CKDATA);
|
||||
return lfsr_file_ck(lfs, file,
|
||||
LFS_T_RDONLY | LFS_T_CKMETA | LFS_T_CKDATA);
|
||||
}
|
||||
|
||||
|
||||
@@ -14453,7 +14459,7 @@ static int lfsr_mountinited(lfs_t *lfs) {
|
||||
// mdirs are valid if we haven't checked the btree inner nodes at
|
||||
// least once?
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t, LFS_T_MTREEONLY | LFS_T_CKMETA);
|
||||
lfsr_traversal_init(&t, LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA);
|
||||
while (true) {
|
||||
lfsr_tag_t tag;
|
||||
lfsr_bptr_t bptr;
|
||||
@@ -14970,7 +14976,7 @@ int lfsr_fs_stat(lfs_t *lfs, struct lfs_fsinfo *fsinfo) {
|
||||
lfs_ssize_t lfsr_fs_usage(lfs_t *lfs) {
|
||||
lfs_size_t count = 0;
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t, 0);
|
||||
lfsr_traversal_init(&t, LFS_T_RDONLY);
|
||||
while (true) {
|
||||
lfsr_tag_t tag;
|
||||
lfsr_bptr_t bptr;
|
||||
@@ -15107,7 +15113,8 @@ failed:;
|
||||
static int lfsr_fs_fixorphans(lfs_t *lfs) {
|
||||
// LFS_T_MKCONSISTENT really just removes orphans
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t, LFS_T_MTREEONLY | LFS_T_MKCONSISTENT);
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_RDWR | LFS_T_MTREEONLY | LFS_T_MKCONSISTENT);
|
||||
while (true) {
|
||||
lfsr_bptr_t bptr;
|
||||
int err = lfsr_mtree_gc(lfs, &t,
|
||||
@@ -15172,11 +15179,11 @@ static int lfsr_fs_ck(lfs_t *lfs, uint32_t flags) {
|
||||
}
|
||||
|
||||
int lfsr_fs_ckmeta(lfs_t *lfs) {
|
||||
return lfsr_fs_ck(lfs, LFS_T_CKMETA);
|
||||
return lfsr_fs_ck(lfs, LFS_T_RDONLY | LFS_T_CKMETA);
|
||||
}
|
||||
|
||||
int lfsr_fs_ckdata(lfs_t *lfs) {
|
||||
return lfsr_fs_ck(lfs, LFS_T_CKMETA | LFS_T_CKDATA);
|
||||
return lfsr_fs_ck(lfs, LFS_T_RDONLY | LFS_T_CKMETA | LFS_T_CKDATA);
|
||||
}
|
||||
|
||||
// get the filesystem checksum
|
||||
@@ -15398,16 +15405,20 @@ int lfsr_traversal_open(lfs_t *lfs, lfsr_traversal_t *t, uint32_t flags) {
|
||||
LFS_ASSERT(!lfsr_omdir_isopen(lfs, &t->b.o));
|
||||
// unknown flags?
|
||||
LFS_ASSERT((flags & ~(
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_RDWR
|
||||
| LFS_T_MTREEONLY
|
||||
| LFS_T_MKCONSISTENT
|
||||
| LFS_T_LOOKAHEAD
|
||||
| LFS_T_COMPACT
|
||||
| LFS_T_CKMETA
|
||||
| LFS_T_CKDATA)) == 0);
|
||||
// these flags require a writable filesystem
|
||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_ismkconsistent(flags));
|
||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_islookahead(flags));
|
||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_iscompact(flags));
|
||||
// writeable traversals require a writeable filesystem
|
||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || lfsr_t_isrdonly(flags));
|
||||
// these flags require a writable traversal
|
||||
LFS_ASSERT(!lfsr_t_isrdonly(flags) || !lfsr_t_ismkconsistent(flags));
|
||||
LFS_ASSERT(!lfsr_t_isrdonly(flags) || !lfsr_t_islookahead(flags));
|
||||
LFS_ASSERT(!lfsr_t_isrdonly(flags) || !lfsr_t_iscompact(flags));
|
||||
// some flags don't make sense when only traversing the mtree
|
||||
LFS_ASSERT(!lfsr_t_ismtreeonly(flags) || !lfsr_t_islookahead(flags));
|
||||
LFS_ASSERT(!lfsr_t_ismtreeonly(flags) || !lfsr_t_isckdata(flags));
|
||||
|
||||
5
lfs.h
5
lfs.h
@@ -270,7 +270,10 @@ enum lfs_btype {
|
||||
};
|
||||
|
||||
// Traversal flags
|
||||
#define LFS_T_MTREEONLY 0x00000004 // Only traverse the mtree
|
||||
#define LFS_T_MODE 1 // The traversal's access mode
|
||||
#define LFS_T_RDWR 0 // Open traversal as read and write
|
||||
#define LFS_T_RDONLY 1 // Open traversal as read only
|
||||
#define LFS_T_MTREEONLY 0x00000002 // Only traverse the mtree
|
||||
#define LFS_T_MKCONSISTENT \
|
||||
0x00000100 // Make the filesystem consistent
|
||||
#define LFS_T_LOOKAHEAD 0x00000200 // Populate lookahead buffer
|
||||
|
||||
@@ -126,7 +126,10 @@ FLAGS = [
|
||||
('i', 'INMTREE', 0x08000000, "Committing to mtree" ),
|
||||
|
||||
# Traversal flags
|
||||
('T', 'MTREEONLY', 0x00000004, "Only traverse the mtree" ),
|
||||
('T', 'MODE', 1, "The traversal's access mode" ),
|
||||
('^', 'RDWR', 0, "Open traversal as read and write" ),
|
||||
('^', 'RDONLY', 1, "Open traversal as read only" ),
|
||||
('T', 'MTREEONLY', 0x00000002, "Only traverse the mtree" ),
|
||||
('T', 'MKCONSISTENT',
|
||||
0x00000100, "Make the filesystem consistent" ),
|
||||
('T', 'LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
||||
|
||||
@@ -182,7 +182,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
(CKMETA) ? LFS_T_CKMETA : 0);
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
@@ -352,7 +353,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
@@ -508,7 +510,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -231,7 +231,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -283,7 +283,7 @@ code = '''
|
||||
// find clobbered blocks with lfsr_traversal_read
|
||||
} else if (METHOD == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -368,7 +368,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -421,7 +421,7 @@ code = '''
|
||||
// find clobbered blocks with lfsr_traversal_read
|
||||
} else if (METHOD == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKDATA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKDATA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -510,7 +510,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
lfs_block_t badblock;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
@@ -573,7 +573,8 @@ code = '''
|
||||
// find clobbered blocks with lfsr_traversal_read
|
||||
} else if (METHOD == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -764,7 +765,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
lfs_block_t badblock;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
@@ -828,7 +829,8 @@ code = '''
|
||||
// find clobbered blocks with lfsr_traversal_read
|
||||
} else if (METHOD == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKDATA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDONLY | LFS_T_CKDATA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -1006,7 +1008,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1103,7 +1105,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1207,7 +1209,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
lfs_block_t badblock;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
@@ -1355,7 +1357,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
lfs_block_t badblock;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
@@ -1577,7 +1579,7 @@ code = '''
|
||||
|
||||
// find the data block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -1688,7 +1690,7 @@ code = '''
|
||||
|
||||
// find the btree block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -2085,7 +2087,7 @@ code = '''
|
||||
|
||||
// find the data block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -2196,7 +2198,7 @@ code = '''
|
||||
|
||||
// find the btree block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -2459,7 +2461,7 @@ code = '''
|
||||
|
||||
// find the btree block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -2601,7 +2603,7 @@ code = '''
|
||||
|
||||
// find the data block
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t badblock;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -2830,7 +2832,7 @@ code = '''
|
||||
// need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -3148,7 +3150,7 @@ code = '''
|
||||
// need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -3564,7 +3566,7 @@ code = '''
|
||||
// need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -3847,7 +3849,7 @@ code = '''
|
||||
// need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
@@ -4447,7 +4449,7 @@ code = '''
|
||||
// need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -710,7 +710,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -810,7 +810,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -912,7 +912,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -999,7 +999,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1118,7 +1118,7 @@ code = '''
|
||||
// run lfsr_traversal_t
|
||||
} else if (AFTER == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, GC_FLAGS) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDWR | GC_FLAGS) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1152,7 +1152,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1281,7 +1281,7 @@ code = '''
|
||||
// run lfsr_traversal_t
|
||||
} else if (AFTER == 2) {
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, GC_FLAGS) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDWR | GC_FLAGS) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1315,7 +1315,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1471,7 +1471,7 @@ code = '''
|
||||
}
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, GC_FLAGS) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDWR | GC_FLAGS) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1506,7 +1506,8 @@ code = '''
|
||||
if (LOOKAHEAD) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_LOOKAHEAD) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_LOOKAHEAD) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1521,7 +1522,8 @@ code = '''
|
||||
if (COMPACT) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_COMPACT) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_COMPACT) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1658,7 +1660,7 @@ code = '''
|
||||
}
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, GC_FLAGS) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDWR | GC_FLAGS) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1693,7 +1695,8 @@ code = '''
|
||||
if (LOOKAHEAD) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_LOOKAHEAD) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_LOOKAHEAD) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1708,7 +1711,8 @@ code = '''
|
||||
if (COMPACT) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_COMPACT) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_COMPACT) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1785,7 +1789,7 @@ code = '''
|
||||
}
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, GC_FLAGS) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDWR | GC_FLAGS) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1820,7 +1824,8 @@ code = '''
|
||||
if (LOOKAHEAD) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_LOOKAHEAD) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_LOOKAHEAD) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
@@ -1835,7 +1840,8 @@ code = '''
|
||||
if (COMPACT) {
|
||||
// we need an explicit traversal for this
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_COMPACT) => 0;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_RDWR | LFS_T_COMPACT) => 0;
|
||||
while (true) {
|
||||
struct lfs_tinfo tinfo;
|
||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||
|
||||
@@ -403,7 +403,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -492,7 +492,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -3490,7 +3490,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -3607,7 +3608,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -3750,7 +3752,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -3916,7 +3919,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -4060,7 +4064,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -4182,7 +4187,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -4346,7 +4352,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY
|
||||
LFS_T_RDONLY
|
||||
| LFS_T_MTREEONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -4474,7 +4481,7 @@ code = '''
|
||||
// technically, cycle detection only needs to work when we're validating
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_init(&t,
|
||||
LFS_T_MTREEONLY | LFS_T_CKMETA);
|
||||
LFS_T_RDONLY | LFS_T_MTREEONLY | LFS_T_CKMETA);
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// assert that we detect the cycle in a reasonable number of iterations
|
||||
assert(i < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -22,7 +22,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -55,7 +56,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -97,7 +99,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -148,7 +151,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -269,7 +273,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -383,7 +388,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
// a bit hacky, but this catches infinite loops
|
||||
@@ -499,7 +505,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
lfs_block_t r = 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
@@ -629,7 +636,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
lfs_block_t r = 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
@@ -752,7 +760,8 @@ code = '''
|
||||
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
LFS_T_RDONLY
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
lfs_block_t r = 0;
|
||||
for (lfs_block_t i = 0;; i++) {
|
||||
@@ -875,7 +884,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -909,7 +918,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -971,7 +980,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1005,7 +1014,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1066,7 +1075,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1103,7 +1112,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1149,7 +1158,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1181,7 +1190,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1243,7 +1252,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1275,7 +1284,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1336,7 +1345,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1371,7 +1380,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKMETA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKMETA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1417,7 +1426,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1449,7 +1458,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKDATA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKDATA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1511,7 +1520,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1543,7 +1552,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKDATA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKDATA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1604,7 +1613,7 @@ code = '''
|
||||
|
||||
// traverse to find blocks
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||
lfs_block_t k = 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
@@ -1639,7 +1648,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// traverse again, we should detect the clobbered metadata
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_CKDATA) => 0;
|
||||
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY | LFS_T_CKDATA) => 0;
|
||||
for (lfs_block_t j = 0;; j++) {
|
||||
assert(j < 2*BLOCK_COUNT);
|
||||
|
||||
@@ -1689,7 +1698,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -1731,7 +1741,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -1793,7 +1804,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
struct lfs_tinfo tinfo;
|
||||
@@ -1866,7 +1878,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -1925,7 +1938,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -1984,7 +1998,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2058,7 +2073,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2139,7 +2155,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2231,7 +2248,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2319,7 +2337,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2420,7 +2439,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2515,7 +2535,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2605,7 +2626,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2708,7 +2730,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2806,7 +2829,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -2903,7 +2927,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3013,7 +3038,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3115,7 +3141,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3212,7 +3239,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3315,7 +3343,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3404,7 +3433,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3517,7 +3547,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3639,7 +3670,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3749,7 +3781,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3848,7 +3881,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -3955,7 +3989,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4068,7 +4103,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4209,7 +4245,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4384,7 +4421,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4566,7 +4604,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4748,7 +4787,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -4921,7 +4961,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -5106,7 +5147,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -5285,7 +5327,8 @@ code = '''
|
||||
// try traversing
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
LFS_T_RDWR
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
|
||||
@@ -5434,7 +5477,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -5564,7 +5608,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -5686,7 +5731,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -5827,7 +5873,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6035,7 +6082,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6257,7 +6305,8 @@ code = '''
|
||||
// try traversing and compacting
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_COMPACT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6447,7 +6496,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6570,7 +6620,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6734,7 +6785,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -6894,7 +6946,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -7055,7 +7108,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -7224,7 +7278,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||
@@ -7411,7 +7466,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -7584,7 +7640,8 @@ code = '''
|
||||
// try traversing with mkconsistent
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
LFS_T_MKCONSISTENT
|
||||
LFS_T_RDWR
|
||||
| LFS_T_MKCONSISTENT
|
||||
| LFS_T_COMPACT
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -7711,7 +7768,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -7828,7 +7886,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -8012,7 +8071,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -8124,7 +8184,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -8399,7 +8460,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -8541,7 +8603,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
@@ -8992,7 +9055,8 @@ code = '''
|
||||
// open a traversal
|
||||
lfsr_traversal_t t;
|
||||
lfsr_traversal_open(&lfs, &t,
|
||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
LFS_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||
|
||||
Reference in New Issue
Block a user