Lines Matching refs:io_u
37 struct io_u **io_us;
42 static int fio_guasi_prep(struct thread_data fio_unused *td, struct io_u *io_u)
45 GDBG_PRINT(("fio_guasi_prep(%p)\n", io_u));
46 io_u->greq = NULL;
51 static struct io_u *fio_guasi_event(struct thread_data *td, int event)
54 struct io_u *io_u;
62 io_u = rinf.asid;
63 io_u->error = EINPROGRESS;
64 GDBG_PRINT(("fio_guasi_event(%d) -> %p\n", event, io_u));
66 io_u->error = rinf.result;
67 if (io_u->ddir == DDIR_READ ||
68 io_u->ddir == DDIR_WRITE) {
69 io_u->error = 0;
70 if (rinf.result != (long) io_u->xfer_buflen) {
72 io_u->resid = io_u->xfer_buflen - rinf.result;
74 io_u->error = rinf.error;
79 return io_u;
116 static int fio_guasi_queue(struct thread_data *td, struct io_u *io_u)
120 fio_ro_check(td, io_u);
122 GDBG_PRINT(("fio_guasi_queue(%p)\n", io_u));
126 ld->io_us[ld->queued_nr] = io_u;
131 static void fio_guasi_queued(struct thread_data *td, struct io_u **io_us, int nr)
134 struct io_u *io_u;
143 io_u = io_us[i];
144 memcpy(&io_u->issue_time, &now, sizeof(now));
145 io_u_queued(td, io_u);
153 struct io_u *io_u;
158 io_u = ld->io_us[i];
159 GDBG_PRINT(("fio_guasi_commit(%d) --> %p\n", i, io_u));
160 f = io_u->file;
161 io_u->greq = NULL;
162 if (io_u->ddir == DDIR_READ)
163 io_u->greq = guasi__pread(ld->hctx, ld, io_u, 0,
164 f->fd, io_u->xfer_buf, io_u->xfer_buflen,
165 io_u->offset);
166 else if (io_u->ddir == DDIR_WRITE)
167 io_u->greq = guasi__pwrite(ld->hctx, ld, io_u, 0,
168 f->fd, io_u->xfer_buf, io_u->xfer_buflen,
169 io_u->offset);
170 else if (ddir_sync(io_u->ddir))
171 io_u->greq = guasi__fsync(ld->hctx, ld, io_u, 0, f->fd);
174 io_u->ddir);
176 if (io_u->greq == NULL) {
190 struct io_u *io_u)
192 GDBG_PRINT(("fio_guasi_cancel(%p) req=%p\n", io_u, io_u->greq));
193 if (io_u->greq != NULL)
194 guasi_req_cancel(io_u->greq);
233 ld->io_us = malloc(ld->max_reqs * sizeof(struct io_u *));
234 memset(ld->io_us, 0, ld->max_reqs * sizeof(struct io_u *));