Add LFSR generator
[fio.git] / lib / lfsr.h
diff --git a/lib/lfsr.h b/lib/lfsr.h
new file mode 100644 (file)
index 0000000..0de9ea8
--- /dev/null
@@ -0,0 +1,24 @@
+#ifndef FIO_LFSR_H
+#define FIO_LFSR_H
+
+#include <inttypes.h>
+
+#define FIO_MAX_TAPS   8
+
+struct lfsr_taps {
+       unsigned int length;
+       unsigned int taps[FIO_MAX_TAPS];
+};
+
+
+struct fio_lfsr {
+       uint64_t last_val;
+       uint64_t max_val;
+       uint64_t num_vals;
+       struct lfsr_taps taps;
+};
+
+int lfsr_next(struct fio_lfsr *fl, uint64_t *off);
+int lfsr_init(struct fio_lfsr *fl, uint64_t size);
+
+#endif