Lines Matching refs:io_u
21 struct io_u *io_u; member
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*)); in fio_windowsaio_init()
252 static struct io_u* fio_windowsaio_event(struct thread_data *td, int event) in fio_windowsaio_event()
264 struct io_u *io_u; in fio_windowsaio_getevents() local
279 io_u_qiter(&td->io_u_all, io_u, i) { in fio_windowsaio_getevents()
280 if (!(io_u->flags & IO_U_F_FLIGHT)) in fio_windowsaio_getevents()
283 fov = (struct fio_overlapped*)io_u->engine_data; in fio_windowsaio_getevents()
288 wd->aio_events[dequeued] = io_u; in fio_windowsaio_getevents()
309 static int fio_windowsaio_queue(struct thread_data *td, struct io_u *io_u) in fio_windowsaio_queue() argument
311 struct fio_overlapped *o = io_u->engine_data; in fio_windowsaio_queue()
317 fio_ro_check(td, io_u); in fio_windowsaio_queue()
321 lpOvl->Offset = io_u->offset & 0xFFFFFFFF; in fio_windowsaio_queue()
322 lpOvl->OffsetHigh = io_u->offset >> 32; in fio_windowsaio_queue()
324 switch (io_u->ddir) { in fio_windowsaio_queue()
326 success = WriteFile(io_u->file->hFile, io_u->xfer_buf, io_u->xfer_buflen, &iobytes, lpOvl); in fio_windowsaio_queue()
329 success = ReadFile(io_u->file->hFile, io_u->xfer_buf, io_u->xfer_buflen, &iobytes, lpOvl); in fio_windowsaio_queue()
334 success = FlushFileBuffers(io_u->file->hFile); in fio_windowsaio_queue()
337 io_u->error = win_to_posix_error(GetLastError()); in fio_windowsaio_queue()
344 io_u->error = 1; in fio_windowsaio_queue()
345 io_u->resid = io_u->xfer_buflen; in fio_windowsaio_queue()
356 io_u->error = win_to_posix_error(GetLastError()); in fio_windowsaio_queue()
357 io_u->resid = io_u->xfer_buflen; in fio_windowsaio_queue()
368 struct io_u *io_u; in IoCompletionRoutine() local
382 io_u = fov->io_u; in IoCompletionRoutine()
385 io_u->resid = io_u->xfer_buflen - ovl->InternalHigh; in IoCompletionRoutine()
386 io_u->error = 0; in IoCompletionRoutine()
388 io_u->resid = io_u->xfer_buflen; in IoCompletionRoutine()
389 io_u->error = win_to_posix_error(GetLastError()); in IoCompletionRoutine()
401 static void fio_windowsaio_io_u_free(struct thread_data *td, struct io_u *io_u) in fio_windowsaio_io_u_free() argument
403 struct fio_overlapped *o = io_u->engine_data; in fio_windowsaio_io_u_free()
407 io_u->engine_data = NULL; in fio_windowsaio_io_u_free()
412 static int fio_windowsaio_io_u_init(struct thread_data *td, struct io_u *io_u) in fio_windowsaio_io_u_init() argument
418 o->io_u = io_u; in fio_windowsaio_io_u_init()
426 io_u->engine_data = o; in fio_windowsaio_io_u_init()