X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=lib%2Flfsr.h;h=c2d55693e89aa4869eec1280ea1e431cc039689c;hb=53b5693d04b0de440ce3eb1fa22834ef46d0a4e3;hp=45d7028c49731f4f647d8977c26348a97f812b48;hpb=0415406ff0a7ced100565c4cba1322705b7fdb0a;p=fio.git diff --git a/lib/lfsr.h b/lib/lfsr.h index 45d7028c..c2d55693 100644 --- a/lib/lfsr.h +++ b/lib/lfsr.h @@ -3,7 +3,7 @@ #include -#define FIO_MAX_TAPS 8 +#define FIO_MAX_TAPS 6 struct lfsr_taps { unsigned int length; @@ -12,14 +12,19 @@ struct lfsr_taps { struct fio_lfsr { + uint64_t xormask; uint64_t last_val; + uint64_t cached_bit; uint64_t max_val; uint64_t num_vals; - struct lfsr_taps taps; + uint64_t cycle_length; + uint64_t cached_cycle_length; + unsigned int spin; }; -int lfsr_next(struct fio_lfsr *fl, uint64_t *off, uint64_t); -int lfsr_init(struct fio_lfsr *fl, uint64_t size, unsigned long seed); -void lfsr_reset(struct fio_lfsr *fl, unsigned long seed); +int lfsr_next(struct fio_lfsr *fl, uint64_t *off); +int lfsr_init(struct fio_lfsr *fl, uint64_t size, + unsigned long seed, unsigned int spin); +int lfsr_reset(struct fio_lfsr *fl, unsigned long seed); #endif