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:
@@ -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;
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user