Initial exploration of B-trees, but ran into issues composing with rbyds
The original idea was weighted B-trees composed out of weighted rbyds, with the two weight systems being independent. Descent down the B-tree uses the same technique in the current metadata data-structure of searching for which branch to take during fetch, basically getting the search for free (well, on top of the already required O(m) fetch operation). But this is fundamentally flawed. While file names provide an absolute reference for finding matches, weights are relative references. So we don't have enough information to do weight-based lookup during fetch. This smells just like the relative-vs-absolute key issues that led to rbyd vs rbd trees in the first place... One option is to do rbyd traversals at each B-tree node to build the necessary information to figure out the weights. But with rbyd traversals taking O(m log m), this makes B-tree lookups O(log n * m log m), and B-tree traversals a messy O(n log n * m log m), which is acceptable, but disapointing for what will likely be the most common operation in the filesystem. But the rbyd trees _are_ already weighted. A better solution might be to go back and rethink the seperation of B-tree weights and rbyd ids. Unfortunately, with only 16-bits available for rbyd ids, this would likely require a rewrite of how rbyd tags are encoded...
This commit is contained in:
+118
-112
@@ -25,14 +25,14 @@ code = '''
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
|
||||
// commit with one attribute
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
|
||||
// commit with two attributes
|
||||
rbyd = init_rbyd;
|
||||
@@ -40,7 +40,7 @@ code = '''
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_rbyd_multi_commit]
|
||||
@@ -65,14 +65,14 @@ code = '''
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
|
||||
// commit with one attribute
|
||||
rbyd = init_rbyd;
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
|
||||
// commit with two attributes
|
||||
rbyd = init_rbyd;
|
||||
@@ -81,7 +81,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL)) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_rbyd_commit_fetch_commit]
|
||||
@@ -107,12 +107,12 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
|
||||
// commit with the second attribute
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL)) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
'''
|
||||
|
||||
# [cases.test_rbyd_fetchmatch]
|
||||
@@ -147,7 +147,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
@@ -162,7 +162,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -182,7 +182,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -219,7 +219,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
@@ -234,7 +234,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -255,7 +255,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -290,7 +290,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
@@ -306,7 +306,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -327,7 +327,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> 4;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), buffer, 4)
|
||||
@@ -363,7 +363,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
@@ -379,7 +379,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -401,7 +401,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), buffer, 4)
|
||||
=> 4;
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), buffer, 4)
|
||||
@@ -446,7 +446,7 @@ code = '''
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, lfsr_tag_next(tag), &off, &size);
|
||||
assert(tag == LFS_ERR_NOENT);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, 0, &off, &size);
|
||||
assert(tag == LFSR_TAG2(UATTR, 1, -1));
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, lfsr_tag_next(tag), &off, &size);
|
||||
@@ -493,7 +493,7 @@ code = '''
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, lfsr_tag_next(tag), &off, &size);
|
||||
assert(tag == LFS_ERR_NOENT);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, 0, &off, &size);
|
||||
assert(tag == LFSR_TAG2(UATTR, 1, -1));
|
||||
tag = lfsr_rbyd_lookup(&lfs, &rbyd, lfsr_tag_next(tag), &off, &size);
|
||||
@@ -531,7 +531,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -547,7 +547,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -584,7 +584,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL)))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -601,7 +601,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -640,7 +640,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL)))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -661,7 +661,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -704,7 +704,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -726,7 +726,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -748,7 +748,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -770,7 +770,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -814,7 +814,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -840,7 +840,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -866,7 +866,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -892,7 +892,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -938,7 +938,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4,
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -964,7 +964,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -990,7 +990,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1016,7 +1016,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1065,7 +1065,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1094,7 +1094,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1121,7 +1121,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1148,7 +1148,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1199,7 +1199,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 4, -1, "\xdd\xdd\xdd\xdd", 4,
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1232,7 +1232,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 3, -1, "\xcc\xcc\xcc\xcc", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1263,7 +1263,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1294,7 +1294,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL)))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1348,7 +1348,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1382,7 +1382,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1416,7 +1416,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1472,7 +1472,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 5, -1, "\xee\xee\xee\xee", 4,
|
||||
LFSR_ATTR2(UATTR, 6, -1, "\xff\xff\xff\xff", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1508,7 +1508,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 6, -1, "\xff\xff\xff\xff", 4,
|
||||
LFSR_ATTR2(UATTR, 2, -1, "\xbb\xbb\xbb\xbb", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1544,7 +1544,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 6, -1, "\xff\xff\xff\xff", 4,
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa", 4, NULL))))))) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1616,7 +1616,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, j+1, -1), &off, &size)
|
||||
@@ -1712,7 +1712,7 @@ code = '''
|
||||
NULL)) => 0;
|
||||
}
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, j+1, -1), &off, &size)
|
||||
@@ -1808,7 +1808,7 @@ code = '''
|
||||
|
||||
// check that we can still lookup all the tags
|
||||
prng = 42;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
for (lfs_size_t i = 0; i < count; i++) {
|
||||
uint8_t x
|
||||
= (ORDER == 0) ? (uint8_t)i
|
||||
@@ -1856,7 +1856,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1878,7 +1878,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 2, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1902,7 +1902,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 3, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -1985,7 +1985,8 @@ code = '''
|
||||
lfsr_rbyd_commit(&lfs, &rbyd,
|
||||
LFSR_ATTR2(RMUATTR, j+1, -1, NULL, 0, NULL)) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N; k++) {
|
||||
lfsr_stag_t tag = lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, k+1, -1), &off, &size);
|
||||
@@ -2115,7 +2116,7 @@ code = '''
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
// one last fetch to make sure nothing was broken
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 2, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -2257,7 +2258,7 @@ code = '''
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
// one last fetch to make sure nothing was broken
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 2, -1);
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -2303,7 +2304,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -2324,7 +2325,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -2345,7 +2346,7 @@ code = '''
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFS_ERR_NOENT;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd, LFSR_TAG2(UATTR, 2, -1), &off, &size)
|
||||
@@ -2426,7 +2427,7 @@ code = '''
|
||||
}
|
||||
|
||||
// check that all tags are now removed
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, j+1, -1), &off, &size)
|
||||
@@ -2438,7 +2439,7 @@ code = '''
|
||||
LFSR_ATTR2(UATTR, 1, -1, "\xaa\xaa\xaa\xaa\xaa\xaa", 6,
|
||||
NULL)) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, 1, -1), &off, &size)
|
||||
=> LFSR_TAG2(UATTR, 1, -1);
|
||||
@@ -2566,7 +2567,8 @@ code = '''
|
||||
"\xaa\xaa\xaa\xaa\xaa\xaa", 6,
|
||||
NULL)) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N; k++) {
|
||||
lfsr_stag_t tag = lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG2(UATTR, k+1, -1), &off, &size);
|
||||
@@ -2654,7 +2656,7 @@ code = '''
|
||||
=> 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -2673,7 +2675,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2693,7 +2695,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2716,7 +2718,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2741,7 +2743,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2766,7 +2768,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2806,7 +2808,7 @@ code = '''
|
||||
=> 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -2826,7 +2828,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2847,7 +2849,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xbb\xbb\xbb\xbb", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2872,7 +2874,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2899,7 +2901,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -2926,7 +2928,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xcc\xcc\xcc\xcc", 4) == 0);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 3);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4) => 4;
|
||||
assert(memcmp(buffer, "\xaa\xaa\xaa\xaa", 4) == 0);
|
||||
@@ -3008,7 +3010,7 @@ code = '''
|
||||
lfs_bd_erase(&lfs, rbyd.block) => 0;
|
||||
lfsr_rbyd_commit(&lfs, &rbyd, attrs) => 0;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == N);
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
@@ -3120,7 +3122,7 @@ code = '''
|
||||
NULL)) => 0;
|
||||
}
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == N);
|
||||
for (unsigned j = 0; j < N; j++) {
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
@@ -3224,7 +3226,7 @@ code = '''
|
||||
// check that we can at least lookup all the tags
|
||||
lfs_off_t off;
|
||||
lfs_size_t size;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
for (uint16_t x = 0; x < rbyd.count; x++) {
|
||||
lfsr_rbyd_lookup(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, x), &off, &size)
|
||||
@@ -3270,7 +3272,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3294,7 +3296,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3322,7 +3324,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3353,7 +3355,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3384,7 +3386,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3438,7 +3440,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, 1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3474,7 +3476,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, 1), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3518,7 +3520,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3568,7 +3570,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3618,7 +3620,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG2(UATTR, 1, 2), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 2);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> 4;
|
||||
@@ -3729,7 +3731,8 @@ code = '''
|
||||
LFSR_ATTR(RM, j, NULL, 0, NULL)) => 0;
|
||||
assert(rbyd.count == N-1);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N-1; k++) {
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, k), buffer, 4) => 4;
|
||||
@@ -3880,7 +3883,8 @@ code = '''
|
||||
LFSR_ATTR(RM, j, NULL, 0, NULL)) => 0;
|
||||
assert(rbyd.count == N-1);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N-1; k++) {
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, k), buffer, 4) => 4;
|
||||
@@ -3974,7 +3978,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -3993,7 +3997,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4012,7 +4016,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4033,7 +4037,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4054,7 +4058,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4092,7 +4096,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4113,7 +4117,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4134,7 +4138,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4158,7 +4162,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4182,7 +4186,7 @@ code = '''
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd, LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
=> LFS_ERR_NOENT;
|
||||
@@ -4283,7 +4287,7 @@ code = '''
|
||||
}
|
||||
|
||||
// check that all tags are now removed
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
@@ -4295,7 +4299,7 @@ code = '''
|
||||
NULL)) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, 0), buffer, 6)
|
||||
@@ -4442,7 +4446,7 @@ code = '''
|
||||
}
|
||||
|
||||
// check that all tags are now removed
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 0);
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, 0), buffer, 4)
|
||||
@@ -4459,7 +4463,7 @@ code = '''
|
||||
}
|
||||
assert(rbyd.count == 1);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, cfg->block_size, NULL) => 0;
|
||||
assert(rbyd.count == 1);
|
||||
lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, 0), buffer, 6)
|
||||
@@ -4614,7 +4618,8 @@ code = '''
|
||||
NULL)) => 0;
|
||||
assert(rbyd.count == N);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N; k++) {
|
||||
lfs_ssize_t size = lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, k), buffer, 6);
|
||||
@@ -4787,7 +4792,8 @@ code = '''
|
||||
}
|
||||
assert(rbyd.count == N);
|
||||
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block, NULL) => 0;
|
||||
lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.block,
|
||||
cfg->block_size, NULL) => 0;
|
||||
for (unsigned k = 0; k < N; k++) {
|
||||
lfs_ssize_t size = lfsr_rbyd_get(&lfs, &rbyd,
|
||||
LFSR_TAG(MKREG, k), buffer, 6);
|
||||
|
||||
Reference in New Issue
Block a user