projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
stat: add comment on why we need return
[fio.git]
/
ioengine.h
diff --git
a/ioengine.h
b/ioengine.h
index 0742a8b96753c3bf79edb431c2bd63ee27a46df2..3d49993699294c2148f8601e884169ab7ab0a0fe 100644
(file)
--- a/
ioengine.h
+++ b/
ioengine.h
@@
-15,7
+15,7
@@
#include <guasi.h>
#endif
#include <guasi.h>
#endif
-#define FIO_IOOPS_VERSION 2
0
+#define FIO_IOOPS_VERSION 2
1
enum {
IO_U_F_FREE = 1 << 0,
enum {
IO_U_F_FREE = 1 << 0,
@@
-45,12
+45,16
@@
struct io_u {
*/
enum fio_ddir acct_ddir;
*/
enum fio_ddir acct_ddir;
+ /*
+ * Write generation
+ */
+ unsigned short numberio;
+
/*
* Allocated/set buffer and length
*/
unsigned long buflen;
unsigned long long offset;
/*
* Allocated/set buffer and length
*/
unsigned long buflen;
unsigned long long offset;
- unsigned short numberio;
void *buf;
/*
void *buf;
/*
@@
-115,6
+119,7
@@
struct io_u {
struct ibv_mr *mr;
#endif
void *mmap_data;
struct ibv_mr *mr;
#endif
void *mmap_data;
+ uint64_t null;
};
};
};
};
@@
-137,7
+142,7
@@
struct ioengine_ops {
int (*prep)(struct thread_data *, struct io_u *);
int (*queue)(struct thread_data *, struct io_u *);
int (*commit)(struct thread_data *);
int (*prep)(struct thread_data *, struct io_u *);
int (*queue)(struct thread_data *, struct io_u *);
int (*commit)(struct thread_data *);
- int (*getevents)(struct thread_data *, unsigned int, unsigned int, struct timespec *);
+ int (*getevents)(struct thread_data *, unsigned int, unsigned int,
const
struct timespec *);
struct io_u *(*event)(struct thread_data *, int);
int (*cancel)(struct thread_data *, struct io_u *);
void (*cleanup)(struct thread_data *);
struct io_u *(*event)(struct thread_data *, int);
int (*cancel)(struct thread_data *, struct io_u *);
void (*cleanup)(struct thread_data *);
@@
-182,7
+187,7
@@
extern int __must_check td_io_init(struct thread_data *);
extern int __must_check td_io_prep(struct thread_data *, struct io_u *);
extern int __must_check td_io_queue(struct thread_data *, struct io_u *);
extern int __must_check td_io_sync(struct thread_data *, struct fio_file *);
extern int __must_check td_io_prep(struct thread_data *, struct io_u *);
extern int __must_check td_io_queue(struct thread_data *, struct io_u *);
extern int __must_check td_io_sync(struct thread_data *, struct fio_file *);
-extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsigned int, struct timespec *);
+extern int __must_check td_io_getevents(struct thread_data *, unsigned int, unsigned int,
const
struct timespec *);
extern int __must_check td_io_commit(struct thread_data *);
extern int __must_check td_io_open_file(struct thread_data *, struct fio_file *);
extern int td_io_close_file(struct thread_data *, struct fio_file *);
extern int __must_check td_io_commit(struct thread_data *);
extern int __must_check td_io_open_file(struct thread_data *, struct fio_file *);
extern int td_io_close_file(struct thread_data *, struct fio_file *);
@@
-205,8
+210,8
@@
extern struct io_u *get_io_u(struct thread_data *);
extern void put_io_u(struct thread_data *, struct io_u *);
extern void clear_io_u(struct thread_data *, struct io_u *);
extern void requeue_io_u(struct thread_data *, struct io_u **);
extern void put_io_u(struct thread_data *, struct io_u *);
extern void clear_io_u(struct thread_data *, struct io_u *);
extern void requeue_io_u(struct thread_data *, struct io_u **);
-extern int __must_check io_u_sync_complete(struct thread_data *, struct io_u *
, uint64_t *
);
-extern int __must_check io_u_queued_complete(struct thread_data *, int
, uint64_t *
);
+extern int __must_check io_u_sync_complete(struct thread_data *, struct io_u *);
+extern int __must_check io_u_queued_complete(struct thread_data *, int);
extern void io_u_queued(struct thread_data *, struct io_u *);
extern void io_u_quiesce(struct thread_data *);
extern void io_u_log_error(struct thread_data *, struct io_u *);
extern void io_u_queued(struct thread_data *, struct io_u *);
extern void io_u_quiesce(struct thread_data *);
extern void io_u_log_error(struct thread_data *, struct io_u *);
@@
-247,4
+252,14
@@
static inline enum fio_ddir acct_ddir(struct io_u *io_u)
return io_u->ddir;
}
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);
+}
+
#endif
#endif