Lines Matching refs:ccb
520 struct arc_ccb *ccb;
875 struct arc_ccb *ccb = NULL;
909 ccb = cmd->ccb;
912 ccb->cmd_dma_offset, ARC_MAX_IOCMDLEN,
916 arc_scsi_cmd_done(sc, ccb, error);
926 struct arc_ccb *ccb = NULL;
976 ccb = cmd->ccb;
979 ccb->cmd_dma_offset, ARC_MAX_IOCMDLEN,
983 arc_scsi_cmd_done(sc, ccb, error);
1022 struct arc_ccb *ccb = NULL;
1080 ccb = cmd->ccb;
1082 ccb->cmd_dma_offset, ARC_MAX_IOCMDLEN,
1085 arc_scsi_cmd_done(sc, ccb, error);
1119 struct arc_ccb *ccb;
1138 ccb = xs->io;
1139 ccb->ccb_xs = xs;
1141 if (arc_load_xs(ccb) != 0) {
1147 cmd = &ccb->ccb_cmd->cmd;
1148 reg = ccb->ccb_cmd_post;
1149 ccb->ccb_cmd->ccb = ccb;
1156 cmd->sgl_len = ccb->ccb_dmamap->dm_nsegs;
1159 if (ccb->ccb_dmamap->dm_nsegs > ARC_SGL_256LEN) {
1170 ccb->cmd_dma_offset, ARC_MAX_IOCMDLEN,
1182 sizeof(struct arc_sge) * ccb->ccb_dmamap->dm_nsegs;
1196 pinbound_srb->addressLow = ccb->ccb_cmd_post;
1197 pinbound_srb->length = ccb->arc_io_cmd_length >> 2;
1198 cmd->context = ccb->ccb_cmd_post;
1217 if (arc_complete(sc, ccb, xs->timeout) != 0) {
1226 arc_load_xs(struct arc_ccb *ccb)
1228 struct arc_softc *sc = ccb->ccb_sc;
1229 struct scsi_xfer *xs = ccb->ccb_xs;
1230 bus_dmamap_t dmap = ccb->ccb_dmamap;
1231 struct arc_sge *sgl = ccb->ccb_cmd->sgl, *sge;
1238 ccb->arc_io_cmd_length = sizeof(struct arc_msg_scsicmd);
1239 ccb->ccb_cmd->cmd.msgPages = 1;
1258 ccb->arc_io_cmd_length = sizeof(struct arc_msg_scsicmd) +
1260 msg_length = ccb->arc_io_cmd_length;
1261 ccb->ccb_cmd->cmd.msgPages = (msg_length/256) + ((msg_length % 256) ? 1 : 0);
1271 arc_scsi_cmd_done(struct arc_softc *sc, struct arc_ccb *ccb, u_int32_t error)
1273 struct scsi_xfer *xs = ccb->ccb_xs;
1277 bus_dmamap_sync(sc->sc_dmat, ccb->ccb_dmamap, 0,
1278 ccb->ccb_dmamap->dm_mapsize, (xs->flags & SCSI_DATA_IN) ?
1280 bus_dmamap_unload(sc->sc_dmat, ccb->ccb_dmamap);
1284 cmd = &ccb->ccb_cmd->cmd;
1329 struct arc_ccb *ccb = NULL;
1386 ccb = cmd->ccb;
1389 ccb->cmd_dma_offset, ARC_MAX_IOCMDLEN,
1392 arc_scsi_cmd_done(sc, ccb, error);
1393 } while (nccb != ccb);
2878 struct arc_ccb *ccb;
2894 printf("%s: unable to allocate ccb dmamem\n", DEVNAME(sc));
2900 ccb = &sc->sc_ccbs[i];
2903 MAXPHYS, 0, 0, &ccb->ccb_dmamap) != 0) {
2904 printf("%s: unable to create dmamap for ccb %d\n",
2909 ccb->ccb_sc = sc;
2910 ccb->cmd_dma_offset = len * i;
2912 ccb->ccb_cmd = (struct arc_io_cmd *)&cmd[ccb->cmd_dma_offset];
2913 ccb->ccb_cmd_post = (ARC_DMA_DVA(sc->sc_requests) +
2914 ccb->cmd_dma_offset);
2917 ccb->ccb_cmd_post = ccb->ccb_cmd_post >>
2919 arc_put_ccb(sc, ccb);
2937 while ((ccb = arc_get_ccb(sc)) != NULL)
2938 bus_dmamap_destroy(sc->sc_dmat, ccb->ccb_dmamap);
2950 struct arc_ccb *ccb;
2952 while ((ccb = arc_get_ccb(sc)) != NULL)
2953 bus_dmamap_destroy(sc->sc_dmat, ccb->ccb_dmamap);
2961 struct arc_ccb *ccb;
2964 ccb = SLIST_FIRST(&sc->sc_ccb_free);
2965 if (ccb != NULL)
2969 return (ccb);
2973 arc_put_ccb(struct arc_softc *sc, struct arc_ccb *ccb)
2975 ccb->ccb_xs = NULL;
2976 bzero(ccb->ccb_cmd, ARC_IO_CMD_LEN);
2978 SLIST_INSERT_HEAD(&sc->sc_ccb_free, ccb, ccb_link);