Home | History | Annotate | Download | only in lib
      1 #ifndef FIO_LFSR_H
      2 #define FIO_LFSR_H
      3 
      4 #include <inttypes.h>
      5 
      6 #define FIO_MAX_TAPS	6
      7 
      8 struct lfsr_taps {
      9 	unsigned int length;
     10 	unsigned int taps[FIO_MAX_TAPS];
     11 };
     12 
     13 
     14 struct fio_lfsr {
     15 	uint64_t xormask;
     16 	uint64_t last_val;
     17 	uint64_t cached_bit;
     18 	uint64_t max_val;
     19 	uint64_t num_vals;
     20 	uint64_t cycle_length;
     21 	uint64_t cached_cycle_length;
     22 	unsigned int spin;
     23 };
     24 
     25 int lfsr_next(struct fio_lfsr *fl, uint64_t *off);
     26 int lfsr_init(struct fio_lfsr *fl, uint64_t size,
     27 		unsigned long seed, unsigned int spin);
     28 int lfsr_reset(struct fio_lfsr *fl, unsigned long seed);
     29 
     30 #endif
     31