Fio 2.1.10
[fio.git] / ioengine.h
index abf2b464d8dfcef30a4b4693536da89723c8ba08..37bf5fce125e0e9e265b9137cf63dc9b0eb406fa 100644 (file)
@@ -15,7 +15,7 @@
 #include <guasi.h>
 #endif
 
-#define FIO_IOOPS_VERSION      17
+#define FIO_IOOPS_VERSION      19
 
 enum {
        IO_U_F_FREE             = 1 << 0,
@@ -73,6 +73,25 @@ struct io_u {
 
        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;
@@ -97,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 *);
 };
 
 /*
@@ -143,6 +143,7 @@ struct ioengine_ops {
        void (*cleanup)(struct thread_data *);
        int (*open_file)(struct thread_data *, struct fio_file *);
        int (*close_file)(struct thread_data *, struct fio_file *);
+       int (*invalidate)(struct thread_data *, struct fio_file *);
        int (*get_file_size)(struct thread_data *, struct fio_file *);
        void (*terminate)(struct thread_data *);
        int (*io_u_init)(struct thread_data *, struct io_u *);