Lines Matching refs:io_u
16 struct io_u **aio_events;
23 struct io_u *io_u)
25 return aiocancel(&io_u->resultp);
29 struct io_u *io_u)
33 io_u->resultp.aio_return = AIO_INPROGRESS;
34 io_u->engine_data = sd;
41 struct io_u *io_u;
56 io_u = container_of(res, struct io_u, resultp);
57 sd = io_u->engine_data;
59 if (io_u->resultp.aio_return >= 0) {
60 io_u->resid = io_u->xfer_buflen - io_u->resultp.aio_return;
61 io_u->error = 0;
63 io_u->error = io_u->resultp.aio_errno;
69 sd->aio_events[sd->aio_pending] = io_u;
101 static struct io_u *fio_solarisaio_event(struct thread_data *td, int event)
109 struct io_u *io_u)
112 struct fio_file *f = io_u->file;
116 fio_ro_check(td, io_u);
118 if (io_u->ddir == DDIR_SYNC) {
122 io_u->error = errno;
127 if (io_u->ddir == DDIR_DATASYNC) {
131 io_u->error = errno;
139 off = io_u->offset;
140 if (io_u->ddir == DDIR_READ)
141 ret = aioread(f->fd, io_u->xfer_buf, io_u->xfer_buflen, off,
142 SEEK_SET, &io_u->resultp);
144 ret = aiowrite(f->fd, io_u->xfer_buf, io_u->xfer_buflen, off,
145 SEEK_SET, &io_u->resultp);
147 io_u->error = errno;
148 td_verror(td, io_u->error, "xfer");
199 sd->aio_events = malloc(max_depth * sizeof(struct io_u *));
200 memset(sd->aio_events, 0, max_depth * sizeof(struct io_u *));