Adopted lowercase => internal pattern for LFS3_tag_* tags

This includes the mask/rm/grow bits:

- LFS3_tag_RM
- LFS3_tag_GROW
- LFS3_tag_MASK0/2/8/12

Our in-device only handle types:

- LFS3_tag_ORPHAN
- LFS3_tag_TRV
- LFS3_tag_UNKNOWN

And in-device only tags with special behavior:

- LFS3_tag_INTERNAL
- LFS3_tag_RATTRS
- LFS3_tag_SHRUBCOMMIT
- LFS3_tag_GRMPUSH
- LFS3_tag_MOVE
- LFS3_tag_ATTRS

Usually I'm not a big fan of case-sensitive naming patterns, but this
has been useful for self-documenting what compat flags are in-device
only. Might as well extend the idea to our tag definitions.
This commit is contained in:
Christopher Haster
2025-11-15 01:45:15 -06:00
parent 0f30021a0d
commit ca678538d4
8 changed files with 305 additions and 305 deletions
+60 -60
View File
@@ -730,7 +730,7 @@ code = '''
// update the tree
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"A", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -779,11 +779,11 @@ code = '''
// update the tree
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"A", 1))) => 0;
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"B", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -841,15 +841,15 @@ code = '''
// update the tree
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"A", 1))) => 0;
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"B", 1))) => 0;
lfs3_btree_commit(&lfs3, &btree, 2, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"C", 1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -916,7 +916,7 @@ code = '''
for (lfs3_size_t i = 0; i < N; i++) {
lfs3_btree_commit(&lfs3, &btree, i, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
}
printf("btree: w%d 0x%x.%x\n",
@@ -989,7 +989,7 @@ code = '''
// update btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
// update sim
@@ -1063,7 +1063,7 @@ code = '''
for (lfs3_size_t i = 0; i < N; i++) {
lfs3_btree_commit(&lfs3, &btree, i*W+W-1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1))) => 0;
}
printf("btree: w%d 0x%x.%x\n",
@@ -1163,10 +1163,10 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'A'+(i % 26)}, 1),
LFS3_RATTR(
LFS3_TAG_GROW, +weight-sim_weights[bid]))) => 0;
LFS3_tag_GROW, +weight-sim_weights[bid]))) => 0;
// update sim
sim[bid] = 'A'+(i % 26);
@@ -1277,7 +1277,7 @@ code = '''
LFS3_RATTR_BUF(LFS3_TAG_DATA, +1, "a", 1))) => 0;
// pop!
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
btree.r.blocks[0],
@@ -1337,7 +1337,7 @@ code = '''
LFS3_RATTR_BUF(LFS3_TAG_DATA, +1, "b", 1))) => 0;
// pop!
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
btree.r.blocks[0],
@@ -1411,7 +1411,7 @@ code = '''
LFS3_RATTR_BUF(LFS3_TAG_DATA, +1, "b", 1))) => 0;
// pop!
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
btree.r.blocks[0],
@@ -1487,7 +1487,7 @@ code = '''
LFS3_RATTR_BUF(LFS3_TAG_DATA, +1, "c", 1))) => 0;
// pop!
lfs3_btree_commit(&lfs3, &btree, 2, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
btree.r.blocks[0],
@@ -1581,7 +1581,7 @@ code = '''
// drain the tree
for (lfs3_size_t i = 0; i < N-REMAINING; i++) {
lfs3_btree_commit(&lfs3, &btree, N-1-i, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
}
printf("btree: w%d 0x%x.%x\n",
@@ -1662,7 +1662,7 @@ code = '''
// drain the tree
for (lfs3_size_t i = 0; i < N-REMAINING; i++) {
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
}
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -1761,7 +1761,7 @@ code = '''
// remove from btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
// remove from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -1836,7 +1836,7 @@ code = '''
// drain the tree
for (lfs3_size_t i = 0; i < N-REMAINING; i++) {
lfs3_btree_commit(&lfs3, &btree, (N-1-i)*W+W-1, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -W))) => 0;
LFS3_RATTR(LFS3_tag_RM, -W))) => 0;
}
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -1980,7 +1980,7 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR(
LFS3_TAG_RM, -sim_weights[bid]))) => 0;
LFS3_tag_RM, -sim_weights[bid]))) => 0;
// remove from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -2334,7 +2334,7 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR(
LFS3_TAG_GROW, +weight1-sim_weights[bid]),
LFS3_tag_GROW, +weight1-sim_weights[bid]),
LFS3_RATTR_BUF(
LFS3_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1),
@@ -2501,14 +2501,14 @@ code = '''
memset(buf2, 'b', SIZE);
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_DATA(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&LFS3_DATA_BUF(buf2, SIZE)))) => 0;
assert(btree.r.weight == 2);
// now remove one entry, since this brings the rbyd down to zero,
// this should force one of the blocks to drop
lfs3_btree_commit(&lfs3, &btree, SIBLING, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -2572,7 +2572,7 @@ code = '''
memset(buf2, 'b', SIZE);
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_DATA(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&LFS3_DATA_BUF(buf2, SIZE)))) => 0;
assert(btree.r.weight == 2);
@@ -2582,7 +2582,7 @@ code = '''
// do this while forcing a compaction
lfs3_btree_claim(&btree);
lfs3_btree_commit(&lfs3, &btree, SIBLING, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -2649,7 +2649,7 @@ code = '''
//
lfs3_btree_claim(&btree);
lfs3_btree_commit(&lfs3, &btree, SIBLING, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -2713,25 +2713,25 @@ code = '''
memset(buf2, 'b', SIZE);
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_DATA(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&LFS3_DATA_BUF(buf2, SIZE)))) => 0;
assert(btree.r.weight == 2);
// now make both entries small so they should be merged if either compacts
lfs3_btree_commit(&lfs3, &btree, 0, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"a", 1))) => 0;
lfs3_btree_commit(&lfs3, &btree, 1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
"b", 1))) => 0;
// force compaction, while removing one entry, this drops the rbyd
// down to zero while also triggering a merge
lfs3_btree_claim(&btree);
lfs3_btree_commit(&lfs3, &btree, SIBLING, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
printf("btree: w%d 0x%x.%x\n",
btree.r.weight,
@@ -2809,7 +2809,7 @@ code = '''
// update btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1))) => 0;
// update sim
@@ -2818,7 +2818,7 @@ code = '''
} else {
// pop from btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
// pop from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -2931,10 +2931,10 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'a'+(i % 26)}, 1),
LFS3_RATTR(
LFS3_TAG_GROW, +weight-sim_weights[bid]))) => 0;
LFS3_tag_GROW, +weight-sim_weights[bid]))) => 0;
// update sim
sim[bid] = 'a'+(i % 26);
@@ -2945,7 +2945,7 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR(
LFS3_TAG_RM, -sim_weights[bid]))) => 0;
LFS3_tag_RM, -sim_weights[bid]))) => 0;
// remove from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -3105,7 +3105,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0*DID, "aaa", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 0);
@@ -3116,7 +3116,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 1*DID, "aab", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_LT;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 0);
@@ -3170,7 +3170,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, "aaa", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 0);
@@ -3181,7 +3181,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, "aab", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 1);
@@ -3192,7 +3192,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, "aac", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_LT;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 1);
@@ -3252,7 +3252,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0*DID, "aaa", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 0);
@@ -3263,7 +3263,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 1*DID, "aab", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 1);
@@ -3274,7 +3274,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 2*DID, "aac", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 2);
@@ -3285,7 +3285,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 3*DID, "aad", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_LT;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 2);
@@ -3345,7 +3345,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0*DID, "aaa", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 0);
@@ -3356,7 +3356,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 1*DID, "aab", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 1);
@@ -3367,7 +3367,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 2*DID, "aac", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 2);
@@ -3378,7 +3378,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 3*DID, "aad", 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_LT;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == 2);
@@ -3454,7 +3454,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, i*DID, name, 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == i);
@@ -3566,7 +3566,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, sim_names[i], 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == i);
@@ -3649,7 +3649,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, i*DID, name, 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == i*W+W-1);
@@ -3731,7 +3731,7 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR(
LFS3_TAG_GROW, +weight1-sim_weights[bid]),
LFS3_tag_GROW, +weight1-sim_weights[bid]),
LFS3_RATTR_BUF(
LFS3_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1),
@@ -3802,7 +3802,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, sim_names[i], 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == weighted_bid+sim_weights[i]-1);
@@ -3940,7 +3940,7 @@ code = '''
// update btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1))) => 0;
// update sim
@@ -3949,7 +3949,7 @@ code = '''
} else {
// pop from btree
lfs3_btree_commit(&lfs3, &btree, bid, LFS3_RATTRS(
LFS3_RATTR(LFS3_TAG_RM, -1))) => 0;
LFS3_RATTR(LFS3_tag_RM, -1))) => 0;
// pop from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -3984,7 +3984,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, sim_names[i], 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == i);
@@ -4138,10 +4138,10 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR_BUF(
LFS3_TAG_MASK8 | LFS3_TAG_DATA, 0,
LFS3_tag_MASK8 | LFS3_TAG_DATA, 0,
&(uint8_t){'0'+(i % 10)}, 1),
LFS3_RATTR(
LFS3_TAG_GROW, +weight-sim_weights[bid]))) => 0;
LFS3_tag_GROW, +weight-sim_weights[bid]))) => 0;
// update sim
sim[bid] = '0'+(i % 10);
@@ -4152,7 +4152,7 @@ code = '''
lfs3_btree_commit(&lfs3, &btree,
weighted_bid+sim_weights[bid]-1, LFS3_RATTRS(
LFS3_RATTR(
LFS3_TAG_RM, -sim_weights[bid]))) => 0;
LFS3_tag_RM, -sim_weights[bid]))) => 0;
// pop from sim
memmove(&sim[bid], &sim[bid+1], sim_size-(bid+1));
@@ -4210,7 +4210,7 @@ code = '''
lfs3_btree_namelookup(&lfs3, &btree, 0, sim_names[i], 3,
&bid_, NULL, &weight_, NULL) => LFS3_CMP_EQ;
tag_ = lfs3_btree_lookup(&lfs3, &btree,
bid_, LFS3_TAG_MASK8 | LFS3_TAG_STRUCT,
bid_, LFS3_tag_MASK8 | LFS3_TAG_STRUCT,
&data_);
assert(tag_ == LFS3_TAG_DATA);
assert(bid_ == weighted_bid+sim_weights[i]-1);