X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=57d1b6b995d28dee547e5c9dfeb4858a83e305de;hp=8880ea61e7a518c02bc33840f9b0f8571a0c6b76;hb=5b38ee84f35c7cf3a3a804e6dbe3621f8980d3bb;hpb=413dd459a7710ba421061e840dd9ac3161c70f20 diff --git a/fio.h b/fio.h index 8880ea61..57d1b6b9 100644 --- a/fio.h +++ b/fio.h @@ -29,10 +29,13 @@ enum fio_ddir { }; enum td_ddir { - TD_DDIR_READ = 1 << 0, - TD_DDIR_WRITE = 1 << 1, - TD_DDIR_RAND = 1 << 2, - TD_DDIR_RW = TD_DDIR_READ | TD_DDIR_WRITE, + TD_DDIR_READ = 1 << 0, + TD_DDIR_WRITE = 1 << 1, + TD_DDIR_RAND = 1 << 2, + TD_DDIR_RW = TD_DDIR_READ | TD_DDIR_WRITE, + TD_DDIR_RANDREAD = TD_DDIR_READ | TD_DDIR_RAND, + TD_DDIR_RANDWRITE = TD_DDIR_WRITE | TD_DDIR_READ, + TD_DDIR_RANDRW = TD_DDIR_RW | TD_DDIR_RAND, }; /* @@ -78,8 +81,9 @@ struct io_piece { #ifdef FIO_HAVE_SYSLET struct syslet_req { - struct syslet_uatom atom; - long ret; + struct syslet_uatom atom; /* the atom to submit */ + struct syslet_uatom *head; /* head of the sequence */ + long ret; /* syscall return value */ }; #endif @@ -141,6 +145,11 @@ struct io_u { struct fio_file *file; struct list_head list; + + /* + * Callback for io completion + */ + int (*end_io)(struct io_u *); }; /* @@ -274,6 +283,7 @@ struct thread_stat { * This describes a single thread/process executing a fio job. */ struct thread_data { + int pad; char *description; char *name; char *directory; @@ -540,11 +550,6 @@ struct disk_util { struct timeval time; }; -/* - * Callback for io completion - */ -typedef int (endio_handler)(struct io_u *); - #define DISK_UTIL_MSEC (250) #ifndef min @@ -659,8 +664,8 @@ extern struct io_u *__get_io_u(struct thread_data *); extern struct io_u *get_io_u(struct thread_data *); extern void put_io_u(struct thread_data *, struct io_u *); extern void requeue_io_u(struct thread_data *, struct io_u **); -extern long __must_check io_u_sync_complete(struct thread_data *, struct io_u *, endio_handler *); -extern long __must_check io_u_queued_complete(struct thread_data *, int, endio_handler *); +extern long __must_check io_u_sync_complete(struct thread_data *, struct io_u *); +extern long __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_init_timeout(void); extern void io_u_set_timeout(struct thread_data *);