Dropped lfsr_sid_t for lfs_ssize_t

This commit is contained in:
Christopher Haster
2023-02-02 11:56:16 -06:00
parent 8628178631
commit 86bafaee27
3 changed files with 117 additions and 119 deletions
+63 -63
View File
@@ -565,25 +565,25 @@ static inline lfsr_tag_t lfsr_tag_key(lfsr_tag_t tag) {
return tag & ~0xf;
}
static inline bool lfsr_tag_follow(lfsr_tag_t alt, lfs_size_t weight,
lfsr_sid_t lower, lfsr_sid_t upper,
lfsr_tag_t tag, lfsr_sid_t id) {
static inline bool lfsr_tag_follow(lfsr_tag_t alt, lfs_ssize_t weight,
lfs_ssize_t lower, lfs_ssize_t upper,
lfsr_tag_t tag, lfs_ssize_t id) {
if (lfsr_tag_isgt(alt)) {
return id > upper - (lfs_ssize_t)weight - 1
|| (id == upper - (lfs_ssize_t)weight - 1
return id > upper - weight - 1
|| (id == upper - weight - 1
&& lfsr_tag_key(tag) > lfsr_tag_key(alt));
} else {
return id < lower + (lfs_ssize_t)weight
|| (id == lower + (lfs_ssize_t)weight
return id < lower + weight
|| (id == lower + weight
&& lfsr_tag_key(tag) <= lfsr_tag_key(alt));
}
}
static inline bool lfsr_tag_follow2(
lfsr_tag_t alt, lfs_size_t weight,
lfsr_tag_t alt2, lfs_size_t weight2,
lfsr_sid_t lower, lfsr_sid_t upper,
lfsr_tag_t tag, lfsr_sid_t id) {
lfsr_tag_t alt, lfs_ssize_t weight,
lfsr_tag_t alt2, lfs_ssize_t weight2,
lfs_ssize_t lower, lfs_ssize_t upper,
lfsr_tag_t tag, lfs_ssize_t id) {
if (lfsr_tag_isred(alt2) && lfsr_tag_isparallel(alt, alt2)) {
weight += weight2;
}
@@ -592,9 +592,9 @@ static inline bool lfsr_tag_follow2(
}
static inline bool lfsr_tag_prune2(
lfsr_tag_t alt, lfs_size_t weight,
lfsr_tag_t alt2, lfs_size_t weight2,
lfsr_sid_t lower_id, lfsr_sid_t upper_id,
lfsr_tag_t alt, lfs_ssize_t weight,
lfsr_tag_t alt2, lfs_ssize_t weight2,
lfs_ssize_t lower_id, lfs_ssize_t upper_id,
lfsr_tag_t lower_tag, lfsr_tag_t upper_tag) {
if (lfsr_tag_isgt(alt)) {
return lfsr_tag_follow2(
@@ -611,15 +611,15 @@ static inline bool lfsr_tag_prune2(
}
}
static inline void lfsr_tag_flip(lfsr_tag_t *alt, lfs_size_t *weight,
lfsr_sid_t lower, lfsr_sid_t upper) {
static inline void lfsr_tag_flip(lfsr_tag_t *alt, lfs_ssize_t *weight,
lfs_ssize_t lower, lfs_ssize_t upper) {
*alt = *alt ^ 0x4;
*weight = (upper-lower) - *weight - 1;
}
static inline void lfsr_tag_flip2(lfsr_tag_t *alt, lfs_size_t *weight,
static inline void lfsr_tag_flip2(lfsr_tag_t *alt, lfs_ssize_t *weight,
lfsr_tag_t alt2, lfs_size_t weight2,
lfsr_sid_t lower, lfsr_sid_t upper) {
lfs_ssize_t lower, lfs_ssize_t upper) {
if (lfsr_tag_isred(alt2)) {
*weight += weight2;
}
@@ -628,8 +628,8 @@ static inline void lfsr_tag_flip2(lfsr_tag_t *alt, lfs_size_t *weight,
}
static inline void lfsr_tag_trim(
lfsr_tag_t alt, lfs_size_t weight,
lfsr_sid_t *lower_id, lfsr_sid_t *upper_id,
lfsr_tag_t alt, lfs_ssize_t weight,
lfs_ssize_t *lower_id, lfs_ssize_t *upper_id,
lfsr_tag_t *lower_tag, lfsr_tag_t *upper_tag) {
if (lfsr_tag_isgt(alt)) {
*upper_id -= weight;
@@ -645,9 +645,9 @@ static inline void lfsr_tag_trim(
}
static inline void lfsr_tag_trim2(
lfsr_tag_t alt, lfs_size_t weight,
lfsr_tag_t alt2, lfs_size_t weight2,
lfsr_sid_t *lower_id, lfsr_sid_t *upper_id,
lfsr_tag_t alt, lfs_ssize_t weight,
lfsr_tag_t alt2, lfs_ssize_t weight2,
lfs_ssize_t *lower_id, lfs_ssize_t *upper_id,
lfsr_tag_t *lower_tag, lfsr_tag_t *upper_tag) {
if (lfsr_tag_isred(alt2)) {
lfsr_tag_trim(alt2, weight2, lower_id, upper_id, lower_tag, upper_tag);
@@ -674,7 +674,7 @@ struct lfs_diskoff {
struct lfsr_attr {
lfsr_tag_t tag;
lfsr_sid_t id;
lfs_ssize_t id;
const void *buffer;
lfs_size_t size;
const struct lfsr_attr *next;
@@ -716,8 +716,8 @@ struct lfsr_pat {
// the id will at least contain where you should insert
lfsr_tag_t predicted_type;
lfsr_tag_t found_type;
lfsr_id_t predicted_id;
lfsr_id_t found_id;
lfs_ssize_t predicted_id;
lfs_ssize_t found_id;
};
@@ -1119,7 +1119,7 @@ static int lfs_alloc(lfs_t *lfs, lfs_block_t *block) {
static lfs_ssize_t lfsr_rbyd_readtag(lfs_t *lfs,
const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_size_t hint,
lfs_block_t block, lfs_off_t off,
lfsr_tag_t *tag, lfsr_sid_t *id, lfs_size_t *size, uint32_t *crc) {
lfsr_tag_t *tag, lfs_ssize_t *id, lfs_size_t *size, uint32_t *crc) {
// // needed to quiet an uninitialized warning, zeroing tag on error is
// // probably a good idea anyways
// *tag = 0;
@@ -1164,7 +1164,7 @@ static lfs_ssize_t lfsr_rbyd_readtag(lfs_t *lfs,
}
delta += delta_;
lfsr_id_t id_;
lfs_size_t id_;
delta_ = lfs_fromleb128(&id_, &buffer[delta], 5);
if (delta_ < 0) {
return delta_;
@@ -1188,7 +1188,7 @@ static lfs_ssize_t lfsr_rbyd_readtag(lfs_t *lfs,
// - adjust id so reserved id is -1, so we don't have mixed zero/one indexed
//
*tag = tag_ & ~0x1;
*id = (lfsr_sid_t)id_ - 1;
*id = id_ - 1;
*size = size_;
return delta;
@@ -1234,7 +1234,7 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
// scan tags, checking valid bits, crcs, etc
while (true) {
lfsr_tag_t tag;
lfsr_sid_t id;
lfs_ssize_t id;
lfs_size_t size;
lfs_ssize_t delta = lfsr_rbyd_readtag(lfs,
NULL, &lfs->rcache, limit-off,
@@ -1475,8 +1475,9 @@ static int lfsr_rbyd_fetch(lfs_t *lfs, lfsr_rbyd_t *rbyd,
}
static int lfsr_rbyd_lookup(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
lfsr_tag_t tag, lfsr_sid_t id,
lfsr_tag_t *tag_, lfsr_sid_t *id_, lfs_off_t *off_, lfs_size_t *size_) {
lfsr_tag_t tag, lfs_ssize_t id,
lfsr_tag_t *tag_, lfs_ssize_t *id_,
lfs_off_t *off_, lfs_size_t *size_) {
// tag must be non-zero! zero tags may deceptively look like they work but
// fail when the tree contains a deleted id0
LFS_ASSERT(tag != 0);
@@ -1488,17 +1489,17 @@ static int lfsr_rbyd_lookup(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
}
// keep track of bounds as we descend down the tree
lfsr_sid_t lower = -1;
lfsr_sid_t upper = rbyd->weight;
lfs_ssize_t lower = -1;
lfs_ssize_t upper = rbyd->weight;
// descend down tree
while (true) {
lfsr_tag_t alt;
lfs_size_t weight;
lfs_ssize_t weight;
lfs_off_t jump;
lfs_ssize_t delta = lfsr_rbyd_readtag(lfs,
&lfs->pcache, &lfs->rcache, 0,
rbyd->block, branch, &alt, (lfs_ssize_t*)&weight, &jump, NULL);
rbyd->block, branch, &alt, &weight, &jump, NULL);
if (delta < 0) {
return delta;
}
@@ -1519,7 +1520,7 @@ static int lfsr_rbyd_lookup(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
} else {
// update the tag id
lfsr_tag_t tag__ = alt;
lfsr_sid_t id__ = upper-1;
lfs_ssize_t id__ = upper-1;
// not what we're looking for?
if (id__ < id
@@ -1545,9 +1546,9 @@ static int lfsr_rbyd_lookup(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
}
static lfs_ssize_t lfsr_rbyd_get(lfs_t *lfs, const lfsr_rbyd_t *rbyd,
lfsr_tag_t tag, lfsr_sid_t id, void *buffer, lfs_size_t size) {
lfsr_tag_t tag, lfs_ssize_t id, void *buffer, lfs_size_t size) {
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
int err = lfsr_rbyd_lookup(lfs, rbyd, tag, id,
@@ -1637,7 +1638,7 @@ static int lfsr_rbyd_prog(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
}
static int lfsr_rbyd_progtag(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_tag_t tag, lfsr_sid_t id, lfs_size_t size, uint32_t *crc) {
lfsr_tag_t tag, lfs_ssize_t id, lfs_size_t size, uint32_t *crc) {
LFS_ASSERT(tag <= 0x3fff);
// make sure to include the parity of the current crc
@@ -1677,7 +1678,7 @@ static int lfsr_rbyd_progtag(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_tag_t p_alts[static 3],
lfs_size_t p_weights[static 3],
lfs_ssize_t p_weights[static 3],
lfs_off_t p_jumps[static 3],
unsigned count) {
// write out some number of alt pointers in our queue
@@ -1685,7 +1686,7 @@ static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
if (p_alts[3-1-i]) {
// change to a relative jump at the last minute
lfsr_tag_t alt = p_alts[3-1-i];
lfsr_sid_t weight = p_weights[3-1-i] - 1;
lfs_ssize_t weight = p_weights[3-1-i] - 1;
lfs_off_t jump = rbyd_->off - p_jumps[3-1-i];
int err = lfsr_rbyd_progtag(lfs, rbyd_,
@@ -1701,9 +1702,9 @@ static int lfsr_rbyd_p_flush(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
static inline int lfsr_rbyd_p_push(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_tag_t p_alts[static 3],
lfs_size_t p_weights[static 3],
lfs_ssize_t p_weights[static 3],
lfs_off_t p_jumps[static 3],
lfsr_tag_t alt, lfs_size_t weight, lfs_off_t jump) {
lfsr_tag_t alt, lfs_ssize_t weight, lfs_off_t jump) {
int err = lfsr_rbyd_p_flush(lfs, rbyd_, p_alts, p_weights, p_jumps, 1);
if (err) {
return err;
@@ -1721,10 +1722,10 @@ static inline int lfsr_rbyd_p_push(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
static inline void lfsr_rbyd_p_pop(
lfsr_tag_t p_alts[static 3],
lfs_size_t p_weights[static 3],
lfs_ssize_t p_weights[static 3],
lfs_off_t p_jumps[static 3]) {
memmove(p_alts, p_alts+1, 2*sizeof(lfsr_tag_t));
memmove(p_weights, p_weights+1, 2*sizeof(lfs_size_t));
memmove(p_weights, p_weights+1, 2*sizeof(lfs_ssize_t));
memmove(p_jumps, p_jumps+1, 2*sizeof(lfs_off_t));
p_alts[2] = 0;
p_weights[2] = 0;
@@ -1733,7 +1734,7 @@ static inline void lfsr_rbyd_p_pop(
static void lfsr_rbyd_p_red(
lfsr_tag_t p_alts[static 3],
lfs_size_t p_weights[static 3],
lfs_ssize_t p_weights[static 3],
lfs_off_t p_jumps[static 3]) {
LFS_ASSERT(lfsr_tag_isblack(p_alts[0]));
@@ -1747,7 +1748,7 @@ static void lfsr_rbyd_p_red(
// no reorder needed
} else if (lfsr_tag_isparallel(p_alts[0], p_alts[2])) {
lfsr_tag_t alt_ = p_alts[1];
lfs_size_t weight_ = p_weights[1];
lfs_ssize_t weight_ = p_weights[1];
lfs_off_t jump_ = p_jumps[1];
p_alts[1] = lfsr_tag_mkred(p_alts[0]);
p_weights[1] = p_weights[0];
@@ -1757,7 +1758,7 @@ static void lfsr_rbyd_p_red(
p_jumps[0] = jump_;
} else if (lfsr_tag_isparallel(p_alts[0], p_alts[1])) {
lfsr_tag_t alt_ = p_alts[2];
lfs_size_t weight_ = p_weights[2];
lfs_ssize_t weight_ = p_weights[2];
lfs_off_t jump_ = p_jumps[2];
p_alts[2] = lfsr_tag_mkred(p_alts[1]);
p_weights[2] = p_weights[1];
@@ -1777,7 +1778,7 @@ static void lfsr_rbyd_p_red(
// core rbyd algorithm
static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfsr_tag_t tag, lfsr_sid_t id, const void *buffer, lfs_size_t size) {
lfsr_tag_t tag, lfs_ssize_t id, const void *buffer, lfs_size_t size) {
// assume we'll update our trunk
lfs_off_t branch = rbyd_->trunk;
rbyd_->trunk = rbyd_->off;
@@ -1789,9 +1790,9 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
// figure out the range of tags to operate on
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfsr_tag_t other_tag_;
lfsr_sid_t other_id_;
lfs_ssize_t other_id_;
if (lfsr_tag_ismk(tag)) {
LFS_ASSERT(rbyd_->weight < 0xffff);
LFS_ASSERT(id <= rbyd_->weight);
@@ -1825,8 +1826,8 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
// this gets a bit confusing as we also may need to keep
// track of both the lower and upper bounds of diverging paths
// in the case of range deletions
lfsr_sid_t lower_id = -1;
lfsr_sid_t upper_id = rbyd_->weight;
lfs_ssize_t lower_id = -1;
lfs_ssize_t upper_id = rbyd_->weight;
lfsr_tag_t lower_tag = 0;
lfsr_tag_t upper_tag = 0xffff;
@@ -1839,14 +1840,14 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
// will end up very unbalanced.
uint8_t diverged = 0;
lfs_off_t other_branch = 0;
lfsr_sid_t other_lower_id = 0;
lfsr_sid_t other_upper_id = 0;
lfs_ssize_t other_lower_id = 0;
lfs_ssize_t other_upper_id = 0;
lfsr_tag_t other_lower_tag = 0;
lfsr_tag_t other_upper_tag = 0;
// queue of pending alts we can emulate rotations with
lfsr_tag_t p_alts[3] = {0, 0, 0};
lfs_size_t p_weights[3] = {0, 0, 0};
lfs_ssize_t p_weights[3] = {0, 0, 0};
lfs_off_t p_jumps[3] = {0, 0, 0};
lfs_off_t graft = 0;
@@ -1866,12 +1867,11 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
// read the alt pointer
lfsr_tag_t alt;
// TODO should readtag take lfs_size_t?
lfs_size_t weight;
lfs_ssize_t weight;
lfs_off_t jump;
lfs_ssize_t delta = lfsr_rbyd_readtag(lfs,
&lfs->pcache, &lfs->rcache, 0,
rbyd_->block, branch, &alt, (lfsr_sid_t*)&weight, &jump, NULL);
rbyd_->block, branch, &alt, &weight, &jump, NULL);
if (delta < 0) {
return delta;
}
@@ -1968,7 +1968,7 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lfs_swap32(&jump, &branch_);
lfs_swap16(&p_alts[0], &alt);
lfs_swap32(&p_weights[0], &weight);
lfs_swaps32(&p_weights[0], &weight);
lfs_swap32(&p_jumps[0], &jump);
p_alts[0] = lfsr_tag_mkblack(p_alts[0]);
alt = lfsr_tag_mkblack(alt);
@@ -2034,7 +2034,7 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
lower_id, upper_id,
tag_, id_)) {
lfs_swap16(&p_alts[0], &alt);
lfs_swap32(&p_weights[0], &weight);
lfs_swaps32(&p_weights[0], &weight);
lfs_swap32(&p_jumps[0], &jump);
p_alts[0] = lfsr_tag_mkred(p_alts[0]);
alt = lfsr_tag_mkblack(alt);
@@ -2063,7 +2063,7 @@ static int lfsr_rbyd_append(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
}
// push alt onto our queue
LFS_ASSERT((lfs_ssize_t)weight >= 0);
LFS_ASSERT(weight >= 0);
int err = lfsr_rbyd_p_push(lfs, rbyd_,
p_alts, p_weights, p_jumps,
alt, weight, jump);
-2
View File
@@ -46,8 +46,6 @@ typedef uint32_t lfs_block_t;
typedef uint16_t lfsr_tag_t;
typedef int16_t lfsr_stag_t;
typedef uint32_t lfsr_id_t;
typedef int32_t lfsr_sid_t;
// Maximum name size in bytes, may be redefined to reduce the size of the
// info struct. Limited to <= 1022. Stored in superblock and must be
+54 -54
View File
@@ -137,7 +137,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -263,7 +263,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -579,7 +579,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -645,7 +645,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -713,7 +713,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -795,7 +795,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -941,7 +941,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -1115,7 +1115,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -1289,7 +1289,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -1471,7 +1471,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -1681,7 +1681,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -1850,7 +1850,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2037,7 +2037,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2141,7 +2141,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2238,7 +2238,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2331,7 +2331,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2426,7 +2426,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2516,7 +2516,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2603,7 +2603,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2728,7 +2728,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2797,7 +2797,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -2906,7 +2906,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3063,7 +3063,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3178,7 +3178,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3332,7 +3332,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3572,7 +3572,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3657,7 +3657,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
@@ -3965,7 +3965,7 @@ code = '''
# };
# lfsr_rbyd_t rbyd;
# lfsr_tag_t tag_;
# lfsr_sid_t id_;
# lfs_ssize_t id_;
# lfs_off_t off_;
# lfs_size_t size_;
#
@@ -4649,7 +4649,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -4759,7 +4759,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -4879,7 +4879,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -4990,7 +4990,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -5132,7 +5132,7 @@ code = '''
//
// note with random order we can't check that stored values reliably
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
@@ -5909,7 +5909,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -6078,7 +6078,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -6263,7 +6263,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -6394,7 +6394,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -6657,7 +6657,7 @@ code = '''
};
lfsr_rbyd_t rbyd;
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -7044,7 +7044,7 @@ code = '''
//
// note with random order we can't check that stored values reliably
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
@@ -7829,7 +7829,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -7971,7 +7971,7 @@ code = '''
"\xff\xff\xff\xff",
};
lfsr_tag_t tag_;
lfsr_sid_t id_;
lfs_ssize_t id_;
lfs_off_t off_;
lfs_size_t size_;
uint8_t buffer[4];
@@ -9061,9 +9061,9 @@ code = '''
lfs_size_t count = 0;
for (unsigned i = 0; i < N; i++) {
// choose an id
lfsr_sid_t id = TEST_PRNG(&prng) % (count+1);
lfs_ssize_t id = TEST_PRNG(&prng) % (count+1);
// choose create or delete
if (id == (lfsr_sid_t)count || (TEST_PRNG(&prng) & 1)) {
if (id == (lfs_ssize_t)count || (TEST_PRNG(&prng) & 1)) {
printf("c%d=%c", id, alpha[i % 26]);
count += 1;
} else {
@@ -9089,9 +9089,9 @@ code = '''
count = 0;
for (unsigned i = 0; i < N; i++) {
// choose an id
lfsr_sid_t id = TEST_PRNG(&prng) % (count+1);
lfs_ssize_t id = TEST_PRNG(&prng) % (count+1);
// choose create or delete
if (id == (lfsr_sid_t)count || (TEST_PRNG(&prng) & 1)) {
if (id == (lfs_ssize_t)count || (TEST_PRNG(&prng) & 1)) {
// update our sim
memmove(sim+id+1, sim+id, count-id);
sim[id] = alpha[i % 26];
@@ -9113,15 +9113,15 @@ code = '''
// compare rbyd vs simulation
printf("expd: [");
for (lfsr_sid_t id = 0; id < (lfsr_sid_t)count; id++) {
for (lfs_ssize_t id = 0; id < (lfs_ssize_t)count; id++) {
printf("%c", sim[id]);
if (id < (lfsr_sid_t)count-1) {
if (id < (lfs_ssize_t)count-1) {
printf(", ");
}
}
printf("]\n");
printf("rbyd: [");
for (lfsr_sid_t id = 0; id < (lfsr_sid_t)rbyd.weight; id++) {
for (lfs_ssize_t id = 0; id < (lfs_ssize_t)rbyd.weight; id++) {
lfs_ssize_t size = lfsr_rbyd_get(&lfs, &rbyd,
LFSR_TAG_MKREG, id, buffer, 4);
if (size >= 0) {
@@ -9129,14 +9129,14 @@ code = '''
} else {
printf("?");
}
if (id < (lfsr_sid_t)count-1) {
if (id < (lfs_ssize_t)count-1) {
printf(", ");
}
}
printf("]\n");
assert(count == rbyd.weight);
for (lfsr_sid_t id = 0; id < (lfsr_sid_t)count; id++) {
for (lfs_ssize_t id = 0; id < (lfs_ssize_t)count; id++) {
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG_MKREG, id, buffer, 4) => 1;
assert(memcmp(&sim[id], buffer, 1) == 0);
}
@@ -9158,9 +9158,9 @@ code = '''
lfs_size_t count = 0;
for (unsigned i = 0; i < N; i++) {
// choose an id
lfsr_sid_t id = TEST_PRNG(&prng) % (count+1);
lfs_ssize_t id = TEST_PRNG(&prng) % (count+1);
// choose create or delete
if (id == (lfsr_sid_t)count || (TEST_PRNG(&prng) & 1)) {
if (id == (lfs_ssize_t)count || (TEST_PRNG(&prng) & 1)) {
printf("c%d=%c", id, alpha[i % 26]);
count += 1;
} else {
@@ -9181,9 +9181,9 @@ code = '''
count = 0;
for (unsigned i = 0; i < N; i++) {
// choose an id
lfsr_sid_t id = TEST_PRNG(&prng) % (count+1);
lfs_ssize_t id = TEST_PRNG(&prng) % (count+1);
// choose create or delete
if (id == (lfsr_sid_t)count || (TEST_PRNG(&prng) & 1)) {
if (id == (lfs_ssize_t)count || (TEST_PRNG(&prng) & 1)) {
count += 1;
// update our rbyd
lfsr_rbyd_commit(&lfs, &rbyd,