Lines Matching defs:scb
264 sc_send(struct sc_scb *scb, int chan, int ie)
266 struct sc_softc *sc = scb->scb_softc;
273 xs = scb->xs;
276 if (cs->scb != NULL) {
278 printf("ie=0x%x scb=%p cs->sc=%p\n", ie, scb, cs->scb);
298 cs->scb = scb;
300 scb->istatus = INST_EP;
301 cs->scb = NULL;
302 sc_done(scb);
306 if (scb->sc_map && (scb->sc_map->mp_pages > 0)) {
310 scb->sc_coffset = scb->sc_map->mp_offset & PGOFSET;
311 if (scb->sc_map->mp_pages > NSCMAP) {
313 scb->istatus = INST_EP|INST_LB|INST_PRE;
320 scb->sc_coffset = (u_int)scb->sc_cpoint & PGOFSET;
322 scb->sc_ctag = 0;
324 cs->scb = scb;
505 sc->chan_stat[chan].scb->istatus
525 sc->ip->scb->istatus |= INST_IP;
790 if (cs->scb != NULL) {
791 struct sc_scb *scb = cs->scb;
793 if ((cs->scb->istatus & INST_EP) == 0)
794 cs->scb->istatus = (INST_EP|INST_HE);
795 cs->scb = NULL;
797 clean_k2dcache(scb);
807 sc_done(scb);
850 if (cs->scb == NULL) {
854 if ((cs->scb->istatus & INST_WR) == 0) {
888 cs->scb->istatus |= INST_IP;
889 cs->scb->istatus &= ~INST_WR;
946 if ((cs->scb->istatus & (INST_EP|INST_WR)) == 0)
947 cs->scb->istatus |= (INST_EP|INST_PRE|INST_LB);
949 cs->scb->istatus &= ~INST_IP;
955 if ((cs->scb->istatus & INST_WR) == 0) {
956 struct sc_scb *scb = cs->scb;
959 cs->scb->istatus |= INST_EP|INST_PRE;
960 cs->scb = NULL;
962 clean_k2dcache(scb);
972 sc_done(scb);
1094 struct sc_scb *scb = cs->scb;
1100 xs = scb->xs;
1119 cs->act_trcnt = scb->sc_ctrnscnt;
1120 cs->act_point = scb->sc_cpoint;
1121 cs->act_tag = scb->sc_ctag;
1122 cs->act_offset = scb->sc_coffset;
1174 struct sc_scb *scb = cs->scb;
1175 struct scsipi_xfer *xs = scb->xs;
1226 scb->message = scb->identify;
1230 sc->min_point[cs->chan_num] = scb->msgbuf;
1231 memset(scb->msgbuf, 0, 8);
1237 scb->istatus |= INST_EP;
1257 cs->act_trcnt = scb->sc_ctrnscnt;
1258 cs->act_point = scb->sc_cpoint;
1259 cs->act_tag = scb->sc_ctag;
1260 cs->act_offset = scb->sc_coffset;
1267 scb->sc_ctrnscnt = cs->act_trcnt;
1268 scb->sc_ctag = cs->act_tag;
1269 scb->sc_coffset = cs->act_offset;
1270 scb->sc_cpoint = cs->act_point;
1274 scb->istatus |= INST_WR;
1279 scb->message = MSG_MREJ;
1293 if ((scb->msgbuf[2] == 0x01) &&
1296 if (scb->msgbuf[2] == 0x01) {
1306 i = scb->msgbuf[3]; /* get tpm */
1308 if (scb->msgbuf[4] == 0)
1312 i | scb->msgbuf[4];
1315 scb->message = MSG_MREJ;
1329 struct sc_scb *scb = cs->scb;
1341 if (scb->message != 0) {
1344 if ((scb->message == MSG_EXTND)
1345 && (scb->msgbuf[2] == 0x01)) {
1347 mp = scb->msgbuf;
1348 scb->msgbuf[3] = MIN_TP;
1349 if (scb->msgbuf[4] > MAX_OFFSET_BYTES)
1350 scb->msgbuf[4] = MAX_OFFSET_BYTES;
1354 mp = &scb->message;
1359 sc_datr = scb->identify;
1420 sc_datr = scb->identify;
1442 sc_datr = scb->message;
1483 cs->scb->tstatus = sc_datr; /* get status byte */
1493 struct sc_scb *scb;
1501 scb = cs->scb;
1502 xs = scb->xs;
1553 if (scb->sc_map && (scb->sc_map->mp_pages > 0)) {
1557 pages = scb->sc_map->mp_pages;
1559 if ((pfn = scb->sc_map->mp_addr[i]) == 0)
1654 return (int)sc->chan_stat[chan].scb;
1672 cs->scb->istatus = INST_WAIT;
1713 cs->scb->istatus &= ~INST_WAIT;
1723 struct sc_scb *scb = cs->scb;
1742 sent_byte = scb->sc_ctrnscnt - remain_cnt;
1745 offset = scb->sc_coffset + sent_byte;
1748 if ((scb->sc_map == NULL) || (scb->sc_map->mp_pages <= 0))
1754 clean_k2dcache(struct sc_scb *scb)
1756 struct sc_map *sc_map = scb->sc_map;
1760 pa = kvtophys((vaddr_t)scb->msgbuf);
1762 sizeof(scb->msgbuf));
1764 if (MACH_IS_USPACE(scb->sc_cpoint))
1767 if (MACH_IS_CACHED(scb->sc_cpoint)) {
1768 mips_dcache_wbinv_range_index((vaddr_t)scb->sc_cpoint,
1769 scb->sc_ctrnscnt);