Name the various random offsets we use
[fio.git] / init.c
diff --git a/init.c b/init.c
index 29a50f22acde170f54258b72340162b622adebba..e90d7355e9ee5de62c53a3c5fcc191145697103a 100644 (file)
--- a/init.c
+++ b/init.c
@@ -660,44 +660,44 @@ static int exists_and_not_file(const char *filename)
 
 static void td_fill_rand_seeds_os(struct thread_data *td)
 {
-       os_random_seed(td->rand_seeds[0], &td->bsrange_state);
-       os_random_seed(td->rand_seeds[1], &td->verify_state);
-       os_random_seed(td->rand_seeds[2], &td->rwmix_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_BS_OFF], &td->bsrange_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_VER_OFF], &td->verify_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_MIX_OFF], &td->rwmix_state);
 
        if (td->o.file_service_type == FIO_FSERVICE_RANDOM)
-               os_random_seed(td->rand_seeds[3], &td->next_file_state);
+               os_random_seed(td->rand_seeds[FIO_RAND_FILE_OFF], &td->next_file_state);
 
-       os_random_seed(td->rand_seeds[5], &td->file_size_state);
-       os_random_seed(td->rand_seeds[6], &td->trim_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_FILE_SIZE_OFF], &td->file_size_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_TRIM_OFF], &td->trim_state);
 
        if (!td_random(td))
                return;
 
        if (td->o.rand_repeatable)
-               td->rand_seeds[4] = FIO_RANDSEED * td->thread_number;
+               td->rand_seeds[FIO_RAND_BLOCK_OFF] = FIO_RANDSEED * td->thread_number;
 
-       os_random_seed(td->rand_seeds[4], &td->random_state);
+       os_random_seed(td->rand_seeds[FIO_RAND_BLOCK_OFF], &td->random_state);
 }
 
 static void td_fill_rand_seeds_internal(struct thread_data *td)
 {
-       init_rand_seed(&td->__bsrange_state, td->rand_seeds[0]);
-       init_rand_seed(&td->__verify_state, td->rand_seeds[1]);
-       init_rand_seed(&td->__rwmix_state, td->rand_seeds[2]);
+       init_rand_seed(&td->__bsrange_state, td->rand_seeds[FIO_RAND_BS_OFF]);
+       init_rand_seed(&td->__verify_state, td->rand_seeds[FIO_RAND_VER_OFF]);
+       init_rand_seed(&td->__rwmix_state, td->rand_seeds[FIO_RAND_MIX_OFF]);
 
        if (td->o.file_service_type == FIO_FSERVICE_RANDOM)
-               init_rand_seed(&td->__next_file_state, td->rand_seeds[3]);
+               init_rand_seed(&td->__next_file_state, td->rand_seeds[FIO_RAND_FILE_OFF]);
 
-       init_rand_seed(&td->__file_size_state, td->rand_seeds[5]);
-       init_rand_seed(&td->__trim_state, td->rand_seeds[6]);
+       init_rand_seed(&td->__file_size_state, td->rand_seeds[FIO_RAND_FILE_SIZE_OFF]);
+       init_rand_seed(&td->__trim_state, td->rand_seeds[FIO_RAND_TRIM_OFF]);
 
        if (!td_random(td))
                return;
 
        if (td->o.rand_repeatable)
-               td->rand_seeds[4] = FIO_RANDSEED * td->thread_number;
+               td->rand_seeds[FIO_RAND_BLOCK_OFF] = FIO_RANDSEED * td->thread_number;
 
-       init_rand_seed(&td->__random_state, td->rand_seeds[4]);
+       init_rand_seed(&td->__random_state, td->rand_seeds[FIO_RAND_BLOCK_OFF]);
 }
 
 void td_fill_rand_seeds(struct thread_data *td)
@@ -707,7 +707,7 @@ void td_fill_rand_seeds(struct thread_data *td)
        else
                td_fill_rand_seeds_internal(td);
 
-       init_rand_seed(&td->buf_state, td->rand_seeds[7]);
+       init_rand_seed(&td->buf_state, td->rand_seeds[FIO_RAND_BUF_OFF]);
 }
 
 
@@ -767,6 +767,24 @@ int ioengine_load(struct thread_data *td)
        return 0;
 }
 
+static void init_flags(struct thread_data *td)
+{
+       struct thread_options *o = &td->o;
+
+       if (o->verify_backlog)
+               td->flags |= TD_F_VER_BACKLOG;
+       if (o->trim_backlog)
+               td->flags |= TD_F_TRIM_BACKLOG;
+       if (o->read_iolog_file)
+               td->flags |= TD_F_READ_IOLOG;
+       if (o->refill_buffers)
+               td->flags |= TD_F_REFILL_BUFFERS;
+       if (o->scramble_buffers)
+               td->flags |= TD_F_SCRAMBLE_BUFFERS;
+       if (o->verify != VERIFY_NONE)
+               td->flags |= TD_F_VER_NONE;
+}
+
 /*
  * Adds a job to the list of things todo. Sanitizes the various options
  * to make sure we don't have conflicts, and initializes various
@@ -787,6 +805,8 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
        if (td == &def_thread)
                return 0;
 
+       init_flags(td);
+
        /*
         * if we are just dumping the output command line, don't add the job
         */