};
/*
- * Used for passing io_u completion data
+ * Callback for io completion
*/
-struct io_completion_data {
- int nr; /* input */
-
- int error; /* output */
- unsigned long bytes_done[2]; /* output */
- struct timeval time; /* output */
-};
+typedef int (endio_handler)(struct io_u *);
#define DISK_UTIL_MSEC (250)
*/
extern void populate_verify_io_u(struct thread_data *, struct io_u *);
extern int get_next_verify(struct thread_data *td, struct io_u *);
-extern int do_io_u_verify(struct thread_data *, struct io_u **);
+extern int verify_io_u(struct io_u *);
/*
* Memory helpers
extern struct io_u *__get_io_u(struct thread_data *);
extern struct io_u *get_io_u(struct thread_data *, struct fio_file *);
extern void put_io_u(struct thread_data *, struct io_u *);
-extern void ios_completed(struct thread_data *, struct io_completion_data *);
-extern void io_completed(struct thread_data *, struct io_u *, struct io_completion_data *);
-extern void init_icd(struct io_completion_data *);
+extern long io_u_sync_complete(struct thread_data *, struct io_u *, endio_handler *);
+extern long io_u_queued_complete(struct thread_data *, int, endio_handler *);
/*
* io engine entry points