Some cleanup items

- Adopted *_IS* naming convention for sign-bit macros.
- Made all struct initializing macros function-like, including the
  *_NULL() macros.
- Renamed ggrm/dgrm -> grm_g/grm_d.
- Renamed lfsr_mroot_commit_ -> lfsr_mroot_commit.
- Renamed LFSR_FILE_BSPROUT -> LFSR_FILE_ISDIRECT.
- Renamed LFSR_BSPROUT_NULL -> LFSR_FILE_BNULL().
- Dropped *_unerase functions for explicitly setting eoff=-1.
This commit is contained in:
Christopher Haster
2023-11-25 22:03:39 -06:00
parent f4af2b407e
commit a89b3e42ba
6 changed files with 318 additions and 330 deletions
+71 -83
View File
@@ -1004,7 +1004,7 @@ enum {
// through the LFSR_ATTR macro
#define LFSR_DATA_DATA(_data) (_data)
#define LFSR_DATA_NULL \
#define LFSR_DATA_NULL() \
((lfsr_data_t){ \
.u.buf.size=0, \
.u.buf.mode=LFSR_DATA_BUF, \
@@ -1487,7 +1487,7 @@ typedef struct lfsr_attr {
_delta, \
LFSR_DATA_##_data})
#define LFSR_ATTR_NOOP LFSR_ATTR(-1, GROW, 0, NULL)
#define LFSR_ATTR_NOOP() LFSR_ATTR(-1, GROW, 0, NULL())
// TODO make this const again eventually
#define LFSR_ATTRS(...) \
@@ -2051,10 +2051,6 @@ static inline int lfsr_rbyd_cmp(
}
}
static inline void lfsr_rbyd_unerase(lfsr_rbyd_t *rbyd) {
rbyd->eoff = -1;
}
// allocate an rbyd block
static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd) {
@@ -2246,7 +2242,7 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
}
if (!erased) {
lfsr_rbyd_unerase(rbyd);
rbyd->eoff = -1;
}
return 0;
@@ -3193,7 +3189,7 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
// create a copy and mark rbyd as unerased in case of failure
lfsr_rbyd_t rbyd_ = *rbyd;
lfsr_rbyd_unerase(rbyd);
rbyd->eoff = -1;
// append each tag to the tree
for (lfs_size_t i = 0; i < attr_count; i++) {
@@ -3426,7 +3422,7 @@ done:;
// append and consume any pending gstate
static int lfsr_rbyd_appendgdelta(lfs_t *lfs, lfsr_rbyd_t *rbyd) {
// need GRM delta?
if (!lfsr_grm_iszero(lfs->dgrm)) {
if (!lfsr_grm_iszero(lfs->grm_d)) {
// calculate our delta
uint8_t grm_buf[LFSR_GRM_DSIZE];
memset(grm_buf, 0, LFSR_GRM_DSIZE);
@@ -3446,7 +3442,7 @@ static int lfsr_rbyd_appendgdelta(lfs_t *lfs, lfsr_rbyd_t *rbyd) {
}
err = lfsr_grm_xor(lfs, grm_buf, LFSR_DATA_BUF(
&lfs->dgrm, LFSR_GRM_DSIZE));
&lfs->grm_d, LFSR_GRM_DSIZE));
if (err) {
return err;
}
@@ -3703,10 +3699,6 @@ static inline int lfsr_btree_cmp(
return lfsr_rbyd_cmp(a, b);
}
static inline void lfsr_btree_unerase(lfsr_btree_t *btree) {
lfsr_rbyd_unerase(btree);
}
// branch on-disk encoding
#define LFSR_BRANCH_DSIZE (5+5+4)
@@ -4023,7 +4015,7 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
// mark btree as unerased in case of failure, our btree rbyd and
// root rbyd can diverge if there's a split, but we would have
// marked the old root as unerased earlier anyways
lfsr_btree_unerase(btree);
btree->eoff = -1;
} else {
int err = lfsr_btree_parent(lfs, btree, bid, &rbyd, &parent, &rid);
@@ -4359,7 +4351,7 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
*attrs_++ = LFSR_ATTR(bid+rid,
BRANCH, 0, FROMBRANCH(&rbyd_, scratch_buffer));
*attrs_++ = LFSR_ATTR(bid+rid,
GROW, -rbyd.weight + rbyd_.weight, NULL);
GROW, -rbyd.weight + rbyd_.weight, NULL());
*attrs_++ = LFSR_ATTR(bid+rid - rbyd.weight + rbyd_.weight + 1,
BRANCH, +sibling.weight,
FROMBRANCH(&sibling, scratch_buffer + LFSR_BRANCH_DSIZE));
@@ -4435,11 +4427,11 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
attrs_ = scratch_attrs;
bid -= rid - (rbyd.weight-1);
*attrs_++ = LFSR_ATTR(bid+rid+sibling.weight,
RM, -sibling.weight, NULL);
RM, -sibling.weight, NULL());
*attrs_++ = LFSR_ATTR(bid+rid,
BRANCH, 0, FROMBRANCH(&rbyd_, scratch_buffer));
*attrs_++ = LFSR_ATTR(bid+rid,
GROW, -rbyd.weight + rbyd_.weight, NULL);
GROW, -rbyd.weight + rbyd_.weight, NULL());
attrs = scratch_attrs;
attr_count = attrs_ - scratch_attrs;
@@ -4475,12 +4467,12 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
bid -= rid - (rbyd.weight-1);
if (rbyd_.weight == 0) {
*attrs_++ = LFSR_ATTR(bid+rid,
RM, -rbyd.weight, NULL);
RM, -rbyd.weight, NULL());
} else {
*attrs_++ = LFSR_ATTR(bid+rid,
BRANCH, 0, FROMBRANCH(&rbyd_, scratch_buffer));
*attrs_++ = LFSR_ATTR(bid+rid,
GROW, -rbyd.weight + rbyd_.weight, NULL);
GROW, -rbyd.weight + rbyd_.weight, NULL());
}
attrs = scratch_attrs;
attr_count = attrs_ - scratch_attrs;
@@ -5025,10 +5017,6 @@ static inline bool lfsr_mdir_ismrootanchor(const lfsr_mdir_t *mdir) {
return lfsr_mptr_ismrootanchor(lfsr_mdir_mptr(mdir));
}
static inline void lfsr_mdir_unerase(lfsr_mdir_t *mdir) {
lfsr_rbyd_unerase(&mdir->u.rbyd);
}
static inline lfsr_sbid_t lfsr_mdir_bid(lfs_t *lfs, const lfsr_mdir_t *mdir) {
return lfsr_mid_bid(lfs, mdir->mid);
}
@@ -5157,7 +5145,7 @@ static int lfsr_mdir_lookup(lfs_t *lfs, const lfsr_mdir_t *mdir,
// some mdir-related gstate things we need
static void lfsr_fs_flushgdelta(lfs_t *lfs) {
memset(lfs->dgrm, 0, LFSR_GRM_DSIZE);
memset(lfs->grm_d, 0, LFSR_GRM_DSIZE);
}
static int lfsr_fs_consumegdelta(lfs_t *lfs, const lfsr_mdir_t *mdir) {
@@ -5168,7 +5156,7 @@ static int lfsr_fs_consumegdelta(lfs_t *lfs, const lfsr_mdir_t *mdir) {
}
if (err != LFS_ERR_NOENT) {
err = lfsr_grm_xor(lfs, lfs->dgrm, data);
err = lfsr_grm_xor(lfs, lfs->grm_d, data);
if (err) {
return err;
}
@@ -5180,10 +5168,9 @@ static int lfsr_fs_consumegdelta(lfs_t *lfs, const lfsr_mdir_t *mdir) {
// mtree is the core tree of mdirs in littlefs
// TODO should other flags have IS* prefix?
#define LFSR_MTREE_ISMPTR 0x80000000
#define LFSR_MTREE_NULL ((lfsr_mtree_t){ \
#define LFSR_MTREE_NULL() ((lfsr_mtree_t){ \
.u.weight=(LFSR_MTREE_ISMPTR | 0)})
#define LFSR_MTREE_MPTR(_mptr, _weight) ((lfsr_mtree_t){ \
@@ -5409,7 +5396,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir,
// try to append a commit
lfsr_mdir_t mdir_ = *mdir;
// mark as erased in case of failure
lfsr_mdir_unerase(mdir);
mdir->u.rbyd.eoff = -1;
for (lfs_size_t i = 0; i < attr_count; i++) {
// calculate adjusted rid
lfsr_srid_t rid = lfsr_mid_rid(lfs, attrs[i].rid);
@@ -6026,7 +6013,7 @@ static int lfsr_mroot_parent(lfs_t *lfs, const lfsr_mptr_t *mptr,
// to the mroot should go through lfsr_mdir_commit with lfs->mroot as
// a target
//
static int lfsr_mroot_commit_(lfs_t *lfs,
static int lfsr_mroot_commit(lfs_t *lfs,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
lfsr_srid_t *split_rid_,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
@@ -6034,14 +6021,14 @@ static int lfsr_mroot_commit_(lfs_t *lfs,
lfsr_mdir_t mroot_ = lfs->mroot;
// mark any copies of our mroot as unerased
lfsr_mdir_unerase(&lfs->mroot);
lfs->mroot.u.rbyd.eoff = -1;
for (int type = LFS_TYPE_REG; type < LFS_TYPE_REG+3; type++) {
for (lfsr_openedmdir_t *opened = lfs->opened[type-LFS_TYPE_REG];
opened;
opened = opened->next) {
if (lfsr_mdir_cmp(&opened->mdir, &lfs->mroot) == 0) {
lfsr_mdir_unerase(&opened->mdir);
opened->mdir.u.rbyd.eoff = -1;
}
}
}
@@ -6205,7 +6192,7 @@ static int lfsr_mtree_commit(lfs_t *lfs,
mtree_ = lfs->mtree.u.btree;
// mark as unerased in case of failure
lfsr_btree_unerase(&lfs->mtree.u.btree);
lfs->mtree.u.btree.eoff = -1;
}
// commit to mtree
@@ -6225,7 +6212,7 @@ static int lfsr_mtree_commit(lfs_t *lfs,
// layers rely on this.
//
uint8_t mtree_buf[LFSR_BTREE_DSIZE];
err = lfsr_mroot_commit_(lfs, -1, 0, NULL, LFSR_ATTRS(
err = lfsr_mroot_commit(lfs, -1, 0, NULL, LFSR_ATTRS(
LFSR_ATTR(-1,
WIDE(MTREE), 0, FROMBTREE(&mtree_, mtree_buf))));
if (err) {
@@ -6258,11 +6245,11 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
if (attrs[i].tag == LFSR_TAG_GRM) {
// encode to disk
lfsr_grm_t *grm = (lfsr_grm_t*)attrs[i].data.u.buf.buffer;
lfsr_data_fromgrm(grm, lfs->dgrm);
lfsr_data_fromgrm(grm, lfs->grm_d);
// xor with our current gstate to find our initial gdelta
int err = lfsr_grm_xor(lfs, lfs->dgrm,
LFSR_DATA_BUF(lfs->ggrm, LFSR_GRM_DSIZE));
int err = lfsr_grm_xor(lfs, lfs->grm_d,
LFSR_DATA_BUF(lfs->grm_g, LFSR_GRM_DSIZE));
if (err) {
return err;
}
@@ -6284,7 +6271,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// would force the mroot to always compact
//
if (lfsr_mdir_cmp(&opened->mdir, mdir) == 0) {
lfsr_mdir_unerase(&opened->mdir);
opened->mdir.u.rbyd.eoff = -1;
}
// stage all bsprouts/bshrubs
@@ -6304,7 +6291,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
int err;
// mroot? we need special handling to propagate up the mroot chain
if (lfsr_mdir_cmp(&mdir_, &lfs->mroot) == 0) {
err = lfsr_mroot_commit_(lfs, -1, -1, &split_rid,
err = lfsr_mroot_commit(lfs, -1, -1, &split_rid,
attrs, attr_count);
if (err && err != LFS_ERR_RANGE
&& err != LFS_ERR_NOENT) {
@@ -6317,7 +6304,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// otherwise commit normally
} else {
// mark our mdir as unerased in case we fail
lfsr_mdir_unerase(mdir);
mdir->u.rbyd.eoff = -1;
err = lfsr_mdir_commit_(lfs, &mdir_, -1, -1, &split_rid,
attrs, attr_count);
@@ -6445,7 +6432,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
//
lfsr_grm_t *grm = (lfsr_grm_t*)attrs[i].data.u.buf.buffer;
uint8_t grm_buf[LFSR_GRM_DSIZE];
err = lfsr_grm_xor(lfs, lfs->dgrm,
err = lfsr_grm_xor(lfs, lfs->grm_d,
lfsr_data_fromgrm(grm, grm_buf));
if (err) {
return err;
@@ -6466,7 +6453,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
}
// xor our fix into our gdelta
err = lfsr_grm_xor(lfs, lfs->dgrm,
err = lfsr_grm_xor(lfs, lfs->grm_d,
lfsr_data_fromgrm(grm, grm_buf));
if (err) {
return err;
@@ -6548,7 +6535,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
//
lfsr_grm_t *grm = (lfsr_grm_t*)attrs[i].data.u.buf.buffer;
uint8_t grm_buf[LFSR_GRM_DSIZE];
err = lfsr_grm_xor(lfs, lfs->dgrm,
err = lfsr_grm_xor(lfs, lfs->grm_d,
lfsr_data_fromgrm(grm, grm_buf));
if (err) {
return err;
@@ -6562,7 +6549,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
}
// xor our fix into our gdelta
err = lfsr_grm_xor(lfs, lfs->dgrm,
err = lfsr_grm_xor(lfs, lfs->grm_d,
lfsr_data_fromgrm(grm, grm_buf));
if (err) {
return err;
@@ -6572,20 +6559,20 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// direct mdir?
if (lfsr_mtree_ismptr(lfs)) {
err = lfsr_mroot_commit_(lfs, -1, 0, NULL, LFSR_ATTRS(
err = lfsr_mroot_commit(lfs, -1, 0, NULL, LFSR_ATTRS(
LFSR_ATTR(-1,
RM(WIDE(STRUCT)), 0, NULL)));
RM(WIDE(STRUCT)), 0, NULL())));
if (err) {
return err;
}
lfs->mtree = LFSR_MTREE_NULL;
lfs->mtree = LFSR_MTREE_NULL();
// update our mtree
} else {
err = lfsr_mtree_commit(lfs, LFSR_ATTRS(
LFSR_ATTR(lfsr_mdir_bid(lfs, &mdir_),
RM, -lfsr_mweight(lfs), NULL)));
RM, -lfsr_mweight(lfs), NULL())));
if (err) {
return err;
}
@@ -6604,7 +6591,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// new mtree?
if (lfsr_mtree_ismptr(lfs)) {
uint8_t mdir_buf[LFSR_MPTR_DSIZE];
err = lfsr_mroot_commit_(lfs, -1, 0, NULL, LFSR_ATTRS(
err = lfsr_mroot_commit(lfs, -1, 0, NULL, LFSR_ATTRS(
LFSR_ATTR(-1,
WIDE(MDIR), 0,
FROMMPTR(lfsr_mdir_mptr(&mdir_), mdir_buf))));
@@ -6631,7 +6618,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
// success? update in-device state, we must not error at this point
// gstate must have been committed by a lower-level function at this point
LFS_ASSERT(lfsr_grm_iszero(lfs->dgrm));
LFS_ASSERT(lfsr_grm_iszero(lfs->grm_d));
for (lfs_size_t i = 0; i < attr_count; i++) {
// update gstate
@@ -6639,7 +6626,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
lfs->grm = *(lfsr_grm_t*)attrs[i].data.u.buf.buffer;
// keep track of the exact encoding on-disk
lfsr_data_fromgrm(&lfs->grm, lfs->ggrm);
lfsr_data_fromgrm(&lfs->grm, lfs->grm_g);
}
}
@@ -7571,7 +7558,7 @@ static int lfsr_mountinited(lfs_t *lfs) {
// default to no mtree, this is allowed and implies all files are inlined
// in the mroot
lfs->mtree = LFSR_MTREE_NULL;
lfs->mtree = LFSR_MTREE_NULL();
// traverse the mtree rooted at mroot 0x{1,0}
//
@@ -8048,10 +8035,10 @@ static int lfsr_mountinited(lfs_t *lfs) {
// TODO should the consumegdelta above take gstate/gdelta as a parameter?
// keep track of the current gstate on disk
memcpy(lfs->ggrm, lfs->dgrm, LFSR_GRM_DSIZE);
memcpy(lfs->grm_g, lfs->grm_d, LFSR_GRM_DSIZE);
// decode grm so we can report any removed files as missing
int err = lfsr_data_readgrm(lfs, &LFSR_DATA_BUF(lfs->ggrm, LFSR_GRM_DSIZE),
int err = lfsr_data_readgrm(lfs, &LFSR_DATA_BUF(lfs->grm_g, LFSR_GRM_DSIZE),
&lfs->grm);
if (err) {
// TODO switch to read-only?
@@ -8363,7 +8350,7 @@ static int lfsr_fs_fixgrm(lfs_t *lfs) {
// remove the rid while also updating our grm
LFS_ASSERT(lfsr_mid_rid(lfs, lfs->grm.rms[0]) < mdir.u.m.weight);
err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL),
LFSR_ATTR(mdir.mid, RM, -1, NULL()),
LFSR_ATTR(-1, GRM, 0, GRM(&grm))));
}
@@ -8608,7 +8595,7 @@ int lfsr_remove(lfs_t *lfs, const char *path) {
// remove the metadata entry
err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL),
LFSR_ATTR(mdir.mid, RM, -1, NULL()),
LFSR_ATTR(-1, GRM, 0, GRM(&grm))));
if (err) {
return err;
@@ -8736,8 +8723,8 @@ int lfsr_rename(lfs_t *lfs, const char *old_path, const char *new_path) {
// new rid, while also marking the old rid for removal
err = lfsr_mdir_commit(lfs, &new_mdir, LFSR_ATTRS(
(exists
? LFSR_ATTR(new_mdir.mid, RM, -1, NULL)
: LFSR_ATTR_NOOP),
? LFSR_ATTR(new_mdir.mid, RM, -1, NULL())
: LFSR_ATTR_NOOP()),
LFSR_ATTR(new_mdir.mid,
TAG(old_tag), +1, CAT(
LFSR_DATA_LEB128(new_did),
@@ -9003,50 +8990,51 @@ int lfsr_dir_rewind(lfs_t *lfs, lfsr_dir_t *dir) {
/// File operations ///
// sign(weight)=1, data.block==mdir.block => sprout
// sign(weight)=1, data.block==mdir.block => bsprout
// sign(weight)=1, data.block!=mdir.block => bptr
// sign(weight)=0, data.block==mdir.block => bshrub
// sign(weight)=0, data.block!=mdir.block => btree
#define LFSR_FILE_BSPROUT 0x80000000
#define LFSR_BSPROUT_NULL ((lfsr_bsprout_t){.data=LFSR_DATA_DISK(0, 0, 0)})
#define LFSR_FILE_ISDIRECT 0x80000000
#define LFSR_FILE_BNULL() ((lfsr_bsprout_t){.data=LFSR_DATA_DISK(0, 0, 0)})
static inline bool lfsr_file_isbnull(const lfsr_file_t *file) {
return (lfs_size_t)file->u.bsprout.data.u.disk.size
== (LFSR_FILE_BSPROUT | 0);
== (LFSR_FILE_ISDIRECT | 0);
}
static inline bool lfsr_file_isbsprout(const lfsr_file_t *file) {
return (lfs_size_t)file->u.bsprout.data.u.disk.size
> (LFSR_FILE_BSPROUT | 0)
> (LFSR_FILE_ISDIRECT | 0)
&& file->u.bsprout.data.u.disk.block
== file->m.mdir.u.m.blocks[0];
}
static inline bool lfsr_file_isbptr(const lfsr_file_t *file) {
return (lfs_size_t)file->u.bsprout.data.u.disk.size
> (LFSR_FILE_BSPROUT | 0)
> (LFSR_FILE_ISDIRECT | 0)
&& file->u.bsprout.data.u.disk.block
!= file->m.mdir.u.m.blocks[0];
}
static inline bool lfsr_file_isbshrub(const lfsr_file_t *file) {
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_BSPROUT)
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_ISDIRECT)
&& lfsr_bshrub_isbshrub(&file->m.mdir, &file->u.bshrub);
}
static inline bool lfsr_file_isbtree(const lfsr_file_t *file) {
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_BSPROUT)
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_ISDIRECT)
&& lfsr_bshrub_isbtree(&file->m.mdir, &file->u.bshrub);
}
static inline bool lfsr_file_isbshruborbtree(const lfsr_file_t *file) {
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_BSPROUT);
return !(file->u.bsprout.data.u.disk.size & LFSR_FILE_ISDIRECT);
}
// the on disk weight lines up to the same word across all unions
static inline lfs_off_t lfsr_file_uweight(const lfsr_file_t *file) {
return file->u.bsprout.data.u.disk.size & ~LFSR_FILE_BSPROUT;
return file->u.bsprout.data.u.disk.size & ~LFSR_FILE_ISDIRECT;
}
// flags
@@ -9132,7 +9120,7 @@ int lfsr_file_opencfg(lfs_t *lfs, lfsr_file_t *file,
file->pos = 0;
file->size = 0;
// default data state
file->u.bsprout = LFSR_BSPROUT_NULL;
file->u.bsprout = LFSR_FILE_BNULL();
// lookup our parent
lfsr_tag_t tag;
@@ -9583,7 +9571,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file,
err = lfsr_bshrub_commit(lfs,
&file->m.mdir, &file->u.bshrub, LFSR_ATTRS(
LFSR_ATTR(bid_,
GROW, -overlap_, NULL)));
GROW, -overlap_, NULL())));
if (err) {
return err;
}
@@ -9736,7 +9724,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file,
err = lfsr_bshrub_commit(lfs,
&file->m.mdir, &file->u.bshrub, LFSR_ATTRS(
LFSR_ATTR(bid_,
RM, -weight_, NULL)));
RM, -weight_, NULL())));
if (err) {
return err;
}
@@ -9803,7 +9791,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file,
err = lfsr_bshrub_commit(lfs,
&file->m.mdir, &file->u.bshrub, LFSR_ATTRS(
LFSR_ATTR(bid_,
RM, -weight_, NULL)));
RM, -weight_, NULL())));
if (err) {
return err;
}
@@ -9826,7 +9814,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file,
int err = lfsr_bshrub_commit(lfs,
&file->m.mdir, &file->u.bshrub, LFSR_ATTRS(
LFSR_ATTR(pos_-1,
GROW, +hole, NULL)));
GROW, +hole, NULL())));
if (err) {
return err;
}
@@ -9836,7 +9824,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file,
int err = lfsr_bshrub_commit(lfs,
&file->m.mdir, &file->u.bshrub, LFSR_ATTRS(
LFSR_ATTR(pos_,
DATA, +hole, NULL)));
DATA, +hole, NULL())));
if (err) {
return err;
}
@@ -10327,7 +10315,7 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) {
WIDE(DATA), 0, BUF(
file->buffer, file->buffer_size))
: LFSR_ATTR(file->m.mdir.mid,
WIDE(RM(STRUCT)), 0, NULL))));
WIDE(RM(STRUCT)), 0, NULL()))));
if (err) {
goto failed;
}
@@ -10373,7 +10361,7 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) {
err = lfsr_mdir_commit(lfs, &file->m.mdir, LFSR_ATTRS(
(lfsr_file_isbnull(file))
? LFSR_ATTR(file->m.mdir.mid,
WIDE(RM(STRUCT)), 0, NULL)
WIDE(RM(STRUCT)), 0, NULL())
: (lfsr_file_isbsprout(file))
? LFSR_ATTR(file->m.mdir.mid,
WIDE(DATA), 0, DATA(file->u.bsprout.data))
@@ -10467,7 +10455,7 @@ int lfsr_file_truncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size) {
file->buffer_size,
size - lfs_min32(file->buffer_pos, size));
if (buffer_size >= size) {
file->u.bsprout = LFSR_BSPROUT_NULL;
file->u.bsprout = LFSR_FILE_BNULL();
// TODO, wait, could we just update file->size and leave it to
// lfsr_file_sync to update the shrub?
@@ -10477,7 +10465,7 @@ int lfsr_file_truncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size) {
lfs_min32(file->size, size),
file->size - lfs_min32(file->size, size),
+size - file->size,
LFSR_TAG_DATA, LFSR_DATA_NULL);
LFSR_TAG_DATA, LFSR_DATA_NULL());
if (err) {
return err;
}
@@ -10519,7 +10507,7 @@ int lfsr_file_fruncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size) {
lfs_smax32(file->size - size - file->buffer_pos, 0),
file->buffer_size);
if (buffer_size >= size) {
file->u.bsprout = LFSR_BSPROUT_NULL;
file->u.bsprout = LFSR_FILE_BNULL();
// otherwise, we need to modify our sprout/bptr/bshrub/btree
} else {
@@ -10529,13 +10517,13 @@ int lfsr_file_fruncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size) {
// revert shrubs if they go to zero
if ((lfs_soff_t)(file->size - size)
>= (lfs_soff_t)lfsr_file_uweight(file)) {
file->u.bsprout = LFSR_BSPROUT_NULL;
file->u.bsprout = LFSR_FILE_BNULL();
} else {
int err = lfsr_file_carve(lfs, file,
0,
lfs_smax32(file->size - size, 0),
+size - file->size,
LFSR_TAG_DATA, LFSR_DATA_NULL);
LFSR_TAG_DATA, LFSR_DATA_NULL());
if (err) {
return err;
}
@@ -14067,8 +14055,8 @@ static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) {
lfs->opened[LFS_TYPE_INTERNAL - LFS_TYPE_REG] = NULL;
// zero gstate
memset(lfs->ggrm, 0, LFSR_GRM_DSIZE);
memset(lfs->dgrm, 0, LFSR_GRM_DSIZE);
memset(lfs->grm_g, 0, LFSR_GRM_DSIZE);
memset(lfs->grm_d, 0, LFSR_GRM_DSIZE);
return 0;
+2 -2
View File
@@ -617,8 +617,8 @@ typedef struct lfs {
// begin lfsr things
lfsr_grm_t grm;
uint8_t ggrm[LFSR_GRM_DSIZE];
uint8_t dgrm[LFSR_GRM_DSIZE];
uint8_t grm_g[LFSR_GRM_DSIZE];
uint8_t grm_d[LFSR_GRM_DSIZE];
uint8_t mbits;
lfsr_mdir_t mroot;
+12 -12
View File
@@ -51,7 +51,7 @@ code = '''
// the struct tag
return lfsr_btree_commit(lfs, btree, LFSR_ATTRS(
LFSR_ATTR(bid, WIDE(TAG(tag)), 0, DATA(data)),
LFSR_ATTR(bid, GROW, weight - weight_, NULL)));
LFSR_ATTR(bid, GROW, weight - weight_, NULL())));
}
static int lfsr_btree_pop(lfs_t *lfs, lfsr_btree_t *btree, lfs_size_t bid) {
@@ -67,7 +67,7 @@ code = '''
}
return lfsr_btree_commit(lfs, btree, LFSR_ATTRS(
LFSR_ATTR(bid, RM, -weight_, NULL)));
LFSR_ATTR(bid, RM, -weight_, NULL())));
}
static int lfsr_btree_split(lfs_t *lfs, lfsr_btree_t *btree,
@@ -86,12 +86,12 @@ code = '''
}
return lfsr_btree_commit(lfs, btree, LFSR_ATTRS(
LFSR_ATTR(bid, GROW, +weight1-weight_, NULL),
LFSR_ATTR(bid, GROW, +weight1-weight_, NULL()),
LFSR_ATTR(bid-(weight_-1)+weight1-1, TAG(tag1), 0, DATA(data1)),
(lfsr_data_size(&name) > 0
? LFSR_ATTR(bid-(weight_-1)+weight1,
NAME, +weight2, DATA(name))
: LFSR_ATTR_NOOP),
: LFSR_ATTR_NOOP()),
(lfsr_data_size(&name) > 0
? LFSR_ATTR(bid-(weight_-1)+weight1+weight2-1,
TAG(tag2), 0, DATA(data2))
@@ -2216,7 +2216,7 @@ code = '''
LFSR_DATA_BUF(&alphas[0 % 26], 1)) => 0;
lfs_size_t n = 1;
for (lfs_size_t i = 1; i < N; i++) {
int err = lfsr_btree_split(&lfs, &btree, i-1, LFSR_DATA_NULL,
int err = lfsr_btree_split(&lfs, &btree, i-1, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(&alphas[(i-1) % 26], 1),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(&alphas[(i-0) % 26], 1));
// ignore space issues
@@ -2289,7 +2289,7 @@ code = '''
lfs_size_t bid = TEST_PRNG(&prng) % sim_size;
// split btree
int err = lfsr_btree_split(&lfs, &btree, bid, LFSR_DATA_NULL,
int err = lfsr_btree_split(&lfs, &btree, bid, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(&alphas[i % 26], 1),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(&uppers[i % 26], 1));
// ignore space issues
@@ -2365,7 +2365,7 @@ code = '''
LFSR_DATA_BUF(&alphas[0 % 26], 1)) => 0;
lfs_size_t n = 1;
for (lfs_size_t i = 1; i < N; i++) {
int err = lfsr_btree_split(&lfs, &btree, (i-1)*W+W-1, LFSR_DATA_NULL,
int err = lfsr_btree_split(&lfs, &btree, (i-1)*W+W-1, LFSR_DATA_NULL(),
LFSR_TAG_DATA, W, LFSR_DATA_BUF(&alphas[(i-1) % 26], 1),
LFSR_TAG_DATA, W, LFSR_DATA_BUF(&alphas[(i-0) % 26], 1));
// ignore space issues
@@ -2452,7 +2452,7 @@ code = '''
// split btree
int err = lfsr_btree_split(&lfs, &btree,
weighted_bid+sim_weights[bid]-1, LFSR_DATA_NULL,
weighted_bid+sim_weights[bid]-1, LFSR_DATA_NULL(),
LFSR_TAG_DATA, weight1,
LFSR_DATA_BUF(&alphas[i % 26], 1),
LFSR_TAG_DATA, weight2,
@@ -2605,7 +2605,7 @@ code = '''
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL,
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf1, SIZE),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf2, SIZE)) => 0;
// force compaction
@@ -2668,7 +2668,7 @@ code = '''
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL,
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf1, SIZE),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf2, SIZE)) => 0;
// force compaction
@@ -2734,7 +2734,7 @@ code = '''
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL,
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf1, SIZE),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf2, SIZE)) => 0;
@@ -2795,7 +2795,7 @@ code = '''
memset(buf1, 'a', SIZE);
uint8_t buf2[SIZE];
memset(buf2, 'b', SIZE);
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL,
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NULL(),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf1, SIZE),
LFSR_TAG_DATA, 1, LFSR_DATA_BUF(buf2, SIZE)) => 0;
// force compaction
+82 -82
View File
@@ -24,7 +24,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -74,7 +74,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -120,7 +120,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -170,7 +170,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -242,7 +242,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -297,7 +297,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -351,7 +351,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -443,7 +443,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -573,7 +573,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -656,7 +656,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -719,7 +719,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -788,7 +788,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
}
@@ -895,7 +895,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
}
@@ -1023,7 +1023,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -1125,7 +1125,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// test that our directories match our simulation
@@ -1272,7 +1272,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -1433,7 +1433,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -1596,7 +1596,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -1759,7 +1759,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -1837,7 +1837,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -1869,7 +1869,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that remove worked with stat
@@ -1920,7 +1920,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -1975,7 +1975,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -2063,7 +2063,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -2093,7 +2093,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that remove worked with stat
@@ -2144,7 +2144,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -2236,7 +2236,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -2277,7 +2277,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2313,7 +2313,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2344,7 +2344,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2459,7 +2459,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -2520,7 +2520,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2576,7 +2576,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2617,7 +2617,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our remove worked
@@ -2670,7 +2670,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -2713,7 +2713,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -2785,7 +2785,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -2828,7 +2828,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -2911,7 +2911,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -2988,7 +2988,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3003,7 +3003,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3122,7 +3122,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -3231,7 +3231,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3246,7 +3246,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3261,7 +3261,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3407,7 +3407,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -3455,7 +3455,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -3575,7 +3575,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// test that our directories match our simulation
@@ -3644,7 +3644,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -3676,7 +3676,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that rename worked with stat
@@ -3726,7 +3726,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -3761,7 +3761,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that rename worked with stat
@@ -3809,7 +3809,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -3841,7 +3841,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that rename worked with stat
@@ -3900,7 +3900,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -3956,7 +3956,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -4065,7 +4065,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked with stat
@@ -4095,7 +4095,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that rename worked with stat
@@ -4149,7 +4149,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// and check that this didn't interfere with our original directory
@@ -4278,7 +4278,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -4319,7 +4319,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4360,7 +4360,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4401,7 +4401,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4624,7 +4624,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -4685,7 +4685,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4746,7 +4746,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4807,7 +4807,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our rename worked
@@ -4896,7 +4896,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -4943,7 +4943,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -5011,7 +5011,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -5058,7 +5058,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
@@ -5133,7 +5133,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -5211,7 +5211,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
for (lfs_size_t j = 0; j < N; j++) {
@@ -5230,7 +5230,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
}
@@ -5345,7 +5345,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdirs worked
@@ -5454,7 +5454,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
for (lfs_size_t j = 0; j < N; j++) {
@@ -5473,7 +5473,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
for (lfs_size_t k = 0; k < N; k++) {
@@ -5494,7 +5494,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
}
}
@@ -5634,7 +5634,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// check that our mkdir worked
@@ -5690,7 +5690,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// update old_name's path
@@ -5837,7 +5837,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// test that our directories match our simulation
@@ -5992,7 +5992,7 @@ code = '''
lfsr_unmount(&lfs) => 0;
lfsr_mount(&lfs, CFG) => 0;
// grm should be zero here
assert(lfs.ggrm[0] == 0);
assert(lfs.grm_g[0] == 0);
}
// test that our directories match our simulation
+64 -64
View File
@@ -164,7 +164,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with a large attr so the next entry can not fit
uint8_t buffer[SIZE];
@@ -238,7 +238,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create 2 large entries that needs to be uninlined and split
uint8_t buffer[SIZE];
@@ -311,7 +311,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -413,7 +413,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create entries
lfsr_mdir_t mdir;
@@ -505,7 +505,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// at least keep track of the number of entries we expect
lfs_size_t count = 0;
@@ -616,7 +616,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -643,7 +643,7 @@ code = '''
assert(mdir.u.m.weight == 1);
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -685,7 +685,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -715,7 +715,7 @@ code = '''
mdir.u.rbyd.eoff = -1;
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -757,7 +757,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -774,7 +774,7 @@ code = '''
// remove the entry as we compact, forcing the mdir to be dropped
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -816,7 +816,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an mdir that needs to be split
uint8_t buffer[SIZE];
@@ -834,7 +834,7 @@ code = '''
// remove the left entry as we compact, forcing the left
// mdir to be dropped
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 1*lfsr_mweight(&lfs));
@@ -883,7 +883,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an mdir that needs to be split
uint8_t buffer[SIZE];
@@ -901,7 +901,7 @@ code = '''
// remove the right entry as we compact, forcing the right mdir
// to be dropped
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 1*lfsr_mweight(&lfs));
@@ -950,7 +950,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an mdir that needs to be split
uint8_t buffer[SIZE];
@@ -967,8 +967,8 @@ code = '''
// remove both entries as we compact, forcing both mdirs to be dropped
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -1000,7 +1000,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -1037,7 +1037,7 @@ code = '''
// mdir to be dropped
mdir.mid = 0*lfsr_mweight(&lfs)+0;
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL))) => 0;
LFSR_ATTR(mdir.mid, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 1*lfsr_mweight(&lfs));
@@ -1095,7 +1095,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -1131,7 +1131,7 @@ code = '''
// remove the right entry as we compact, forcing the right
// mdir to be dropped
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 1*lfsr_mweight(&lfs));
@@ -1189,7 +1189,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -1224,8 +1224,8 @@ code = '''
// remove both entries as we compact, forcing both mdirs to be dropped
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -1272,7 +1272,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create entries
lfsr_mdir_t mdir;
@@ -1310,7 +1310,7 @@ code = '''
}
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
}
// try looking up each entry
@@ -1378,7 +1378,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
for (lfs_size_t cycle = 0; cycle < CYCLES; cycle++) {
// create entries, note we may have leftovers from the previous cycle
@@ -1437,7 +1437,7 @@ code = '''
}
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
}
// try looking up each entry
@@ -1504,7 +1504,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// at least keep track of the number of entries we expect
lfs_size_t count = 0;
@@ -1553,7 +1553,7 @@ code = '''
// delete
} else {
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL))) => 0;
LFSR_ATTR(mdir.mid, RM, -1, NULL()))) => 0;
count -= 1;
}
@@ -1641,7 +1641,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with a large attr so the next entry can not fit
uint8_t buffer[SIZE];
@@ -1736,7 +1736,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create 2 large entries that needs to be uninlined and split
uint8_t buffer[SIZE];
@@ -1830,7 +1830,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create 2 large entries that needs to be uninlined and split
uint8_t buffer[SIZE];
@@ -1924,7 +1924,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with an attr
uint8_t buffer[SIZE];
@@ -1983,7 +1983,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with an attr
uint8_t buffer[SIZE];
@@ -2041,7 +2041,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with an attr
uint8_t buffer[SIZE];
@@ -2108,7 +2108,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with a large attr so the next entry can not fit
uint8_t buffer[SIZE];
@@ -2214,7 +2214,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -2327,7 +2327,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -2359,7 +2359,7 @@ code = '''
assert(mdir.u.m.weight == 1);
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL))) => 0;
LFSR_ATTR(mdir.mid, RM, -1, NULL()))) => 0;
// assert mdir was dropped
assert(lfsr_mtree_weight(&lfs) == 0*lfsr_mweight(&lfs));
@@ -2409,7 +2409,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// force mroot to compact once, so the second compact below will trigger
// a relocation
@@ -2497,7 +2497,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// force mroot to compact once, so the second compact below will trigger
// a relocation
@@ -2587,7 +2587,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// at least keep track of the number of entries we expect
lfs_size_t count = 0;
@@ -2649,7 +2649,7 @@ code = '''
// delete
} else {
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL))) => 0;
LFSR_ATTR(mdir.mid, RM, -1, NULL()))) => 0;
count -= 1;
}
@@ -2732,7 +2732,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -2782,7 +2782,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -2800,7 +2800,7 @@ code = '''
// try removing our left entry
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// assert that an entry was removed
assert(lfs.mroot.u.m.weight == 1);
@@ -2825,7 +2825,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -2843,7 +2843,7 @@ code = '''
// try removing our left entry
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
// assert that an entry was removed
assert(lfs.mroot.u.m.weight == 1);
@@ -2870,7 +2870,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -2950,7 +2950,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -3025,7 +3025,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -3129,7 +3129,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// setup our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -3195,7 +3195,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create an uninlined mdir
uint8_t buffer[SIZE];
@@ -3288,7 +3288,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
//// create a situation where we have 3 mdirs in our tree
@@ -3381,7 +3381,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
//// create a situation where we have 3 mdirs in our tree
@@ -3437,7 +3437,7 @@ code = '''
lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0;
assert(mdir.u.m.weight == 1);
lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
LFSR_ATTR(mdir.mid, RM, -1, NULL))) => 0;
LFSR_ATTR(mdir.mid, RM, -1, NULL()))) => 0;
// we should now have 2 mdirs
assert(lfsr_mtree_weight(&lfs) == 2*lfsr_mweight(&lfs));
@@ -3470,7 +3470,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// insert a new entry, this should update our neighbors
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
@@ -3562,7 +3562,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with a large attr so the next entry can not fit
uint8_t buffer[SIZE];
@@ -3687,7 +3687,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create 2 large entries that needs to be uninlined and split
uint8_t buffer[SIZE];
@@ -3816,7 +3816,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// prepare mroot with an attr
uint8_t buffer[SIZE];
@@ -3923,7 +3923,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// create entries
lfsr_mdir_t mdir;
@@ -4065,7 +4065,7 @@ code = '''
lfs_alloc_ack(&lfs);
// remove root bookmark for now
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
// at least keep track of the number of entries we expect
lfs_size_t count = 0;
+87 -87
View File
@@ -2631,7 +2631,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
@@ -2651,7 +2651,7 @@ code = '''
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(-1, UATTR(2), 0, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
@@ -2687,7 +2687,7 @@ code = '''
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(-1, UATTR(2), 0, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
@@ -2787,7 +2787,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(j+1)), 0, NULL)))
LFSR_ATTR(-1, RM(UATTR(j+1)), 0, NULL())))
=> 0;
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -2932,7 +2932,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(j+1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(j+1)), 0, NULL()))) => 0;
// try traversing over the tags
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -3011,7 +3011,7 @@ code = '''
// try to remove tags that aren't there, this should do nothing
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3036,7 +3036,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3061,7 +3061,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3140,9 +3140,9 @@ code = '''
LFSR_ATTR(-1, UATTR(5), 0, BUF("\xee\xee\xee\xee", 4)))) => 0;
// remove several attributes
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL),
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL),
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()),
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL()),
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
@@ -3169,7 +3169,7 @@ code = '''
// try to remove tags that aren't there, this should do nothing
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3194,7 +3194,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3219,7 +3219,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3246,7 +3246,7 @@ code = '''
// try to remove the tags again, just to make sure (keep in mind
// these removes still commit to the rbyd)
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3271,7 +3271,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(3)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3296,7 +3296,7 @@ code = '''
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(5)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => 0;
assert(tag_ == LFSR_TAG_UATTR(2));
@@ -3370,7 +3370,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
@@ -3390,8 +3390,8 @@ code = '''
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(-1, UATTR(2), 0, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL),
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()),
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
@@ -3411,8 +3411,8 @@ code = '''
LFSR_ATTR(-1, UATTR(1), 0, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(-1, UATTR(2), 0, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL),
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(2)), 0, NULL()),
LFSR_ATTR(-1, RM(UATTR(1)), 0, NULL()))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1),
&rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT;
@@ -3500,7 +3500,7 @@ code = '''
// remove each tag in permutation order
for (unsigned j = 0; j < N; j++) {
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(perm[j]+1)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(perm[j]+1)), 0, NULL()))) => 0;
}
// check that all tags are now removed
@@ -3616,7 +3616,7 @@ code = '''
sim[attr] = '\0';
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(-1, RM(UATTR(attr)), 0, NULL))) => 0;
LFSR_ATTR(-1, RM(UATTR(attr)), 0, NULL()))) => 0;
}
}
@@ -6125,7 +6125,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j/M, RM(UATTR((j%M)+1)), 0, NULL))) => 0;
LFSR_ATTR(j/M, RM(UATTR((j%M)+1)), 0, NULL()))) => 0;
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
for (unsigned k = 0; k < N; k++) {
@@ -6308,7 +6308,7 @@ code = '''
for (unsigned j = 0; j < N*M; j++) {
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(perm[j]/M, RM(UATTR(perm[j]%M+1)),
0, NULL))) => 0;
0, NULL()))) => 0;
}
// check that all tags have been removed
@@ -6761,7 +6761,7 @@ code = '''
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 1);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -6781,7 +6781,7 @@ code = '''
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 1);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -6802,7 +6802,7 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(2, RM, -1, NULL))) => 0;
LFSR_ATTR(2, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -6825,7 +6825,7 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -6848,7 +6848,7 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -6889,7 +6889,7 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF( "\xbb\xbb", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 1);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -6925,7 +6925,7 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF( "\xbb\xbb", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 1);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -6963,7 +6963,7 @@ code = '''
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(2, UATTR(1), 0, BUF( "\xcc\xcc", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(2, RM, -1, NULL))) => 0;
LFSR_ATTR(2, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4) => 4;
@@ -7012,7 +7012,7 @@ code = '''
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(2, UATTR(1), 0, BUF( "\xcc\xcc", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7062,7 +7062,7 @@ code = '''
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(2, UATTR(1), 0, BUF( "\xcc\xcc", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 2);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7193,7 +7193,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM, -1, NULL))) => 0;
LFSR_ATTR(j, RM, -1, NULL()))) => 0;
assert(rbyd.weight == N-1);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -7353,7 +7353,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM, -1, NULL))) => 0;
LFSR_ATTR(j, RM, -1, NULL()))) => 0;
assert(rbyd.weight == N-1);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -7536,7 +7536,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM, -1, NULL))) => 0;
LFSR_ATTR(j, RM, -1, NULL()))) => 0;
assert(rbyd.weight == N-1);
// try traversing over the tags
@@ -7666,7 +7666,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM, -1, NULL))) => 0;
LFSR_ATTR(j, RM, -1, NULL()))) => 0;
assert(rbyd.weight == N-1);
// try traversing over the tags
@@ -7738,7 +7738,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7756,8 +7756,8 @@ code = '''
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7775,8 +7775,8 @@ code = '''
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7795,9 +7795,9 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7816,9 +7816,9 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(2, RM, -1, NULL),
LFSR_ATTR(1, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(2, RM, -1, NULL()),
LFSR_ATTR(1, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7853,7 +7853,7 @@ code = '''
LFSR_ATTR(0, REG, +1, BUF("\xaa\xaa\xaa\xaa", 4)),
LFSR_ATTR(0, UATTR(1), 0, BUF( "\xaa\xaa", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7873,8 +7873,8 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF( "\xbb\xbb", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7894,8 +7894,8 @@ code = '''
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF( "\xbb\xbb", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(1, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7917,9 +7917,9 @@ code = '''
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(2, UATTR(1), 0, BUF( "\xcc\xcc", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -7941,9 +7941,9 @@ code = '''
LFSR_ATTR(2, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(2, UATTR(1), 0, BUF( "\xcc\xcc", 2)))) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(2, RM, -1, NULL),
LFSR_ATTR(1, RM, -1, NULL),
LFSR_ATTR(0, RM, -1, NULL))) => 0;
LFSR_ATTR(2, RM, -1, NULL()),
LFSR_ATTR(1, RM, -1, NULL()),
LFSR_ATTR(0, RM, -1, NULL()))) => 0;
assert(rbyd.weight == 0);
lfsr_rbyd_get(&lfs, &rbyd, 0, LFSR_TAG_REG, buffer, 4)
@@ -8045,7 +8045,7 @@ code = '''
lfs_size_t rbyd_weight_before = rbyd.weight;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid, RM, -1, NULL))) => 0;
LFSR_ATTR(rid, RM, -1, NULL()))) => 0;
assert(rbyd.weight == rbyd_weight_before-1);
}
@@ -8193,7 +8193,7 @@ code = '''
lfs_size_t rbyd_weight_before = rbyd.weight;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid, RM, -1, NULL))) => 0;
LFSR_ATTR(rid, RM, -1, NULL()))) => 0;
assert(rbyd.weight == rbyd_weight_before-1);
}
@@ -8330,7 +8330,7 @@ code = '''
count -= 1;
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid, RM, -1, NULL))) => 0;
LFSR_ATTR(rid, RM, -1, NULL()))) => 0;
}
}
@@ -8972,7 +8972,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF("\xbb\xbb", 2)),
LFSR_ATTR(1, RM, +1, NULL),
LFSR_ATTR(1, RM, +1, NULL()),
LFSR_ATTR(2, UATTR(2), 0, BUF("\xbb\xbb", 2)))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3),
@@ -9066,7 +9066,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(3, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(3, UATTR(1), 0, BUF("\xcc\xcc", 2)),
LFSR_ATTR(3, RM, +2, NULL),
LFSR_ATTR(3, RM, +2, NULL()),
LFSR_ATTR(5, UATTR(2), 0, BUF("\xcc\xcc", 2)))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3),
@@ -9196,7 +9196,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(6, REG, +1, BUF("\xdd\xdd\xdd\xdd", 4)),
LFSR_ATTR(6, UATTR(1), 0, BUF("\xdd\xdd", 2)),
LFSR_ATTR(6, RM, +3, NULL),
LFSR_ATTR(6, RM, +3, NULL()),
LFSR_ATTR(9, UATTR(2), 0, BUF("\xdd\xdd", 2)))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3),
@@ -9362,7 +9362,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(10, REG, +1, BUF("\xee\xee\xee\xee", 4)),
LFSR_ATTR(10, UATTR(1), 0, BUF("\xee\xee", 2)),
LFSR_ATTR(10, RM, +4, NULL),
LFSR_ATTR(10, RM, +4, NULL()),
LFSR_ATTR(14, UATTR(2), 0, BUF("\xee\xee", 2)))) => 0;
lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3),
@@ -9591,22 +9591,22 @@ code = '''
// make id2 with weight w2
LFSR_ATTR(1, REG, +1, BUF("\xbb\xbb\xbb\xbb", 4)),
LFSR_ATTR(1, UATTR(1), 0, BUF("\xbb\xbb", 2)),
LFSR_ATTR(1, RM, +1, NULL),
LFSR_ATTR(1, RM, +1, NULL()),
LFSR_ATTR(2, UATTR(2), 0, BUF("\xbb\xbb", 2)),
// make id5 with weight w3
LFSR_ATTR(3, REG, +1, BUF("\xcc\xcc\xcc\xcc", 4)),
LFSR_ATTR(3, UATTR(1), 0, BUF("\xcc\xcc", 2)),
LFSR_ATTR(3, RM, +2, NULL),
LFSR_ATTR(3, RM, +2, NULL()),
LFSR_ATTR(5, UATTR(2), 0, BUF("\xcc\xcc", 2)),
// make id9 with weight w4
LFSR_ATTR(6, REG, +1, BUF("\xdd\xdd\xdd\xdd", 4)),
LFSR_ATTR(6, UATTR(1), 0, BUF("\xdd\xdd", 2)),
LFSR_ATTR(6, RM, +3, NULL),
LFSR_ATTR(6, RM, +3, NULL()),
LFSR_ATTR(9, UATTR(2), 0, BUF("\xdd\xdd", 2)),
// make id14 with weight w5
LFSR_ATTR(10, REG, +1, BUF("\xee\xee\xee\xee", 4)),
LFSR_ATTR(10, UATTR(1), 0, BUF("\xee\xee", 2)),
LFSR_ATTR(10, RM, +4, NULL),
LFSR_ATTR(10, RM, +4, NULL()),
LFSR_ATTR(14, UATTR(2), 0, BUF("\xee\xee", 2)))) => 0;
// traverse, finding tags and weights
@@ -9882,7 +9882,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid*W, REG, +1, BUF(names[perm[j] % 6], 4)),
LFSR_ATTR(rid*W, UATTR(1), 0, BUF(names[perm[j] % 6], 2)),
LFSR_ATTR(rid*W, RM, +W-1, NULL),
LFSR_ATTR(rid*W, RM, +W-1, NULL()),
LFSR_ATTR(rid*W+W-1, UATTR(2), 0,
BUF(names[perm[j] % 6], 2)))) => 0;
}
@@ -9993,7 +9993,7 @@ code = '''
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid*W, REG, +1, BUF(names[perm[j] % 6], 4)),
LFSR_ATTR(rid*W, UATTR(1), 0, BUF(names[perm[j] % 6], 2)),
LFSR_ATTR(rid*W, RM, +W-1, NULL),
LFSR_ATTR(rid*W, RM, +W-1, NULL()),
LFSR_ATTR(rid*W+W-1, UATTR(2), 0,
BUF(names[perm[j] % 6], 2)))) => 0;
}
@@ -10132,7 +10132,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j*W+W-1, RM, +D, NULL))) => 0;
LFSR_ATTR(j*W+W-1, RM, +D, NULL()))) => 0;
assert(rbyd.weight == N*W+D);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -10543,7 +10543,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j*W+W-1, GROW, -D, NULL))) => 0;
LFSR_ATTR(j*W+W-1, GROW, -D, NULL()))) => 0;
assert(rbyd.weight == N*W-D);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -10953,7 +10953,7 @@ code = '''
lfs_bd_flush(&lfs, &lfs.pcache, &lfs.rcache, false) => 0;
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j*W+W-1, RM, -W, NULL))) => 0;
LFSR_ATTR(j*W+W-1, RM, -W, NULL()))) => 0;
assert(rbyd.weight == (N-1)*W);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -11139,7 +11139,7 @@ code = '''
// now try removing the attr
printf("--- removing: %d ---\n", j);
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j*W+W-1, RM(UATTR(1)), 0, NULL))) => 0;
LFSR_ATTR(j*W+W-1, RM(UATTR(1)), 0, NULL()))) => 0;
assert(rbyd.weight == N*W);
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -11282,7 +11282,7 @@ code = '''
count -= 1;
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid, RM, -1, NULL))) => 0;
LFSR_ATTR(rid, RM, -1, NULL()))) => 0;
} else if (op == 2) {
// update our sim
sim[rid*(M+1) + u+1] = alpha[i % 26];
@@ -11295,7 +11295,7 @@ code = '''
sim[rid*(M+1) + u+1] = '\0';
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(rid, RM(UATTR(u)), 0, NULL))) => 0;
LFSR_ATTR(rid, RM(UATTR(u)), 0, NULL()))) => 0;
}
}
@@ -11453,7 +11453,7 @@ code = '''
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(weighted_rid+weight_-1, RM, -weight_,
NULL))) => 0;
NULL()))) => 0;
} else if (op == 2) {
// get the correct weight from the sim
weight_ = sim_weights[rid];
@@ -11462,7 +11462,7 @@ code = '''
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(weighted_rid+weight_-1, GROW, +weight,
NULL))) => 0;
NULL()))) => 0;
} else if (op == 3) {
// get the correct weight from the sim
weight_ = sim_weights[rid];
@@ -11474,7 +11474,7 @@ code = '''
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(weighted_rid+weight_-1, GROW, -weight,
NULL))) => 0;
NULL()))) => 0;
}
}
@@ -11717,7 +11717,7 @@ code = '''
// remove with a wide tag
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL))) => 0;
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL()))) => 0;
// try traversing over the tags
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -12084,7 +12084,7 @@ code = '''
// remove with a wide tag
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL))) => 0;
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL()))) => 0;
// try traversing over the tags
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;
@@ -12461,7 +12461,7 @@ code = '''
// remove with a wide tag
lfsr_rbyd_commit(&lfs, &rbyd, LFSR_ATTRS(
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL))) => 0;
LFSR_ATTR(j, RM(WIDE(UATTR)), 0, NULL()))) => 0;
// try traversing over the tags
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, CFG->block_size) => 0;