Lines Matching refs:ccb

172 	struct vscsi_ccb		*ccb = xs->io;  in vscsi_cmd()  local
184 ccb->ccb_xs = xs; in vscsi_cmd()
189 TAILQ_INSERT_TAIL(&sc->sc_ccb_i2t, ccb, ccb_entry); in vscsi_cmd()
202 while (ccb->ccb_xs != NULL) in vscsi_cmd()
203 msleep_nsec(ccb, &sc->sc_poll_mtx, PRIBIO, "vscsipoll", in vscsi_cmd()
211 vscsi_done(struct vscsi_softc *sc, struct vscsi_ccb *ccb) in vscsi_done() argument
213 struct scsi_xfer *xs = ccb->ccb_xs; in vscsi_done()
217 ccb->ccb_xs = NULL; in vscsi_done()
218 wakeup(ccb); in vscsi_done()
340 struct vscsi_ccb *ccb; in vscsi_i2t() local
345 ccb = TAILQ_FIRST(&sc->sc_ccb_i2t); in vscsi_i2t()
346 if (ccb != NULL) in vscsi_i2t()
347 TAILQ_REMOVE(&sc->sc_ccb_i2t, ccb, ccb_entry); in vscsi_i2t()
350 if (ccb == NULL) in vscsi_i2t()
353 xs = ccb->ccb_xs; in vscsi_i2t()
356 i2t->tag = ccb->ccb_tag; in vscsi_i2t()
375 TAILQ_INSERT_TAIL(&sc->sc_ccb_t2i, ccb, ccb_entry); in vscsi_i2t()
383 struct vscsi_ccb *ccb; in vscsi_data() local
389 TAILQ_FOREACH(ccb, &sc->sc_ccb_t2i, ccb_entry) { in vscsi_data()
390 if (ccb->ccb_tag == data->tag) in vscsi_data()
393 if (ccb == NULL) in vscsi_data()
396 xs = ccb->ccb_xs; in vscsi_data()
398 if (data->datalen > xs->datalen - ccb->ccb_datalen) in vscsi_data()
416 buf += ccb->ccb_datalen; in vscsi_data()
424 ccb->ccb_datalen += data->datalen; in vscsi_data()
432 struct vscsi_ccb *ccb; in vscsi_t2i() local
436 TAILQ_FOREACH(ccb, &sc->sc_ccb_t2i, ccb_entry) { in vscsi_t2i()
437 if (ccb->ccb_tag == t2i->tag) in vscsi_t2i()
440 if (ccb == NULL) in vscsi_t2i()
443 TAILQ_REMOVE(&sc->sc_ccb_t2i, ccb, ccb_entry); in vscsi_t2i()
445 xs = ccb->ccb_xs; in vscsi_t2i()
447 xs->resid = xs->datalen - ccb->ccb_datalen; in vscsi_t2i()
467 vscsi_done(sc, ccb); in vscsi_t2i()
607 struct vscsi_ccb *ccb; in vscsiclose() local
619 while ((ccb = TAILQ_FIRST(&sc->sc_ccb_t2i)) != NULL) { in vscsiclose()
620 TAILQ_REMOVE(&sc->sc_ccb_t2i, ccb, ccb_entry); in vscsiclose()
621 ccb->ccb_xs->error = XS_RESET; in vscsiclose()
622 vscsi_done(sc, ccb); in vscsiclose()
625 while ((ccb = TAILQ_FIRST(&sc->sc_ccb_i2t)) != NULL) { in vscsiclose()
626 TAILQ_REMOVE(&sc->sc_ccb_i2t, ccb, ccb_entry); in vscsiclose()
627 ccb->ccb_xs->error = XS_RESET; in vscsiclose()
628 vscsi_done(sc, ccb); in vscsiclose()
654 struct vscsi_ccb *ccb = NULL; in vscsi_ccb_get() local
656 ccb = pool_get(&sc->sc_ccb_pool, PR_NOWAIT); in vscsi_ccb_get()
657 if (ccb != NULL) { in vscsi_ccb_get()
658 ccb->ccb_tag = sc->sc_ccb_tag++; in vscsi_ccb_get()
659 ccb->ccb_datalen = 0; in vscsi_ccb_get()
662 return (ccb); in vscsi_ccb_get()
669 struct vscsi_ccb *ccb = io; in vscsi_ccb_put() local
671 pool_put(&sc->sc_ccb_pool, ccb); in vscsi_ccb_put()