Lines Matching refs:sd
33 static void sgio_hdr_init(struct sgio_data *sd, struct sg_io_hdr *hdr, in sgio_hdr_init() argument
36 struct sgio_cmd *sc = &sd->cmds[io_u->index]; in sgio_hdr_init()
67 struct sgio_data *sd = td->io_ops->data; in fio_sgio_getevents() local
69 void *buf = sd->sgbuf; in fio_sgio_getevents()
81 sd->fd_flags[i] = fio_set_fd_nonblocking(f->fd, "sg"); in fio_sgio_getevents()
83 sd->fd_flags[i] = -1; in fio_sgio_getevents()
85 sd->pfds[i].fd = f->fd; in fio_sgio_getevents()
86 sd->pfds[i].events = POLLIN; in fio_sgio_getevents()
96 ret = poll(sd->pfds, td->o.nr_files, -1); in fio_sgio_getevents()
105 if (pollin_events(sd->pfds, td->o.nr_files)) in fio_sgio_getevents()
142 sd->events[i] = hdr->usr_ptr; in fio_sgio_getevents()
148 if (sd->fd_flags[i] == -1) in fio_sgio_getevents()
151 if (fcntl(f->fd, F_SETFL, sd->fd_flags[i]) < 0) in fio_sgio_getevents()
162 struct sgio_data *sd = td->io_ops->data; in fio_sgio_ioctl_doio() local
166 sd->events[0] = io_u; in fio_sgio_ioctl_doio()
207 struct sgio_data *sd = td->io_ops->data; in fio_sgio_prep() local
210 if (io_u->xfer_buflen & (sd->bs - 1)) { in fio_sgio_prep()
216 sgio_hdr_init(sd, hdr, io_u, 1); in fio_sgio_prep()
221 sgio_hdr_init(sd, hdr, io_u, 1); in fio_sgio_prep()
226 sgio_hdr_init(sd, hdr, io_u, 0); in fio_sgio_prep()
233 nr_blocks = io_u->xfer_buflen / sd->bs; in fio_sgio_prep()
234 lba = io_u->offset / sd->bs; in fio_sgio_prep()
275 struct sgio_data *sd = td->io_ops->data; in fio_sgio_event() local
277 return sd->events[event]; in fio_sgio_event()
282 struct sgio_data *sd = td->io_ops->data; in fio_sgio_get_bs() local
292 sgio_hdr_init(sd, hdr, &io_u, 0); in fio_sgio_get_bs()
310 struct sgio_data *sd = td->io_ops->data; in fio_sgio_cleanup() local
312 if (sd) { in fio_sgio_cleanup()
313 free(sd->events); in fio_sgio_cleanup()
314 free(sd->cmds); in fio_sgio_cleanup()
315 free(sd->fd_flags); in fio_sgio_cleanup()
316 free(sd->pfds); in fio_sgio_cleanup()
317 free(sd->sgbuf); in fio_sgio_cleanup()
318 free(sd); in fio_sgio_cleanup()
324 struct sgio_data *sd; in fio_sgio_init() local
326 sd = malloc(sizeof(*sd)); in fio_sgio_init()
327 memset(sd, 0, sizeof(*sd)); in fio_sgio_init()
328 sd->cmds = malloc(td->o.iodepth * sizeof(struct sgio_cmd)); in fio_sgio_init()
329 memset(sd->cmds, 0, td->o.iodepth * sizeof(struct sgio_cmd)); in fio_sgio_init()
330 sd->events = malloc(td->o.iodepth * sizeof(struct io_u *)); in fio_sgio_init()
331 memset(sd->events, 0, td->o.iodepth * sizeof(struct io_u *)); in fio_sgio_init()
332 sd->pfds = malloc(sizeof(struct pollfd) * td->o.nr_files); in fio_sgio_init()
333 memset(sd->pfds, 0, sizeof(struct pollfd) * td->o.nr_files); in fio_sgio_init()
334 sd->fd_flags = malloc(sizeof(int) * td->o.nr_files); in fio_sgio_init()
335 memset(sd->fd_flags, 0, sizeof(int) * td->o.nr_files); in fio_sgio_init()
336 sd->sgbuf = malloc(sizeof(struct sg_io_hdr) * td->o.iodepth); in fio_sgio_init()
337 memset(sd->sgbuf, 0, sizeof(struct sg_io_hdr) * td->o.iodepth); in fio_sgio_init()
339 td->io_ops->data = sd; in fio_sgio_init()
350 struct sgio_data *sd = td->io_ops->data; in fio_sgio_type_check() local
374 sd->bs = bs; in fio_sgio_type_check()
386 struct sgio_data *sd = td->io_ops->data; in fio_sgio_open() local
393 if (sd && !sd->type_checked && fio_sgio_type_check(td, f)) { in fio_sgio_open()