projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use 'lib/pattern' to parse patterns and paste formats into buffers
[fio.git]
/
ioengine.h
diff --git
a/ioengine.h
b/ioengine.h
index 85923fcee3fdc1ff2f75be2bdec79048fac00c26..3d49993699294c2148f8601e884169ab7ab0a0fe 100644
(file)
--- a/
ioengine.h
+++ b/
ioengine.h
@@
-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;
};
};
};
};
@@
-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