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
|
// 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) {
|
static inline bool lfsr_t_ismtreeonly(uint32_t flags) {
|
||||||
return flags & LFS_T_MTREEONLY;
|
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
|
// in-use in the next lookahead window
|
||||||
//
|
//
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t, LFS_T_LOOKAHEAD);
|
lfsr_traversal_init(&t, LFS_T_RDONLY | LFS_T_LOOKAHEAD);
|
||||||
while (true) {
|
while (true) {
|
||||||
lfsr_tag_t tag;
|
lfsr_tag_t tag;
|
||||||
lfsr_bptr_t bptr;
|
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
|
// can't read from writeonly files
|
||||||
LFS_ASSERT(!lfsr_o_iswronly(file->b.o.flags));
|
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) {
|
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
|
// can't read from writeonly files
|
||||||
LFS_ASSERT(!lfsr_o_iswronly(file->b.o.flags));
|
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
|
// mdirs are valid if we haven't checked the btree inner nodes at
|
||||||
// least once?
|
// least once?
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
lfsr_tag_t tag;
|
lfsr_tag_t tag;
|
||||||
lfsr_bptr_t bptr;
|
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_ssize_t lfsr_fs_usage(lfs_t *lfs) {
|
||||||
lfs_size_t count = 0;
|
lfs_size_t count = 0;
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t, 0);
|
lfsr_traversal_init(&t, LFS_T_RDONLY);
|
||||||
while (true) {
|
while (true) {
|
||||||
lfsr_tag_t tag;
|
lfsr_tag_t tag;
|
||||||
lfsr_bptr_t bptr;
|
lfsr_bptr_t bptr;
|
||||||
@@ -15107,7 +15113,8 @@ failed:;
|
|||||||
static int lfsr_fs_fixorphans(lfs_t *lfs) {
|
static int lfsr_fs_fixorphans(lfs_t *lfs) {
|
||||||
// LFS_T_MKCONSISTENT really just removes orphans
|
// LFS_T_MKCONSISTENT really just removes orphans
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
lfsr_bptr_t bptr;
|
lfsr_bptr_t bptr;
|
||||||
int err = lfsr_mtree_gc(lfs, &t,
|
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) {
|
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) {
|
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
|
// 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));
|
LFS_ASSERT(!lfsr_omdir_isopen(lfs, &t->b.o));
|
||||||
// unknown flags?
|
// unknown flags?
|
||||||
LFS_ASSERT((flags & ~(
|
LFS_ASSERT((flags & ~(
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_RDWR
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| LFS_T_MKCONSISTENT
|
| LFS_T_MKCONSISTENT
|
||||||
| LFS_T_LOOKAHEAD
|
| LFS_T_LOOKAHEAD
|
||||||
| LFS_T_COMPACT
|
| LFS_T_COMPACT
|
||||||
| LFS_T_CKMETA
|
| LFS_T_CKMETA
|
||||||
| LFS_T_CKDATA)) == 0);
|
| LFS_T_CKDATA)) == 0);
|
||||||
// these flags require a writable filesystem
|
// writeable traversals require a writeable filesystem
|
||||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_ismkconsistent(flags));
|
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || lfsr_t_isrdonly(flags));
|
||||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_islookahead(flags));
|
// these flags require a writable traversal
|
||||||
LFS_ASSERT(!lfsr_m_isrdonly(lfs->flags) || !lfsr_t_iscompact(flags));
|
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
|
// 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_islookahead(flags));
|
||||||
LFS_ASSERT(!lfsr_t_ismtreeonly(flags) || !lfsr_t_isckdata(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
|
// 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 \
|
#define LFS_T_MKCONSISTENT \
|
||||||
0x00000100 // Make the filesystem consistent
|
0x00000100 // Make the filesystem consistent
|
||||||
#define LFS_T_LOOKAHEAD 0x00000200 // Populate lookahead buffer
|
#define LFS_T_LOOKAHEAD 0x00000200 // Populate lookahead buffer
|
||||||
|
|||||||
@@ -126,7 +126,10 @@ FLAGS = [
|
|||||||
('i', 'INMTREE', 0x08000000, "Committing to mtree" ),
|
('i', 'INMTREE', 0x08000000, "Committing to mtree" ),
|
||||||
|
|
||||||
# Traversal flags
|
# 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',
|
('T', 'MKCONSISTENT',
|
||||||
0x00000100, "Make the filesystem consistent" ),
|
0x00000100, "Make the filesystem consistent" ),
|
||||||
('T', 'LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
('T', 'LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
||||||
|
|||||||
@@ -182,7 +182,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
@@ -352,7 +353,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
@@ -508,7 +510,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -283,7 +283,7 @@ code = '''
|
|||||||
// find clobbered blocks with lfsr_traversal_read
|
// find clobbered blocks with lfsr_traversal_read
|
||||||
} else if (METHOD == 2) {
|
} else if (METHOD == 2) {
|
||||||
lfsr_traversal_t t;
|
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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -368,7 +368,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -421,7 +421,7 @@ code = '''
|
|||||||
// find clobbered blocks with lfsr_traversal_read
|
// find clobbered blocks with lfsr_traversal_read
|
||||||
} else if (METHOD == 2) {
|
} else if (METHOD == 2) {
|
||||||
lfsr_traversal_t t;
|
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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -510,7 +510,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
@@ -573,7 +573,8 @@ code = '''
|
|||||||
// find clobbered blocks with lfsr_traversal_read
|
// find clobbered blocks with lfsr_traversal_read
|
||||||
} else if (METHOD == 2) {
|
} else if (METHOD == 2) {
|
||||||
lfsr_traversal_t t;
|
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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -764,7 +765,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
@@ -828,7 +829,8 @@ code = '''
|
|||||||
// find clobbered blocks with lfsr_traversal_read
|
// find clobbered blocks with lfsr_traversal_read
|
||||||
} else if (METHOD == 2) {
|
} else if (METHOD == 2) {
|
||||||
lfsr_traversal_t t;
|
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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -1006,7 +1008,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1103,7 +1105,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1207,7 +1209,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
@@ -1355,7 +1357,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
@@ -1577,7 +1579,7 @@ code = '''
|
|||||||
|
|
||||||
// find the data block
|
// find the data block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -1688,7 +1690,7 @@ code = '''
|
|||||||
|
|
||||||
// find the btree block
|
// find the btree block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -2085,7 +2087,7 @@ code = '''
|
|||||||
|
|
||||||
// find the data block
|
// find the data block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -2196,7 +2198,7 @@ code = '''
|
|||||||
|
|
||||||
// find the btree block
|
// find the btree block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -2459,7 +2461,7 @@ code = '''
|
|||||||
|
|
||||||
// find the btree block
|
// find the btree block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -2601,7 +2603,7 @@ code = '''
|
|||||||
|
|
||||||
// find the data block
|
// find the data block
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t, 0) => 0;
|
lfsr_traversal_open(&lfs, &t, LFS_T_RDONLY) => 0;
|
||||||
lfs_block_t badblock;
|
lfs_block_t badblock;
|
||||||
while (true) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -2830,7 +2832,7 @@ code = '''
|
|||||||
// need an explicit traversal for this
|
// need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -3148,7 +3150,7 @@ code = '''
|
|||||||
// need an explicit traversal for this
|
// need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -3564,7 +3566,7 @@ code = '''
|
|||||||
// need an explicit traversal for this
|
// need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -3847,7 +3849,7 @@ code = '''
|
|||||||
// need an explicit traversal for this
|
// need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
@@ -4447,7 +4449,7 @@ code = '''
|
|||||||
// need an explicit traversal for this
|
// need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
LFS_ASSERT(i < 2*BLOCK_COUNT);
|
||||||
|
|||||||
@@ -710,7 +710,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -810,7 +810,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -912,7 +912,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -999,7 +999,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1118,7 +1118,7 @@ code = '''
|
|||||||
// run lfsr_traversal_t
|
// run lfsr_traversal_t
|
||||||
} else if (AFTER == 2) {
|
} else if (AFTER == 2) {
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1152,7 +1152,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1281,7 +1281,7 @@ code = '''
|
|||||||
// run lfsr_traversal_t
|
// run lfsr_traversal_t
|
||||||
} else if (AFTER == 2) {
|
} else if (AFTER == 2) {
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1315,7 +1315,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1471,7 +1471,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
|
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1506,7 +1506,8 @@ code = '''
|
|||||||
if (LOOKAHEAD) {
|
if (LOOKAHEAD) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1521,7 +1522,8 @@ code = '''
|
|||||||
if (COMPACT) {
|
if (COMPACT) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1658,7 +1660,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
|
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1693,7 +1695,8 @@ code = '''
|
|||||||
if (LOOKAHEAD) {
|
if (LOOKAHEAD) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1708,7 +1711,8 @@ code = '''
|
|||||||
if (COMPACT) {
|
if (COMPACT) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1785,7 +1789,7 @@ code = '''
|
|||||||
}
|
}
|
||||||
|
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1820,7 +1824,8 @@ code = '''
|
|||||||
if (LOOKAHEAD) {
|
if (LOOKAHEAD) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
@@ -1835,7 +1840,8 @@ code = '''
|
|||||||
if (COMPACT) {
|
if (COMPACT) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfsr_traversal_t t;
|
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) {
|
while (true) {
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
int err = lfsr_traversal_read(&lfs, &t, &tinfo);
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -492,7 +492,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|||||||
@@ -3490,7 +3490,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -3607,7 +3608,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -3750,7 +3752,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -3916,7 +3919,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -4060,7 +4064,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -4182,7 +4187,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -4346,7 +4352,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&t,
|
lfsr_traversal_init(&t,
|
||||||
LFS_T_MTREEONLY
|
LFS_T_RDONLY
|
||||||
|
| LFS_T_MTREEONLY
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
| ((CKMETA) ? LFS_T_CKMETA : 0));
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -4474,7 +4481,7 @@ code = '''
|
|||||||
// technically, cycle detection only needs to work when we're validating
|
// technically, cycle detection only needs to work when we're validating
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_init(&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++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// assert that we detect the cycle in a reasonable number of iterations
|
// assert that we detect the cycle in a reasonable number of iterations
|
||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -55,7 +56,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -97,7 +99,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -148,7 +151,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -269,7 +273,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -383,7 +388,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
// a bit hacky, but this catches infinite loops
|
// a bit hacky, but this catches infinite loops
|
||||||
@@ -499,7 +505,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
lfs_block_t r = 0;
|
lfs_block_t r = 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
@@ -629,7 +636,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
lfs_block_t r = 0;
|
lfs_block_t r = 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
@@ -752,7 +760,8 @@ code = '''
|
|||||||
|
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &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;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
lfs_block_t r = 0;
|
lfs_block_t r = 0;
|
||||||
for (lfs_block_t i = 0;; i++) {
|
for (lfs_block_t i = 0;; i++) {
|
||||||
@@ -875,7 +884,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -909,7 +918,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -971,7 +980,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1005,7 +1014,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1066,7 +1075,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1103,7 +1112,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1149,7 +1158,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1181,7 +1190,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1243,7 +1252,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1275,7 +1284,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1336,7 +1345,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1371,7 +1380,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1417,7 +1426,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1449,7 +1458,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1511,7 +1520,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1543,7 +1552,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1604,7 +1613,7 @@ code = '''
|
|||||||
|
|
||||||
// traverse to find blocks
|
// traverse to find blocks
|
||||||
lfsr_traversal_t t;
|
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 k = 0;
|
||||||
for (lfs_block_t j = 0;; j++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
@@ -1639,7 +1648,7 @@ code = '''
|
|||||||
|
|
||||||
clobbered:;
|
clobbered:;
|
||||||
// traverse again, we should detect the clobbered metadata
|
// 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++) {
|
for (lfs_block_t j = 0;; j++) {
|
||||||
assert(j < 2*BLOCK_COUNT);
|
assert(j < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
@@ -1689,7 +1698,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -1731,7 +1741,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -1793,7 +1804,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
struct lfs_tinfo tinfo;
|
struct lfs_tinfo tinfo;
|
||||||
@@ -1866,7 +1878,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -1925,7 +1938,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -1984,7 +1998,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2058,7 +2073,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2139,7 +2155,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2231,7 +2248,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2319,7 +2337,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2420,7 +2439,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2515,7 +2535,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2605,7 +2626,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2708,7 +2730,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2806,7 +2829,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -2903,7 +2927,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3013,7 +3038,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3115,7 +3141,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3212,7 +3239,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3315,7 +3343,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3404,7 +3433,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3517,7 +3547,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3639,7 +3670,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3749,7 +3781,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3848,7 +3881,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -3955,7 +3989,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4068,7 +4103,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4209,7 +4245,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4384,7 +4421,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4566,7 +4604,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4748,7 +4787,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -4921,7 +4961,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -5106,7 +5147,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -5285,7 +5327,8 @@ code = '''
|
|||||||
// try traversing
|
// try traversing
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
LFS_T_RDWR
|
||||||
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
|
|
||||||
@@ -5434,7 +5477,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -5564,7 +5608,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -5686,7 +5731,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -5827,7 +5873,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6035,7 +6082,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6257,7 +6305,8 @@ code = '''
|
|||||||
// try traversing and compacting
|
// try traversing and compacting
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_COMPACT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6447,7 +6496,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6570,7 +6620,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6734,7 +6785,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -6894,7 +6946,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -7055,7 +7108,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -7224,7 +7278,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS_T_CKDATA : 0)) => 0;
|
||||||
@@ -7411,7 +7466,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| LFS_T_COMPACT
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -7584,7 +7640,8 @@ code = '''
|
|||||||
// try traversing with mkconsistent
|
// try traversing with mkconsistent
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
LFS_T_MKCONSISTENT
|
LFS_T_RDWR
|
||||||
|
| LFS_T_MKCONSISTENT
|
||||||
| LFS_T_COMPACT
|
| LFS_T_COMPACT
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -7711,7 +7768,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -7828,7 +7886,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -8012,7 +8071,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -8124,7 +8184,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -8399,7 +8460,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -8541,7 +8603,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
@@ -8992,7 +9055,8 @@ code = '''
|
|||||||
// open a traversal
|
// open a traversal
|
||||||
lfsr_traversal_t t;
|
lfsr_traversal_t t;
|
||||||
lfsr_traversal_open(&lfs, &t,
|
lfsr_traversal_open(&lfs, &t,
|
||||||
((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
LFS_T_RDWR
|
||||||
|
| ((MKCONSISTENT) ? LFS_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS_T_LOOKAHEAD : 0)
|
||||||
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
| ((COMPACT) ? LFS_T_COMPACT : 0)
|
||||||
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
| ((CKMETA) ? LFS_T_CKMETA : 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user