d0c5bf1210
Taking advantage of the fact that these functions should never error, changing the return type to lfsr_data_t allows all of the encoding information to be passed around quite easily. And, by giving each lfsr_data_from* function an LFSR_DATA_FROM* macro, these functions can participate in our attr-list generating macros: LFSR_ATTR(-1, MTREE, 0, FROMBTREE(lfs, mtree, mtree_buf)) Though one thing to watch out for is the borrowed buffer that stores the actual data. This might welcome use-after-free bugs since it's not super clear the buffer remains borrowed. Will need to watch out for this.