diff --git a/lfs.c b/lfs.c index 13aee002..c92db4cf 100644 --- a/lfs.c +++ b/lfs.c @@ -1585,8 +1585,8 @@ static bool lfsr_rbyd_isfetched(const lfsr_rbyd_t *rbyd) { // allocate an rbyd block -static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd, uint32_t rev) { - *rbyd = (lfsr_rbyd_t){.rev=rev, .weight=0, .trunk=0, .off=0, .crc=0}; +static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd) { + *rbyd = (lfsr_rbyd_t){.weight=0, .trunk=0, .off=0, .crc=0}; int err = lfs_alloc(lfs, &rbyd->block); if (err) { return err; @@ -1602,20 +1602,16 @@ static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd, uint32_t rev) { static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd, lfs_block_t block, lfs_size_t trunk) { - // read the revision count and get the crc started - uint32_t rev; + // checksum the revision count to get the crc started uint32_t crc = 0; - int err = lfsr_bd_readcsum(lfs, block, 0, lfs->cfg->block_size, - &rev, sizeof(uint32_t), - &crc); + int err = lfsr_bd_csum(lfs, block, 0, lfs->cfg->block_size, + sizeof(uint32_t), &crc); if (err) { return err; } - rev = lfs_fromle32_(&rev); rbyd->block = block; rbyd->off = 0; - rbyd->rev = rev; // temporary state until we validate a crc lfs_off_t off = sizeof(uint32_t); @@ -1904,6 +1900,33 @@ static lfs_ssize_t lfsr_rbyd_get(lfs_t *lfs, const lfsr_rbyd_t *rbyd, } +// append a revision count +// +// this is optional, if not called revision count defaults to 0 (for btrees) +static int lfsr_rbyd_appendrev(lfs_t *lfs, lfsr_rbyd_t *rbyd, uint32_t rev) { + // should only be called before any tags are written + LFS_ASSERT(rbyd->off == 0); + + // revision count stored as le32, we don't use a leb128 encoding as we + // intentionally allow the revision count to overflow + uint8_t buf[sizeof(uint32_t)]; + lfs_tole32_(rev, &buf); + int err = lfsr_bd_prog(lfs, rbyd->block, rbyd->off, + &buf, sizeof(uint32_t), &rbyd->crc); + if (err) { + goto failed; + } + rbyd->off += sizeof(uint32_t); + + return 0; + +failed: + // if we fail mark the rbyd as unerased and release the pcache + lfs_cache_zero(lfs, &lfs->pcache); + rbyd->off = lfs->cfg->block_size; + return err; +} + // helper functions for managing the 3-element fifo used in lfsr_rbyd_append static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd, lfsr_tag_t p_alts[static 3], @@ -2033,16 +2056,12 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd, return 0; } - // make sure every rbyd starts with its revision count + // make sure every rbyd starts with a revision count if (rbyd->off == 0) { - uint8_t buf[sizeof(uint32_t)]; - lfs_tole32_(rbyd->rev, &buf); - err = lfsr_bd_prog(lfs, rbyd->block, rbyd->off, - &buf, sizeof(uint32_t), &rbyd->crc); + err = lfsr_rbyd_appendrev(lfs, rbyd, 0); if (err) { goto failed; } - rbyd->off += sizeof(uint32_t); } // figure out the range of tags we're operating on @@ -2593,19 +2612,16 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd, goto failed; } - // setup commit state + // setup commit state, use a separate rbyd so we have a fallback in + // case of error lfsr_rbyd_t rbyd_ = *rbyd; // make sure every rbyd starts with its revision count if (rbyd_.off == 0) { - uint8_t buf[sizeof(uint32_t)]; - lfs_tole32_(rbyd_.rev, &buf); - err = lfsr_bd_prog(lfs, rbyd_.block, rbyd_.off, - &buf, sizeof(uint32_t), &rbyd_.crc); + err = lfsr_rbyd_appendrev(lfs, &rbyd_, 0); if (err) { goto failed; } - rbyd_.off += sizeof(uint32_t); } // append each tag to the tree @@ -3598,9 +3614,8 @@ static int lfsr_btree_commit(lfs_t *lfs, goto split; } - // TODO were we doing something funky with rev? // allocate a new rbyd - err = lfsr_rbyd_alloc(lfs, &rbyd_, rbyd->rev+1); + err = lfsr_rbyd_alloc(lfs, &rbyd_); if (err) { return err; } @@ -3692,16 +3707,15 @@ static int lfsr_btree_commit(lfs_t *lfs, return split_id; } - // TODO were we doing something funky with rev? // allocate a new rbyd - err = lfsr_rbyd_alloc(lfs, &rbyd_, rbyd->rev+1); + err = lfsr_rbyd_alloc(lfs, &rbyd_); if (err) { return err; } // allocate a sibling lfsr_rbyd_t sibling; - err = lfsr_rbyd_alloc(lfs, &sibling, rbyd->rev+1); + err = lfsr_rbyd_alloc(lfs, &sibling); if (err) { return err; } @@ -3787,7 +3801,7 @@ static int lfsr_btree_commit(lfs_t *lfs, // no parent? introduce a new trunk if (pid == -1) { - int err = lfsr_rbyd_alloc(lfs, &parent, 1); + int err = lfsr_rbyd_alloc(lfs, &parent); if (err) { return err; } @@ -4067,7 +4081,7 @@ static int lfsr_btree_push(lfs_t *lfs, lfsr_btree_t *btree, // inlined btree, need to expand into an rbyd } else if (lfsr_btree_isinlined(btree)) { lfsr_rbyd_t rbyd; - int err = lfsr_rbyd_alloc(lfs, &rbyd, 1); + int err = lfsr_rbyd_alloc(lfs, &rbyd); if (err) { return err; } @@ -4307,7 +4321,7 @@ static int lfsr_btree_split(lfs_t *lfs, lfsr_btree_t *btree, // inlined btree, need to expand into an rbyd if (lfsr_btree_isinlined(btree)) { lfsr_rbyd_t rbyd; - int err = lfsr_rbyd_alloc(lfs, &rbyd, 1); + int err = lfsr_rbyd_alloc(lfs, &rbyd); if (err) { return err; } @@ -4670,7 +4684,6 @@ static int lfsr_mdir_alloc(lfs_t *lfs, lfsr_mdir_t *mdir, lfs_ssize_t mid) { // mark mdir as needing compaction mdir->rbyd.off = lfs->cfg->block_size; mdir->rbyd.trunk = 0; - mdir->rbyd.rev = rev; return 0; } @@ -4829,27 +4842,50 @@ static int lfsr_mdir_compact_(lfs_t *lfs, lfsr_mdir_t *mdir, const lfsr_mdir_t *source, const lfsr_attr_t *attr1s, lfs_size_t attr1_count, const lfsr_attr_t *attr2s, lfs_size_t attr2_count) { - // TODO different indicator? // note mid indicates some special cases: // - mid = manchor => never alloc (mroot anchor) // - mid = wl => only alloc if mdir is tired (wear-leveling) // - otherwise => always alloc, use this mid (new mdir) - if (mid != LFSR_MID_MANCHOR && (mid != LFSR_MID_WL || ( - lfs->cfg->block_cycles > 0 - && (mdir->rbyd.rev+1) % lfs->cfg->block_cycles == 0))) { - // allocate a new mdir for relocation - int err = lfsr_mdir_alloc(lfs, mdir, - (mid != LFSR_MID_WL ? mid : mdir->mid)); - if (err) { + uint32_t rev; + if (mid != LFSR_MID_MANCHOR) { + // first thing we need to do is read our current revision count + int err = lfsr_bd_read(lfs, source->rbyd.block, 0, sizeof(uint32_t), + &rev, sizeof(uint32_t)); + if (err && err != LFS_ERR_CORRUPT) { return err; } + // note we allow corrupt errors here, as long as they are consistent + rev = (err != LFS_ERR_CORRUPT ? lfs_fromle32_(&rev) : 0); + + // decide if we need to relocate + if (mid != LFSR_MID_WL || ( + lfs->cfg->block_cycles > 0 + // TODO rev things + && (rev + 1) % lfs->cfg->block_cycles == 0)) { + // allocate a new mdir for relocation + err = lfsr_mdir_alloc(lfs, mdir, + (mid != LFSR_MID_WL ? mid : mdir->mid)); + if (err) { + return err; + } + + // read the new revision count + // + // we use whatever is on-disk to avoid needing to rewrite the + // redund block + err = lfsr_bd_read(lfs, mdir->rbyd.block, 0, sizeof(uint32_t), + &rev, sizeof(uint32_t)); + if (err && err != LFS_ERR_CORRUPT) { + return err; + } + // note we allow corrupt errors here, as long as they are consistent + rev = (err != LFS_ERR_CORRUPT ? lfs_fromle32_(&rev) : 0); + } } // swap our rbyds lfs_swap32(&mdir->rbyd.block, &mdir->other_block); // update our revision count - // TODO rev things - mdir->rbyd.rev += 1; mdir->rbyd.off = 0; mdir->rbyd.trunk = 0; mdir->rbyd.weight = 0; @@ -4861,6 +4897,13 @@ static int lfsr_mdir_compact_(lfs_t *lfs, lfsr_mdir_t *mdir, return err; } + // increment our revision count and write it to our rbyd + // TODO rev things + err = lfsr_rbyd_appendrev(lfs, &mdir->rbyd, rev + 1); + if (err) { + return err; + } + // copy over attrs err = lfsr_rbyd_compact(lfs, &mdir->rbyd, start_id, end_id, false, &source->rbyd); @@ -4891,7 +4934,7 @@ static int lfsr_mdir_compact_(lfs_t *lfs, lfsr_mdir_t *mdir, // drop commit if weight goes to zero if (mdir->mid >= 0 && mdir->rbyd.weight == 0) { - lfs_cache_drop(lfs, &lfs->pcache); + lfs_cache_zero(lfs, &lfs->pcache); // finalize commit } else { @@ -4921,7 +4964,7 @@ static int lfsr_mdir_commit_(lfs_t *lfs, lfsr_mdir_t *mdir, // drop commit if weight goes to zero if (mdir_.mid >= 0 && mdir_.rbyd.weight == 0) { - lfs_cache_drop(lfs, &lfs->pcache); + lfs_cache_zero(lfs, &lfs->pcache); // finalize commit } else { @@ -6151,16 +6194,21 @@ static int lfsr_formatinited(lfs_t *lfs) { return d; } - for (int i = 0; i < 2; i++) { + for (uint32_t i = 0; i < 2; i++) { // write superblock to both rbyds in the root mroot to hopefully // avoid mounting an older filesystem on disk - lfsr_rbyd_t rbyd = {.block=i, .rev=i-1, .off=0, .trunk=0}; + lfsr_rbyd_t rbyd = {.block=i, .off=0, .trunk=0}; int err = lfsr_bd_erase(lfs, rbyd.block); if (err) { return err; } + err = lfsr_rbyd_appendrev(lfs, &rbyd, (uint32_t)i - 1); + if (err) { + return err; + } + err = lfsr_rbyd_commit(lfs, &rbyd, LFSR_ATTRS( LFSR_ATTR(-1, SUPERMAGIC, 0, "littlefs", 8), LFSR_ATTR(-1, SUPERCONFIG, 0, buf, d))); diff --git a/lfs.h b/lfs.h index 5af32386..18e4beb8 100644 --- a/lfs.h +++ b/lfs.h @@ -340,7 +340,6 @@ typedef struct lfsr_rbyd { // off=block_size => rbyd not erased/needs compaction lfs_off_t off; lfs_off_t trunk; - uint32_t rev; uint32_t crc; } lfsr_rbyd_t; diff --git a/tests/test_rbyd.toml b/tests/test_rbyd.toml index 0890e311..d2c38b7a 100644 --- a/tests/test_rbyd.toml +++ b/tests/test_rbyd.toml @@ -21,7 +21,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -59,7 +58,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -98,7 +96,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -132,7 +129,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -255,7 +251,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -380,7 +375,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -472,7 +466,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -566,7 +559,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -630,7 +622,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -696,7 +687,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -776,7 +766,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -920,7 +909,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -1092,7 +1080,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -1264,7 +1251,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -1444,7 +1430,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -1652,7 +1637,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -1819,7 +1803,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2007,7 +1990,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2099,7 +2081,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2181,7 +2162,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2271,7 +2251,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2367,7 +2346,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2440,7 +2418,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2512,7 +2489,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2623,7 +2599,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2686,7 +2661,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2799,7 +2773,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -2950,7 +2923,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3045,7 +3017,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3195,7 +3166,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3431,7 +3401,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3520,7 +3489,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3647,7 +3615,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3783,7 +3750,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -3931,7 +3897,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4093,7 +4058,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4196,7 +4160,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4290,7 +4253,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4397,7 +4359,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4510,7 +4471,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4603,7 +4563,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4691,7 +4650,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4760,7 +4718,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -4995,7 +4952,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5257,7 +5213,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5372,7 +5327,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5477,7 +5431,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5644,7 +5597,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5822,7 +5774,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -5933,7 +5884,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6043,7 +5993,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6172,7 +6121,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6367,7 +6315,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6492,7 +6439,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6584,7 +6530,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6724,7 +6669,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -6881,7 +6825,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7008,7 +6951,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7255,7 +7197,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7410,7 +7351,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7601,7 +7541,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7726,7 +7665,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7865,7 +7803,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -7980,7 +7917,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8114,7 +8050,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8257,7 +8192,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8418,7 +8352,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8553,7 +8486,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8791,7 +8723,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8901,7 +8832,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -8988,7 +8918,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -9074,7 +9003,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -9747,7 +9675,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10004,7 +9931,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10116,7 +10042,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10238,7 +10163,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10365,7 +10289,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10501,7 +10424,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10650,7 +10572,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10777,7 +10698,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -10913,7 +10833,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11061,7 +10980,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11215,7 +11133,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11395,7 +11312,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11578,7 +11494,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11802,7 +11717,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -11890,7 +11804,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12028,7 +11941,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12168,7 +12080,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12257,7 +12168,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12403,7 +12313,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12551,7 +12460,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12638,7 +12546,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0, @@ -12778,7 +12685,6 @@ code = ''' lfsr_rbyd_t init_rbyd = { .block = 0, - .rev = 1, .off = 0, .crc = 0, .trunk = 0,