diff --git a/lfs.c b/lfs.c index 02abfa5a..5676c532 100644 --- a/lfs.c +++ b/lfs.c @@ -1168,14 +1168,7 @@ static lfs_ssize_t lfsr_bd_progtag(lfs_t *lfs, /// lfsr_data_t stuff /// -// the top 2 bits of data's size indicates the actual encoding -// 0b00 => in-RAM buffer -// 0b01 => a single leb128 -// 0b10 => on-disk reference -// 0b11 => concatenated datas #define LFSR_DATA_ONDISK 0x80000000 -#define LFSR_DATA_ISIMM 0x40000000 -#define LFSR_DATA_ISCAT 0xc0000000 #define LFSR_DATA_NULL() \ ((lfsr_data_t){ \ @@ -1193,99 +1186,19 @@ static lfs_ssize_t lfsr_bd_progtag(lfs_t *lfs, .u.buf.size=_size, \ .u.buf.buffer=(const void*)(_buffer)}) -#define LFSR_DATA_IMM(_buffer, _size) \ - lfsr_data_fromimm(_buffer, _size) - -#define LFSR_DATA_LEB128(_word) \ - lfsr_data_fromleb128(_word) - -// this relies on temporary allocations which is a bit precarious... -#define LFSR_DATA_CAT(...) \ - lfsr_data_fromcat( \ - (const lfsr_data_t[]){__VA_ARGS__}, \ - sizeof((const lfsr_data_t[]){__VA_ARGS__}) / sizeof(lfsr_data_t)) - -// These aren't true runtime-typed datas, but allows some special cases to -// bypass data encoding. External context is required to access these -// correctly. - -// a move of all attrs from an mdir entry -#define LFSR_DATA_MOVE(_mdir) \ - ((lfsr_data_t){.u.buf.buffer=(const void*)(const lfsr_mdir_t*){_mdir}}) - -// a grm update, note this is mutable! we may update the grm during -// mdir commits -#define LFSR_DATA_GRM(_grm) \ - ((lfsr_data_t){.u.buf.buffer=(const void*)(lfsr_grm_t*){_grm}}) - -// writing to an unrelated trunk in the rbyd -typedef struct lfsr_shrubcommit lfsr_shrubcommit_t; - -#define LFSR_DATA_SHRUBCOMMIT(_shrub, _rid, _attrs, _attr_count) \ - ((lfsr_data_t){.u.buf.buffer=(const void*)&(const lfsr_shrubcommit_t){ \ - .shrub=_shrub, \ - .rid=_rid, \ - .attrs=_attrs, \ - .attr_count=_attr_count}}) - -#define LFSR_DATA_SHRUBTRUNK(_shrub) \ - ((lfsr_data_t){.u.buf.buffer=(const void*)(const lfsr_shrub_t*){_shrub}}) - +// data helpers static inline bool lfsr_data_ondisk(lfsr_data_t data) { - return (data.u.size & LFSR_DATA_ISCAT) == LFSR_DATA_ONDISK; + return data.u.size & LFSR_DATA_ONDISK; } static inline bool lfsr_data_isbuf(lfsr_data_t data) { - return (data.u.size & LFSR_DATA_ISCAT) == 0; -} - -static inline bool lfsr_data_isimm(lfsr_data_t data) { - return (data.u.size & LFSR_DATA_ISCAT) == LFSR_DATA_ISIMM; -} - -static inline bool lfsr_data_iscat(lfsr_data_t data) { - return (data.u.size & LFSR_DATA_ISCAT) == LFSR_DATA_ISCAT; + return !(data.u.size & LFSR_DATA_ONDISK); } static inline lfs_size_t lfsr_data_size(lfsr_data_t data) { - return data.u.size & ~LFSR_DATA_ISCAT; + return data.u.size & ~LFSR_DATA_ONDISK; } -// some data initializers just can't be macros, we at least make these inline -// so most of the internal logic is hopefully elided -static inline lfsr_data_t lfsr_data_fromimm( - const void *buffer, lfs_size_t size) { - LFS_ASSERT(size <= 8); - - lfsr_data_t data; - memcpy(data.u.imm.buf, buffer, size); - data.u.imm.size = LFSR_DATA_ISIMM | size; - return data; -} - -static inline lfsr_data_t lfsr_data_fromleb128(uint32_t word) { - lfsr_data_t data; - lfs_ssize_t size = lfs_toleb128(word, data.u.imm.buf, 5); - LFS_ASSERT(size > 0); - LFS_ASSERT(size <= 5); - data.u.imm.size = LFSR_DATA_ISIMM | size; - return data; -} - -static inline lfsr_data_t lfsr_data_fromcat( - const lfsr_data_t *datas, lfs_size_t count) { - // find total size - lfs_size_t size = 0; - for (uint8_t i = 0; i < count; i++) { - size += lfsr_data_size(datas[i]); - } - - return (lfsr_data_t){ - .u.cat.size=LFSR_DATA_ISCAT | size, - .u.cat.datas=datas}; -} - -// note these operations only work on "simple" (not concatenated) datas static lfsr_data_t lfsr_data_slice(lfsr_data_t data, lfs_ssize_t off, lfs_ssize_t size) { // limit our off/size to data range, note the use of unsigned casts @@ -1297,26 +1210,15 @@ static lfsr_data_t lfsr_data_slice(lfsr_data_t data, (lfs_size_t)size, lfsr_data_size(data) - off_); - // on-disk? increment + // on-disk? if (lfsr_data_ondisk(data)) { data.u.disk.off += off_; data.u.disk.size = LFSR_DATA_ONDISK | size_; - // buffer? increment - } else if (lfsr_data_isbuf(data)) { + // buffer? + } else { data.u.buf.buffer += off_; data.u.buf.size = size_; - - // inlined? internal memmove - } else if (lfsr_data_isimm(data)) { - memmove(data.u.imm.buf, - data.u.imm.buf + off_, - size_); - data.u.imm.size = LFSR_DATA_ISIMM | size_; - - // concatenated? not supported - } else { - LFS_UNREACHABLE(); } return data; @@ -1357,16 +1259,8 @@ static lfs_ssize_t lfsr_data_read(lfs_t *lfs, lfsr_data_t *data, } // buffer? - } else if (lfsr_data_isbuf(*data)) { - memcpy(buffer, data->u.buf.buffer, d); - - // inlined? - } else if (lfsr_data_isimm(*data)) { - memcpy(buffer, data->u.imm.buf, d); - - // concatenated? not supported } else { - LFS_UNREACHABLE(); + memcpy(buffer, data->u.buf.buffer, d); } *data = lfsr_data_slice(*data, d, -1); @@ -1450,26 +1344,13 @@ static lfs_scmp_t lfsr_data_cmp(lfs_t *lfs, lfsr_data_t data, } // buffer? - } else if (lfsr_data_isbuf(data)) { + } else { int cmp = memcmp(data.u.buf.buffer, buffer, d); if (cmp < 0) { return LFS_CMP_LT; } else if (cmp > 0) { return LFS_CMP_GT; } - - // inlined? - } else if (lfsr_data_isimm(data)) { - int cmp = memcmp(data.u.imm.buf, buffer, d); - if (cmp < 0) { - return LFS_CMP_LT; - } else if (cmp > 0) { - return LFS_CMP_GT; - } - - // concatenated? not supported - } else { - LFS_UNREACHABLE(); } // if data is equal, check for size mismatch @@ -1502,7 +1383,7 @@ static lfs_scmp_t lfsr_data_namecmp(lfs_t *lfs, lfsr_data_t data, return lfsr_data_cmp(lfs, data, name, name_size); } -static int lfsr_bd_progdata_(lfs_t *lfs, +static int lfsr_bd_progdata(lfs_t *lfs, lfs_block_t block, lfs_size_t off, lfsr_data_t data, uint32_t *cksum_) { // on-disk? @@ -1516,53 +1397,156 @@ static int lfsr_bd_progdata_(lfs_t *lfs, } // buffer? - } else if (lfsr_data_isbuf(data)) { + } else { int err = lfsr_bd_prog(lfs, block, off, data.u.buf.buffer, data.u.buf.size, cksum_); if (err) { return err; } - - // inlined? - } else if (lfsr_data_isimm(data)) { - int err = lfsr_bd_prog(lfs, block, off, - data.u.imm.buf, lfsr_data_size(data), - cksum_); - if (err) { - return err; - } - - // concatenated? nesting would require recursion - } else { - LFS_UNREACHABLE(); } return 0; } -static int lfsr_bd_progdata(lfs_t *lfs, - lfs_block_t block, lfs_size_t off, lfsr_data_t data, + +// concatenated data + +typedef struct lfsr_cat { + // sign(size)=0 => single in-RAM buffer + // sign(size)=1 => multiple concatenated datas + union { + lfs_size_t size; + struct { + lfs_size_t size; + const uint8_t *buffer; + } buf; + struct { + lfs_size_t size; + const lfsr_data_t *datas; + } cat; + } u; +} lfsr_cat_t; + +#define LFSR_CAT_ISCAT 0x80000000 + +#define LFSR_CAT_NULL() \ + ((lfsr_cat_t){ \ + .u.buf.size=0, \ + .u.buf.buffer=NULL}) + +#define LFSR_CAT_BUF(_buffer, _size) \ + ((lfsr_cat_t){ \ + .u.buf.size=_size, \ + .u.buf.buffer=(const void*)(_buffer)}) + +#define LFSR_CAT_DATA(_data) \ + lfsr_cat_fromdatas(_data, 1) + +#define LFSR_CAT_DATAS(_datas, _count) \ + lfsr_cat_fromdatas(_datas, _count) + +#define LFSR_CAT_CAT(...) \ + lfsr_cat_fromdatas( \ + (const lfsr_data_t[]){__VA_ARGS__}, \ + sizeof((const lfsr_data_t[]){__VA_ARGS__}) / sizeof(lfsr_data_t)) + +// cat helpers +static inline bool lfsr_cat_isbuf(lfsr_cat_t cat) { + return !(cat.u.size & LFSR_CAT_ISCAT); +} + +static inline bool lfsr_cat_iscat(lfsr_cat_t cat) { + return cat.u.size & LFSR_CAT_ISCAT; +} + +static inline lfs_size_t lfsr_cat_size(lfsr_cat_t cat) { + return cat.u.size & ~LFSR_CAT_ISCAT; +} + +static inline lfsr_data_t lfsr_cat_data(lfsr_cat_t cat) { + // this only works if cat is a simple buffer + LFS_ASSERT(lfsr_cat_isbuf(cat)); + return LFSR_DATA_BUF(cat.u.buf.buffer, cat.u.buf.size); +} + +// some initializers just can't be macros, we at least make these inline +// so most of the internal logic is hopefully elided +static inline lfsr_cat_t lfsr_cat_fromdatas( + const lfsr_data_t *datas, lfs_size_t count) { + // find total size, we store this instead of count + lfs_size_t size = 0; + for (uint8_t i = 0; i < count; i++) { + size += lfsr_data_size(datas[i]); + } + + return (lfsr_cat_t){ + .u.cat.size=LFSR_CAT_ISCAT | size, + .u.cat.datas=datas}; +} + +// some more cats +#define LFSR_LEB128_DSIZE 5 +#define LFSR_LLEB128_DSIZE 4 + +#define LFSR_CAT_LEB128(_word) \ + lfsr_cat_fromleb128(_word, (uint8_t[LFSR_LEB128_DSIZE]){0}) + +#define LFSR_CAT_LLEB128(_word) \ + lfsr_cat_fromlleb128(_word, (uint8_t[LFSR_LLEB128_DSIZE]){0}) + +static inline lfsr_cat_t lfsr_cat_fromleb128(uint32_t word, + uint8_t buffer[static LFSR_LEB128_DSIZE]) { + // leb128s should not exceed 31-bits + LFS_ASSERT(word <= 0x7fffffff); + + lfs_ssize_t d = lfs_toleb128(word, buffer, LFSR_LEB128_DSIZE); + LFS_ASSERT(d >= 0); + return LFSR_CAT_BUF(buffer, d); +} + +static inline lfsr_cat_t lfsr_cat_fromlleb128(uint32_t word, + uint8_t buffer[static LFSR_LLEB128_DSIZE]) { + // little-leb128s should not exceed 28-bits + LFS_ASSERT(word <= 0x0fffffff); + + lfs_ssize_t d = lfs_toleb128(word, buffer, LFSR_LLEB128_DSIZE); + LFS_ASSERT(d >= 0); + return LFSR_CAT_BUF(buffer, d); +} + +#define LFSR_CAT_NAME(_did, _name, _name_size) \ + LFSR_CAT_CAT( \ + lfsr_cat_data(LFSR_CAT_LEB128(_did)), \ + LFSR_DATA_BUF(_name, _name_size)) + +// cat <-> bd interactions +// +// these are simpler than data interactions because we only ever prog +// concatenated data + +static int lfsr_bd_progcat(lfs_t *lfs, + lfs_block_t block, lfs_size_t off, lfsr_cat_t cat, uint32_t *cksum_) { - // simple data? - if (!lfsr_data_iscat(data)) { - return lfsr_bd_progdata_(lfs, block, off, data, + // direct buffer? + if (lfsr_cat_isbuf(cat)) { + return lfsr_bd_progdata(lfs, block, off, lfsr_cat_data(cat), cksum_); - // concatenated data? handle specially to avoid recursion + // indirect concatenated data? } else { - lfs_size_t size = lfsr_data_size(data); - const lfsr_data_t *datas = data.u.cat.datas; + lfs_size_t size = lfsr_cat_size(cat); + const lfsr_data_t *data = cat.u.cat.datas; while (size > 0) { - int err = lfsr_bd_progdata_(lfs, block, off, *datas, + int err = lfsr_bd_progdata(lfs, block, off, *data, cksum_); if (err) { return err; } - off += lfsr_data_size(*datas); - size -= lfsr_data_size(*datas); - datas += 1; + off += lfsr_data_size(*data); + size -= lfsr_data_size(*data); + data += 1; } return 0; @@ -1570,39 +1554,57 @@ static int lfsr_bd_progdata(lfs_t *lfs, } - - // operations on attribute lists -//struct lfs_mattr { -// lfs_tag_t tag; -// const void *buffer; -//}; -// -//struct lfs_diskoff { -// lfs_block_t block; -// lfs_off_t off; -//}; -// -//#define LFS_MKATTRS(...) -// (struct lfs_mattr[]){__VA_ARGS__}, -// sizeof((struct lfs_mattr[]){__VA_ARGS__}) / sizeof(struct lfs_mattr) - typedef struct lfsr_attr { lfsr_tag_t tag; lfsr_srid_t delta; - lfsr_data_t data; + lfsr_cat_t cat; } lfsr_attr_t; -#define LFSR_ATTR(_tag, _delta, _data) \ - ((const lfsr_attr_t){_tag, _delta, _data}) +#define LFSR_ATTR(_tag, _delta, _cat) \ + ((const lfsr_attr_t){_tag, _delta, _cat}) -#define LFSR_ATTR_NOOP() LFSR_ATTR(LFSR_TAG_NULL, 0, LFSR_DATA_NULL()) +#define LFSR_ATTR_NOOP() LFSR_ATTR(LFSR_TAG_NULL, 0, LFSR_CAT_NULL()) +// create an attribute list #define LFSR_ATTRS(...) \ (const lfsr_attr_t[]){__VA_ARGS__}, \ sizeof((const lfsr_attr_t[]){__VA_ARGS__}) / sizeof(lfsr_attr_t) +// attr hacks - sometimes we want to marshal something that isn't really data + +// a move of all attrs from an mdir entry +#define LFSR_ATTR_MOVE(_tag, _delta, _mdir) \ + ((const lfsr_attr_t){ \ + _tag, _delta, \ + .cat.u.buf.buffer=(const void*)(const lfsr_mdir_t*){_mdir}}) + +// a grm update, note this is mutable! we may update the grm during +// mdir commits +#define LFSR_ATTR_GRM(_tag, _delta, _grm) \ + ((const lfsr_attr_t){ \ + _tag, _delta, \ + .cat.u.buf.buffer=(const void*)(lfsr_grm_t*){_grm}}) + +// writing to an unrelated trunk in the rbyd +typedef struct lfsr_shrubcommit lfsr_shrubcommit_t; + +#define LFSR_ATTR_SHRUBCOMMIT(_tag, _delta, \ + _shrub, _rid, _attrs, _attr_count) \ + ((const lfsr_attr_t){ \ + _tag, _delta, \ + .cat.u.buf.buffer=(const void*)&(const lfsr_shrubcommit_t){ \ + .shrub=_shrub, \ + .rid=_rid, \ + .attrs=_attrs, \ + .attr_count=_attr_count}}) + +#define LFSR_ATTR_SHRUBTRUNK(_tag, _delta, _shrub) \ + ((const lfsr_attr_t){ \ + _tag, _delta, \ + .cat.u.buf.buffer=(const void*)(const lfsr_shrub_t*){_shrub}}) + // some helpers static inline bool lfsr_attr_isnoop(const lfsr_attr_t *attr) { return !attr->tag && attr->delta == 0; @@ -1613,20 +1615,20 @@ static inline bool lfsr_attr_isinsert(const lfsr_attr_t *attr) { } static inline lfsr_grm_t *lfsr_attr_grm(const lfsr_attr_t *attr) { - return (lfsr_grm_t*)attr->data.u.buf.buffer; + return (lfsr_grm_t*)attr->cat.u.buf.buffer; } static inline lfsr_mdir_t *lfsr_attr_mdir(const lfsr_attr_t *attr) { - return (lfsr_mdir_t*)attr->data.u.buf.buffer; + return (lfsr_mdir_t*)attr->cat.u.buf.buffer; } static inline const lfsr_shrubcommit_t *lfsr_attr_shrubcommit( const lfsr_attr_t *attr) { - return (const lfsr_shrubcommit_t*)attr->data.u.buf.buffer; + return (const lfsr_shrubcommit_t*)attr->cat.u.buf.buffer; } static inline lfsr_shrub_t *lfsr_attr_shrubtrunk(const lfsr_attr_t *attr) { - return (lfsr_shrub_t*)attr->data.u.buf.buffer; + return (lfsr_shrub_t*)attr->cat.u.buf.buffer; } @@ -1772,10 +1774,10 @@ typedef struct lfsr_ecksum { // #define LFSR_ECKSUM_DSIZE (4+4) -#define LFSR_DATA_FROMECKSUM(_ecksum) \ - lfsr_data_fromecksum(_ecksum, (uint8_t[LFSR_ECKSUM_DSIZE]){0}) +#define LFSR_CAT_ECKSUM(_ecksum) \ + lfsr_cat_fromecksum(_ecksum, (uint8_t[LFSR_ECKSUM_DSIZE]){0}) -static lfsr_data_t lfsr_data_fromecksum(const lfsr_ecksum_t *ecksum, +static lfsr_cat_t lfsr_cat_fromecksum(const lfsr_ecksum_t *ecksum, uint8_t buffer[static LFSR_ECKSUM_DSIZE]) { // you shouldn't try to encode a not-ecksum, that doesn't make sense LFS_ASSERT(ecksum->cksize != -1); @@ -1790,7 +1792,7 @@ static lfsr_data_t lfsr_data_fromecksum(const lfsr_ecksum_t *ecksum, lfs_tole32_(ecksum->cksum, &buffer[d]); d += 4; - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readecksum(lfs_t *lfs, lfsr_data_t *data, @@ -1826,10 +1828,10 @@ static int lfsr_data_readecksum(lfs_t *lfs, lfsr_data_t *data, // #define LFSR_BPTR_DSIZE (4+5+4+4+4) -#define LFSR_DATA_FROMBPTR(_bptr) \ - lfsr_data_frombptr(_bptr, (uint8_t[LFSR_BPTR_DSIZE]){0}) +#define LFSR_CAT_BPTR(_bptr) \ + lfsr_cat_frombptr(_bptr, (uint8_t[LFSR_BPTR_DSIZE]){0}) -static lfsr_data_t lfsr_data_frombptr(const lfsr_bptr_t *bptr, +static lfsr_cat_t lfsr_cat_frombptr(const lfsr_bptr_t *bptr, uint8_t buffer[static LFSR_BPTR_DSIZE]) { // size should not exceed 28-bits LFS_ASSERT(lfsr_data_size(bptr->data) <= 0x0fffffff); @@ -1862,7 +1864,7 @@ static lfsr_data_t lfsr_data_frombptr(const lfsr_bptr_t *bptr, lfs_tole32_(bptr->cksum, &buffer[d]); d += 4; - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readbptr(lfs_t *lfs, lfsr_data_t *data, @@ -2035,10 +2037,10 @@ static inline bool lfsr_grm_isrm(const lfsr_grm_t *grm, lfsr_smid_t mid) { return grm->rms[0] == mid || grm->rms[1] == mid; } -#define LFSR_DATA_FROMGRM(_grm) \ - lfsr_data_fromgrm(_grm, (uint8_t[LFSR_GRM_DSIZE]){0}) +#define LFSR_CAT_GRM(_grm) \ + lfsr_cat_fromgrm(_grm, (uint8_t[LFSR_GRM_DSIZE]){0}) -static lfsr_data_t lfsr_data_fromgrm(const lfsr_grm_t *grm, +static lfsr_cat_t lfsr_cat_fromgrm(const lfsr_grm_t *grm, uint8_t buffer[static LFSR_GRM_DSIZE]) { // make sure to zero so we don't leak any info memset(buffer, 0, LFSR_GRM_DSIZE); @@ -2056,7 +2058,7 @@ static lfsr_data_t lfsr_data_fromgrm(const lfsr_grm_t *grm, d += d_; } - return LFSR_DATA_BUF(buffer, lfsr_gdelta_size(buffer, LFSR_GRM_DSIZE)); + return LFSR_CAT_BUF(buffer, lfsr_gdelta_size(buffer, LFSR_GRM_DSIZE)); } static inline void lfsr_gdelta_xorgrm(lfs_t *lfs, @@ -2064,9 +2066,10 @@ static inline void lfsr_gdelta_xorgrm(lfs_t *lfs, const lfsr_grm_t *grm) { LFS_ASSERT(size >= LFSR_GRM_DSIZE); + // TODO should gdelta be handled differently? uint8_t buf[LFSR_GRM_DSIZE]; int err = lfsr_gdelta_xor(lfs, gdelta, size, - lfsr_data_fromgrm(grm, buf)); + lfsr_cat_data(lfsr_cat_fromgrm(grm, buf))); LFS_ASSERT(!err); } @@ -2674,11 +2677,11 @@ static int lfsr_rbyd_appendtag(lfs_t *lfs, lfsr_rbyd_t *rbyd, return 0; } -static int lfsr_rbyd_appenddata(lfs_t *lfs, lfsr_rbyd_t *rbyd, - lfsr_data_t data) { +static int lfsr_rbyd_appendcat(lfs_t *lfs, lfsr_rbyd_t *rbyd, + lfsr_cat_t cat) { uint32_t cksum_ = rbyd->cksum; - int err = lfsr_bd_progdata(lfs, rbyd->blocks[0], lfsr_rbyd_eoff(rbyd), - data, + int err = lfsr_bd_progcat(lfs, rbyd->blocks[0], lfsr_rbyd_eoff(rbyd), + cat, &cksum_); if (err) { return err; @@ -2688,20 +2691,20 @@ static int lfsr_rbyd_appenddata(lfs_t *lfs, lfsr_rbyd_t *rbyd, rbyd->eoff += ((lfs_size_t)lfs_parity(rbyd->cksum ^ cksum_) << (8*sizeof(lfs_size_t)-1)) - + lfsr_data_size(data); + + lfsr_cat_size(cat); rbyd->cksum = cksum_; return 0; } static int lfsr_rbyd_appendattr_(lfs_t *lfs, lfsr_rbyd_t *rbyd, - lfsr_tag_t tag, lfsr_rid_t weight, lfsr_data_t data) { + lfsr_tag_t tag, lfsr_rid_t weight, lfsr_cat_t cat) { int err = lfsr_rbyd_appendtag(lfs, rbyd, - tag, weight, lfsr_data_size(data)); + tag, weight, lfsr_cat_size(cat)); if (err) { return err; } - err = lfsr_rbyd_appenddata(lfs, rbyd, data); + err = lfsr_rbyd_appendcat(lfs, rbyd, cat); if (err) { return err; } @@ -2831,7 +2834,7 @@ static void lfsr_rbyd_p_recolor( // core rbyd algorithm static int lfsr_rbyd_appendattr(lfs_t *lfs, lfsr_rbyd_t *rbyd, - lfsr_srid_t rid, lfsr_tag_t tag, lfsr_srid_t delta, lfsr_data_t data) { + lfsr_srid_t rid, lfsr_tag_t tag, lfsr_srid_t delta, lfsr_cat_t cat) { // must fetch before mutating! LFS_ASSERT(lfsr_rbyd_isfetched(rbyd)); // tag must not be internal at this point @@ -3292,7 +3295,7 @@ trunk:; (lfsr_rbyd_isshrub(rbyd) ? LFSR_TAG_SHRUB : 0) | LFSR_TAG_NULL, 0, - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); if (err) { return err; } @@ -3407,7 +3410,7 @@ leaf:; ? LFSR_TAG_NULL : lfsr_tag_key(tag)), upper_rid - lower_rid + delta, - data); + cat); if (err) { return err; } @@ -3483,7 +3486,7 @@ static int lfsr_rbyd_appendcksum(lfs_t *lfs, lfsr_rbyd_t *rbyd) { } err = lfsr_rbyd_appendattr_(lfs, rbyd, - LFSR_TAG_ECKSUM, 0, LFSR_DATA_FROMECKSUM(&ecksum)); + LFSR_TAG_ECKSUM, 0, LFSR_CAT_ECKSUM(&ecksum)); if (err) { return err; } @@ -3571,7 +3574,7 @@ static int lfsr_rbyd_appendattrs(lfs_t *lfs, lfsr_rbyd_t *rbyd, && (lfs_size_t)(rid + 1) <= (lfs_size_t)end_rid) { int err = lfsr_rbyd_appendattr(lfs, rbyd, rid - lfs_smax32(start_rid, 0), - attrs[i].tag, attrs[i].delta, attrs[i].data); + attrs[i].tag, attrs[i].delta, attrs[i].cat); if (err) { return err; } @@ -3701,7 +3704,7 @@ static lfs_ssize_t lfsr_rbyd_estimate(lfs_t *lfs, const lfsr_rbyd_t *rbyd, // // also note the direct use of weight instead of delta here static int lfsr_rbyd_appendcompactattr(lfs_t *lfs, lfsr_rbyd_t *rbyd, - lfsr_tag_t tag, lfsr_rid_t weight, lfsr_data_t data) { + lfsr_tag_t tag, lfsr_rid_t weight, lfsr_cat_t cat) { // begin appending int err = lfsr_rbyd_prepareappend(lfs, rbyd); if (err) { @@ -3712,7 +3715,7 @@ static int lfsr_rbyd_appendcompactattr(lfs_t *lfs, lfsr_rbyd_t *rbyd, err = lfsr_rbyd_appendattr_(lfs, rbyd, (lfsr_rbyd_isshrub(rbyd) ? LFSR_TAG_SHRUB : 0) | tag, weight, - data); + cat); if (err) { return err; } @@ -3745,7 +3748,8 @@ static int lfsr_rbyd_appendcompactrbyd(lfs_t *lfs, lfsr_rbyd_t *rbyd_, } // write the tag - err = lfsr_rbyd_appendcompactattr(lfs, rbyd_, tag, weight, data); + err = lfsr_rbyd_appendcompactattr(lfs, rbyd_, + tag, weight, LFSR_CAT_DATA(&data)); if (err) { return err; } @@ -3933,7 +3937,7 @@ static int lfsr_rbyd_appendgdelta(lfs_t *lfs, lfsr_rbyd_t *rbyd) { (size == 0) ? LFSR_TAG_RM | LFSR_TAG_GRMDELTA : LFSR_TAG_GRMDELTA, 0, - LFSR_DATA_BUF(grm_, size)); + LFSR_CAT_BUF(grm_, size)); if (err) { return err; } @@ -4101,10 +4105,10 @@ static inline int lfsr_btree_cmp( // #define LFSR_BRANCH_DSIZE (5+4+4) -#define LFSR_DATA_FROMBRANCH(_branch) \ - lfsr_data_frombranch(_branch, (uint8_t[LFSR_BRANCH_DSIZE]){0}) +#define LFSR_CAT_BRANCH(_branch) \ + lfsr_cat_frombranch(_branch, (uint8_t[LFSR_BRANCH_DSIZE]){0}) -static lfsr_data_t lfsr_data_frombranch(const lfsr_rbyd_t *branch, +static lfsr_cat_t lfsr_cat_frombranch(const lfsr_rbyd_t *branch, uint8_t buffer[static LFSR_BRANCH_DSIZE]) { // block should not exceed 31-bits LFS_ASSERT(branch->blocks[0] <= 0x7fffffff); @@ -4123,7 +4127,7 @@ static lfsr_data_t lfsr_data_frombranch(const lfsr_rbyd_t *branch, lfs_tole32_(branch->cksum, &buffer[d]); d += 4; - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readbranch(lfs_t *lfs, lfsr_data_t *data, @@ -4171,10 +4175,10 @@ static int lfsr_data_readbranch(lfs_t *lfs, lfsr_data_t *data, // #define LFSR_BTREE_DSIZE (5+LFSR_BRANCH_DSIZE) -#define LFSR_DATA_FROMBTREE(_btree) \ - lfsr_data_frombtree(_btree, (uint8_t[LFSR_BTREE_DSIZE]){0}) +#define LFSR_CAT_BTREE(_btree) \ + lfsr_cat_frombtree(_btree, (uint8_t[LFSR_BTREE_DSIZE]){0}) -static lfsr_data_t lfsr_data_frombtree(const lfsr_btree_t *btree, +static lfsr_cat_t lfsr_cat_frombtree(const lfsr_btree_t *btree, uint8_t buffer[static LFSR_BTREE_DSIZE]) { // weight should not exceed 31-bits LFS_ASSERT(btree->weight <= 0x7fffffff); @@ -4184,10 +4188,10 @@ static lfsr_data_t lfsr_data_frombtree(const lfsr_btree_t *btree, LFS_ASSERT(d_ >= 0); d += d_; - lfsr_data_t data = lfsr_data_frombranch(btree, &buffer[d]); - d += lfsr_data_size(data); + lfsr_cat_t cat = lfsr_cat_frombranch(btree, &buffer[d]); + d += lfsr_cat_size(cat); - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readbtree(lfs_t *lfs, lfsr_data_t *data, @@ -4379,7 +4383,9 @@ static int lfsr_btree_parent(lfs_t *lfs, const lfsr_btree_t *btree, static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree, lfsr_bid_t *bid_, const lfsr_attr_t **attrs_, lfs_size_t *attr_count_, lfsr_attr_t attrs__[static 4], - uint8_t buf__[static 2*LFSR_BRANCH_DSIZE]) { + uint8_t buf__[static 2*LFSR_BRANCH_DSIZE], + // TODO can we carve this out of buf__? + lfsr_data_t split_data__[static 1]) { lfsr_bid_t bid = *bid_; LFS_ASSERT(bid <= (lfsr_bid_t)btree->weight); const lfsr_attr_t *attrs = *attrs_; @@ -4504,16 +4510,16 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree, bid -= pid - (rbyd.weight-1); if (rbyd_.weight == 0) { attrs__[attr_count++] = LFSR_ATTR( - LFSR_TAG_RM, -rbyd.weight, LFSR_DATA_NULL()); + LFSR_TAG_RM, -rbyd.weight, LFSR_CAT_NULL()); } else { attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, 0, - lfsr_data_frombranch(&rbyd_, &buf__[buf_size])); + lfsr_cat_frombranch(&rbyd_, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; if (rbyd_.weight != rbyd.weight) { attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW, -rbyd.weight + rbyd_.weight, - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); } } attrs = attrs__; @@ -4761,9 +4767,8 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree, // note we need to do this after playing out pending attrs in case // they introduce a new name! lfsr_tag_t split_tag; - lfsr_data_t split_data; err = lfsr_rbyd_lookupnext(lfs, &sibling, 0, LFSR_TAG_NAME, - NULL, &split_tag, NULL, &split_data); + NULL, &split_tag, NULL, &split_data__[0]); if (err) { LFS_ASSERT(err != LFS_ERR_NOENT); return err; @@ -4778,35 +4783,37 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree, if (!lfsr_rbyd_trunk(&parent)) { attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, +rbyd_.weight, - lfsr_data_frombranch(&rbyd_, &buf__[buf_size])); + lfsr_cat_frombranch(&rbyd_, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, +sibling.weight, - lfsr_data_frombranch(&sibling, &buf__[buf_size])); + lfsr_cat_frombranch(&sibling, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; if (lfsr_tag_suptype(split_tag) == LFSR_TAG_NAME) { attrs__[attr_count++] = LFSR_ATTR( - LFSR_TAG_NAME, 0, split_data); + LFSR_TAG_NAME, 0, + lfsr_cat_fromdatas(&split_data__[0], 1)); } // split root? } else { bid -= pid - (rbyd.weight-1); attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, 0, - lfsr_data_frombranch(&rbyd_, &buf__[buf_size])); + lfsr_cat_frombranch(&rbyd_, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; if (rbyd_.weight != rbyd.weight) { attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW, -rbyd.weight + rbyd_.weight, - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); } attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, +sibling.weight, - lfsr_data_frombranch(&sibling, &buf__[buf_size])); + lfsr_cat_frombranch(&sibling, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; if (lfsr_tag_suptype(split_tag) == LFSR_TAG_NAME) { attrs__[attr_count++] = LFSR_ATTR( - LFSR_TAG_NAME, 0, split_data); + LFSR_TAG_NAME, 0, + lfsr_cat_fromdatas(&split_data__[0], 1)); } } attrs = attrs__; @@ -4872,15 +4879,15 @@ static int lfsr_btree_commit_(lfs_t *lfs, lfsr_btree_t *btree, buf_size = 0; bid -= pid - (rbyd.weight-1); attrs__[attr_count++] = LFSR_ATTR( - LFSR_TAG_RM, -sibling.weight, LFSR_DATA_NULL()); + LFSR_TAG_RM, -sibling.weight, LFSR_CAT_NULL()); attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_BRANCH, 0, - lfsr_data_frombranch(&rbyd_, &buf__[buf_size])); + lfsr_cat_frombranch(&rbyd_, &buf__[buf_size])); buf_size += LFSR_BRANCH_DSIZE; if (rbyd_.weight != rbyd.weight) { attrs__[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW, -rbyd.weight + rbyd_.weight, - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); } attrs = attrs__; @@ -4896,11 +4903,12 @@ static int lfsr_btree_commit(lfs_t *lfs, lfsr_btree_t *btree, // we need some scratch space for tail-recursive attrs lfsr_attr_t attrs__[4]; uint8_t buffer[2*LFSR_BRANCH_DSIZE]; + lfsr_data_t split_data__[1]; // try to commit to the btree int err = lfsr_btree_commit_(lfs, btree, &bid, &attrs, &attr_count, - attrs__, buffer); + attrs__, buffer, split_data__); if (err && err != LFS_ERR_RANGE) { return err; } @@ -5236,10 +5244,10 @@ static inline int lfsr_shrub_cmp( // #define LFSR_SHRUB_DSIZE (5+4) -#define LFSR_DATA_FROMSHRUB(_rbyd) \ - lfsr_data_fromshrub(_rbyd, (uint8_t[LFSR_SHRUB_DSIZE]){0}) +#define LFSR_CAT_SHRUB(_rbyd) \ + lfsr_cat_fromshrub(_rbyd, (uint8_t[LFSR_SHRUB_DSIZE]){0}) -static lfsr_data_t lfsr_data_fromshrub(const lfsr_shrub_t *shrub, +static lfsr_cat_t lfsr_cat_fromshrub(const lfsr_shrub_t *shrub, uint8_t buffer[static LFSR_SHRUB_DSIZE]) { // shrub trunks should never be null LFS_ASSERT(lfsr_shrub_trunk(shrub) != 0); @@ -5259,7 +5267,7 @@ static lfsr_data_t lfsr_data_fromshrub(const lfsr_shrub_t *shrub, LFS_ASSERT(d_ >= 0); d += d_; - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readshrub(lfs_t *lfs, lfsr_data_t *data, @@ -5438,10 +5446,10 @@ static inline bool lfsr_mptr_ismrootanchor(const lfsr_mptr_t *mptr) { // #define LFSR_MPTR_DSIZE (5+5) -#define LFSR_DATA_FROMMPTR(_mptr) \ - lfsr_data_frommptr(_mptr, (uint8_t[LFSR_MPTR_DSIZE]){0}) +#define LFSR_CAT_MPTR(_mptr) \ + lfsr_cat_frommptr(_mptr, (uint8_t[LFSR_MPTR_DSIZE]){0}) -static lfsr_data_t lfsr_data_frommptr(const lfsr_mptr_t *mptr, +static lfsr_cat_t lfsr_cat_frommptr(const lfsr_mptr_t *mptr, uint8_t buffer[static LFSR_MPTR_DSIZE]) { // blocks should not exceed 31-bits LFS_ASSERT(mptr->blocks[0] <= 0x7fffffff); @@ -5454,7 +5462,7 @@ static lfsr_data_t lfsr_data_frommptr(const lfsr_mptr_t *mptr, d += d_; } - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readmptr(lfs_t *lfs, lfsr_data_t *data, @@ -5982,7 +5990,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, if (tag == LFSR_TAG_DATA) { err = lfsr_rbyd_appendattr(lfs, &rbyd_, rid - lfs_smax32(start_rid, 0), - tag, 0, data); + tag, 0, LFSR_CAT_DATA(&data)); if (err) { return err; } @@ -6011,11 +6019,10 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, } // write our new shrub tag - uint8_t shrub_buf[LFSR_SHRUB_DSIZE]; err = lfsr_rbyd_appendattr(lfs, &rbyd_, rid - lfs_smax32(start_rid, 0), - LFSR_TAG_BSHRUB, 0, lfsr_data_fromshrub( - &shrub, shrub_buf)); + LFSR_TAG_BSHRUB, 0, + LFSR_CAT_SHRUB(&shrub)); if (err) { return err; } @@ -6024,7 +6031,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, } else { err = lfsr_rbyd_appendattr(lfs, &rbyd_, rid - lfs_smax32(start_rid, 0), - tag, 0, data); + tag, 0, LFSR_CAT_DATA(&data)); if (err) { return err; } @@ -6049,7 +6056,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, != rbyd_.blocks[0]) { int err = lfsr_rbyd_appendcompactattr(lfs, &rbyd_, LFSR_TAG_SHRUB | LFSR_TAG_DATA, 0, - file->bshrub.u.bsprout); + LFSR_CAT_DATA(&file->bshrub.u.bsprout)); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6113,14 +6120,12 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, } else if (lfsr_tag_key(attrs[i].tag) == LFSR_TAG_SHRUBTRUNK) { lfsr_shrub_t *shrub = lfsr_attr_shrubtrunk(&attrs[i]); - uint8_t shrub_buf[LFSR_SHRUB_DSIZE]; int err = lfsr_rbyd_appendattr(lfs, &rbyd_, rid - lfs_smax32(start_rid, 0), lfsr_tag_mode(attrs[i].tag) | LFSR_TAG_BSHRUB, attrs[i].delta, - lfsr_data_fromshrub( - // note we use the staged trunk here - shrub, shrub_buf)); + // note we use the staged trunk here + LFSR_CAT_SHRUB(shrub)); if (err) { return err; } @@ -6131,7 +6136,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, int err = lfsr_rbyd_appendattr(lfs, &rbyd_, rid - lfs_smax32(start_rid, 0), - attrs[i].tag, attrs[i].delta, attrs[i].data); + attrs[i].tag, attrs[i].delta, attrs[i].cat); if (err) { return err; } @@ -6359,7 +6364,7 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_, // we need to update any opened inlined files if (tag == LFSR_TAG_DATA) { err = lfsr_rbyd_appendcompactattr(lfs, &mdir_->rbyd, - tag, weight, data); + tag, weight, LFSR_CAT_DATA(&data)); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6391,10 +6396,8 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_, } // write the new shrub tag - uint8_t shrub_buf[LFSR_SHRUB_DSIZE]; err = lfsr_rbyd_appendcompactattr(lfs, &mdir_->rbyd, - tag, weight, lfsr_data_fromshrub( - &shrub, shrub_buf)); + tag, weight, LFSR_CAT_SHRUB(&shrub)); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6403,7 +6406,7 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_, } else { // write the tag err = lfsr_rbyd_appendcompactattr(lfs, &mdir_->rbyd, - tag, weight, data); + tag, weight, LFSR_CAT_DATA(&data)); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6435,7 +6438,8 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_, && file->bshrub_.u.bsprout.u.disk.block != mdir_->rbyd.blocks[0]) { err = lfsr_rbyd_appendcompactattr(lfs, &mdir_->rbyd, - LFSR_TAG_SHRUB | LFSR_TAG_DATA, 0, file->bshrub.u.bsprout); + LFSR_TAG_SHRUB | LFSR_TAG_DATA, 0, + LFSR_CAT_DATA(&file->bshrub.u.bsprout)); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6764,12 +6768,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MDIR, +lfsr_mleafweight(lfs), - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&mdir_))), + LFSR_CAT_MPTR(lfsr_mdir_mptr(&mdir_))), LFSR_ATTR( - LFSR_TAG_NAME, +lfsr_mleafweight(lfs), split_data), + LFSR_TAG_NAME, +lfsr_mleafweight(lfs), + LFSR_CAT_DATA(&split_data)), LFSR_ATTR( LFSR_TAG_MDIR, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&msibling_))))); + LFSR_CAT_MPTR(lfsr_mdir_mptr(&msibling_))))); if (err) { return err; } @@ -6783,12 +6788,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfsr_mid_bid(lfs, mdir->mid), LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MDIR, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&mdir_))), + LFSR_CAT_MPTR(lfsr_mdir_mptr(&mdir_))), LFSR_ATTR( - LFSR_TAG_NAME, +lfsr_mleafweight(lfs), split_data), + LFSR_TAG_NAME, +lfsr_mleafweight(lfs), + LFSR_CAT_DATA(&split_data)), LFSR_ATTR( LFSR_TAG_MDIR, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&msibling_))))); + LFSR_CAT_MPTR(lfsr_mdir_mptr(&msibling_))))); if (err) { return err; } @@ -6822,7 +6828,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfsr_mid_bid(lfs, mdir->mid), LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM, -lfsr_mleafweight(lfs), - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); if (err) { return err; } @@ -6852,7 +6858,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfsr_mid_bid(lfs, mdir->mid), LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MDIR, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&mdir_))))); + LFSR_CAT_MPTR(lfsr_mdir_mptr(&mdir_))))); if (err) { return err; } @@ -6912,10 +6918,10 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, (lfsr_mtree_ismptr(&mtree_)) ? LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_MDIR, 0, - LFSR_DATA_FROMMPTR(&mtree_.u.mptr.mptr)) + LFSR_CAT_MPTR(&mtree_.u.mptr.mptr)) : LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_MTREE, 0, - LFSR_DATA_FROMBTREE(&mtree_.u.btree)))); + LFSR_CAT_BTREE(&mtree_.u.btree)))); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); return err; @@ -6950,7 +6956,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MROOT, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&mrootchild_))))); + LFSR_CAT_MPTR(lfsr_mdir_mptr(&mrootchild_))))); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); LFS_ASSERT(err != LFS_ERR_NOENT); @@ -6982,10 +6988,10 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MAGIC, 0, - LFSR_DATA_BUF("littlefs", 8)), + LFSR_CAT_BUF("littlefs", 8)), LFSR_ATTR( LFSR_TAG_MROOT, 0, - LFSR_DATA_FROMMPTR(lfsr_mdir_mptr(&mrootchild_))))); + LFSR_CAT_MPTR(lfsr_mdir_mptr(&mrootchild_))))); if (err) { LFS_ASSERT(err != LFS_ERR_RANGE); LFS_ASSERT(err != LFS_ERR_NOENT); @@ -7007,7 +7013,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfs->grm = *lfsr_attr_grm(&attrs[i]); // keep track of the exact encoding on-disk - lfsr_data_fromgrm(&lfs->grm, lfs->grm_g); + lfsr_cat_fromgrm(&lfs->grm, lfs->grm_g); } // adjust any opened mdirs @@ -7972,8 +7978,8 @@ static inline bool lfsr_ocompat_isincompat(lfsr_ocompat_t ocompat) { // // little-endian, truncated bits must be assumed zero -#define LFSR_DATA_FROMRCOMPAT(_rcompat) \ - LFSR_DATA_IMM(((uint8_t[]){ \ +#define LFSR_CAT_RCOMPAT(_rcompat) \ + LFSR_CAT_BUF(((uint8_t[]){ \ (((_rcompat) >> 0) & 0xff), \ (((_rcompat) >> 8) & 0xff)}), 2) @@ -8008,7 +8014,7 @@ static int lfsr_data_readrcompat(lfs_t *lfs, lfsr_data_t *data, } // all the compat parsing is basically the same, so try to reuse code -#define LFSR_DATA_FROMWCOMPAT(_wcompat) LFSR_DATA_NULL() +#define LFSR_CAT_WCOMPAT(_wcompat) LFSR_CAT_RCOMPAT(_wcompat) static int lfsr_data_readwcompat(lfs_t *lfs, lfsr_data_t *data, lfsr_wcompat_t *wcompat) { @@ -8032,10 +8038,10 @@ typedef struct lfsr_geometry { // '---+- -+- -+- -+- -' #define LFSR_GEOMETRY_DSIZE (4+5) -#define LFSR_DATA_FROMGEOMETRY(_geometry) \ - lfsr_data_fromgeometry(_geometry, (uint8_t[LFSR_GEOMETRY_DSIZE]){0}) +#define LFSR_CAT_GEOMETRY(_geometry) \ + lfsr_cat_fromgeometry(_geometry, (uint8_t[LFSR_GEOMETRY_DSIZE]){0}) -static lfsr_data_t lfsr_data_fromgeometry(const lfsr_geometry_t *geometry, +static lfsr_cat_t lfsr_cat_fromgeometry(const lfsr_geometry_t *geometry, uint8_t buffer[static LFSR_GEOMETRY_DSIZE]) { lfs_ssize_t d = 0; lfs_ssize_t d_ = lfs_toleb128(geometry->block_size-1, &buffer[d], 4); @@ -8046,7 +8052,7 @@ static lfsr_data_t lfsr_data_fromgeometry(const lfsr_geometry_t *geometry, LFS_ASSERT(d_ >= 0); d += d_; - return LFSR_DATA_BUF(buffer, d); + return LFSR_CAT_BUF(buffer, d); } static int lfsr_data_readgeometry(lfs_t *lfs, lfsr_data_t *data, @@ -8430,29 +8436,29 @@ static int lfsr_formatinited(lfs_t *lfs) { err = lfsr_rbyd_commit(lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MAGIC, 0, - LFSR_DATA_BUF("littlefs", 8)), + LFSR_CAT_BUF("littlefs", 8)), LFSR_ATTR( LFSR_TAG_VERSION, 0, - LFSR_DATA_IMM(((const uint8_t[2]){ + LFSR_CAT_BUF(((const uint8_t[2]){ LFS_DISK_VERSION_MAJOR, LFS_DISK_VERSION_MINOR}), 2)), LFSR_ATTR( LFSR_TAG_RCOMPAT, 0, - LFSR_DATA_FROMRCOMPAT(LFSR_RCOMPAT_COMPAT)), + LFSR_CAT_RCOMPAT(LFSR_RCOMPAT_COMPAT)), LFSR_ATTR( LFSR_TAG_GEOMETRY, 0, - LFSR_DATA_FROMGEOMETRY((&(lfsr_geometry_t){ + LFSR_CAT_GEOMETRY((&(lfsr_geometry_t){ lfs->cfg->block_size, lfs->cfg->block_count}))), LFSR_ATTR( LFSR_TAG_NAMELIMIT, 0, - LFSR_DATA_LEB128(lfs->name_limit)), + LFSR_CAT_LLEB128(lfs->name_limit)), LFSR_ATTR( LFSR_TAG_SIZELIMIT, 0, - LFSR_DATA_LEB128(lfs->size_limit)), + LFSR_CAT_LEB128(lfs->size_limit)), LFSR_ATTR( LFSR_TAG_BOOKMARK, +1, - LFSR_DATA_LEB128(0)))); + LFSR_CAT_LEB128(0)))); if (err) { return err; } @@ -8709,8 +8715,8 @@ static int lfsr_fs_fixgrm(lfs_t *lfs) { LFS_ASSERT(lfsr_mid_rid(lfs, lfs->grm.rms[0]) < (lfsr_srid_t)mdir.rbyd.weight); err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_GRM, 0, LFSR_DATA_GRM(&grm)))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR_GRM(LFSR_TAG_GRM, 0, &grm))); } return 0; @@ -8741,7 +8747,7 @@ static int lfsr_fs_fixorphans(lfs_t *lfs) { if (err != LFS_ERR_NOENT) { // remove orphaned file err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); if (err) { return err; } @@ -8944,10 +8950,8 @@ int lfsr_mkdir(lfs_t *lfs, const char *path) { // commit our bookmark and a grm to self-remove in case of powerloss err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_BOOKMARK, +1, LFSR_DATA_LEB128(did_)), - LFSR_ATTR( - LFSR_TAG_GRM, 0, - LFSR_DATA_GRM(&((lfsr_grm_t){{mdir.mid, -1}}))))); + LFSR_ATTR(LFSR_TAG_BOOKMARK, +1, LFSR_CAT_LEB128(did_)), + LFSR_ATTR_GRM(LFSR_TAG_GRM, 0, &((lfsr_grm_t){{mdir.mid, -1}})))); if (err) { return err; } @@ -8967,13 +8971,9 @@ int lfsr_mkdir(lfs_t *lfs, const char *path) { err = lfsr_mdir_commit(lfs, &mdir, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUP | LFSR_TAG_DIR, (!exists) ? +1 : 0, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(did), - LFSR_DATA_BUF(name, name_size))), - LFSR_ATTR(LFSR_TAG_DID, 0, LFSR_DATA_LEB128(did_)), - LFSR_ATTR( - LFSR_TAG_GRM, 0, - LFSR_DATA_GRM(&((lfsr_grm_t){{-1, -1}}))))); + LFSR_CAT_NAME(did, name, name_size)), + LFSR_ATTR(LFSR_TAG_DID, 0, LFSR_CAT_LEB128(did_)), + LFSR_ATTR_GRM(LFSR_TAG_GRM, 0, &((lfsr_grm_t){{-1, -1}})))); if (err) { return err; } @@ -9074,12 +9074,10 @@ int lfsr_remove(lfs_t *lfs, const char *path) { (zombie) ? LFSR_ATTR( LFSR_TAG_SUP | LFSR_TAG_ORPHAN, 0, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(did), - LFSR_DATA_BUF(name, name_size))) + LFSR_CAT_NAME(did, name, name_size)) : LFSR_ATTR( - LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_GRM, 0, LFSR_DATA_GRM(&grm)))); + LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR_GRM(LFSR_TAG_GRM, 0, &grm))); if (err) { return err; } @@ -9224,11 +9222,9 @@ int lfsr_rename(lfs_t *lfs, const char *old_path, const char *new_path) { err = lfsr_mdir_commit(lfs, &new_mdir, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUP | old_tag, (!exists) ? +1 : 0, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(new_did), - LFSR_DATA_BUF(new_name, new_name_size))), - LFSR_ATTR(LFSR_TAG_MOVE, 0, LFSR_DATA_MOVE(&old_mdir)), - LFSR_ATTR(LFSR_TAG_GRM, 0, LFSR_DATA_GRM(&grm)))); + LFSR_CAT_NAME(new_did, new_name, new_name_size)), + LFSR_ATTR_MOVE(LFSR_TAG_MOVE, 0, &old_mdir), + LFSR_ATTR_GRM(LFSR_TAG_GRM, 0, &grm))); if (err) { return err; } @@ -9705,9 +9701,7 @@ int lfsr_file_opencfg(lfs_t *lfs, lfsr_file_t *file, err = lfsr_mdir_commit(lfs, &file->m.mdir, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_ORPHAN, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(did), - LFSR_DATA_BUF(name, name_size))))); + LFSR_CAT_NAME(did, name, name_size)))); if (err) { return err; } @@ -10162,11 +10156,12 @@ static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file, // we need some scratch space for tail-recursive attrs lfsr_attr_t attrs__[4]; uint8_t buffer[2*LFSR_BRANCH_DSIZE]; + lfsr_data_t split_data__[1]; // try to commit to the btree int err = lfsr_btree_commit_(lfs, &file->bshrub.u.btree, &bid, &attrs, &attr_count, - attrs__, buffer); + attrs__, buffer, split_data__); if (err && err != LFS_ERR_RANGE) { return err; } @@ -10194,7 +10189,7 @@ static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file, && !lfsr_tag_isrm(attrs[i].tag)) { commit_estimate += lfs->attr_estimate; } - commit_estimate += lfsr_data_size(attrs[i].data); + commit_estimate += lfsr_cat_size(attrs[i].cat); } // does our estimate exceed our shrub_size? need to recalculate an @@ -10229,12 +10224,12 @@ static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_file_t *file, // commit to shrub int err = lfsr_mdir_commit(lfs, &file->m.mdir, LFSR_ATTRS( - LFSR_ATTR( + LFSR_ATTR_SHRUBCOMMIT( (alloc) ? LFSR_TAG_SHRUBALLOC : LFSR_TAG_SHRUBCOMMIT, 0, - LFSR_DATA_SHRUBCOMMIT(&file->bshrub_.u.bshrub, bid, - attrs, attr_count)))); + &file->bshrub_.u.bshrub, bid, + attrs, attr_count))); if (err) { return err; } @@ -10291,7 +10286,7 @@ evict:; static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, lfs_off_t pos, lfs_off_t weight, lfs_soff_t delta, - lfsr_tag_t tag, const lfsr_bptr_t *bptr) { + lfsr_tag_t tag, lfsr_cat_t cat) { // Note! This function has some rather special constraints: // // 1. We must never allow our btree size to overflow, even temporarily. @@ -10311,7 +10306,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, lfsr_bid_t bid = lfsr_bshrub_size(&file->bshrub); lfsr_attr_t attrs[5]; lfs_size_t attr_count = 0; - uint8_t buf[3*LFSR_BPTR_DSIZE]; + uint8_t buf[2*LFSR_BPTR_DSIZE]; lfs_size_t buf_size = 0; // always convert to bshrub/btree when this function is called @@ -10322,11 +10317,11 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, if (lfsr_bshrub_isbsprout(&file->m.mdir, &file->bshrub)) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_DATA, +lfsr_bshrub_size(&file->bshrub), - file->bshrub.u.bsprout); + LFSR_CAT_DATA(&file->bshrub.u.bsprout)); } else if (lfsr_bshrub_isbptr(&file->m.mdir, &file->bshrub)) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_BLOCK, +lfsr_bshrub_size(&file->bshrub), - lfsr_data_frombptr(&file->bshrub.u.bptr, &buf[buf_size])); + lfsr_cat_frombptr(&file->bshrub.u.bptr, &buf[buf_size])); buf_size += LFSR_BPTR_DSIZE; } @@ -10357,14 +10352,14 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)-1); attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW, +(pos - lfsr_bshrub_size(&file->bshrub)), - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); // new hole } else { bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)); attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_DATA, +(pos - lfsr_bshrub_size(&file->bshrub)), - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); } } @@ -10372,6 +10367,9 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, lfsr_tag_t right_tag_ = 0; lfsr_bid_t right_weight_; lfsr_bptr_t right_bptr_; + // TODO should we handle left/right slice/bptr differently? allocate + // from buf maybe? + lfsr_data_t left_slice_; while (pos < lfsr_bshrub_size(&file->bshrub)) { lfsr_tag_t tag_; lfsr_bid_t weight_; @@ -10384,7 +10382,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, } // note, an entry can be both a left and right sibling - lfsr_data_t left_slice_ = lfsr_data_slice(bptr_.data, + left_slice_ = lfsr_data_slice(bptr_.data, -1, pos - (bid-(weight_-1))); lfsr_data_t right_slice_ = lfsr_data_slice(bptr_.data, @@ -10404,11 +10402,12 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_SUB | LFSR_TAG_DATA, -(weight_ - lfs->cfg->fragment_size), - lfsr_data_truncate(left_slice_, - lfs->cfg->fragment_size)), + LFSR_CAT_CAT( + lfsr_data_truncate(left_slice_, + lfs->cfg->fragment_size))), LFSR_ATTR( LFSR_TAG_BLOCK, +(weight_ - lfs->cfg->fragment_size), - LFSR_DATA_FROMBPTR(&bptr_)))); + LFSR_CAT_BPTR(&bptr_)))); if (err) { return err; } @@ -10432,12 +10431,13 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_SUB | LFSR_TAG_BLOCK, -(weight_ - lfsr_data_size(bptr_.data)), - LFSR_DATA_FROMBPTR(&bptr_)), + LFSR_CAT_BPTR(&bptr_)), LFSR_ATTR( LFSR_TAG_DATA, +(weight_ - lfsr_data_size(bptr_.data)), - lfsr_data_fruncate(right_slice_, - lfs->cfg->fragment_size)))); + LFSR_CAT_CAT( + lfsr_data_fruncate(right_slice_, + lfs->cfg->fragment_size))))); if (err) { return err; } @@ -10454,21 +10454,21 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, // can we get away with a grow attribute? if (lfsr_data_size(bptr_.data) == lfsr_data_size(left_slice_)) { attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_GROW, -(bid+1 - pos), LFSR_DATA_NULL()); + LFSR_TAG_GROW, -(bid+1 - pos), LFSR_CAT_NULL()); // carve fragment? } else if (tag_ == LFSR_TAG_DATA) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_SUB | LFSR_TAG_DATA, -(bid+1 - pos), - left_slice_); + LFSR_CAT_DATA(&left_slice_)); // carve bptr? } else if (tag_ == LFSR_TAG_BLOCK) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_SUB | LFSR_TAG_BLOCK, -(bid+1 - pos), - lfsr_data_frombptr( + lfsr_cat_frombptr( &(lfsr_bptr_t){ .data = left_slice_, .cksize = bptr_.cksize, @@ -10483,7 +10483,7 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, // completely overwriting this entry? } else { attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_RM, -weight_, LFSR_DATA_NULL()); + LFSR_TAG_RM, -weight_, LFSR_CAT_NULL()); } // spans more than one entry? we can't do everything in one commit, @@ -10541,33 +10541,22 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, // append our data if (weight + delta > 0) { // can we coalesce a hole? - if ((!bptr || lfsr_data_size(bptr->data) == 0) && pos > 0) { + if (lfsr_cat_size(cat) == 0 && pos > 0) { bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)-1); attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_GROW, +(weight + delta), LFSR_DATA_NULL()); + LFSR_TAG_GROW, +(weight + delta), LFSR_CAT_NULL()); // need a new hole? - } else if (!bptr || lfsr_data_size(bptr->data) == 0) { + } else if (lfsr_cat_size(cat) == 0) { bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)); attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_DATA, +(weight + delta), LFSR_DATA_NULL()); - - // append new fragment? - } else if (tag == LFSR_TAG_DATA) { - bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)); - attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_DATA, +(weight + delta), bptr->data); - - // append a new block? - } else if (tag == LFSR_TAG_BLOCK) { - bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)); - attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_BLOCK, +(weight + delta), - lfsr_data_frombptr(bptr, &buf[buf_size])); - buf_size += LFSR_BPTR_DSIZE; + LFSR_TAG_DATA, +(weight + delta), LFSR_CAT_NULL()); + // append new fragment/bptr? } else { - LFS_UNREACHABLE(); + bid = lfs_min32(bid, lfsr_bshrub_size(&file->bshrub)); + attrs[attr_count++] = LFSR_ATTR( + tag, +(weight + delta), cat); } } @@ -10577,13 +10566,13 @@ static int lfsr_file_carve(lfs_t *lfs, lfsr_file_t *file, if (right_tag_ == LFSR_TAG_DATA) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_DATA, +right_weight_, - right_bptr_.data); + LFSR_CAT_DATA(&right_bptr_.data)); // right bptr? } else if (right_tag_ == LFSR_TAG_BLOCK) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_BLOCK, +right_weight_, - lfsr_data_frombptr(&right_bptr_, &buf[buf_size])); + lfsr_cat_frombptr(&right_bptr_, &buf[buf_size])); buf_size += LFSR_BPTR_DSIZE; } else { @@ -10930,7 +10919,7 @@ static int lfsr_file_flush_(lfs_t *lfs, lfsr_file_t *file, // and write it into our tree err = lfsr_file_carve(lfs, file, block_start, block_end - block_start, 0, - LFSR_TAG_BLOCK, &bptr); + LFSR_TAG_BLOCK, LFSR_CAT_BPTR(&bptr)); if (err) { return err; } @@ -11037,10 +11026,9 @@ fragment:; // once we've figured out what fragment to write, carve it into // our tree - lfsr_data_t data = lfsr_data_fromcat(datas, data_count); int err = lfsr_file_carve(lfs, file, fragment_start, fragment_end - fragment_start, 0, - LFSR_TAG_DATA, (const lfsr_bptr_t*)&data); + LFSR_TAG_DATA, LFSR_CAT_DATAS(datas, data_count)); if (err && err != LFS_ERR_RANGE) { return err; } @@ -11415,10 +11403,11 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) { lfs_size_t attr_count = 0; uint8_t buf[LFSR_BTREE_DSIZE]; lfs_size_t buf_size = 0; + // TODO should we carve this out of buf? + lfsr_data_t data; // not created yet? need to convert orphan to normal file if (lfsr_f_isorphan(file->m.flags)) { - lfsr_data_t data; err = lfsr_mdir_lookup(lfs, &file->m.mdir, LFSR_TAG_ORPHAN, &data); if (err) { @@ -11428,7 +11417,8 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) { } attrs[attr_count++] = LFSR_ATTR( - LFSR_TAG_SUB | LFSR_TAG_REG, 0, data); + LFSR_TAG_SUB | LFSR_TAG_REG, 0, + LFSR_CAT_DATA(&data)); } // commit the file state @@ -11437,22 +11427,22 @@ int lfsr_file_sync(lfs_t *lfs, lfsr_file_t *file) { if (lfsr_f_isunflush(file->m.flags) && file->buffer_size == 0) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_SUB | LFSR_TAG_STRUCT, 0, - LFSR_DATA_NULL()); + LFSR_CAT_NULL()); // small file inlined in mdir? } else if (lfsr_f_isunflush(file->m.flags)) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(file->buffer, file->buffer_size)); + LFSR_CAT_BUF(file->buffer, file->buffer_size)); // bshrub? } else if (lfsr_bshrub_isbshrub(&file->m.mdir, &file->bshrub)) { - attrs[attr_count++] = LFSR_ATTR( + attrs[attr_count++] = LFSR_ATTR_SHRUBTRUNK( LFSR_TAG_SUB | LFSR_TAG_SHRUBTRUNK, 0, - LFSR_DATA_SHRUBTRUNK(&file->bshrub_.u.bshrub)); + &file->bshrub_.u.bshrub); // btree? } else if (lfsr_bshrub_isbtree(&file->m.mdir, &file->bshrub)) { attrs[attr_count++] = LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_BTREE, 0, - lfsr_data_frombtree( + lfsr_cat_frombtree( &file->bshrub.u.btree, &buf[buf_size])); buf_size += LFSR_BTREE_DSIZE; @@ -11621,7 +11611,7 @@ int lfsr_file_truncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size_) { lfs_min32(size, size_), size - lfs_min32(size, size_), +size_ - size, - LFSR_TAG_DATA, NULL); + LFSR_TAG_DATA, LFSR_CAT_NULL()); if (err) { goto failed; } @@ -11739,7 +11729,7 @@ int lfsr_file_fruncate(lfs_t *lfs, lfsr_file_t *file, lfs_off_t size_) { 0, lfs_smax32(size - size_, 0), +size_ - size, - LFSR_TAG_DATA, NULL); + LFSR_TAG_DATA, LFSR_CAT_NULL()); if (err) { goto failed; } diff --git a/lfs.h b/lfs.h index 7132bbe9..19d43aa3 100644 --- a/lfs.h +++ b/lfs.h @@ -393,18 +393,10 @@ typedef struct lfs_mdir { lfs_block_t tail[2]; } lfs_mdir_t; -// Either an on-disk or in-device data pointer -// -// The top 2 bits of data's size indicates the actual encoding -// 0b00 => in-RAM buffer -// 0b01 => a single leb128 -// 0b10 => on-disk reference -// 0b11 => concatenated datas -// -// Note concatenated datas can only be 1 level deep. Concatenating -// concatenated datas would require recursion to resolve. -// +// either an on-disk or in-device data pointer typedef struct lfsr_data { + // sign(size)=0 => in-RAM buffer + // sign(size)=1 => on-disk reference union { lfs_size_t size; struct { @@ -416,14 +408,6 @@ typedef struct lfsr_data { lfs_size_t size; const uint8_t *buffer; } buf; - struct { - lfs_size_t size; - uint8_t buf[8]; - } imm; - struct { - lfs_size_t size; - const struct lfsr_data *datas; - } cat; } u; } lfsr_data_t; diff --git a/tests/test_btree.toml b/tests/test_btree.toml index 5a28fe6b..19248506 100644 --- a/tests/test_btree.toml +++ b/tests/test_btree.toml @@ -55,7 +55,7 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -97,9 +97,9 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -147,9 +147,9 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -198,11 +198,11 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("c", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("c", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -257,11 +257,11 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("c", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("c", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -323,7 +323,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -379,7 +379,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+((N-1-i) % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+((N-1-i) % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -449,7 +449,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -524,7 +524,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -620,7 +620,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +weight, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -734,12 +734,12 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; // update the tree lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("A", 1)))) => 0; + LFSR_CAT_BUF("A", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -780,18 +780,18 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; // update the tree lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("A", 1)))) => 0; + LFSR_CAT_BUF("A", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("B", 1)))) => 0; + LFSR_CAT_BUF("B", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -839,24 +839,24 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("c", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("c", 1)))) => 0; // update the tree lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("A", 1)))) => 0; + LFSR_CAT_BUF("A", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("B", 1)))) => 0; + LFSR_CAT_BUF("B", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("C", 1)))) => 0; + LFSR_CAT_BUF("C", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -915,7 +915,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -931,7 +931,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -991,7 +991,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1021,7 +1021,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -1092,7 +1092,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1108,7 +1108,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1183,7 +1183,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1224,10 +1224,10 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)), LFSR_ATTR( LFSR_TAG_GROW, +weight-sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -1338,10 +1338,10 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; // pop! lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1359,7 +1359,7 @@ code = ''' // try to putting it back to see if things still work lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("A", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("A", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1395,12 +1395,12 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; // pop! lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1425,7 +1425,7 @@ code = ''' // try to putting it back to see if things still work lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("B", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("B", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1468,12 +1468,12 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; // pop! lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1498,7 +1498,7 @@ code = ''' // try to putting it back to see if things still work lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("A", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("A", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1541,14 +1541,14 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("b", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("c", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("c", 1)))) => 0; // pop! lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1580,7 +1580,7 @@ code = ''' // try to putting it back to see if things still work lfsr_btree_commit(&lfs, &btree, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("C", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("C", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -1636,7 +1636,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1650,7 +1650,7 @@ code = ''' // drain the tree for (lfs_size_t i = 0; i < N-REMAINING; i++) { int err = lfsr_btree_commit(&lfs, &btree, N-1-i, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1689,7 +1689,7 @@ code = ''' // try recovering lfsr_btree_commit(&lfs, &btree, REMAINING, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("R", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("R", 1)))) => 0; for (lfs_size_t i = 0; i < REMAINING; i++) { lfsr_btree_lookup(&lfs, &btree, i, @@ -1734,7 +1734,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1748,7 +1748,7 @@ code = ''' // drain the tree for (lfs_size_t i = 0; i < N-REMAINING; i++) { int err = lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1787,7 +1787,7 @@ code = ''' // try recovering lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("R", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("R", 1)))) => 0; lfsr_btree_lookup(&lfs, &btree, 0, &tag_, &weight_, &data_) => 0; @@ -1834,7 +1834,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1863,7 +1863,7 @@ code = ''' // remove from btree int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -1937,7 +1937,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1951,7 +1951,7 @@ code = ''' // drain the tree for (lfs_size_t i = 0; i < N-REMAINING; i++) { int err = lfsr_btree_commit(&lfs, &btree, (N-1-i)*W+W-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -W, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -W, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -1989,7 +1989,7 @@ code = ''' // try recovering lfsr_btree_commit(&lfs, &btree, REMAINING*W, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +W, LFSR_DATA_BUF("R", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +W, LFSR_CAT_BUF("R", 1)))) => 0; for (lfs_size_t i = 0; i < REMAINING; i++) { lfsr_btree_lookup(&lfs, &btree, i*W+W-1, @@ -2081,7 +2081,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +weight, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { printf("btree: w%d 0x%x.%x\n", @@ -2112,7 +2112,7 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM, -sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2225,16 +2225,16 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(0 % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(0 % 26)}, 1)))) => 0; lfs_size_t n = 1; for (lfs_size_t i = 1; i < N; i++) { int err = lfsr_btree_commit(&lfs, &btree, i-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+((i-1) % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'a'+((i-1) % 26)}, 1)), LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+((i-0) % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+((i-0) % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2287,7 +2287,7 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -2307,10 +2307,10 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)), LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2384,16 +2384,16 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+(0 % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(0 % 26)}, 1)))) => 0; lfs_size_t n = 1; for (lfs_size_t i = 1; i < N; i++) { int err = lfsr_btree_commit(&lfs, &btree, (i-1)*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+((i-1) % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'a'+((i-1) % 26)}, 1)), LFSR_ATTR( LFSR_TAG_DATA, +W, - LFSR_DATA_BUF(&(uint8_t){'a'+((i-0) % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+((i-0) % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2447,7 +2447,7 @@ code = ''' lfsr_btree_t btree; lfsr_btree_alloc(&lfs, &btree) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +W, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +W, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -2480,13 +2480,13 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW, +weight1-sim_weights[bid], - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)), LFSR_ATTR( LFSR_TAG_DATA, +weight2, - LFSR_DATA_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'A'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2633,27 +2633,27 @@ code = ''' // the extra push here avoids trying to inline the big entry lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("_", 1)))) => 0; uint8_t buf1[SIZE]; memset(buf1, 'a', SIZE); uint8_t buf2[SIZE]; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF(buf1, SIZE)), - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF(buf1, SIZE)), + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF(buf2, SIZE)))) => 0; // force compaction btree.eoff = -1; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_CAT_BUF(buf2, SIZE)))) => 0; assert(btree.weight == 2); // now remove one entry, since this brings the rbyd down to zero, // this should force one of the blocks to drop lfsr_btree_commit(&lfs, &btree, SIBLING, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, @@ -2701,21 +2701,21 @@ code = ''' // the extra push here avoids trying to inline the big entry lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("_", 1)))) => 0; uint8_t buf1[SIZE]; memset(buf1, 'a', SIZE); uint8_t buf2[SIZE]; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF(buf1, SIZE)), - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF(buf1, SIZE)), + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF(buf2, SIZE)))) => 0; // force compaction btree.eoff = -1; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_CAT_BUF(buf2, SIZE)))) => 0; assert(btree.weight == 2); // now remove one entry, since this brings the rbyd down this zero, @@ -2724,7 +2724,7 @@ code = ''' // do this while forcing a compaction btree.eoff = -1; lfsr_btree_commit(&lfs, &btree, SIBLING, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, @@ -2772,14 +2772,14 @@ code = ''' // the extra push here avoids trying to inline the big entry lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("_", 1)))) => 0; uint8_t buf1[SIZE]; memset(buf1, 'a', SIZE); uint8_t buf2[SIZE]; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF(buf1, SIZE)), - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF(buf1, SIZE)), + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF(buf2, SIZE)))) => 0; // force compaction, causing a split, but while we're splitting, // also remove an entry, bringing the split rbyd down to zero mid split @@ -2788,7 +2788,7 @@ code = ''' // btree.eoff = -1; lfsr_btree_commit(&lfs, &btree, SIBLING, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, @@ -2836,38 +2836,38 @@ code = ''' // the extra push here avoids trying to inline the big entry lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF("_", 1)))) => 0; uint8_t buf1[SIZE]; memset(buf1, 'a', SIZE); uint8_t buf2[SIZE]; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF(buf1, SIZE)), - LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF(buf1, SIZE)), + LFSR_ATTR(LFSR_TAG_DATA, +1, LFSR_CAT_BUF(buf2, SIZE)))) => 0; // force compaction btree.eoff = -1; memset(buf2, 'b', SIZE); lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(buf2, SIZE)))) => 0; + LFSR_CAT_BUF(buf2, SIZE)))) => 0; assert(btree.weight == 2); // now make both entries small so they should be merged if either compacts lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("a", 1)))) => 0; + LFSR_CAT_BUF("a", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF("b", 1)))) => 0; + LFSR_CAT_BUF("b", 1)))) => 0; // force compaction, while removing one entry, this drops the rbyd // down to zero while also triggering a merge btree.eoff = -1; lfsr_btree_commit(&lfs, &btree, SIBLING, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, @@ -2932,7 +2932,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2949,7 +2949,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -2962,7 +2962,7 @@ code = ''' } else { // pop from btree int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3063,7 +3063,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, weighted_bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +weight, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3084,10 +3084,10 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)), LFSR_ATTR( LFSR_TAG_GROW, +weight-sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3104,7 +3104,7 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM, -sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3251,8 +3251,8 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)))) => 0; + LFSR_CAT_NAME(0, "aaa", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -3304,14 +3304,14 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aaa", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)))) => 0; + LFSR_CAT_NAME(0, "aaa", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("aab", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("1", 1)))) => 0; + LFSR_CAT_NAME(0, "aab", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("1", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -3371,26 +3371,20 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF("aaa", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)))) => 0; + LFSR_CAT_NAME(0, "aaa", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(1*DID), - LFSR_DATA_BUF("aab", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("1", 1)))) => 0; + LFSR_CAT_NAME(1*DID, "aab", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("1", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("1", 1)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("1", 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(2*DID), - LFSR_DATA_BUF("aac", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("2", 1)))) => 0; + LFSR_CAT_NAME(2*DID, "aac", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("2", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -3458,26 +3452,20 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF("aaa", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)))) => 0; + LFSR_CAT_NAME(0, "aaa", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("1", 1)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("1", 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(2*DID), - LFSR_DATA_BUF("aac", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("2", 1)))) => 0; + LFSR_CAT_NAME(2*DID, "aac", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("2", 1)))) => 0; lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("0", 1)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("0", 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(1*DID), - LFSR_DATA_BUF("aab", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("1", 1)))) => 0; + LFSR_CAT_NAME(1*DID, "aab", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("1", 1)))) => 0; printf("btree: w%d 0x%x.%x\n", btree.weight, btree.blocks[0], @@ -3549,10 +3537,10 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(0 % 10)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'0'+(0 % 10)}, 1)))) => 0; lfs_size_t n = 1; for (lfs_size_t i = 1; i < N; i++) { char name[3] = { @@ -3561,14 +3549,13 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+((i-1) % 10)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'0'+((i-1) % 10)}, 1)), LFSR_ATTR( - LFSR_TAG_NAME, +1, LFSR_DATA_CAT( - LFSR_DATA_LEB128(i*DID), - LFSR_DATA_BUF(name, 3))), + LFSR_TAG_NAME, +1, + LFSR_CAT_NAME(i*DID, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+((i-0) % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+((i-0) % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3625,8 +3612,8 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_CAT_NAME(0, "___", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -3662,15 +3649,13 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)), LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3750,10 +3735,10 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +W, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(0 % 10)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'0'+(0 % 10)}, 1)))) => 0; lfs_size_t n = 1; for (lfs_size_t i = 1; i < N; i++) { char name[3] = { @@ -3762,15 +3747,13 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, (i-1)*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+((i-1) % 10)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'0'+((i-1) % 10)}, 1)), LFSR_ATTR( LFSR_TAG_NAME, +W, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(i*DID), - LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(i*DID, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+((i-0) % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+((i-0) % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3828,8 +3811,8 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +W, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_CAT_NAME(0, "___", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -3878,18 +3861,16 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW, +weight1-sim_weights[bid], - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)), LFSR_ATTR( LFSR_TAG_NAME, +weight2, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -3991,8 +3972,8 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_CAT_NAME(0, "___", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -4042,12 +4023,10 @@ code = ''' split_bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4055,15 +4034,15 @@ code = ''' assert(err == 0); } else { int err = lfsr_btree_commit(&lfs, &btree, split_bid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, split_data), - LFSR_ATTR( - LFSR_TAG_NAME, +1, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_DATA(&split_data)), + LFSR_ATTR( + LFSR_TAG_NAME, +1, + LFSR_CAT_NAME(0, name, 3)), + LFSR_ATTR( + LFSR_TAG_DATA, 0, + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4083,7 +4062,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4096,7 +4075,7 @@ code = ''' } else { // pop from btree int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))); + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4169,8 +4148,8 @@ code = ''' lfsr_btree_commit(&lfs, &btree, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +W, - LFSR_DATA_CAT(LFSR_DATA_LEB128(0), LFSR_DATA_BUF("___", 3))), - LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_DATA_BUF("_", 1)))) => 0; + LFSR_CAT_NAME(0, "___", 3)), + LFSR_ATTR(LFSR_TAG_DATA, 0, LFSR_CAT_BUF("_", 1)))) => 0; // set up a simulation to compare against // @@ -4232,12 +4211,10 @@ code = ''' split_bid-(split_weight-1), LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_NAME, +weight, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), + LFSR_CAT_NAME(0, name, 3)), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4245,15 +4222,15 @@ code = ''' assert(err == 0); } else { int err = lfsr_btree_commit(&lfs, &btree, split_bid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_DATA, 0, split_data), - LFSR_ATTR( - LFSR_TAG_NAME, +weight, - LFSR_DATA_CAT( - LFSR_DATA_LEB128(0), - LFSR_DATA_BUF(name, 3))), LFSR_ATTR( LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); + LFSR_CAT_DATA(&split_data)), + LFSR_ATTR( + LFSR_TAG_NAME, +weight, + LFSR_CAT_NAME(0, name, 3)), + LFSR_ATTR( + LFSR_TAG_DATA, 0, + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4277,10 +4254,10 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_DATA, 0, - LFSR_DATA_BUF(&(uint8_t){'0'+(i % 10)}, 1)), + LFSR_CAT_BUF(&(uint8_t){'0'+(i % 10)}, 1)), LFSR_ATTR( LFSR_TAG_GROW, +weight-sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4297,7 +4274,7 @@ code = ''' weighted_bid+sim_weights[bid]-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM, -sim_weights[bid], - LFSR_DATA_NULL()))); + LFSR_CAT_NULL()))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4398,7 +4375,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, i, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; @@ -4538,7 +4515,7 @@ code = ''' int err = lfsr_btree_commit(&lfs, &btree, bid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_DATA, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))); // ignore space issues if (err == LFS_ERR_NOSPC) { break; diff --git a/tests/test_mtree.toml b/tests/test_mtree.toml index 541c0f36..dbb49f34 100644 --- a/tests/test_mtree.toml +++ b/tests/test_mtree.toml @@ -28,7 +28,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(i), 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } for (lfs_size_t i = 0; i < N; i++) { @@ -73,7 +73,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(i), 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } for (lfs_size_t i = 0; i < N; i++) { @@ -115,7 +115,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; lfsr_data_t data; uint8_t buffer[4]; @@ -162,13 +162,13 @@ code = ''' uint8_t buffer[SIZE]; memset(buffer, 'a', SIZE); lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; memset(buffer, 'b', SIZE); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, &lfs.mtree, 0, &mdir) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // force mroot to compact lfs.mroot.rbyd.eoff = -1; @@ -232,14 +232,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -308,14 +308,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -332,7 +332,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mdir to compact @@ -420,7 +420,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; uint8_t buffer[256]; @@ -510,7 +510,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; // double check @@ -593,14 +593,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -617,7 +617,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 0); // assert mdir was dropped @@ -670,14 +670,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -696,7 +696,7 @@ code = ''' // force mdir to compact while we're removing mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 0); // assert mdir was dropped @@ -749,14 +749,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // remove an entry, forcing the mdir to be dropped @@ -767,7 +767,7 @@ code = ''' lfs.mroot.rbyd.eoff = -1; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 2); // assert split/drop worked out @@ -820,14 +820,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -844,7 +844,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // remove an entry, forcing the mdir to be dropped @@ -854,7 +854,7 @@ code = ''' // force mdir to compact while we're removing mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 1); // assert split/drop worked out @@ -919,14 +919,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -943,7 +943,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // remove an entry, forcing the mdir to be dropped @@ -953,7 +953,7 @@ code = ''' // force mdir to compact while we're removing mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 1); // assert split/drop worked out @@ -1045,7 +1045,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; // double check @@ -1074,7 +1074,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; } } @@ -1149,13 +1149,13 @@ code = ''' uint8_t buffer[SIZE]; memset(buffer, 'a', SIZE); lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; memset(buffer, 'b', SIZE); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, &lfs.mtree, 0, &mdir) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // force mroot to compact lfs.mroot.rbyd.eoff = -1; @@ -1171,10 +1171,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); @@ -1238,14 +1238,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -1264,10 +1264,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); @@ -1335,14 +1335,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -1361,10 +1361,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); @@ -1432,7 +1432,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot @@ -1489,7 +1489,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot @@ -1557,7 +1557,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot @@ -1620,14 +1620,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -1649,10 +1649,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mroot relocated @@ -1722,14 +1722,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -1746,7 +1746,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // setup mroot to compact and relocate on next commit @@ -1756,10 +1756,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mroot relocated @@ -1841,14 +1841,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -1870,11 +1870,11 @@ code = ''' // force mdir to compact twice, this should relocate mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // force mdir to compact while we're removing mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 0); // assert mroot relocated assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); @@ -1932,13 +1932,13 @@ code = ''' uint8_t buffer[SIZE]; memset(buffer, 'a', SIZE); lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; memset(buffer, 'b', SIZE); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, &lfs.mtree, 0, &mdir) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // force mroot to compact, this should both uninline and relocate lfsr_mdir_t old_mroot = lfs.mroot; @@ -2012,14 +2012,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact, this should both split and relocate @@ -2120,7 +2120,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; // double check @@ -2150,7 +2150,7 @@ code = ''' // we can't really change metadata names, but commits still // trigger writes to the mdir lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; // double check @@ -2179,7 +2179,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; } } @@ -2249,7 +2249,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2257,7 +2257,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "c", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0c", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0c", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2266,7 +2266,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "b", 1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0b", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0b", 2)))) => 0; assert(mdir.rbyd.weight == 4); lfsr_data_t data; @@ -2308,7 +2308,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2316,7 +2316,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "b", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0b", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0b", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2325,7 +2325,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &mdir, NULL, NULL) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 2); // assert neighbor was removed @@ -2358,7 +2358,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2366,7 +2366,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "b", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0b", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0b", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2375,7 +2375,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "b", 1, &mdir, NULL, NULL) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 2); // assert neighbor was removed @@ -2410,7 +2410,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2418,7 +2418,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "d", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0d", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0d", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2430,14 +2430,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'c', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2483,7 +2483,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2491,7 +2491,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "e", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0e", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0e", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2503,14 +2503,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'd', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2522,7 +2522,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); // force mdir to compact @@ -2568,7 +2568,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2576,7 +2576,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "b", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0b", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0b", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2626,7 +2626,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2634,7 +2634,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "d", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0d", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0d", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2646,14 +2646,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'c', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2672,10 +2672,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); @@ -2715,7 +2715,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2723,7 +2723,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "d", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0d", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0d", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2735,14 +2735,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'c', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2761,10 +2761,10 @@ code = ''' lfsr_mdir_t old_mdir = mdir; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; mdir.rbyd.eoff = -1; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // assert we relocated assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); @@ -2802,7 +2802,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2810,7 +2810,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "f", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0f", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0f", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2822,14 +2822,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'e', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2841,7 +2841,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); // force mdir to compact @@ -2858,7 +2858,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mdir to compact @@ -2904,7 +2904,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &left.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &left.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(left.mdir.rbyd.weight == 2); lfsr_opened_add(&lfs, &left); @@ -2912,7 +2912,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "e", 1, &right.mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &right.mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0e", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0e", 2)))) => 0; assert(right.mdir.rbyd.weight == 3); lfsr_opened_add(&lfs, &right); @@ -2924,14 +2924,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); memset(buffer+1, 'd', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 5); // force mroot to compact @@ -2943,7 +2943,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 4); // force mdir to compact @@ -2957,7 +2957,7 @@ code = ''' // now remove the middle entry, forcing a drop lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(mdir.rbyd.weight == 0); // assert mdir was dropped correctly @@ -3002,7 +3002,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(mdir.rbyd.weight == 2); // test that we can traverse the tree, keeping track of all blocks we see @@ -3102,13 +3102,13 @@ code = ''' uint8_t buffer[SIZE]; memset(buffer, 'a', SIZE); lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; memset(buffer, 'b', SIZE); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, &lfs.mtree, 0, &mdir) => 0; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_UATTR(1), 0, LFSR_CAT_BUF(buffer, SIZE)))) => 0; // force mroot to compact lfs.mroot.rbyd.eoff = -1; @@ -3236,14 +3236,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -3376,14 +3376,14 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); memset(buffer+1, 'b', SIZE-1); lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 3); // force mroot to compact @@ -3400,7 +3400,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mdir to compact @@ -3541,7 +3541,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, "a", 1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF("\0a", 2)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF("\0a", 2)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot @@ -3660,7 +3660,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; uint8_t buffer[256]; @@ -3808,7 +3808,7 @@ code = ''' mdir.rbyd.eoff = -1; } lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(name, 4)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(name, 4)))) => 0; lfsr_data_t data; // double check @@ -3942,7 +3942,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_MROOT, 0, - LFSR_DATA_FROMMPTR(&LFSR_MPTR_MROOTANCHOR())))) => 0; + LFSR_CAT_MPTR(&LFSR_MPTR_MROOTANCHOR())))) => 0; // technically, cycle detection only needs to work when we're validating lfsr_traversal_t traversal = LFSR_TRAVERSAL(LFSR_TRAVERSAL_VALIDATE); @@ -4020,7 +4020,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot @@ -4077,7 +4077,7 @@ code = ''' lfsr_mtree_namelookup(&lfs, &lfs.mtree, 0, (const char*)buffer+1, SIZE-1, &mdir, NULL, NULL) => LFS_ERR_NOENT; lfsr_mdir_commit(&lfs, &mdir, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(buffer, SIZE)))) => 0; + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(buffer, SIZE)))) => 0; assert(mdir.rbyd.weight == 2); // force mroot to compact twice, this should extend the mroot diff --git a/tests/test_rbyd.toml b/tests/test_rbyd.toml index 3af13ddc..ad843a1c 100644 --- a/tests/test_rbyd.toml +++ b/tests/test_rbyd.toml @@ -34,7 +34,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; // commit with two attributes @@ -43,10 +43,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; ''' @@ -71,7 +71,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; // commit with two attributes @@ -80,11 +80,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; ''' @@ -109,7 +109,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; // fetch lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -118,7 +118,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; ''' @@ -151,7 +151,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -176,10 +176,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -214,10 +214,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -271,7 +271,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -296,11 +296,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -335,11 +335,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -392,7 +392,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; @@ -413,10 +413,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; @@ -439,10 +439,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(2), &data) => 0; @@ -482,7 +482,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; @@ -503,11 +503,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; @@ -530,11 +530,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 4) => 4; lfsr_rbyd_lookup(&lfs, &rbyd, -1, LFSR_TAG_UATTR(2), &data) => 0; @@ -578,10 +578,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -604,10 +604,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -649,13 +649,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -678,13 +678,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -728,13 +728,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -764,13 +764,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -819,16 +819,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -858,16 +858,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -897,16 +897,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -936,16 +936,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -996,16 +996,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1042,16 +1042,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1088,16 +1088,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1134,16 +1134,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1199,16 +1199,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1245,16 +1245,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1291,16 +1291,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1337,16 +1337,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1404,19 +1404,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1455,19 +1455,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1504,19 +1504,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1553,19 +1553,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1625,19 +1625,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1683,19 +1683,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1739,19 +1739,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1795,19 +1795,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1872,22 +1872,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1933,22 +1933,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -1994,22 +1994,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -2076,22 +2076,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xff\xff\xff\xff", 4)))) => 0; + LFSR_CAT_BUF("\xff\xff\xff\xff", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -2142,22 +2142,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xff\xff\xff\xff", 4)), + LFSR_CAT_BUF("\xff\xff\xff\xff", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -2208,22 +2208,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xff\xff\xff\xff", 4)), + LFSR_CAT_BUF("\xff\xff\xff\xff", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -2308,7 +2308,7 @@ code = ''' for (unsigned j = 0; j < N; j++) { attrs[j] = LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)); + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)); } // test the given permutation @@ -2401,7 +2401,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -2461,10 +2461,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -2499,10 +2499,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -2558,11 +2558,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -2597,11 +2597,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -2677,7 +2677,7 @@ code = ''' for (unsigned j = 0; j < N; j++) { attrs[j] = LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)); + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)); } // test the given permutation @@ -2752,7 +2752,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -2809,7 +2809,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(j+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } // copy block so we can reset after each remove @@ -2851,7 +2851,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; } // check that all tags have been updated @@ -2930,7 +2930,7 @@ code = ''' int err = lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(x & 0x7f), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))); + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))); if (err == LFS_ERR_RANGE) { break; } @@ -2982,11 +2982,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT; @@ -3005,14 +3005,14 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -3047,14 +3047,14 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(2), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -3134,7 +3134,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } // copy block so we can reset after each remove @@ -3159,7 +3159,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(j+1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; for (unsigned k = 0; k < N; k++) { @@ -3188,7 +3188,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(j+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; for (unsigned k = 0; k < N; k++) { @@ -3284,7 +3284,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } // copy block so we can reset after each remove @@ -3309,7 +3309,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(j+1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -3363,10 +3363,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3394,7 +3394,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3421,7 +3421,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(3), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3448,7 +3448,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(5), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3522,30 +3522,30 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; // remove several attributes lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(3), 0, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(5), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; @@ -3574,7 +3574,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3601,7 +3601,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(3), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3628,7 +3628,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(5), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3657,7 +3657,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3684,7 +3684,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(3), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3711,7 +3711,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(5), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => 0; assert(tag_ == LFSR_TAG_UATTR(2)); @@ -3785,11 +3785,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT; @@ -3808,17 +3808,17 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(2), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT; @@ -3837,17 +3837,17 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(2), 0, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), &rid_, &tag_, NULL, &data_) => LFS_ERR_NOENT; @@ -3899,7 +3899,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(j+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; } // copy block so we can reset after each remove @@ -3941,7 +3941,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; } // check that all tags are now removed @@ -3955,7 +3955,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(1), @@ -4053,7 +4053,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(attr), 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } else { // update our sim sim[attr] = '\0'; @@ -4061,7 +4061,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(attr), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; } } @@ -4137,7 +4137,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4156,10 +4156,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4184,13 +4184,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4239,7 +4239,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4258,11 +4258,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4287,11 +4287,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4316,15 +4316,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4355,15 +4355,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4394,15 +4394,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4497,7 +4497,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -4559,10 +4559,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 00000000, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -4632,11 +4632,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -4683,11 +4683,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -4797,7 +4797,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -4868,7 +4868,7 @@ code = ''' x = x % (rbyd.weight+1); int err = lfsr_rbyd_commit(&lfs, &rbyd, x, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(names[x % 6], 4)))); + LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(names[x % 6], 4)))); if (err == LFS_ERR_RANGE) { break; } @@ -4917,10 +4917,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4945,16 +4945,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -4991,22 +4991,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5096,11 +5096,11 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5125,19 +5125,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5174,19 +5174,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5223,27 +5223,27 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5315,27 +5315,27 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5384,27 +5384,27 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -5518,13 +5518,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } @@ -5593,16 +5593,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -5704,19 +5704,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -5795,19 +5795,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, &rid_, &tag_, NULL, &data_) => 0; @@ -5950,13 +5950,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } @@ -6040,13 +6040,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 4)))) => 0; + LFSR_CAT_BUF(names[j % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[j % 6], 2)))) => 0; + LFSR_CAT_BUF(names[j % 6], 2)))) => 0; } } @@ -6089,7 +6089,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, perm[j]/M, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]%M+1), 0, - LFSR_DATA_BUF(names[(perm[j]/M) % 6], 3)))) => 0; + LFSR_CAT_BUF(names[(perm[j]/M) % 6], 3)))) => 0; } // check that all tags have been updated @@ -6207,13 +6207,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } @@ -6239,7 +6239,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j/M, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR((j%M)+1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; for (unsigned k = 0; k < N; k++) { @@ -6283,7 +6283,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j/M, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR((j%M)+1), 0, - LFSR_DATA_BUF(names[(j/M)%6], 3)))) => 0; + LFSR_CAT_BUF(names[(j/M)%6], 3)))) => 0; lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; for (unsigned k = 0; k < N; k++) { @@ -6387,13 +6387,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 4)))) => 0; + LFSR_CAT_BUF(names[j % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[j % 6], 2)))) => 0; + LFSR_CAT_BUF(names[j % 6], 2)))) => 0; } } @@ -6436,7 +6436,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, perm[j]/M, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(perm[j]%M+1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; } // check that all tags have been removed @@ -6527,11 +6527,11 @@ code = ''' // build a single attribute list with all attributes, if this fails // it should fail atomically struct lfsr_attr attrs[1+M]; - attrs[0] = LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_DATA_BUF(names[x % 6], 4)); + attrs[0] = LFSR_ATTR(LFSR_TAG_REG, +1, LFSR_CAT_BUF(names[x % 6], 4)); for (unsigned u = 0; u < M; u++) { attrs[1+u] = LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[x % 6], 2)); + LFSR_CAT_BUF(names[x % 6], 2)); } int err = lfsr_rbyd_commit(&lfs, &rbyd, x, attrs, 1+M); @@ -6638,12 +6638,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 1)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 1)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } // try looking up each tag @@ -6784,17 +6784,17 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(perm[j]+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 1)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 1)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } @@ -6909,12 +6909,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -6937,12 +6937,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -6965,15 +6965,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7000,15 +7000,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7035,15 +7035,15 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7088,18 +7088,18 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7132,18 +7132,18 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7176,24 +7176,24 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7238,24 +7238,24 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7300,24 +7300,24 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7390,65 +7390,65 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7551,7 +7551,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7688,59 +7688,59 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7831,7 +7831,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -7956,87 +7956,87 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -8163,7 +8163,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -8327,75 +8327,75 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(4), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), // propagate yellow LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -8516,7 +8516,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -8674,75 +8674,75 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -8863,7 +8863,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9021,76 +9021,76 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9199,7 +9199,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9345,76 +9345,76 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), +1, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), // propagate yellow LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9523,7 +9523,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9671,117 +9671,117 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), +1, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(11), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(12), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), // propagate yellow LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(13), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(14), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -9932,7 +9932,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -10122,115 +10122,115 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_UATTR(6), +1, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(7), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(8), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(9), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow to the root LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(10), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // this gets a bit messy as we try to make the rbyd take the right shape lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(11), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(12), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(13), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(14), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(14), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(14), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_REG, 0, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(5), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), // propagate yellow LFSR_ATTR( LFSR_TAG_UATTR(4), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -10381,7 +10381,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 3); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, &data) => 0; @@ -10607,7 +10607,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -10631,7 +10631,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N-1); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -10653,7 +10653,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -10769,13 +10769,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } assert(rbyd.weight == N); @@ -10800,7 +10800,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N-1); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -10835,12 +10835,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[j % 6], 3)))) => 0; + LFSR_CAT_BUF(names[j % 6], 3)))) => 0; } assert(rbyd.weight == N); @@ -10969,7 +10969,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -10993,7 +10993,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N-1); // try traversing over the tags @@ -11099,13 +11099,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } } assert(rbyd.weight == N); @@ -11130,7 +11130,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N-1); // try traversing over the tags @@ -11204,9 +11204,9 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11223,13 +11223,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11246,14 +11246,14 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11270,17 +11270,17 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11297,19 +11297,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11344,12 +11344,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11366,19 +11366,19 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11395,20 +11395,20 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11425,26 +11425,26 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 2, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()), - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()), + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11461,28 +11461,28 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); lfsr_rbyd_lookup(&lfs, &rbyd, 0, LFSR_TAG_REG, @@ -11539,7 +11539,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 4)))) => 0; + LFSR_CAT_BUF(names[j % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -11589,7 +11589,7 @@ code = ''' lfs_size_t rbyd_weight_before = rbyd.weight; lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == rbyd_weight_before-1); } @@ -11604,7 +11604,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; assert(rbyd.weight == 1); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -11688,13 +11688,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[j % 6], 4)))) => 0; + LFSR_CAT_BUF(names[j % 6], 4)))) => 0; // note uattrs have a smaller size to help debugging for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF(names[j % 6], 2)))) => 0; + LFSR_CAT_BUF(names[j % 6], 2)))) => 0; } } assert(rbyd.weight == N); @@ -11745,7 +11745,7 @@ code = ''' lfs_size_t rbyd_weight_before = rbyd.weight; lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == rbyd_weight_before-1); } @@ -11760,12 +11760,12 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa\xaa\xaa", 6)))) => 0; for (unsigned u = 0; u < M; u++) { lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u+1), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa", 3)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa", 3)))) => 0; } assert(rbyd.weight == 1); @@ -11880,14 +11880,14 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } else { // update our sim memmove(sim+rid, sim+rid+1, count-rid-1); count -= 1; // update our rbyd lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; } } @@ -11954,7 +11954,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG, &rid_, &tag_, &weight_, &data_) => 0; @@ -11975,7 +11975,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +2, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG, &rid_, &tag_, &weight_, &data_) => 0; @@ -12008,7 +12008,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 3, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +3, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG, &rid_, &tag_, &weight_, &data_) => 0; @@ -12053,7 +12053,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 6, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +4, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG, &rid_, &tag_, &weight_, &data_) => 0; @@ -12110,7 +12110,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 10, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +5, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, 0, LFSR_TAG_REG, &rid_, &tag_, &weight_, &data_) => 0; @@ -12201,23 +12201,23 @@ code = ''' // make id0 with weight w1 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), // make id2 with weight w2 LFSR_ATTR( LFSR_TAG_REG, +2, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), // make id5 with weight w3 LFSR_ATTR( LFSR_TAG_REG, +3, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), // make id9 with weight w4 LFSR_ATTR( LFSR_TAG_REG, +4, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), // make id14 with weight w5 LFSR_ATTR( LFSR_TAG_REG, +5, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)))) => 0; + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)))) => 0; // traverse, finding tags and weights lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, @@ -12358,7 +12358,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -12448,7 +12448,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -12499,16 +12499,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("unrelated", 9)), + LFSR_CAT_BUF("unrelated", 9)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)))) => 0; + LFSR_CAT_BUF("\xaa\xaa", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3), &rid_, &tag_, &weight_, &data_) => 0; @@ -12565,16 +12565,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_GROW, +1, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)))) => 0; + LFSR_CAT_BUF("\xbb\xbb", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3), &rid_, &tag_, &weight_, &data_) => 0; @@ -12667,16 +12667,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 3, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_GROW, +2, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)))) => 0; + LFSR_CAT_BUF("\xcc\xcc", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3), &rid_, &tag_, &weight_, &data_) => 0; @@ -12805,16 +12805,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 6, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xdd\xdd", 2)), + LFSR_CAT_BUF("\xdd\xdd", 2)), LFSR_ATTR( LFSR_TAG_GROW, +3, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xdd\xdd", 2)))) => 0; + LFSR_CAT_BUF("\xdd\xdd", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3), &rid_, &tag_, &weight_, &data_) => 0; @@ -12979,16 +12979,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, 10, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_GROW, +4, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, LFSR_TAG_UATTR(3), &rid_, &tag_, &weight_, &data_) => 0; @@ -13210,69 +13210,69 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("unrelated", 9)), + LFSR_CAT_BUF("unrelated", 9)), // make id0 with weight w1 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xaa\xaa", 2)), + LFSR_CAT_BUF("\xaa\xaa", 2)), // make id2 with weight w2 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), LFSR_ATTR( LFSR_TAG_GROW, +1, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xbb\xbb", 2)), + LFSR_CAT_BUF("\xbb\xbb", 2)), // make id5 with weight w3 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), LFSR_ATTR( LFSR_TAG_GROW, +2, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc", 2)), + LFSR_CAT_BUF("\xcc\xcc", 2)), // make id9 with weight w4 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xdd\xdd", 2)), + LFSR_CAT_BUF("\xdd\xdd", 2)), LFSR_ATTR( LFSR_TAG_GROW, +3, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xdd\xdd", 2)), + LFSR_CAT_BUF("\xdd\xdd", 2)), // make id14 with weight w5 LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xee\xee\xee\xee", 4)), + LFSR_CAT_BUF("\xee\xee\xee\xee", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xee\xee", 2)), + LFSR_CAT_BUF("\xee\xee", 2)), LFSR_ATTR( LFSR_TAG_GROW, +4, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xee\xee", 2)))) => 0; + LFSR_CAT_BUF("\xee\xee", 2)))) => 0; // traverse, finding tags and weights lfsr_rbyd_lookupnext(&lfs, &rbyd, -1, 0, @@ -13536,7 +13536,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("unrelated", 9)))) => 0; + LFSR_CAT_BUF("unrelated", 9)))) => 0; for (unsigned j = 0; j < N; j++) { // adjust rid based on future insertions @@ -13550,16 +13550,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)), + LFSR_CAT_BUF(names[perm[j] % 6], 2)), LFSR_ATTR( LFSR_TAG_GROW, +W-1, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -13658,7 +13658,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(3), 0, - LFSR_DATA_BUF("unrelated", 9)))) => 0; + LFSR_CAT_BUF("unrelated", 9)))) => 0; for (unsigned j = 0; j < N; j++) { // adjust rid based on future insertions @@ -13672,16 +13672,16 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)), + LFSR_CAT_BUF(names[perm[j] % 6], 2)), LFSR_ATTR( LFSR_TAG_GROW, +W-1, - LFSR_DATA_NULL()), + LFSR_CAT_NULL()), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], 0) => 0; @@ -13799,7 +13799,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -13823,7 +13823,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_GROW, +D, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_GROW, +D, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N*W+D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -13931,7 +13931,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -13957,7 +13957,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_REG, +D, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N*W+D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14075,7 +14075,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14101,7 +14101,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_UATTR(1), +D, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N*W+D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14232,7 +14232,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14256,7 +14256,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_GROW, -D, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_GROW, -D, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N*W-D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14364,7 +14364,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14390,7 +14390,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_REG, -D, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N*W-D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14508,7 +14508,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(2), +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14534,7 +14534,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_GROW | LFSR_TAG_UATTR(1), -D, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N*W-D); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14664,7 +14664,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14688,7 +14688,7 @@ code = ''' NULL) => 0; lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -W, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -W, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == (N-1)*W); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14724,7 +14724,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; assert(rbyd.weight == N*W); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14828,7 +14828,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid*W, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +W, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N*W); @@ -14855,7 +14855,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF(names[j % 6], 2)))) => 0; + LFSR_CAT_BUF(names[j % 6], 2)))) => 0; assert(rbyd.weight == N*W); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14888,7 +14888,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == N*W); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -14916,7 +14916,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j*W+W-1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF(names[j % 6], 2)))) => 0; + LFSR_CAT_BUF(names[j % 6], 2)))) => 0; assert(rbyd.weight == N*W); lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -15029,14 +15029,14 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } else if (op == 1) { // update our sim memmove(sim+rid*(M+1), sim+(rid+1)*(M+1), (count-rid-1)*(M+1)); count -= 1; // update our rbyd lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; } else if (op == 2) { // update our sim sim[rid*(M+1) + u+1] = 'a'+(i % 26); @@ -15044,7 +15044,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(u), 0, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } else if (op == 3) { // update our sim @@ -15053,7 +15053,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(u), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; } } @@ -15203,7 +15203,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +weight, - LFSR_DATA_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; + LFSR_CAT_BUF(&(uint8_t){'a'+(i % 26)}, 1)))) => 0; } else if (op == 1) { // get the correct weight from the sim weight_ = sim_weights[rid]; @@ -15214,7 +15214,7 @@ code = ''' count -= 1; // update our rbyd lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid+weight_-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -weight_, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -weight_, LFSR_CAT_NULL()))) => 0; } else if (op == 2) { // get the correct weight from the sim weight_ = sim_weights[rid]; @@ -15222,7 +15222,7 @@ code = ''' sim_weights[rid] += weight; // update our rbyd lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid+weight_-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_GROW, +weight, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_GROW, +weight, LFSR_CAT_NULL()))) => 0; } else if (op == 3) { // get the correct weight from the sim weight_ = sim_weights[rid]; @@ -15233,7 +15233,7 @@ code = ''' sim_weights[rid] -= weight; // update our rbyd lfsr_rbyd_commit(&lfs, &rbyd, weighted_rid+weight_-1, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_GROW, -weight, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_GROW, -weight, LFSR_CAT_NULL()))) => 0; } } @@ -15367,10 +15367,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -15457,10 +15457,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -15487,7 +15487,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_SUB | LFSR_TAG_UATTR, 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -15601,10 +15601,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -15632,7 +15632,7 @@ code = ''' LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_UATTR(~(j + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[j % 6], 3)))) => 0; + LFSR_CAT_BUF(names[j % 6], 3)))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -15747,13 +15747,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)), + LFSR_CAT_BUF(names[perm[j] % 6], 2)), LFSR_ATTR( LFSR_TAG_SATTR(0), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 1)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 1)))) => 0; } assert(rbyd.weight == N); @@ -15840,13 +15840,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)), + LFSR_CAT_BUF(names[perm[j] % 6], 2)), LFSR_ATTR( LFSR_TAG_SATTR(0), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 1)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 1)))) => 0; } assert(rbyd.weight == N); @@ -15873,7 +15873,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_SUB | LFSR_TAG_UATTR, 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -15994,13 +15994,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)), + LFSR_CAT_BUF(names[perm[j] % 6], 2)), LFSR_ATTR( LFSR_TAG_SATTR(0), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 1)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 1)))) => 0; } assert(rbyd.weight == N); @@ -16028,7 +16028,7 @@ code = ''' LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_UATTR(~(j + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[j % 6], 3)))) => 0; + LFSR_CAT_BUF(names[j % 6], 3)))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -16150,7 +16150,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -16237,7 +16237,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -16264,7 +16264,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_SUB | LFSR_TAG_UATTR, 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -16381,7 +16381,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 4)))) => 0; } assert(rbyd.weight == N); @@ -16409,7 +16409,7 @@ code = ''' LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_UATTR(~(j + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[j % 6], 6)))) => 0; + LFSR_CAT_BUF(names[j % 6], 6)))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -16518,10 +16518,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -16608,10 +16608,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -16638,7 +16638,7 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, j, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_SUP | LFSR_TAG_UATTR, 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -16752,10 +16752,10 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, rid, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF(names[perm[j] % 6], 4)), + LFSR_CAT_BUF(names[perm[j] % 6], 4)), LFSR_ATTR( LFSR_TAG_UATTR((perm[j] + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[perm[j] % 6], 2)))) => 0; + LFSR_CAT_BUF(names[perm[j] % 6], 2)))) => 0; } assert(rbyd.weight == N); @@ -16783,7 +16783,7 @@ code = ''' LFSR_ATTR( LFSR_TAG_SUP | LFSR_TAG_UATTR(~(j + SHIFT) & 0x7f), 0, - LFSR_DATA_BUF(names[j % 6], 3)))) => 0; + LFSR_CAT_BUF(names[j % 6], 3)))) => 0; // try traversing over the tags lfsr_rbyd_fetch(&lfs, &rbyd, rbyd.blocks[0], CFG->block_size) => 0; @@ -16864,13 +16864,13 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(0), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(0), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); // can we still access things? @@ -16912,23 +16912,23 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(0), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)), + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(0), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); // remove a neighbor to the hole lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(1), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); // can we still access things? @@ -16970,22 +16970,22 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(0), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(0), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 2); // delete a neighbor to the hole lfsr_rbyd_commit(&lfs, &rbyd, 0, LFSR_ATTRS( - LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_DATA_NULL()))) => 0; + LFSR_ATTR(LFSR_TAG_RM, -1, LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); // can we still access things? @@ -17027,23 +17027,23 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(0), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_SATTR(0), 0, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)), + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)), LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(0), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 0); // subwide replace a neighbor to the hole lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUB | LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 0); // can we still access things? @@ -17094,24 +17094,24 @@ code = ''' lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_UATTR(0), 0, - LFSR_DATA_BUF("\xaa\xaa\xaa\xaa", 4)), + LFSR_CAT_BUF("\xaa\xaa\xaa\xaa", 4)), LFSR_ATTR( LFSR_TAG_UATTR(1), 0, - LFSR_DATA_BUF("\xbb\xbb\xbb\xbb", 4)), + LFSR_CAT_BUF("\xbb\xbb\xbb\xbb", 4)), LFSR_ATTR( LFSR_TAG_REG, +1, - LFSR_DATA_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; + LFSR_CAT_BUF("\xdd\xdd\xdd\xdd", 4)))) => 0; lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_RM | LFSR_TAG_UATTR(0), 0, - LFSR_DATA_NULL()))) => 0; + LFSR_CAT_NULL()))) => 0; assert(rbyd.weight == 1); // supwide replace a neighbor to the hole lfsr_rbyd_commit(&lfs, &rbyd, -1, LFSR_ATTRS( LFSR_ATTR( LFSR_TAG_SUP | LFSR_TAG_UATTR(2), 0, - LFSR_DATA_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; + LFSR_CAT_BUF("\xcc\xcc\xcc\xcc", 4)))) => 0; assert(rbyd.weight == 1); // can we still access things?