Lines Matching refs:io_u
21 struct io_u *io_u;
26 struct io_u **aio_events;
41 static struct io_u *fio_windowsaio_event(struct thread_data *td, int event);
43 struct io_u *io_u);
62 wd->aio_events = malloc(td->o.iodepth * sizeof(struct io_u*));
257 static struct io_u* fio_windowsaio_event(struct thread_data *td, int event)
269 struct io_u *io_u;
284 io_u_qiter(&td->io_u_all, io_u, i) {
285 if (!(io_u->flags & IO_U_F_FLIGHT))
288 fov = (struct fio_overlapped*)io_u->engine_data;
292 wd->aio_events[dequeued] = io_u;
313 static int fio_windowsaio_queue(struct thread_data *td, struct io_u *io_u)
315 struct fio_overlapped *o = io_u->engine_data;
320 fio_ro_check(td, io_u);
324 lpOvl->Offset = io_u->offset & 0xFFFFFFFF;
325 lpOvl->OffsetHigh = io_u->offset >> 32;
327 switch (io_u->ddir) {
329 success = WriteFile(io_u->file->hFile, io_u->xfer_buf, io_u->xfer_buflen, NULL, lpOvl);
332 success = ReadFile(io_u->file->hFile, io_u->xfer_buf, io_u->xfer_buflen, NULL, lpOvl);
337 success = FlushFileBuffers(io_u->file->hFile);
340 io_u->error = win_to_posix_error(GetLastError());
347 io_u->error = 1;
348 io_u->resid = io_u->xfer_buflen;
359 io_u->error = win_to_posix_error(GetLastError());
360 io_u->resid = io_u->xfer_buflen;
371 struct io_u *io_u;
385 io_u = fov->io_u;
388 io_u->resid = io_u->xfer_buflen - ovl->InternalHigh;
389 io_u->error = 0;
391 io_u->resid = io_u->xfer_buflen;
392 io_u->error = win_to_posix_error(GetLastError());
404 static void fio_windowsaio_io_u_free(struct thread_data *td, struct io_u *io_u)
406 struct fio_overlapped *o = io_u->engine_data;
409 io_u->engine_data = NULL;
414 static int fio_windowsaio_io_u_init(struct thread_data *td, struct io_u *io_u)
420 o->io_u = io_u;
422 io_u->engine_data = o;