Fio 3.37
[fio.git] / io_u.h
diff --git a/io_u.h b/io_u.h
index 87c29201a3aee39a87a615768272e0e86b596d05..ab93d50f967e78547961e7650b2921f53f64f6b9 100644 (file)
--- a/io_u.h
+++ b/io_u.h
@@ -11,9 +11,6 @@
 #ifdef CONFIG_LIBAIO
 #include <libaio.h>
 #endif
-#ifdef CONFIG_GUASI
-#include <guasi.h>
-#endif
 
 enum {
        IO_U_F_FREE             = 1 << 0,
@@ -24,7 +21,7 @@ enum {
        IO_U_F_TRIMMED          = 1 << 5,
        IO_U_F_BARRIER          = 1 << 6,
        IO_U_F_VER_LIST         = 1 << 7,
-       IO_U_F_PRIORITY         = 1 << 8,
+       IO_U_F_PATTERN_DONE     = 1 << 8,
 };
 
 /*
@@ -49,11 +46,23 @@ struct io_u {
         */
        unsigned short numberio;
 
+       /*
+        * IO priority.
+        */
+       unsigned short ioprio;
+       unsigned short clat_prio_index;
+
+       /*
+        * number of trim ranges for this IO.
+        */
+       unsigned int number_trim;
+
        /*
         * Allocated/set buffer and length
         */
        unsigned long long buflen;
-       unsigned long long offset;
+       unsigned long long offset;      /* is really ->xfer_offset... */
+       unsigned long long verify_offset;       /* is really ->offset */
        void *buf;
 
        /*
@@ -85,8 +94,8 @@ struct io_u {
        union {
                unsigned int index;
                unsigned int seen;
-               void *engine_data;
        };
+       void *engine_data;
 
        union {
                struct flist_head verify_list;
@@ -100,19 +109,23 @@ struct io_u {
         * @success == true means that the I/O operation has been queued or
         * completed successfully.
         */
-       void (*zbd_queue_io)(struct io_u *, int q, bool success);
+       void (*zbd_queue_io)(struct thread_data *td, struct io_u *, int q,
+                            bool success);
 
        /*
         * ZBD mode zbd_put_io callback: called in after completion of an I/O
         * or commit of an async I/O to unlock the I/O target zone.
         */
-       void (*zbd_put_io)(const struct io_u *);
+       void (*zbd_put_io)(struct thread_data *td, const struct io_u *);
 
        /*
         * Callback for io completion
         */
        int (*end_io)(struct thread_data *, struct io_u **);
 
+       uint32_t dtype;
+       uint32_t dspec;
+
        union {
 #ifdef CONFIG_LIBAIO
                struct iocb iocb;
@@ -123,9 +136,6 @@ struct io_u {
 #ifdef FIO_HAVE_SGIO
                struct sg_io_hdr hdr;
 #endif
-#ifdef CONFIG_GUASI
-               guasi_req_t greq;
-#endif
 #ifdef CONFIG_SOLARISAIO
                aio_result_t resultp;
 #endif
@@ -157,7 +167,7 @@ void io_u_mark_submit(struct thread_data *, unsigned int);
 bool queue_full(const struct thread_data *);
 
 int do_io_u_sync(const struct thread_data *, struct io_u *);
-int do_io_u_trim(const struct thread_data *, struct io_u *);
+int do_io_u_trim(struct thread_data *, struct io_u *);
 
 #ifdef FIO_INC_DEBUG
 static inline void dprint_io_u(struct io_u *io_u, const char *p)
@@ -192,7 +202,5 @@ static inline enum fio_ddir acct_ddir(struct io_u *io_u)
        td_flags_clear((td), &(io_u->flags), (val))
 #define io_u_set(td, io_u, val)                \
        td_flags_set((td), &(io_u)->flags, (val))
-#define io_u_is_prio(io_u)     \
-       (io_u->flags & (unsigned int) IO_U_F_PRIORITY) != 0
 
 #endif