Lines Matching refs:sd
33 static void sgio_hdr_init(struct sgio_data *sd, struct sg_io_hdr *hdr,
36 struct sgio_cmd *sc = &sd->cmds[io_u->index];
68 struct sgio_data *sd = td->io_ops->data;
70 void *buf = sd->sgbuf;
82 sd->fd_flags[i] = fio_set_fd_nonblocking(f->fd, "sg");
84 sd->fd_flags[i] = -1;
86 sd->pfds[i].fd = f->fd;
87 sd->pfds[i].events = POLLIN;
97 ret = poll(sd->pfds, td->o.nr_files, -1);
106 if (pollin_events(sd->pfds, td->o.nr_files))
143 sd->events[i] = hdr->usr_ptr;
149 if (sd->fd_flags[i] == -1)
152 if (fcntl(f->fd, F_SETFL, sd->fd_flags[i]) < 0)
163 struct sgio_data *sd = td->io_ops->data;
167 sd->events[0] = io_u;
208 struct sgio_data *sd = td->io_ops->data;
211 if (io_u->xfer_buflen & (sd->bs - 1)) {
217 sgio_hdr_init(sd, hdr, io_u, 1);
222 sgio_hdr_init(sd, hdr, io_u, 1);
227 sgio_hdr_init(sd, hdr, io_u, 0);
234 nr_blocks = io_u->xfer_buflen / sd->bs;
235 lba = io_u->offset / sd->bs;
276 struct sgio_data *sd = td->io_ops->data;
278 return sd->events[event];
283 struct sgio_data *sd = td->io_ops->data;
293 sgio_hdr_init(sd, hdr, &io_u, 0);
311 struct sgio_data *sd = td->io_ops->data;
313 if (sd) {
314 free(sd->events);
315 free(sd->cmds);
316 free(sd->fd_flags);
317 free(sd->pfds);
318 free(sd->sgbuf);
319 free(sd);
325 struct sgio_data *sd;
327 sd = malloc(sizeof(*sd));
328 memset(sd, 0, sizeof(*sd));
329 sd->cmds = malloc(td->o.iodepth * sizeof(struct sgio_cmd));
330 memset(sd->cmds, 0, td->o.iodepth * sizeof(struct sgio_cmd));
331 sd->events = malloc(td->o.iodepth * sizeof(struct io_u *));
332 memset(sd->events, 0, td->o.iodepth * sizeof(struct io_u *));
333 sd->pfds = malloc(sizeof(struct pollfd) * td->o.nr_files);
334 memset(sd->pfds, 0, sizeof(struct pollfd) * td->o.nr_files);
335 sd->fd_flags = malloc(sizeof(int) * td->o.nr_files);
336 memset(sd->fd_flags, 0, sizeof(int) * td->o.nr_files);
337 sd->sgbuf = malloc(sizeof(struct sg_io_hdr) * td->o.iodepth);
338 memset(sd->sgbuf, 0, sizeof(struct sg_io_hdr) * td->o.iodepth);
340 td->io_ops->data = sd;
351 struct sgio_data *sd = td->io_ops->data;
375 sd->bs = bs;
387 struct sgio_data *sd = td->io_ops->data;
394 if (sd && !sd->type_checked && fio_sgio_type_check(td, f)) {