Folded rbyd.erased into rbyd.off=block_size, some rbyd cleanup
- The erased flag in lfsr_rbyd_t uses only a single bit, which is wasteful for a heavily used struct in littlefs. We can use rbyd.off=block_size to indicate the same state for free. Note that when rbyd.off=block_size, we must treat rbyd as unerased anyways. - Improved state handling in rbyd_append/commit when an error occurs. I will be trying to make better use of cleanup gotos to make these functions less unpredictable when an error occurs. Hopefully the state of littlefs after an error can be well-defined in the future. - Fixed sign-mismatch warnings in asserts when compiled outside of the test runner.
This commit is contained in:
@@ -1168,7 +1168,7 @@ static int lfs_alloc(lfs_t *lfs, lfs_block_t *block) {
|
|||||||
|
|
||||||
// allocate an rbyd block
|
// allocate an rbyd block
|
||||||
static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd, uint32_t rev) {
|
static int lfsr_rbyd_alloc(lfs_t *lfs, lfsr_rbyd_t *rbyd, uint32_t rev) {
|
||||||
*rbyd = (lfsr_rbyd_t){.erased=true, .rev=rev};
|
*rbyd = (lfsr_rbyd_t){.rev=rev, .off=0};
|
||||||
int err = lfs_alloc(lfs, &rbyd->block);
|
int err = lfs_alloc(lfs, &rbyd->block);
|
||||||
if (err) {
|
if (err) {
|
||||||
return err;
|
return err;
|
||||||
@@ -1501,7 +1501,7 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// did we end on a valid commit? we may have an erased block
|
// did we end on a valid commit? we may have an erased block
|
||||||
rbyd->erased = false;
|
bool erased = false;
|
||||||
if (maybeerased && rbyd->off % lfs->cfg->prog_size == 0) {
|
if (maybeerased && rbyd->off % lfs->cfg->prog_size == 0) {
|
||||||
// check for an fcrc matching the next prog's erased state, if
|
// check for an fcrc matching the next prog's erased state, if
|
||||||
// this failed most likely a previous prog was interrupted, we
|
// this failed most likely a previous prog was interrupted, we
|
||||||
@@ -1517,7 +1517,11 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// found beginning of erased part?
|
// found beginning of erased part?
|
||||||
rbyd->erased = (fcrc_ == fcrc.crc);
|
erased = (fcrc_ == fcrc.crc);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!erased) {
|
||||||
|
rbyd->off = lfs->cfg->block_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -1927,25 +1931,26 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
// never write zero tags to disk, use unr if tag contains no data
|
// never write zero tags to disk, use unr if tag contains no data
|
||||||
LFS_ASSERT(tag != 0);
|
LFS_ASSERT(tag != 0);
|
||||||
|
|
||||||
|
// we can't do anything if we're not erased
|
||||||
|
int err;
|
||||||
|
if (rbyd->off >= lfs->cfg->block_size) {
|
||||||
|
err = LFS_ERR_RANGE;
|
||||||
|
goto failed;
|
||||||
|
}
|
||||||
|
|
||||||
// ignore noops
|
// ignore noops
|
||||||
if (lfsr_tag_setnomk(tag) == LFSR_TAG_UNR && delta == 0) {
|
if (lfsr_tag_setnomk(tag) == LFSR_TAG_UNR && delta == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// we can't do anything if we're not erased
|
|
||||||
if (!rbyd->erased) {
|
|
||||||
return LFS_ERR_RANGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// make sure every rbyd starts with its revision count
|
// make sure every rbyd starts with its revision count
|
||||||
if (rbyd->off == 0) {
|
if (rbyd->off == 0) {
|
||||||
uint32_t rev;
|
uint32_t rev;
|
||||||
lfs_tole32_(rbyd->rev, &rev);
|
lfs_tole32_(rbyd->rev, &rev);
|
||||||
int err = lfsr_rbyd_prog(lfs, rbyd,
|
err = lfsr_rbyd_prog(lfs, rbyd,
|
||||||
&rev, sizeof(uint32_t), &rbyd->crc);
|
&rev, sizeof(uint32_t), &rbyd->crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1958,7 +1963,7 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
lfsr_tag_t other_tag_;
|
lfsr_tag_t other_tag_;
|
||||||
if (lfsr_tag_ismk(tag) && delta > 0) {
|
if (lfsr_tag_ismk(tag) && delta > 0) {
|
||||||
LFS_ASSERT(id <= rbyd->weight);
|
LFS_ASSERT(id <= (lfs_ssize_t)rbyd->weight);
|
||||||
|
|
||||||
// it's a bit ugly, but adjusting the id here makes the following
|
// it's a bit ugly, but adjusting the id here makes the following
|
||||||
// logic work out more consistently
|
// logic work out more consistently
|
||||||
@@ -1969,7 +1974,7 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
tag_ = 0x10;
|
tag_ = 0x10;
|
||||||
other_tag_ = lfsr_tag_setupper(0x10);
|
other_tag_ = lfsr_tag_setupper(0x10);
|
||||||
} else if (lfsr_tag_ismk(tag) && delta < 0) {
|
} else if (lfsr_tag_ismk(tag) && delta < 0) {
|
||||||
LFS_ASSERT(id < rbyd->weight);
|
LFS_ASSERT(id < (lfs_ssize_t)rbyd->weight);
|
||||||
|
|
||||||
// it's a bit ugly, but adjusting the id here makes the following
|
// it's a bit ugly, but adjusting the id here makes the following
|
||||||
// logic work out more consistently
|
// logic work out more consistently
|
||||||
@@ -1980,14 +1985,14 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
tag_ = 0x10;
|
tag_ = 0x10;
|
||||||
other_tag_ = lfsr_tag_setupper(0x10);
|
other_tag_ = lfsr_tag_setupper(0x10);
|
||||||
} else if (lfsr_tag_isrm(tag)) {
|
} else if (lfsr_tag_isrm(tag)) {
|
||||||
LFS_ASSERT(id < rbyd->weight);
|
LFS_ASSERT(id < (lfs_ssize_t)rbyd->weight);
|
||||||
|
|
||||||
id_ = id - lfs_smax32(-delta, 0);
|
id_ = id - lfs_smax32(-delta, 0);
|
||||||
other_id_ = id;
|
other_id_ = id;
|
||||||
tag_ = lfsr_tag_key(tag);
|
tag_ = lfsr_tag_key(tag);
|
||||||
other_tag_ = lfsr_tag_setupper(lfsr_tag_key(tag) + 0x10);
|
other_tag_ = lfsr_tag_setupper(lfsr_tag_key(tag) + 0x10);
|
||||||
} else {
|
} else {
|
||||||
LFS_ASSERT(id < rbyd->weight);
|
LFS_ASSERT(id < (lfs_ssize_t)rbyd->weight);
|
||||||
|
|
||||||
id_ = id - lfs_smax32(-delta, 0);
|
id_ = id - lfs_smax32(-delta, 0);
|
||||||
other_id_ = id;
|
other_id_ = id;
|
||||||
@@ -2048,8 +2053,8 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
&lfs->pcache, &lfs->rcache, 0,
|
&lfs->pcache, &lfs->rcache, 0,
|
||||||
rbyd->block, branch, &alt, &weight, &jump, NULL);
|
rbyd->block, branch, &alt, &weight, &jump, NULL);
|
||||||
if (d < 0) {
|
if (d < 0) {
|
||||||
rbyd->erased = false;
|
err = d;
|
||||||
return d;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// found an alt?
|
// found an alt?
|
||||||
@@ -2239,13 +2244,11 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// push alt onto our queue
|
// push alt onto our queue
|
||||||
LFS_ASSERT(weight >= 0);
|
err = lfsr_rbyd_p_push(lfs, rbyd,
|
||||||
int err = lfsr_rbyd_p_push(lfs, rbyd,
|
|
||||||
p_alts, p_weights, p_jumps,
|
p_alts, p_weights, p_jumps,
|
||||||
alt, weight, jump);
|
alt, weight, jump);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// found end of tree?
|
// found end of tree?
|
||||||
@@ -2340,12 +2343,11 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (alt) {
|
if (alt) {
|
||||||
int err = lfsr_rbyd_p_push(lfs, rbyd,
|
err = lfsr_rbyd_p_push(lfs, rbyd,
|
||||||
p_alts, p_weights, p_jumps,
|
p_alts, p_weights, p_jumps,
|
||||||
alt, weight, branch);
|
alt, weight, branch);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lfsr_tag_isred(p_alts[0])) {
|
if (lfsr_tag_isred(p_alts[0])) {
|
||||||
@@ -2355,11 +2357,10 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// flush any pending alts
|
// flush any pending alts
|
||||||
int err = lfsr_rbyd_p_flush(lfs, rbyd,
|
err = lfsr_rbyd_p_flush(lfs, rbyd,
|
||||||
p_alts, p_weights, p_jumps, 3);
|
p_alts, p_weights, p_jumps, 3);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
leaf:;
|
leaf:;
|
||||||
@@ -2371,49 +2372,53 @@ leaf:;
|
|||||||
lfsr_tag_setnomk(tag), upper_id - lower_id - 1 + delta,
|
lfsr_tag_setnomk(tag), upper_id - lower_id - 1 + delta,
|
||||||
lfsr_data_len(data), &rbyd->crc);
|
lfsr_data_len(data), &rbyd->crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// don't forget the data!
|
// don't forget the data!
|
||||||
err = lfsr_rbyd_progdata(lfs, rbyd, data, &rbyd->crc);
|
err = lfsr_rbyd_progdata(lfs, rbyd, data, &rbyd->crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd->erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
||||||
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
|
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
|
||||||
// we can't do anything if we're not erased
|
// we can't do anything if we're not erased
|
||||||
if (!rbyd->erased) {
|
int err;
|
||||||
return LFS_ERR_RANGE;
|
if (rbyd->off >= lfs->cfg->block_size) {
|
||||||
|
err = LFS_ERR_RANGE;
|
||||||
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// setup commit state
|
// setup commit state
|
||||||
lfsr_rbyd_t rbyd_ = *rbyd;
|
lfsr_rbyd_t rbyd_ = *rbyd;
|
||||||
// mark erased in case we fail
|
|
||||||
rbyd->erased = false;
|
|
||||||
|
|
||||||
// make sure every rbyd starts with its revision count
|
// make sure every rbyd starts with its revision count
|
||||||
if (rbyd_.off == 0) {
|
if (rbyd_.off == 0) {
|
||||||
uint32_t rev;
|
uint32_t rev;
|
||||||
lfs_tole32_(rbyd_.rev, &rev);
|
lfs_tole32_(rbyd_.rev, &rev);
|
||||||
int err = lfsr_rbyd_prog(lfs, &rbyd_,
|
err = lfsr_rbyd_prog(lfs, &rbyd_,
|
||||||
&rev, sizeof(uint32_t), &rbyd_.crc);
|
&rev, sizeof(uint32_t), &rbyd_.crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
return err;
|
goto failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// append each tag to the tree
|
// append each tag to the tree
|
||||||
for (lfs_size_t i = 0; i < attr_count; i++) {
|
for (lfs_size_t i = 0; i < attr_count; i++) {
|
||||||
int err = lfsr_rbyd_append(lfs, &rbyd_,
|
err = lfsr_rbyd_append(lfs, &rbyd_,
|
||||||
attrs[i].id, attrs[i].tag, attrs[i].delta, attrs[i].data);
|
attrs[i].id, attrs[i].tag, attrs[i].delta, attrs[i].data);
|
||||||
if (err) {
|
if (err) {
|
||||||
return err;
|
goto failed;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2446,14 +2451,14 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
|
|
||||||
// space for fcrc?
|
// space for fcrc?
|
||||||
uint8_t perturb = 0;
|
uint8_t perturb = 0;
|
||||||
if (aligned <= lfs->cfg->block_size - lfs->cfg->prog_size) {
|
if (aligned < lfs->cfg->block_size) {
|
||||||
// read the leading byte in case we need to change the expected
|
// read the leading byte in case we need to change the expected
|
||||||
// value of the next tag's valid bit
|
// value of the next tag's valid bit
|
||||||
int err = lfs_bd_read(lfs,
|
int err = lfs_bd_read(lfs,
|
||||||
&lfs->pcache, &lfs->rcache, lfs->cfg->prog_size,
|
&lfs->pcache, &lfs->rcache, lfs->cfg->prog_size,
|
||||||
rbyd_.block, aligned, &perturb, 1);
|
rbyd_.block, aligned, &perturb, 1);
|
||||||
if (err && err != LFS_ERR_CORRUPT) {
|
if (err && err != LFS_ERR_CORRUPT) {
|
||||||
rbyd_.erased = false;
|
rbyd->off = lfs->cfg->block_size;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2464,8 +2469,7 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
&lfs->pcache, &lfs->rcache, lfs->cfg->prog_size,
|
&lfs->pcache, &lfs->rcache, lfs->cfg->prog_size,
|
||||||
rbyd_.block, aligned, fcrc.size, &fcrc.crc);
|
rbyd_.block, aligned, fcrc.size, &fcrc.crc);
|
||||||
if (err && err != LFS_ERR_CORRUPT) {
|
if (err && err != LFS_ERR_CORRUPT) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t fbuf[LFSR_FCRC_DSIZE];
|
uint8_t fbuf[LFSR_FCRC_DSIZE];
|
||||||
@@ -2473,29 +2477,24 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
err = lfsr_rbyd_progtag(lfs, &rbyd_,
|
err = lfsr_rbyd_progtag(lfs, &rbyd_,
|
||||||
LFSR_TAG_FCRC, 0, fcrc_delta, &rbyd_.crc);
|
LFSR_TAG_FCRC, 0, fcrc_delta, &rbyd_.crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
err = lfsr_rbyd_prog(lfs, &rbyd_,
|
err = lfsr_rbyd_prog(lfs, &rbyd_,
|
||||||
fbuf, fcrc_delta, &rbyd_.crc);
|
fbuf, fcrc_delta, &rbyd_.crc);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// recalculate aligned without fcrc
|
|
||||||
aligned = lfs_alignup(
|
|
||||||
rbyd_.off + 1+1+5+4,
|
|
||||||
lfs->cfg->prog_size);
|
|
||||||
rbyd_.erased = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// not even space for the crc?
|
// at least space for a crc?
|
||||||
if (aligned > lfs->cfg->block_size) {
|
} else if (rbyd_.off + 2+1+5+4 <= lfs->cfg->block_size) {
|
||||||
lfs_cache_zero(lfs, &lfs->pcache);
|
// note this implicitly marks the rbyd as unerased
|
||||||
rbyd_.erased = false;
|
aligned = lfs->cfg->block_size;
|
||||||
return LFS_ERR_RANGE;
|
|
||||||
|
// not even space for a crc? we can't finish the commit
|
||||||
|
} else {
|
||||||
|
err = LFS_ERR_RANGE;
|
||||||
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// build end-of-commit crc
|
// build end-of-commit crc
|
||||||
@@ -2525,17 +2524,15 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
}
|
}
|
||||||
lfs_tole32_(rbyd_.crc, &buffer[2+1+5]);
|
lfs_tole32_(rbyd_.crc, &buffer[2+1+5]);
|
||||||
|
|
||||||
int err = lfsr_rbyd_prog(lfs, &rbyd_, buffer, 2+1+5+4, NULL);
|
err = lfsr_rbyd_prog(lfs, &rbyd_, buffer, 2+1+5+4, NULL);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// flush our caches, finalizing the commit on-disk
|
// flush our caches, finalizing the commit on-disk
|
||||||
err = lfs_bd_sync(lfs, &lfs->pcache, &lfs->rcache, false);
|
err = lfs_bd_sync(lfs, &lfs->pcache, &lfs->rcache, false);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// succesful commit, check checksum to make sure
|
// succesful commit, check checksum to make sure
|
||||||
@@ -2544,8 +2541,7 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
NULL, &lfs->rcache, rbyd_.off-4,
|
NULL, &lfs->rcache, rbyd_.off-4,
|
||||||
rbyd_.block, rbyd->off, rbyd_.off-4 - rbyd->off, &crc_);
|
rbyd_.block, rbyd->off, rbyd_.off-4 - rbyd->off, &crc_);
|
||||||
if (err) {
|
if (err) {
|
||||||
rbyd_.erased = false;
|
goto failed;
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rbyd_.crc != crc_) {
|
if (rbyd_.crc != crc_) {
|
||||||
@@ -2553,14 +2549,20 @@ static int lfsr_rbyd_commit(lfs_t *lfs, lfsr_rbyd_t *rbyd,
|
|||||||
LFS_ERROR("Rbyd corrupted during commit "
|
LFS_ERROR("Rbyd corrupted during commit "
|
||||||
"(block=0x%"PRIx32", 0x%08"PRIx32" != 0x%08"PRIx32")",
|
"(block=0x%"PRIx32", 0x%08"PRIx32" != 0x%08"PRIx32")",
|
||||||
rbyd_.block, rbyd_.crc, crc_);
|
rbyd_.block, rbyd_.crc, crc_);
|
||||||
rbyd_.erased = false;
|
err = LFS_ERR_CORRUPT;
|
||||||
return LFS_ERR_CORRUPT;
|
goto failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ok, everything is good, save what we've committed
|
// ok, everything is good, save what we've committed
|
||||||
rbyd_.off = aligned;
|
rbyd_.off = aligned;
|
||||||
*rbyd = rbyd_;
|
*rbyd = rbyd_;
|
||||||
return 0;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -332,13 +332,12 @@ typedef struct lfs_cache {
|
|||||||
|
|
||||||
typedef struct lfsr_rbyd {
|
typedef struct lfsr_rbyd {
|
||||||
lfs_block_t block;
|
lfs_block_t block;
|
||||||
uint32_t rev;
|
// off=block_size => rbyd not erased/needs compaction
|
||||||
lfs_off_t off;
|
lfs_off_t off;
|
||||||
uint32_t crc;
|
|
||||||
lfs_off_t trunk;
|
lfs_off_t trunk;
|
||||||
lfs_size_t weight;
|
lfs_size_t weight;
|
||||||
// TODO can we get rid of erased? use sign bit of off maybe?
|
uint32_t rev;
|
||||||
bool erased;
|
uint32_t crc;
|
||||||
} lfsr_rbyd_t;
|
} lfsr_rbyd_t;
|
||||||
|
|
||||||
//typedef struct lfsr_btree {
|
//typedef struct lfsr_btree {
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
|
|
||||||
@@ -65,7 +64,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
|
|
||||||
@@ -105,7 +103,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
|
|
||||||
@@ -140,7 +137,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -265,7 +261,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -392,7 +387,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -485,7 +479,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -580,7 +573,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -646,7 +638,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -714,7 +705,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -796,7 +786,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -942,7 +931,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -1116,7 +1104,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -1290,7 +1277,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -1472,7 +1458,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -1682,7 +1667,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -1851,7 +1835,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2041,7 +2024,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2135,7 +2117,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2219,7 +2200,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2311,7 +2291,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2409,7 +2388,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2484,7 +2462,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2558,7 +2535,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2671,7 +2647,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2736,7 +2711,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -2851,7 +2825,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3006,7 +2979,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3104,7 +3076,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3256,7 +3227,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3494,7 +3464,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3585,7 +3554,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -3714,7 +3682,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -3851,7 +3818,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -4000,7 +3966,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -4163,7 +4128,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -4267,7 +4231,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -4362,7 +4325,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -4471,7 +4433,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -4586,7 +4547,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -4681,7 +4641,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -4771,7 +4730,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -4842,7 +4800,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -5078,7 +5035,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -5341,7 +5297,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -5457,7 +5412,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -5563,7 +5517,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -5732,7 +5685,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -5912,7 +5864,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -6025,7 +5976,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -6137,7 +6087,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
"\xaa\xaa\xaa\xaa",
|
"\xaa\xaa\xaa\xaa",
|
||||||
@@ -6267,7 +6216,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
"\xaa\xaa\xaa\xaa",
|
"\xaa\xaa\xaa\xaa",
|
||||||
@@ -6466,7 +6414,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
"\xaa\xaa\xaa\xaa",
|
"\xaa\xaa\xaa\xaa",
|
||||||
@@ -6592,7 +6539,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -6686,7 +6632,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -6828,7 +6773,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -6987,7 +6931,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -7115,7 +7058,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -7363,7 +7305,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -7521,7 +7462,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -7715,7 +7655,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -7843,7 +7782,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -7985,7 +7923,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -8101,7 +8038,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
uint8_t buffer[4];
|
uint8_t buffer[4];
|
||||||
@@ -8236,7 +8172,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -8380,7 +8315,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -8542,7 +8476,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -8678,7 +8611,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -8918,7 +8850,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -9030,7 +8961,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -9119,7 +9049,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -9207,7 +9136,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -9882,7 +9810,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
@@ -10141,7 +10068,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -10255,7 +10181,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -10379,7 +10304,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -10509,7 +10433,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -10647,7 +10570,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -10794,7 +10716,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -10924,7 +10845,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -11062,7 +10982,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -11208,7 +11127,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][6] = {
|
const uint8_t names[6][6] = {
|
||||||
@@ -11366,7 +11284,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const uint8_t names[6][4] = {
|
const uint8_t names[6][4] = {
|
||||||
@@ -11549,7 +11466,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
const char *alpha = "abcdefghijklmnopqrstuvwxyz";
|
||||||
@@ -11733,7 +11649,6 @@ code = '''
|
|||||||
.crc = 0,
|
.crc = 0,
|
||||||
.trunk = 0,
|
.trunk = 0,
|
||||||
.weight = 0,
|
.weight = 0,
|
||||||
.erased = true,
|
|
||||||
};
|
};
|
||||||
lfsr_rbyd_t rbyd;
|
lfsr_rbyd_t rbyd;
|
||||||
lfsr_tag_t tag_;
|
lfsr_tag_t tag_;
|
||||||
|
|||||||
Reference in New Issue
Block a user