X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.h;h=97270c94d1714c83064adae850e759621f58b665;hp=aaa7d9723ef68db6bedc9809483a59b3e3efcb39;hb=7c6686fcd9dc145c4dbab907ab29d2336f0ba935;hpb=ec2ea18e87fad6c42d6875cd4ee1bb25ef9b4627 diff --git a/io_u.h b/io_u.h index aaa7d972..97270c94 100644 --- a/io_u.h +++ b/io_u.h @@ -51,7 +51,7 @@ struct io_u { /* * Allocated/set buffer and length */ - unsigned long buflen; + unsigned long long buflen; unsigned long long offset; void *buf; @@ -65,17 +65,17 @@ struct io_u { * partial transfers / residual data counts */ void *xfer_buf; - unsigned long xfer_buflen; + unsigned long long xfer_buflen; /* * Parameter related to pre-filled buffers and * their size to handle variable block sizes. */ - unsigned long buf_filled_len; + unsigned long long buf_filled_len; struct io_piece *ipo; - unsigned int resid; + unsigned long long resid; unsigned int error; /* @@ -92,6 +92,12 @@ struct io_u { struct workqueue_work work; }; + /* + * Post-submit callback. Used by the ZBD code. @success == true means + * that the I/O operation has been queued or completed successfully. + */ + void (*post_submit)(const struct io_u *, bool success); + /* * Callback for io completion */ @@ -113,9 +119,6 @@ struct io_u { #ifdef CONFIG_SOLARISAIO aio_result_t resultp; #endif -#ifdef FIO_HAVE_BINJECT - struct b_user_cmd buc; -#endif #ifdef CONFIG_RDMA struct ibv_mr *mr; #endif @@ -137,8 +140,8 @@ extern void io_u_queued(struct thread_data *, struct io_u *); extern int io_u_quiesce(struct thread_data *); extern void io_u_log_error(struct thread_data *, struct io_u *); extern void io_u_mark_depth(struct thread_data *, unsigned int); -extern void fill_io_buffer(struct thread_data *, void *, unsigned int, unsigned int); -extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned int, unsigned int); +extern void fill_io_buffer(struct thread_data *, void *, unsigned long long, unsigned long long); +extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned long long, unsigned long long); void io_u_mark_complete(struct thread_data *, unsigned int); void io_u_mark_submit(struct thread_data *, unsigned int); bool queue_full(const struct thread_data *); @@ -152,13 +155,13 @@ static inline void dprint_io_u(struct io_u *io_u, const char *p) struct fio_file *f = io_u->file; if (f) - dprint(FD_IO, "%s: io_u %p: off=0x%llx,len=0x%lx,ddir=%d,file=%s\n", + dprint(FD_IO, "%s: io_u %p: off=0x%llx,len=0x%llx,ddir=%d,file=%s\n", p, io_u, (unsigned long long) io_u->offset, io_u->buflen, io_u->ddir, f->file_name); else - dprint(FD_IO, "%s: io_u %p: off=0x%llx,len=0x%lx,ddir=%d\n", + dprint(FD_IO, "%s: io_u %p: off=0x%llx,len=0x%llx,ddir=%d\n", p, io_u, (unsigned long long) io_u->offset, io_u->buflen, io_u->ddir);