Add LFSR generator
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 15ab308488c23b1f6608e1f682d70a4696adc506..0100e3d8680a07af00894495c73e99322bcd6b60 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -39,7 +39,6 @@ struct thread_data;
 #include "server.h"
 #include "stat.h"
 #include "flow.h"
-#include "lib/zipf.h"
 
 #ifdef FIO_HAVE_GUASI
 #include <guasi.h>
@@ -180,6 +179,9 @@ struct thread_options {
 
        unsigned int random_distribution;
        double zipf_theta;
+       double pareto_h;
+
+       unsigned int random_generator;
 
        unsigned int hugepage_size;
        unsigned int rw_min_bs;
@@ -456,11 +458,6 @@ struct thread_data {
                struct frand_state __random_state;
        };
 
-       /*
-        * Used for zipf random distribution
-        */
-       struct zipf_state zipf;
-
        struct timeval start;   /* start of this loop */
        struct timeval epoch;   /* time job was started */
        struct timeval last_issue;
@@ -563,6 +560,7 @@ enum {
 
 extern int exitall_on_terminate;
 extern unsigned int thread_number;
+extern unsigned int stat_number;
 extern unsigned int nr_process, nr_thread;
 extern int shm_id;
 extern int groupid;
@@ -592,14 +590,9 @@ static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u)
        assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
 }
 
-#define BLOCKS_PER_MAP         (8 * sizeof(unsigned long))
-#define TO_MAP_BLOCK(f, b)     (b)
-#define RAND_MAP_IDX(f, b)     (TO_MAP_BLOCK(f, b) / BLOCKS_PER_MAP)
-#define RAND_MAP_BIT(f, b)     (TO_MAP_BLOCK(f, b) & (BLOCKS_PER_MAP - 1))
-
 #define REAL_MAX_JOBS          2048
 
-static inline enum error_type td_error_type(enum fio_ddir ddir, int err)
+static inline enum error_type_bit td_error_type(enum fio_ddir ddir, int err)
 {
        if (err == EILSEQ)
                return ERROR_TYPE_VERIFY_BIT;
@@ -690,6 +683,7 @@ enum {
        TD_NOT_CREATED = 0,
        TD_CREATED,
        TD_INITIALIZED,
+       TD_SETTING_UP,
        TD_RAMP,
        TD_RUNNING,
        TD_PRE_READING,
@@ -827,6 +821,12 @@ enum {
 enum {
        FIO_RAND_DIST_RANDOM    = 0,
        FIO_RAND_DIST_ZIPF,
+       FIO_RAND_DIST_PARETO,
+};
+
+enum {
+       FIO_RAND_GEN_TAUSWORTHE = 0,
+       FIO_RAND_GEN_LFSR,
 };
 
 #endif