Add profile td init/exit with stored data
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 3b2dd6edcfd51c74ab20ec0d439b723b88802bcd..f00f64a9dc4297217e870eae87b27b5980151719 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -28,8 +28,9 @@
 #include "io_ddir.h"
 #include "ioengine.h"
 #include "iolog.h"
-#include "profiles.h"
 #include "helpers.h"
+#include "options.h"
+#include "profile.h"
 
 #ifdef FIO_HAVE_GUASI
 #include <guasi.h>
@@ -227,6 +228,7 @@ struct thread_options {
        unsigned int file_service_type;
        unsigned int group_reporting;
        unsigned int fadvise_hint;
+       unsigned int fallocate;
        unsigned int zero_buffers;
        unsigned int refill_buffers;
        unsigned int time_based;
@@ -270,7 +272,7 @@ struct thread_options {
        /*
         * Benchmark profile type
         */
-       unsigned int profile;
+       char *profile;
 
        /*
         * blkio cgroup support
@@ -359,7 +361,7 @@ struct thread_data {
        /*
         * Rate state
         */
-       unsigned long rate_usec_cycle[2];
+       unsigned long rate_nsec_cycle[2];
        long rate_pending_usleep[2];
        unsigned long rate_bytes[2];
        unsigned long rate_blocks[2];
@@ -425,6 +427,12 @@ struct thread_data {
         */
        unsigned int total_err_count;
        int first_error;
+
+       /*
+        * Can be overloaded by profiles
+        */
+       struct prof_io_ops prof_io_ops;
+       void *prof_data;
 };
 
 /*
@@ -537,8 +545,9 @@ extern void fio_options_dup_and_init(struct option *);
 extern void options_mem_dupe(struct thread_data *);
 extern void options_mem_free(struct thread_data *);
 extern void td_fill_rand_seeds(struct thread_data *);
+extern void add_job_opts(const char **);
 #define FIO_GETOPT_JOB         0x89988998
-#define FIO_NR_OPTIONS         128
+#define FIO_NR_OPTIONS         (FIO_MAX_OPTS + 128)
 
 /*
  * ETA/status stuff