X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=ioengine.h;h=08e8fabfacecb5b57996ba9dbec9bc87e9704d03;hb=d7e9266cdb9311b07e2cfeb16a1c4390ca610836;hp=6734c7bb95dfb58a42b7176c1b29f66cae2eb887;hpb=882718418309228b28146dc03d43c9253c7cfb35;p=fio.git diff --git a/ioengine.h b/ioengine.h index 6734c7bb..08e8fabf 100644 --- a/ioengine.h +++ b/ioengine.h @@ -16,7 +16,7 @@ #include #endif -#define FIO_IOOPS_VERSION 22 +#define FIO_IOOPS_VERSION 23 enum { IO_U_F_FREE = 1 << 0, @@ -138,7 +138,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 +157,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 { @@ -257,14 +257,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