Lines Matching defs:rdwr
393 struct sg_rdwr *rdwr;
405 rdwr = done_ccb->ccb_h.ccb_rdwr;
406 state = rdwr->state;
407 rdwr->state = SG_RDWR_DONE;
408 wakeup(rdwr);
675 struct sg_rdwr *rdwr;
681 rdwr = malloc(sizeof(*rdwr), M_DEVBUF, M_WAITOK | M_ZERO);
682 hdr = &rdwr->hdr.hdr;
768 rdwr->buf = buf;
769 rdwr->buf_len = buf_len;
770 rdwr->tag = hdr->pack_id;
771 rdwr->ccb = ccb;
772 rdwr->state = SG_RDWR_INPROG;
773 ccb->ccb_h.ccb_rdwr = rdwr;
775 TAILQ_INSERT_TAIL(&sc->rdwr_done, rdwr, rdwr_link);
785 free(rdwr, M_DEVBUF);
796 struct sg_rdwr *rdwr;
817 TAILQ_FOREACH(rdwr, &sc->rdwr_done, rdwr_link) {
818 if (rdwr->tag == pack_id)
821 if ((rdwr == NULL) || (rdwr->state != SG_RDWR_DONE)) {
822 if (cam_periph_sleep(periph, rdwr, PCATCH, "sgread", 0) == ERESTART)
826 TAILQ_REMOVE(&sc->rdwr_done, rdwr, rdwr_link);
829 hdr = &rdwr->hdr.hdr;
830 csio = &rdwr->ccb->csio;
869 error = uiomove(rdwr->buf, rdwr->buf_len, uio);
872 xpt_free_ccb(rdwr->ccb);
874 free(rdwr->buf, M_DEVBUF);
875 free(rdwr, M_DEVBUF);