server: send quit if we don't add a job
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index a74fb108c7f6f79827ea793d9cc099b28ea2777b..65f79e03ee2f0f88789bd1329e0c046650de9168 100644 (file)
--- a/fio.h
+++ b/fio.h
 
 struct thread_data;
 
+#define FIO_MAJOR      1
+#define FIO_MINOR      99
+#define FIO_PATCH      0
+
 #include "compiler/compiler.h"
 #include "flist.h"
 #include "fifo.h"
@@ -135,6 +139,7 @@ struct thread_options {
        unsigned int use_os_rand;
        unsigned int write_lat_log;
        unsigned int write_bw_log;
+       unsigned int write_iops_log;
        unsigned int norandommap;
        unsigned int softrandommap;
        unsigned int bs_unaligned;
@@ -153,6 +158,7 @@ struct thread_options {
        unsigned long long ramp_time;
        unsigned int overwrite;
        unsigned int bw_avg_time;
+       unsigned int iops_avg_time;
        unsigned int loops;
        unsigned long long zone_size;
        unsigned long long zone_skip;
@@ -193,12 +199,13 @@ struct thread_options {
        unsigned long long trim_backlog;
        unsigned int clat_percentiles;
        unsigned int overwrite_plist;
-       double percentile_list[FIO_IO_U_LIST_MAX_LEN];
+       fio_fp64_t percentile_list[FIO_IO_U_LIST_MAX_LEN];
 
        char *read_iolog_file;
        char *write_iolog_file;
        char *bw_log_file;
        char *lat_log_file;
+       char *iops_log_file;
        char *replay_redirect;
 
        /*
@@ -261,9 +268,13 @@ struct thread_data {
        struct io_log *clat_log;
        struct io_log *lat_log;
        struct io_log *bw_log;
+       struct io_log *iops_log;
 
        uint64_t stat_io_bytes[2];
-       struct timeval stat_sample_time[2];
+       struct timeval bw_sample_time;
+
+       uint64_t stat_io_blocks[2];
+       struct timeval iops_sample_time;
 
        struct rusage ru_start;
        struct rusage ru_end;
@@ -361,6 +372,7 @@ struct thread_data {
 
        unsigned long io_issues[2];
        unsigned long long io_blocks[2];
+       unsigned long long this_io_blocks[2];
        unsigned long long io_bytes[2];
        unsigned long long io_skip_bytes;
        unsigned long long this_io_bytes[2];
@@ -470,6 +482,9 @@ enum {
 #define td_vmsg(td, err, msg, func)    \
        __td_verror((td), (err), (msg), (func))
 
+#define __fio_stringify_1(x)   #x
+#define __fio_stringify(x)     __fio_stringify_1(x)
+
 extern int exitall_on_terminate;
 extern int thread_number;
 extern int nr_process, nr_thread;
@@ -491,6 +506,7 @@ extern int terse_version;
 extern int is_backend;
 extern int nr_clients;
 extern int log_syslog;
+extern const fio_fp64_t def_percentile_list[FIO_IO_U_LIST_MAX_LEN];
 
 extern struct thread_data *threads;
 
@@ -532,6 +548,7 @@ static inline int should_fsync(struct thread_data *td)
  */
 extern int __must_check parse_options(int, char **);
 extern int parse_jobs_ini(char *, int, int);
+extern int parse_cmd_line(int, char **);
 extern int exec_run(void);
 extern void reset_fio_state(void);
 extern int fio_options_parse(struct thread_data *, char **, int);