gfio: fix git location for fio
[fio.git] / ioengine.h
index 6734c7bb95dfb58a42b7176c1b29f66cae2eb887..7249df6a9705c5089dab08d732835c6643fe35e0 100644 (file)
@@ -16,7 +16,7 @@
 #include <guasi.h>
 #endif
 
-#define FIO_IOOPS_VERSION      22
+#define FIO_IOOPS_VERSION      23
 
 enum {
        IO_U_F_FREE             = 1 << 0,
@@ -123,7 +123,6 @@ struct io_u {
                struct ibv_mr *mr;
 #endif
                void *mmap_data;
-               uint64_t null;
        };
 };
 
@@ -138,7 +137,7 @@ enum {
 
 struct ioengine_ops {
        struct flist_head list;
-       char name[16];
+       const char *name;
        int version;
        int flags;
        int (*setup)(struct thread_data *);
@@ -157,12 +156,12 @@ struct ioengine_ops {
        int (*unlink_file)(struct thread_data *, struct fio_file *);
        int (*get_file_size)(struct thread_data *, struct fio_file *);
        void (*terminate)(struct thread_data *);
+       int (*iomem_alloc)(struct thread_data *, size_t);
+       void (*iomem_free)(struct thread_data *);
        int (*io_u_init)(struct thread_data *, struct io_u *);
        void (*io_u_free)(struct thread_data *, struct io_u *);
        int option_struct_size;
        struct fio_option *options;
-       void *data;
-       void *dlhandle;
 };
 
 enum fio_ioengine_flags {
@@ -238,12 +237,9 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p)
        dprint(FD_IO, "%s: io_u %p: off=%llu/len=%lu/ddir=%d", p, io_u,
                                        (unsigned long long) io_u->offset,
                                        io_u->buflen, io_u->ddir);
-       if (fio_debug & (1 << FD_IO)) {
-               if (f)
-                       log_info("/%s", f->file_name);
-
-               log_info("\n");
-       }
+       if (f)
+               dprint(FD_IO, "/%s", f->file_name);
+       dprint(FD_IO, "\n");
 }
 #else
 #define dprint_io_u(io_u, p)
@@ -257,14 +253,9 @@ static inline enum fio_ddir acct_ddir(struct io_u *io_u)
        return io_u->ddir;
 }
 
-static inline void io_u_clear(struct io_u *io_u, unsigned int flags)
-{
-       __sync_fetch_and_and(&io_u->flags, ~flags);
-}
-
-static inline void io_u_set(struct io_u *io_u, unsigned int flags)
-{
-       __sync_fetch_and_or(&io_u->flags, flags);
-}
+#define io_u_clear(td, io_u, val)      \
+       td_flags_clear((td), &(io_u->flags), (val))
+#define io_u_set(td, io_u, val)                \
+       td_flags_set((td), &(io_u)->flags, (val))
 
 #endif