Update IO engine version
[fio.git] / ioengine.h
index 6dd2aa40f478362e86459d563d673d425f2669b1..6e3c717f185414bfd20342d30635eaa60da78197 100644 (file)
@@ -15,7 +15,7 @@
 #include <guasi.h>
 #endif
 
-#define FIO_IOOPS_VERSION      16
+#define FIO_IOOPS_VERSION      18
 
 enum {
        IO_U_F_FREE             = 1 << 0,
@@ -50,12 +50,13 @@ struct io_u {
         */
        unsigned long buflen;
        unsigned long long offset;
+       unsigned short numberio;
        void *buf;
 
        /*
         * Initial seed for generating the buffer contents
         */
-       unsigned long rand_seed;
+       uint64_t rand_seed;
 
        /*
         * IO engine state, may be different from above when we get
@@ -70,6 +71,27 @@ struct io_u {
         */
        unsigned long buf_filled_len;
 
+       struct io_piece *ipo;
+
+       unsigned int resid;
+       unsigned int error;
+
+       /*
+        * io engine private data
+        */
+       union {
+               unsigned int index;
+               unsigned int seen;
+               void *engine_data;
+       };
+
+       struct flist_head verify_list;
+
+       /*
+        * Callback for io completion
+        */
+       int (*end_io)(struct thread_data *, struct io_u *);
+
        union {
 #ifdef CONFIG_LIBAIO
                struct iocb iocb;
@@ -94,25 +116,6 @@ struct io_u {
 #endif
                void *mmap_data;
        };
-
-       unsigned int resid;
-       unsigned int error;
-
-       /*
-        * io engine private data
-        */
-       union {
-               unsigned int index;
-               unsigned int seen;
-               void *engine_data;
-       };
-
-       struct flist_head verify_list;
-
-       /*
-        * Callback for io completion
-        */
-       int (*end_io)(struct thread_data *, struct io_u *);
 };
 
 /*
@@ -164,6 +167,11 @@ enum fio_ioengine_flags {
        FIO_BIT_BASED   = 1 << 10,      /* engine uses a bit base (e.g. uses Kbit as opposed to KB) */
 };
 
+/*
+ * External engine defined symbol to fill in the engine ops structure
+ */
+typedef void (*get_ioengine_t)(struct ioengine_ops **);
+
 /*
  * io engine entry points
  */