lfsr: add lfsr_reset()
[fio.git] / lib / lfsr.h
1 #ifndef FIO_LFSR_H
2 #define FIO_LFSR_H
3
4 #include <inttypes.h>
5
6 #define FIO_MAX_TAPS    8
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 last_val;
16         uint64_t max_val;
17         uint64_t num_vals;
18         struct lfsr_taps taps;
19 };
20
21 int lfsr_next(struct fio_lfsr *fl, uint64_t *off, uint64_t);
22 int lfsr_init(struct fio_lfsr *fl, uint64_t size, unsigned long seed);
23 void lfsr_reset(struct fio_lfsr *fl, unsigned long seed);
24
25 #endif