[PATCH] Support residual io counts from io engines
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index e85d6cc1f0ac2011fb79780adb838039cd8b56a0..56ed248551a5f6158dedf99eb0e4033f2bf0bf2d 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -75,6 +75,9 @@ struct io_u {
        unsigned int buflen;
        unsigned long long offset;
 
+       void *xfer_buf;
+       unsigned int xfer_buflen;
+
        unsigned int resid;
        unsigned int error;
 
@@ -143,6 +146,7 @@ enum fio_ioengine_flags {
        FIO_CPUIO       = 1 << 1,
        FIO_MMAPIO      = 1 << 2,
        FIO_RAWIO       = 1 << 3,
+       FIO_NETIO       = 1 << 4,
 };
 
 struct fio_file {
@@ -167,10 +171,16 @@ struct fio_file {
        unsigned int unlink;
 };
 
+/*
+ * How many depth levels to log
+ */
+#define FIO_IO_U_MAP_NR        8
+
 /*
  * This describes a single thread/process executing a fio job.
  */
 struct thread_data {
+       char *description;
        char *name;
        char *directory;
        char *filename;
@@ -264,6 +274,8 @@ struct thread_data {
         * Current IO depth and list of free and busy io_u's.
         */
        unsigned int cur_depth;
+       unsigned int io_u_map[FIO_IO_U_MAP_NR];
+       unsigned long total_io_u;
        struct list_head io_u_freelist;
        struct list_head io_u_busylist;
 
@@ -457,7 +469,11 @@ extern void update_io_ticks(void);
 extern void disk_util_timer_arm(void);
 extern void setup_log(struct io_log **);
 extern void finish_log(struct thread_data *, struct io_log *, const char *);
+extern void __finish_log(struct io_log *, const char *);
 extern int setup_rate(struct thread_data *);
+extern struct io_log *agg_io_log[2];
+extern int write_bw_log;
+extern void add_agg_sample(unsigned long, enum fio_ddir);
 
 /*
  * Time functions