Lines Matching refs:io_u
16 struct io_u **aio_events;
64 struct io_u *io_u)
66 struct fio_file *f = io_u->file;
67 int r = aio_cancel(f->fd, &io_u->aiocb);
76 struct io_u *io_u)
78 os_aiocb_t *aiocb = &io_u->aiocb;
79 struct fio_file *f = io_u->file;
82 aiocb->aio_buf = io_u->xfer_buf;
83 aiocb->aio_nbytes = io_u->xfer_buflen;
84 aiocb->aio_offset = io_u->offset;
87 io_u->seen = 0;
101 struct io_u *io_u;
114 io_u_qiter(&td->io_u_all, io_u, i) {
117 if (io_u->seen || !(io_u->flags & IO_U_F_FLIGHT))
120 err = aio_error(&io_u->aiocb);
123 suspend_list[suspend_entries] = &io_u->aiocb;
129 io_u->seen = 1;
131 pd->aio_events[r++] = io_u;
134 io_u->resid = io_u->xfer_buflen;
136 ssize_t retval = aio_return(&io_u->aiocb);
138 io_u->resid = io_u->xfer_buflen - retval;
140 io_u->error = err;
162 static struct io_u *fio_posixaio_event(struct thread_data *td, int event)
170 struct io_u *io_u)
173 os_aiocb_t *aiocb = &io_u->aiocb;
176 fio_ro_check(td, io_u);
178 if (io_u->ddir == DDIR_READ)
180 else if (io_u->ddir == DDIR_WRITE)
182 else if (io_u->ddir == DDIR_TRIM) {
186 do_io_u_trim(td, io_u);
195 do_io_u_sync(td, io_u);
212 io_u->error = aio_err;
213 td_verror(td, io_u->error, "xfer");
236 pd->aio_events = malloc(td->o.iodepth * sizeof(struct io_u *));
237 memset(pd->aio_events, 0, td->o.iodepth * sizeof(struct io_u *));