Reworked LFSR_ATTR macros to support extensions better
Generally the more creative you get with C macros, the more
unmaintainable your codebase becomes, but in this case I think a small
bit of macro sugar for the attribute lists in littlefs goes a long way
for making the internals flexible and readable.
Attribute lists generally look like this:
LFSR_ATTRS(
LFSR_ATTR(id, TAG, delta, DATA(data)),
LFSR_ATTR(id, TAG, delta, DATA(data)),
...
LFSR_ATTR(id, TAG, delta, DATA(data)))
Which more-or-less gets expanded to this:
((const lfsr_attr_t[]){
((lfsr_attr_t){id, LFSR_TAG_TAG, delta, LFSR_DATA_DATA(data)}),
((lfsr_attr_t){id, LFSR_TAG_TAG, delta, LFSR_DATA_DATA(data)}),
...
((lfsr_attr_t){id, LFSR_TAG_TAG, delta, LFSR_DATA_DATA(data)}),}),
attr_count
Note the use of preprocessor concatenation to put the TAG and DATA
identifiers in their respective namespaces. These can end up invoking
other macros, which allows attrs to be rather extensible.
Previously there were also LFSR_ATTR_ (note the trailing underscore)
macros to allow passing of variable tags/datas. This is replaced with
redundant macros which sort of "unwrap" themselves as a part of macro
expansion. This avoids a bunch of duplicate macro definitions.
#define LFSR_TAG_TAG(tag) (tag)
#define LFSR_DATA_DATA(data) (data)
So:
LFSR_ATTR(id, TAG(tag), delta, DATA(data))
Becomes:
((lfsr_attr_t){id, LFSR_TAG_TAG(tag), delta, LFSR_DATA_DATA(data)})
Becomes:
((lfsr_attr_t){id, tag, delta, data})
This commit is contained in:
@@ -106,7 +106,7 @@ code = '''
|
||||
lfs_alloc_ack(&lfs);
|
||||
// remove root dstart for now
|
||||
lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS(
|
||||
LFSR_ATTR(0, UNR, -1, NULL, 0))) => 0;
|
||||
LFSR_ATTR(0, UNR, -1, NULL))) => 0;
|
||||
|
||||
lfsr_mdir_t mdir;
|
||||
lfsr_mtree_lookup(&lfs, LFSR_MID(lfsr_mtree_weight(&lfs)-1, -1),
|
||||
@@ -123,7 +123,8 @@ code = '''
|
||||
|
||||
// keep creating new metadata entries until we run out of space
|
||||
int err = lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS(
|
||||
LFSR_ATTR(mdir.mid.rid, INLINED, +1, &alphas[count % 26], 1)));
|
||||
LFSR_ATTR(mdir.mid.rid, INLINED, +1,
|
||||
BUF(&alphas[count % 26], 1))));
|
||||
assert(!err || err == LFS_ERR_NOSPC);
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
|
||||
+114
-114
@@ -54,7 +54,7 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -93,9 +93,9 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -139,9 +139,9 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -186,11 +186,11 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 2, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("c", 1)) => 0;
|
||||
LFSR_DATA("c", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -240,11 +240,11 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("c", 1)) => 0;
|
||||
LFSR_DATA("c", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -300,7 +300,7 @@ code = '''
|
||||
lfs_size_t n = 0;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -352,7 +352,7 @@ code = '''
|
||||
lfs_size_t n = 0;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[(N-1-i) % 26], 1));
|
||||
LFSR_DATA(&alphas[(N-1-i) % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -419,7 +419,7 @@ code = '''
|
||||
|
||||
// add to btree
|
||||
int err = lfsr_btree_push(&lfs, &btree, bid, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -490,7 +490,7 @@ code = '''
|
||||
lfs_size_t n = 0;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i*W, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -585,7 +585,7 @@ code = '''
|
||||
// add to btree
|
||||
int err = lfsr_btree_push(&lfs, &btree,
|
||||
weighted_bid, LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -697,10 +697,10 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
// update the tree
|
||||
lfsr_btree_set(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("A", 1)) => 0;
|
||||
LFSR_DATA("A", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -738,14 +738,14 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
// update the tree
|
||||
lfsr_btree_set(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("A", 1)) => 0;
|
||||
LFSR_DATA("A", 1)) => 0;
|
||||
lfsr_btree_set(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("B", 1)) => 0;
|
||||
LFSR_DATA("B", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -789,18 +789,18 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 2, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("c", 1)) => 0;
|
||||
LFSR_DATA("c", 1)) => 0;
|
||||
// update the tree
|
||||
lfsr_btree_set(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("A", 1)) => 0;
|
||||
LFSR_DATA("A", 1)) => 0;
|
||||
lfsr_btree_set(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("B", 1)) => 0;
|
||||
LFSR_DATA("B", 1)) => 0;
|
||||
lfsr_btree_set(&lfs, &btree, 2, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("C", 1)) => 0;
|
||||
LFSR_DATA("C", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -854,7 +854,7 @@ code = '''
|
||||
const char *uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -868,7 +868,7 @@ code = '''
|
||||
// update the tree
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_set(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -926,7 +926,7 @@ code = '''
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -954,7 +954,7 @@ code = '''
|
||||
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree, bid, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -1022,7 +1022,7 @@ code = '''
|
||||
const char *uppers = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i*W, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1036,7 +1036,7 @@ code = '''
|
||||
// update the tree
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_set(&lfs, &btree, i*W+W-1, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1110,7 +1110,7 @@ code = '''
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i*W, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1149,7 +1149,7 @@ code = '''
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree,
|
||||
weighted_bid+sim_weights[bid]-1, LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -1258,7 +1258,7 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
// pop!
|
||||
lfsr_btree_pop(&lfs, &btree, 0) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1277,7 +1277,7 @@ code = '''
|
||||
|
||||
// try to putting it back to see if things still work
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("A", 1)) => 0;
|
||||
LFSR_DATA("A", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -1311,9 +1311,9 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
// pop!
|
||||
lfsr_btree_pop(&lfs, &btree, 1) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1338,7 +1338,7 @@ code = '''
|
||||
|
||||
// try to putting it back to see if things still work
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("B", 1)) => 0;
|
||||
LFSR_DATA("B", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -1378,9 +1378,9 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
// pop!
|
||||
lfsr_btree_pop(&lfs, &btree, 0) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1405,7 +1405,7 @@ code = '''
|
||||
|
||||
// try to putting it back to see if things still work
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("A", 1)) => 0;
|
||||
LFSR_DATA("A", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -1445,11 +1445,11 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("a", 1)) => 0;
|
||||
LFSR_DATA("a", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 1, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("b", 1)) => 0;
|
||||
LFSR_DATA("b", 1)) => 0;
|
||||
lfsr_btree_push(&lfs, &btree, 2, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("c", 1)) => 0;
|
||||
LFSR_DATA("c", 1)) => 0;
|
||||
// pop!
|
||||
lfsr_btree_pop(&lfs, &btree, 2) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1480,7 +1480,7 @@ code = '''
|
||||
|
||||
// try to putting it back to see if things still work
|
||||
lfsr_btree_push(&lfs, &btree, 2, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("C", 1)) => 0;
|
||||
LFSR_DATA("C", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -1531,7 +1531,7 @@ code = '''
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1581,7 +1581,7 @@ code = '''
|
||||
|
||||
// try recovering
|
||||
lfsr_btree_push(&lfs, &btree, REMAINING, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("R", 1)) => 0;
|
||||
LFSR_DATA("R", 1)) => 0;
|
||||
|
||||
for (lfs_size_t i = 0; i < REMAINING; i++) {
|
||||
lfsr_btree_get(&lfs, &btree, i,
|
||||
@@ -1622,7 +1622,7 @@ code = '''
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1671,7 +1671,7 @@ code = '''
|
||||
|
||||
// try recovering
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("R", 1)) => 0;
|
||||
LFSR_DATA("R", 1)) => 0;
|
||||
|
||||
lfsr_btree_get(&lfs, &btree, 0,
|
||||
&tag_, &weight_, buffer, 4) => 1;
|
||||
@@ -1714,7 +1714,7 @@ code = '''
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1812,7 +1812,7 @@ code = '''
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i*W, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -1861,7 +1861,7 @@ code = '''
|
||||
|
||||
// try recovering
|
||||
lfsr_btree_push(&lfs, &btree, REMAINING*W, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF("R", 1)) => 0;
|
||||
LFSR_DATA("R", 1)) => 0;
|
||||
|
||||
for (lfs_size_t i = 0; i < REMAINING; i++) {
|
||||
lfsr_btree_get(&lfs, &btree, i*W+W-1,
|
||||
@@ -1952,7 +1952,7 @@ code = '''
|
||||
|
||||
int err = lfsr_btree_push(&lfs, &btree,
|
||||
weighted_bid, LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
@@ -2090,12 +2090,12 @@ code = '''
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[0 % 26], 1)) => 0;
|
||||
LFSR_DATA(&alphas[0 % 26], 1)) => 0;
|
||||
lfs_size_t n = 1;
|
||||
for (lfs_size_t i = 1; i < N; i++) {
|
||||
int err = lfsr_btree_split(&lfs, &btree, i-1, LFSR_DATA_NULL,
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&alphas[(i-1) % 26], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&alphas[(i-0) % 26], 1));
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&alphas[(i-1) % 26], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&alphas[(i-0) % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2148,7 +2148,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -2166,8 +2166,8 @@ code = '''
|
||||
|
||||
// split btree
|
||||
int err = lfsr_btree_split(&lfs, &btree, bid, LFSR_DATA_NULL,
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&alphas[i % 26], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&alphas[i % 26], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2237,12 +2237,12 @@ code = '''
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&alphas[0 % 26], 1)) => 0;
|
||||
LFSR_DATA(&alphas[0 % 26], 1)) => 0;
|
||||
lfs_size_t n = 1;
|
||||
for (lfs_size_t i = 1; i < N; i++) {
|
||||
int err = lfsr_btree_split(&lfs, &btree, (i-1)*W+W-1, LFSR_DATA_NULL,
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA_BUF(&alphas[(i-1) % 26], 1),
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA_BUF(&alphas[(i-0) % 26], 1));
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA(&alphas[(i-1) % 26], 1),
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA(&alphas[(i-0) % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2296,7 +2296,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -2328,9 +2328,9 @@ code = '''
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
weighted_bid+sim_weights[bid]-1, LFSR_DATA_NULL,
|
||||
LFSR_TAG_INLINED, weight1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1),
|
||||
LFSR_DATA(&alphas[i % 26], 1),
|
||||
LFSR_TAG_INLINED, weight2,
|
||||
LFSR_DATA_BUF(&uppers[i % 26], 1));
|
||||
LFSR_DATA(&uppers[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2466,7 +2466,7 @@ code = '''
|
||||
// push to btree
|
||||
int err = lfsr_btree_push(&lfs, &btree, bid,
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2482,7 +2482,7 @@ code = '''
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree, bid,
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2593,7 +2593,7 @@ code = '''
|
||||
// push to btree
|
||||
int err = lfsr_btree_push(&lfs, &btree, weighted_bid,
|
||||
LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2612,7 +2612,7 @@ code = '''
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree,
|
||||
weighted_bid+sim_weights[bid]-1, LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -2768,7 +2768,7 @@ code = '''
|
||||
// create a single-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("0", 1)) => 0;
|
||||
LFSR_DATA("0", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -2817,10 +2817,10 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("0", 1)) => 0;
|
||||
LFSR_DATA("0", 1)) => 0;
|
||||
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NAME(0*DID, "aab", 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("1", 1)) => 0;
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("1", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -2877,13 +2877,13 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("0", 1)) => 0;
|
||||
LFSR_DATA("0", 1)) => 0;
|
||||
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NAME(1*DID, "aab", 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("1", 1)) => 0;
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("1", 1)) => 0;
|
||||
lfsr_btree_split(&lfs, &btree, 1, LFSR_DATA_NAME(2*DID, "aac", 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("1", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("2", 1)) => 0;
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("1", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("2", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -2948,13 +2948,13 @@ code = '''
|
||||
// create a two-entry tree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("0", 1)) => 0;
|
||||
LFSR_DATA("0", 1)) => 0;
|
||||
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NAME(2*DID, "aac", 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("1", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("2", 1)) => 0;
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("1", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("2", 1)) => 0;
|
||||
lfsr_btree_split(&lfs, &btree, 0, LFSR_DATA_NAME(1*DID, "aab", 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF("1", 1)) => 0;
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("0", 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA("1", 1)) => 0;
|
||||
printf("btree: w%d 0x%x.%x\n",
|
||||
btree.u.r.rbyd.weight,
|
||||
btree.u.r.rbyd.block,
|
||||
@@ -3022,7 +3022,7 @@ code = '''
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
const char *nums = "0123456789";
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&nums[0 % 10], 1)) => 0;
|
||||
LFSR_DATA(&nums[0 % 10], 1)) => 0;
|
||||
lfs_size_t n = 1;
|
||||
for (lfs_size_t i = 1; i < N; i++) {
|
||||
char name[3] = {
|
||||
@@ -3030,8 +3030,8 @@ code = '''
|
||||
};
|
||||
int err = lfsr_btree_split(&lfs, &btree, i-1,
|
||||
LFSR_DATA_NAME(i*DID, name, 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&nums[(i-1) % 10], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&nums[(i-0) % 10], 1));
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&nums[(i-1) % 10], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&nums[(i-0) % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3088,7 +3088,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -3123,8 +3123,8 @@ code = '''
|
||||
// split btree
|
||||
int err = lfsr_btree_split(&lfs, &btree, bid,
|
||||
LFSR_DATA_NAME(0, name, 3),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, 1, LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3200,7 +3200,7 @@ code = '''
|
||||
const char *alphas = "abcdefghijklmnopqrstuvwxyz";
|
||||
const char *nums = "0123456789";
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF(&nums[0 % 10], 1)) => 0;
|
||||
LFSR_DATA(&nums[0 % 10], 1)) => 0;
|
||||
lfs_size_t n = 1;
|
||||
for (lfs_size_t i = 1; i < N; i++) {
|
||||
char name[3] = {
|
||||
@@ -3208,8 +3208,8 @@ code = '''
|
||||
};
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
(i-1)*W+W-1, LFSR_DATA_NAME(i*DID, name, 3),
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA_BUF(&nums[(i-1) % 10], 1),
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA_BUF(&nums[(i-0) % 10], 1));
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA(&nums[(i-1) % 10], 1),
|
||||
LFSR_TAG_INLINED, W, LFSR_DATA(&nums[(i-0) % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3267,7 +3267,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -3315,8 +3315,8 @@ code = '''
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
weighted_bid+sim_weights[bid]-1,
|
||||
LFSR_DATA_NAME(0, name, 3),
|
||||
LFSR_TAG_INLINED, weight1, LFSR_DATA_BUF(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, weight2, LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_TAG_INLINED, weight1, LFSR_DATA(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, weight2, LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3418,7 +3418,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -3469,9 +3469,9 @@ code = '''
|
||||
split_bid,
|
||||
LFSR_DATA_NAME(0, sim_names[bid+1], 3),
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1),
|
||||
LFSR_DATA(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(split_buf, 1));
|
||||
LFSR_DATA(split_buf, 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3481,9 +3481,9 @@ code = '''
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
split_bid, LFSR_DATA_NAME(0, name, 3),
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(split_buf, 1),
|
||||
LFSR_DATA(split_buf, 1),
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3502,7 +3502,7 @@ code = '''
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree, bid,
|
||||
LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3593,7 +3593,7 @@ code = '''
|
||||
// create a btree
|
||||
lfsr_btree_t btree = LFSR_BTREE_NULL;
|
||||
lfsr_btree_push(&lfs, &btree, 0, LFSR_TAG_INLINED, W,
|
||||
LFSR_DATA_BUF("_", 1)) => 0;
|
||||
LFSR_DATA("_", 1)) => 0;
|
||||
|
||||
// set up a simulation to compare against
|
||||
//
|
||||
@@ -3662,9 +3662,9 @@ code = '''
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
split_bid, LFSR_DATA_NAME(0, sim_names[bid+1], 3),
|
||||
LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1),
|
||||
LFSR_DATA(&nums[i % 10], 1),
|
||||
LFSR_TAG_INLINED, split_weight,
|
||||
LFSR_DATA_BUF(split_buf, 1));
|
||||
LFSR_DATA(split_buf, 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3674,9 +3674,9 @@ code = '''
|
||||
int err = lfsr_btree_split(&lfs, &btree,
|
||||
split_bid, LFSR_DATA_NAME(0, name, 3),
|
||||
LFSR_TAG_INLINED, split_weight,
|
||||
LFSR_DATA_BUF(split_buf, 1),
|
||||
LFSR_DATA(split_buf, 1),
|
||||
LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3698,7 +3698,7 @@ code = '''
|
||||
// update btree
|
||||
int err = lfsr_btree_set(&lfs, &btree,
|
||||
weighted_bid+sim_weights[bid]-1, LFSR_TAG_INLINED, weight,
|
||||
LFSR_DATA_BUF(&nums[i % 10], 1));
|
||||
LFSR_DATA(&nums[i % 10], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3817,7 +3817,7 @@ code = '''
|
||||
lfs_size_t n = 0;
|
||||
for (lfs_size_t i = 0; i < N; i++) {
|
||||
int err = lfsr_btree_push(&lfs, &btree, i, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -3870,7 +3870,7 @@ code = '''
|
||||
}
|
||||
|
||||
if (tag_ == LFSR_TAG_BTREE) {
|
||||
lfsr_rbyd_t *branch = (lfsr_rbyd_t *)data_.buf.buffer;
|
||||
lfsr_rbyd_t *branch = (lfsr_rbyd_t *)data_.u.b.buffer;
|
||||
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||
bid_,
|
||||
tag_,
|
||||
@@ -3950,7 +3950,7 @@ code = '''
|
||||
|
||||
// add to btree
|
||||
int err = lfsr_btree_push(&lfs, &btree, bid, LFSR_TAG_INLINED, 1,
|
||||
LFSR_DATA_BUF(&alphas[i % 26], 1));
|
||||
LFSR_DATA(&alphas[i % 26], 1));
|
||||
// ignore space issues
|
||||
if (err == LFS_ERR_NOSPC) {
|
||||
break;
|
||||
@@ -4018,7 +4018,7 @@ code = '''
|
||||
}
|
||||
|
||||
if (tag_ == LFSR_TAG_BTREE) {
|
||||
lfsr_rbyd_t *branch = (lfsr_rbyd_t *)data_.buf.buffer;
|
||||
lfsr_rbyd_t *branch = (lfsr_rbyd_t *)data_.u.b.buffer;
|
||||
printf("traversal: %d 0x%x w%d btree 0x%x.%x\n",
|
||||
bid_,
|
||||
tag_,
|
||||
|
||||
+198
-193
File diff suppressed because it is too large
Load Diff
+637
-628
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user