• Home
  • Raw
  • Download

Lines Matching refs:io_u

25 	struct io_u **events;
34 struct io_u *io_u, int fs) in sgio_hdr_init() argument
36 struct sgio_cmd *sc = &sd->cmds[io_u->index]; in sgio_hdr_init()
44 hdr->pack_id = io_u->index; in sgio_hdr_init()
45 hdr->usr_ptr = io_u; in sgio_hdr_init()
48 hdr->dxferp = io_u->xfer_buf; in sgio_hdr_init()
49 hdr->dxfer_len = io_u->xfer_buflen; in sgio_hdr_init()
161 struct fio_file *f, struct io_u *io_u) in fio_sgio_ioctl_doio() argument
164 struct sg_io_hdr *hdr = &io_u->hdr; in fio_sgio_ioctl_doio()
167 sd->events[0] = io_u; in fio_sgio_ioctl_doio()
176 static int fio_sgio_rw_doio(struct fio_file *f, struct io_u *io_u, int do_sync) in fio_sgio_rw_doio() argument
178 struct sg_io_hdr *hdr = &io_u->hdr; in fio_sgio_rw_doio()
195 static int fio_sgio_doio(struct thread_data *td, struct io_u *io_u, int do_sync) in fio_sgio_doio() argument
197 struct fio_file *f = io_u->file; in fio_sgio_doio()
200 return fio_sgio_ioctl_doio(td, f, io_u); in fio_sgio_doio()
202 return fio_sgio_rw_doio(f, io_u, do_sync); in fio_sgio_doio()
205 static int fio_sgio_prep(struct thread_data *td, struct io_u *io_u) in fio_sgio_prep() argument
207 struct sg_io_hdr *hdr = &io_u->hdr; in fio_sgio_prep()
211 if (io_u->xfer_buflen & (sd->bs - 1)) { in fio_sgio_prep()
216 if (io_u->ddir == DDIR_READ) { in fio_sgio_prep()
217 sgio_hdr_init(sd, hdr, io_u, 1); in fio_sgio_prep()
221 } else if (io_u->ddir == DDIR_WRITE) { in fio_sgio_prep()
222 sgio_hdr_init(sd, hdr, io_u, 1); in fio_sgio_prep()
227 sgio_hdr_init(sd, hdr, io_u, 0); in fio_sgio_prep()
234 nr_blocks = io_u->xfer_buflen / sd->bs; in fio_sgio_prep()
235 lba = io_u->offset / sd->bs; in fio_sgio_prep()
247 static int fio_sgio_queue(struct thread_data *td, struct io_u *io_u) in fio_sgio_queue() argument
249 struct sg_io_hdr *hdr = &io_u->hdr; in fio_sgio_queue()
252 fio_ro_check(td, io_u); in fio_sgio_queue()
254 if (td->o.sync_io || td->o.odirect || ddir_sync(io_u->ddir)) in fio_sgio_queue()
257 ret = fio_sgio_doio(td, io_u, do_sync); in fio_sgio_queue()
260 io_u->error = errno; in fio_sgio_queue()
262 io_u->resid = hdr->resid; in fio_sgio_queue()
263 io_u->error = EIO; in fio_sgio_queue()
266 if (io_u->error) { in fio_sgio_queue()
267 td_verror(td, io_u->error, "xfer"); in fio_sgio_queue()
274 static struct io_u *fio_sgio_event(struct thread_data *td, int event) in fio_sgio_event()
284 struct io_u io_u; in fio_sgio_get_bs() local
289 memset(&io_u, 0, sizeof(io_u)); in fio_sgio_get_bs()
290 io_u.file = td->files[0]; in fio_sgio_get_bs()
292 hdr = &io_u.hdr; in fio_sgio_get_bs()
293 sgio_hdr_init(sd, hdr, &io_u, 0); in fio_sgio_get_bs()
301 ret = fio_sgio_doio(td, &io_u, 1); in fio_sgio_get_bs()
331 sd->events = malloc(td->o.iodepth * sizeof(struct io_u *)); in fio_sgio_init()
332 memset(sd->events, 0, td->o.iodepth * sizeof(struct io_u *)); in fio_sgio_init()