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()
68 struct sgio_data *sd = td->io_ops->data; in fio_sgio_getevents() local
70 void *buf = sd->sgbuf; in fio_sgio_getevents()
82 sd->fd_flags[i] = fio_set_fd_nonblocking(f->fd, "sg"); in fio_sgio_getevents()
84 sd->fd_flags[i] = -1; in fio_sgio_getevents()
86 sd->pfds[i].fd = f->fd; in fio_sgio_getevents()
87 sd->pfds[i].events = POLLIN; in fio_sgio_getevents()
97 ret = poll(sd->pfds, td->o.nr_files, -1); in fio_sgio_getevents()
106 if (pollin_events(sd->pfds, td->o.nr_files)) in fio_sgio_getevents()
143 sd->events[i] = hdr->usr_ptr; in fio_sgio_getevents()
149 if (sd->fd_flags[i] == -1) in fio_sgio_getevents()
152 if (fcntl(f->fd, F_SETFL, sd->fd_flags[i]) < 0) in fio_sgio_getevents()
163 struct sgio_data *sd = td->io_ops->data; in fio_sgio_ioctl_doio() local
167 sd->events[0] = io_u; in fio_sgio_ioctl_doio()
208 struct sgio_data *sd = td->io_ops->data; in fio_sgio_prep() local
211 if (io_u->xfer_buflen & (sd->bs - 1)) { in fio_sgio_prep()
217 sgio_hdr_init(sd, hdr, io_u, 1); 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()
276 struct sgio_data *sd = td->io_ops->data; in fio_sgio_event() local
278 return sd->events[event]; in fio_sgio_event()
283 struct sgio_data *sd = td->io_ops->data; in fio_sgio_get_bs() local
293 sgio_hdr_init(sd, hdr, &io_u, 0); in fio_sgio_get_bs()
311 struct sgio_data *sd = td->io_ops->data; in fio_sgio_cleanup() local
313 if (sd) { in fio_sgio_cleanup()
314 free(sd->events); in fio_sgio_cleanup()
315 free(sd->cmds); in fio_sgio_cleanup()
316 free(sd->fd_flags); in fio_sgio_cleanup()
317 free(sd->pfds); in fio_sgio_cleanup()
318 free(sd->sgbuf); in fio_sgio_cleanup()
319 free(sd); in fio_sgio_cleanup()
325 struct sgio_data *sd; in fio_sgio_init() local
327 sd = malloc(sizeof(*sd)); in fio_sgio_init()
328 memset(sd, 0, sizeof(*sd)); in fio_sgio_init()
329 sd->cmds = malloc(td->o.iodepth * sizeof(struct sgio_cmd)); in fio_sgio_init()
330 memset(sd->cmds, 0, td->o.iodepth * sizeof(struct sgio_cmd)); in fio_sgio_init()
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()
333 sd->pfds = malloc(sizeof(struct pollfd) * td->o.nr_files); in fio_sgio_init()
334 memset(sd->pfds, 0, sizeof(struct pollfd) * td->o.nr_files); in fio_sgio_init()
335 sd->fd_flags = malloc(sizeof(int) * td->o.nr_files); in fio_sgio_init()
336 memset(sd->fd_flags, 0, sizeof(int) * td->o.nr_files); in fio_sgio_init()
337 sd->sgbuf = malloc(sizeof(struct sg_io_hdr) * td->o.iodepth); in fio_sgio_init()
338 memset(sd->sgbuf, 0, sizeof(struct sg_io_hdr) * td->o.iodepth); in fio_sgio_init()
340 td->io_ops->data = sd; in fio_sgio_init()
351 struct sgio_data *sd = td->io_ops->data; in fio_sgio_type_check() local
375 sd->bs = bs; in fio_sgio_type_check()
387 struct sgio_data *sd = td->io_ops->data; in fio_sgio_open() local
394 if (sd && !sd->type_checked && fio_sgio_type_check(td, f)) { in fio_sgio_open()