#ifndef FIO_LFSR_H #define FIO_LFSR_H #include <inttypes.h> #define FIO_MAX_TAPS 6 struct lfsr_taps { unsigned int length; unsigned int taps[FIO_MAX_TAPS]; }; struct fio_lfsr { uint64_t xormask; uint64_t last_val; uint64_t cached_bit; uint64_t max_val; uint64_t num_vals; uint64_t cycle_length; uint64_t cached_cycle_length; unsigned int spin; }; 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