From 40b926b9475f38a6ab0ec10c95b56abb25609689 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Sun, 28 Jan 2024 00:05:55 -0600 Subject: [PATCH] Removed mid argument from lfsr_mdir_lookup* With lfsr_mdir_t being a logical cursor pointing to a specific metadata entry in the on-disk mdir, we don't really need the mid to be provided on every lookup call (may have jumped the gun a bit in the attr-list changes). In the rare case we need to lookup unrelated mids, we call always call lfsr_rbyd_lookup on the underlying rbyd. This saves a little bit of code/stack: code stack before: 33964 2896 after: 33852 (-0.3%) 2888 (-0.3%) --- lfs.c | 81 ++++++------- tests/test_mtree.toml | 268 +++++++++++++++++++++--------------------- 2 files changed, 170 insertions(+), 179 deletions(-) diff --git a/lfs.c b/lfs.c index 4ff82d69..7b14d798 100644 --- a/lfs.c +++ b/lfs.c @@ -5128,12 +5128,12 @@ static int lfsr_mdir_fetch(lfs_t *lfs, lfsr_mdir_t *mdir, } static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, - lfsr_smid_t mid, lfsr_tag_t tag, + lfsr_tag_t tag, lfsr_tag_t *tag_, lfsr_data_t *data_) { lfsr_srid_t rid__; lfsr_tag_t tag__; int err = lfsr_rbyd_lookupnext(lfs, &mdir->rbyd, - lfsr_mid_rid(lfs, mid), tag, + lfsr_mid_rid(lfs, mdir->mid), tag, &rid__, &tag__, NULL, data_); if (err) { return err; @@ -5141,7 +5141,7 @@ static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, // this is very similar to lfsr_rbyd_lookupnext, but we error if // lookupnext would change mids - if (rid__ != lfsr_mid_rid(lfs, mid)) { + if (rid__ != lfsr_mid_rid(lfs, mdir->mid)) { return LFS_ERR_NOENT; } @@ -5151,7 +5151,7 @@ static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, // semantics, and it's easier to manage the implied mid gap in // higher-levels if (lfsr_tag_suptype(tag__) == LFSR_TAG_NAME - && lfsr_grm_isrm(&lfs->grm, mid)) { + && lfsr_grm_isrm(&lfs->grm, mdir->mid)) { tag__ = LFSR_TAG_ORPHAN; } @@ -5162,10 +5162,10 @@ static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, } static int lfsr_mdir_lookup(lfs_t *lfs, const lfsr_mdir_t *mdir, - lfsr_smid_t mid, lfsr_tag_t tag, + lfsr_tag_t tag, lfsr_data_t *data_) { lfsr_tag_t tag_; - int err = lfsr_mdir_lookupnext(lfs, mdir, mid, tag, + int err = lfsr_mdir_lookupnext(lfs, mdir, tag, &tag_, data_); if (err) { return err; @@ -5181,13 +5181,13 @@ static int lfsr_mdir_lookup(lfs_t *lfs, const lfsr_mdir_t *mdir, } static int lfsr_mdir_sublookup(lfs_t *lfs, const lfsr_mdir_t *mdir, - lfsr_smid_t mid, lfsr_tag_t tag, + lfsr_tag_t tag, lfsr_tag_t *tag_, lfsr_data_t *data_) { // looking up a wide tag with subtype is probably a mistake LFS_ASSERT(lfsr_tag_subtype(tag) == 0); lfsr_tag_t tag__; - int err = lfsr_mdir_lookupnext(lfs, mdir, mid, tag, + int err = lfsr_mdir_lookupnext(lfs, mdir, tag, &tag__, data_); if (err) { return err; @@ -5206,10 +5206,9 @@ static int lfsr_mdir_sublookup(lfs_t *lfs, const lfsr_mdir_t *mdir, } static int lfsr_mdir_suplookup(lfs_t *lfs, const lfsr_mdir_t *mdir, - lfsr_smid_t mid, lfsr_tag_t *tag_, lfsr_data_t *data_) { lfsr_tag_t tag__; - int err = lfsr_mdir_lookupnext(lfs, mdir, mid, 0, + int err = lfsr_mdir_lookupnext(lfs, mdir, 0, &tag__, data_); if (err) { return err; @@ -5388,7 +5387,7 @@ static void lfsr_fs_flushgdelta(lfs_t *lfs) { static int lfsr_fs_consumegdelta(lfs_t *lfs, const lfsr_mdir_t *mdir) { lfsr_data_t data; - int err = lfsr_mdir_lookup(lfs, mdir, -1, LFSR_TAG_GRMDELTA, + int err = lfsr_rbyd_lookup(lfs, &mdir->rbyd, -1, LFSR_TAG_GRMDELTA, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -5547,8 +5546,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, lfsr_tag_t tag = LFSR_TAG_STRUCT-1; while (true) { lfsr_data_t data; - int err = lfsr_mdir_lookupnext(lfs, mdir__, - mdir__->mid, tag+1, + int err = lfsr_mdir_lookupnext(lfs, mdir__, tag+1, &tag, &data); if (err) { if (err == LFS_ERR_NOENT) { @@ -6131,7 +6129,7 @@ static int lfsr_mroot_parent(lfs_t *lfs, const lfsr_mptr_t *mptr, // lookup next mroot lfsr_data_t data; - err = lfsr_mdir_lookup(lfs, &mdir, -1, LFSR_TAG_MROOT, + err = lfsr_mdir_lookup(lfs, &mdir, LFSR_TAG_MROOT, &data); if (err) { LFS_ASSERT(err != LFS_ERR_NOENT); @@ -7075,7 +7073,7 @@ static int lfsr_mtree_pathlookup(lfs_t *lfs, const char *path, // read the next did from the mdir if this is not the root if (mdir.mid != -1) { lfsr_data_t data; - int err = lfsr_mdir_lookup(lfs, &mdir, mdir.mid, LFSR_TAG_DID, + int err = lfsr_mdir_lookup(lfs, &mdir, LFSR_TAG_DID, &data); if (err) { return err; @@ -7225,7 +7223,7 @@ static int lfsr_traversal_read(lfs_t *lfs, lfsr_traversal_t *traversal, lfsr_tag_t tag; lfsr_data_t data; err = lfsr_mdir_sublookup(lfs, &traversal->file.mdir, - -1, LFSR_TAG_STRUCT, + LFSR_TAG_STRUCT, &tag, &data); if (err) { // if we have no mtree/mdir (inlined mdir), we need to traverse @@ -7436,7 +7434,7 @@ static int lfsr_traversal_read(lfs_t *lfs, lfsr_traversal_t *traversal, // do we have a block/btree? err = lfsr_mdir_lookupnext(lfs, &traversal->file.mdir, - traversal->file.mdir.mid, LFSR_TAG_DATA, + LFSR_TAG_DATA, &tag, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -7682,7 +7680,7 @@ static int lfs_deinit(lfs_t *lfs); static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { // has magic string? lfsr_data_t data; - int err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_MAGIC, + int err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_MAGIC, &data); if (err) { if (err == LFS_ERR_NOENT) { @@ -7704,7 +7702,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { } // check the disk version - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_VERSION, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_VERSION, &data); if (err) { if (err == LFS_ERR_NOENT) { @@ -7745,7 +7743,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { // check for any rcompatflags, we must understand these to read // the filesystem - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_RCOMPATFLAGS, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_RCOMPATFLAGS, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -7780,7 +7778,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { // check for any wcompatflags, we must understand these to write // the filesystem - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_WCOMPATFLAGS, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_WCOMPATFLAGS, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -7797,7 +7795,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { } // check block size - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_BLOCKSIZE, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_BLOCKSIZE, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -7822,7 +7820,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { } // check block count - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_BLOCKCOUNT, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_BLOCKCOUNT, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -7848,7 +7846,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { } // read the name limit - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_NAMELIMIT, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_NAMELIMIT, &data); if (err) { if (err == LFS_ERR_NOENT) { @@ -7877,7 +7875,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { lfs->name_limit = name_limit; // read the size limit - err = lfsr_mdir_lookup(lfs, mroot, -1, LFSR_TAG_SIZELIMIT, + err = lfsr_mdir_lookup(lfs, mroot, LFSR_TAG_SIZELIMIT, &data); if (err) { if (err == LFS_ERR_NOENT) { @@ -7907,7 +7905,7 @@ static int lfsr_mountmroot(lfs_t *lfs, const lfsr_mdir_t *mroot) { // check for unknown configs lfsr_tag_t tag; - err = lfsr_mdir_lookupnext(lfs, mroot, -1, LFSR_TAG_SIZELIMIT+1, + err = lfsr_mdir_lookupnext(lfs, mroot, LFSR_TAG_SIZELIMIT+1, &tag, NULL); if (err && err != LFS_ERR_NOENT) { return err; @@ -7979,7 +7977,7 @@ static int lfsr_mountinited(lfs_t *lfs) { for (lfs_size_t rid = 0; rid < (lfs_size_t)tinfo.u.mdir.rbyd.weight; rid++) { - err = lfsr_mdir_lookup(lfs, &tinfo.u.mdir, + err = lfsr_rbyd_lookup(lfs, &tinfo.u.mdir.rbyd, rid, LFSR_TAG_ORPHAN, NULL); if (err && err != LFS_ERR_NOENT) { @@ -8353,7 +8351,7 @@ static int lfsr_fs_fixorphans(lfs_t *lfs) { // is this mid opened? skip if (!lfsr_mid_isopened(lfs, mdir.mid)) { // are we an orphaned file? - err = lfsr_mdir_lookup(lfs, &mdir, mdir.mid, LFSR_TAG_ORPHAN, + err = lfsr_mdir_lookup(lfs, &mdir, LFSR_TAG_ORPHAN, NULL); if (err && err != LFS_ERR_NOENT) { return err; @@ -8607,7 +8605,7 @@ int lfsr_remove(lfs_t *lfs, const char *path) { if (tag == LFSR_TAG_DIR) { // first lets figure out the did lfsr_data_t data; - err = lfsr_mdir_lookup(lfs, &mdir, mdir.mid, LFSR_TAG_DID, + err = lfsr_mdir_lookup(lfs, &mdir, LFSR_TAG_DID, &data); if (err) { return err; @@ -8639,8 +8637,7 @@ int lfsr_remove(lfs_t *lfs, const char *path) { if (err != LFS_ERR_NOENT) { lfsr_tag_t bookmark_tag; - err = lfsr_mdir_sublookup(lfs, &bookmark_mdir, - bookmark_mdir.mid, LFSR_TAG_NAME, + err = lfsr_mdir_sublookup(lfs, &bookmark_mdir, LFSR_TAG_NAME, &bookmark_tag, NULL); if (err) { return err; @@ -8769,8 +8766,7 @@ int lfsr_rename(lfs_t *lfs, const char *old_path, const char *new_path) { // TODO deduplicate the isempty check with lfsr_remove? // first lets figure out the did lfsr_data_t data; - err = lfsr_mdir_lookup(lfs, &new_mdir, - new_mdir.mid, LFSR_TAG_DID, + err = lfsr_mdir_lookup(lfs, &new_mdir, LFSR_TAG_DID, &data); if (err) { return err; @@ -8802,8 +8798,7 @@ int lfsr_rename(lfs_t *lfs, const char *old_path, const char *new_path) { if (err != LFS_ERR_NOENT) { lfsr_tag_t bookmark_tag; - err = lfsr_mdir_sublookup(lfs, &bookmark_mdir, - bookmark_mdir.mid, LFSR_TAG_NAME, + err = lfsr_mdir_sublookup(lfs, &bookmark_mdir, LFSR_TAG_NAME, &bookmark_tag, NULL); if (err) { return err; @@ -8867,7 +8862,7 @@ static int lfsr_stat_(lfs_t *lfs, const lfsr_mdir_t *mdir, // inlined? lfsr_tag_t tag; lfsr_data_t data; - int err = lfsr_mdir_lookupnext(lfs, mdir, mdir->mid, LFSR_TAG_DATA, + int err = lfsr_mdir_lookupnext(lfs, mdir, LFSR_TAG_DATA, &tag, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -8955,7 +8950,7 @@ int lfsr_dir_open(lfs_t *lfs, lfsr_dir_t *dir, const char *path) { } lfsr_data_t data; - err = lfsr_mdir_lookup(lfs, &mdir, mdir.mid, LFSR_TAG_DID, + err = lfsr_mdir_lookup(lfs, &mdir, LFSR_TAG_DID, &data); if (err) { return err; @@ -9025,8 +9020,7 @@ int lfsr_dir_read(lfs_t *lfs, lfsr_dir_t *dir, struct lfs_info *info) { // lookup the next name tag lfsr_tag_t tag; lfsr_data_t data; - err = lfsr_mdir_sublookup(lfs, &dir->p.mdir, - dir->p.mdir.mid, LFSR_TAG_NAME, + err = lfsr_mdir_sublookup(lfs, &dir->p.mdir, LFSR_TAG_NAME, &tag, &data); if (err) { return err; @@ -9329,8 +9323,7 @@ int lfsr_file_opencfg(lfs_t *lfs, lfsr_file_t *file, // read any inlined state lfsr_tag_t tag; lfsr_data_t data; - err = lfsr_mdir_lookupnext(lfs, &file->m.mdir, - file->m.mdir.mid, LFSR_TAG_DATA, + err = lfsr_mdir_lookupnext(lfs, &file->m.mdir, LFSR_TAG_DATA, &tag, &data); if (err && err != LFS_ERR_NOENT) { return err; @@ -9473,8 +9466,7 @@ static lfs_ssize_t lfsr_bshrub_estimate(lfs_t *lfs, const lfsr_file_t *file) { // including the on-disk sprout/shrub lfsr_tag_t tag; lfsr_data_t data; - int err = lfsr_mdir_lookupnext(lfs, &file->m.mdir, - file->m.mdir.mid, LFSR_TAG_DATA, + int err = lfsr_mdir_lookupnext(lfs, &file->m.mdir, LFSR_TAG_DATA, &tag, &data); if (err && err != LFS_ERR_NOENT) { LFS_ASSERT(err < 0); @@ -11080,8 +11072,7 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) { // not created yet? need to convert orphan to normal file if (lfsr_f_isorphan(file->m.flags)) { lfsr_data_t data; - err = lfsr_mdir_lookup(lfs, &file->m.mdir, - file->m.mdir.mid, LFSR_TAG_ORPHAN, + err = lfsr_mdir_lookup(lfs, &file->m.mdir, LFSR_TAG_ORPHAN, &data); if (err) { // we must have an orphan at this point diff --git a/tests/test_mtree.toml b/tests/test_mtree.toml index d5875195..28c9770c 100644 --- a/tests/test_mtree.toml +++ b/tests/test_mtree.toml @@ -9,9 +9,9 @@ defines.LOOKAHEAD_SIZE = 'BLOCK_COUNT / 8' in = 'lfs.c' code = ''' static lfs_ssize_t lfsr_mdir_get(lfs_t *lfs, const lfsr_mdir_t *mdir, - lfs_ssize_t rid, lfsr_tag_t tag, void *buffer, lfs_size_t size) { + lfsr_tag_t tag, void *buffer, lfs_size_t size) { lfsr_data_t data; - int err = lfsr_mdir_lookup(lfs, mdir, rid, tag, &data); + int err = lfsr_mdir_lookup(lfs, mdir, tag, &data); if (err) { return err; } @@ -47,8 +47,8 @@ code = ''' for (lfs_size_t i = 0; i < N; i++) { uint8_t buffer[1]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(i), buffer, 1) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(i), + buffer, 1) => 1; assert(memcmp(buffer, &alphas[i % 26], 1) == 0); } @@ -60,8 +60,8 @@ code = ''' for (lfs_size_t i = 0; i < N; i++) { uint8_t buffer[1]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(i), buffer, 1) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(i), + buffer, 1) => 1; assert(memcmp(buffer, &alphas[i % 26], 1) == 0); } @@ -89,8 +89,8 @@ code = ''' for (lfs_size_t i = 0; i < N; i++) { uint8_t buffer[1]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(i), buffer, 1) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(i), + buffer, 1) => 1; assert(memcmp(buffer, &alphas[i % 26], 1) == 0); } @@ -102,8 +102,8 @@ code = ''' for (lfs_size_t i = 0; i < N; i++) { uint8_t buffer[1]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(i), buffer, 1) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(i), + buffer, 1) => 1; assert(memcmp(buffer, &alphas[i % 26], 1) == 0); } @@ -126,14 +126,14 @@ code = ''' LFSR_ATTR(UATTR(1), 0, BUF(&alphas[i % 26], 1)))) => 0; uint8_t buffer[4]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(1), buffer, 4) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), + buffer, 4) => 1; assert(memcmp(buffer, &alphas[i % 26], 1) == 0); } uint8_t buffer[4]; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(1), buffer, 4) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), + buffer, 4) => 1; assert(memcmp(buffer, &alphas[(N-1) % 26], 1) == 0); lfsr_unmount(&lfs) => 0; @@ -142,8 +142,8 @@ code = ''' // check things stay sane after remount lfsr_mount(&lfs, CFG) => 0; - lfsr_mdir_get(&lfs, &lfs.mroot, - -1, LFSR_TAG_UATTR(1), buffer, 4) => 1; + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), + buffer, 4) => 1; assert(memcmp(buffer, &alphas[(N-1) % 26], 1) == 0); lfsr_unmount(&lfs) => 0; @@ -185,13 +185,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -205,13 +205,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -256,13 +256,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -278,13 +278,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -345,19 +345,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -373,19 +373,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -421,7 +421,7 @@ code = ''' LFSR_ATTR(REG, +1, BUF(name, 4)))) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -430,14 +430,14 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; name[0] = '\0'; sprintf(name+1, "%03x", i); lfsr_mtree_seek(&lfs, &mdir, +1) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -448,14 +448,14 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; name[0] = '\0'; sprintf(name+1, "%03x", i); lfsr_mtree_seek(&lfs, &mdir, +1) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -509,7 +509,7 @@ code = ''' // double check uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -518,7 +518,7 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -527,7 +527,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -542,7 +542,7 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -551,7 +551,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -617,7 +617,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -633,7 +633,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -692,7 +692,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -708,7 +708,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -759,7 +759,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -775,7 +775,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -841,13 +841,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -863,13 +863,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -935,13 +935,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -957,13 +957,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1019,7 +1019,7 @@ code = ''' // double check uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); @@ -1050,7 +1050,7 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -1059,7 +1059,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -1074,7 +1074,7 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -1083,7 +1083,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -1150,13 +1150,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -1170,13 +1170,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -1242,13 +1242,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1264,13 +1264,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1336,13 +1336,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1358,13 +1358,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1405,7 +1405,7 @@ code = ''' // assert that our entry is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1416,7 +1416,7 @@ code = ''' // assert that our attr is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1474,7 +1474,7 @@ code = ''' // assert that our attr is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1485,7 +1485,7 @@ code = ''' // assert that our attr is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1535,7 +1535,7 @@ code = ''' // assert that our entry is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1546,7 +1546,7 @@ code = ''' // assert that our attr is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1617,13 +1617,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1639,13 +1639,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1720,19 +1720,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -1748,19 +1748,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -1830,7 +1830,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1846,7 +1846,7 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -1895,13 +1895,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -1915,13 +1915,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -1976,13 +1976,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -1998,13 +1998,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -2062,7 +2062,7 @@ code = ''' // double check uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); @@ -2090,7 +2090,7 @@ code = ''' // double check uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); @@ -2121,7 +2121,7 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -2130,7 +2130,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -2145,7 +2145,7 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -2154,7 +2154,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -2201,7 +2201,7 @@ code = ''' // assert our entry was created uint8_t buffer[2]; - lfsr_mdir_get(&lfs, &mdir, 2, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, 2) => 2; assert(buffer[1] == 'b'); @@ -2958,7 +2958,7 @@ code = ''' uint8_t buffer[256]; lfsr_mtree_namelookup(&lfs, 0, "a", 1, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 2; assert(memcmp(buffer, "\0a", 2) == 0); @@ -2969,7 +2969,7 @@ code = ''' // assert that our entry is still in the mtree lfsr_mtree_namelookup(&lfs, 0, "a", 1, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 2; assert(memcmp(buffer, "\0a", 2) == 0); @@ -3072,13 +3072,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -3092,13 +3092,13 @@ code = ''' assert(lfs.mroot.rbyd.weight == 0); // assert that our attrs are still in the mroot/mtree - lfsr_mdir_get(&lfs, &lfs.mroot, -1, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &lfs.mroot, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'a'); lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_UATTR(1), + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_UATTR(1), buffer, SIZE) => SIZE; assert(buffer[0] == 'b'); @@ -3207,13 +3207,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -3229,13 +3229,13 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); @@ -3360,19 +3360,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -3388,19 +3388,19 @@ code = ''' // assert that our entries are still in the mtree lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); lfsr_mtree_lookup(&lfs, 1*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); lfsr_mtree_lookup(&lfs, 2*lfsr_mweight(&lfs)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'c'); @@ -3496,7 +3496,7 @@ code = ''' uint8_t buffer[256]; lfsr_mtree_namelookup(&lfs, 0, "a", 1, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 2; assert(memcmp(buffer, "\0a", 2) == 0); @@ -3507,7 +3507,7 @@ code = ''' // assert that our entry is still in the mtree lfsr_mtree_namelookup(&lfs, 0, "a", 1, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 2; assert(memcmp(buffer, "\0a", 2) == 0); @@ -3543,7 +3543,7 @@ code = ''' LFSR_ATTR(REG, +1, BUF(name, 4)))) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -3610,14 +3610,14 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; name[0] = '\0'; sprintf(name+1, "%03x", i); lfsr_mtree_seek(&lfs, &mdir, +1) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -3628,14 +3628,14 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; name[0] = '\0'; sprintf(name+1, "%03x", i); lfsr_mtree_seek(&lfs, &mdir, +1) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -3689,7 +3689,7 @@ code = ''' // double check uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } @@ -3757,7 +3757,7 @@ code = ''' lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; uint8_t buffer[256]; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -3766,7 +3766,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -3781,7 +3781,7 @@ code = ''' // try looking up each entry lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_BOOKMARK, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_BOOKMARK, buffer, sizeof(buffer)) => 1; for (lfs_size_t i = 0; i < N; i++) { char name[256]; @@ -3790,7 +3790,7 @@ code = ''' if (sim[i]) { lfsr_mtree_namelookup(&lfs, 0, (const char*)name+1, 3, &mdir, NULL, NULL) => 0; - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { @@ -3909,7 +3909,7 @@ code = ''' // assert that our entry is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); @@ -3978,7 +3978,7 @@ code = ''' // assert that our attr is still in the mroot lfsr_mtree_lookup(&lfs, 0*lfsr_mweight(&lfs)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); - lfsr_mdir_get(&lfs, &mdir, mdir.mid, LFSR_TAG_REG, + lfsr_mdir_get(&lfs, &mdir, LFSR_TAG_REG, buffer, SIZE) => SIZE; assert(buffer[1] == 'a');