scb 169 dev/ic/aic79xx.c struct scb *scb); scb 172 dev/ic/aic79xx.c struct scb *scb); scb 208 dev/ic/aic79xx.c struct scb *scb); scb 215 dev/ic/aic79xx.c struct scb * ahd_find_scb_by_tag(struct ahd_softc *, u_int); scb 220 dev/ic/aic79xx.c struct scb *scb, u_int col_idx); scb 222 dev/ic/aic79xx.c struct scb *scb); scb 225 dev/ic/aic79xx.c struct scb *prev_scb, scb 226 dev/ic/aic79xx.c struct scb *scb); scb 257 dev/ic/aic79xx.c struct scb *scb); scb 259 dev/ic/aic79xx.c struct scb *scb); scb 411 dev/ic/aic79xx.c struct scb *scb; scb 430 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 431 dev/ic/aic79xx.c if (scb == NULL) { scb 448 dev/ic/aic79xx.c if (ahd_scb_active_in_fifo(ahd, scb) == 0) scb 451 dev/ic/aic79xx.c ahd_run_data_fifo(ahd, scb); scb 504 dev/ic/aic79xx.c ahd_complete_scb(ahd, scb); scb 554 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 555 dev/ic/aic79xx.c if (scb == NULL) { scb 560 dev/ic/aic79xx.c hscb_ptr = (uint8_t *)scb->hscb; scb 564 dev/ic/aic79xx.c ahd_complete_scb(ahd, scb); scb 575 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 576 dev/ic/aic79xx.c if (scb == NULL) { scb 582 dev/ic/aic79xx.c ahd_complete_scb(ahd, scb); scb 592 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 593 dev/ic/aic79xx.c if (scb == NULL) { scb 599 dev/ic/aic79xx.c ahd_complete_scb(ahd, scb); scb 617 dev/ic/aic79xx.c ahd_scb_active_in_fifo(struct ahd_softc *ahd, struct scb *scb) scb 626 dev/ic/aic79xx.c if (ahd_get_scbptr(ahd) != SCB_GET_TAG(scb) scb 646 dev/ic/aic79xx.c ahd_run_data_fifo(struct ahd_softc *ahd, struct scb *scb) scb 800 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 807 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 883 dev/ic/aic79xx.c struct scb *scb; scb 897 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 898 dev/ic/aic79xx.c if (scb == NULL) { scb 905 dev/ic/aic79xx.c ahd_handle_scb_status(ahd, scb); scb 907 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 980 dev/ic/aic79xx.c struct scb *scb; scb 986 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 987 dev/ic/aic79xx.c if (scb == NULL) { scb 995 dev/ic/aic79xx.c ahd_outb(ahd, SAVED_SCSIID, scb->hscb->scsiid); scb 996 dev/ic/aic79xx.c ahd_outb(ahd, SAVED_LUN, scb->hscb->lun); scb 1026 dev/ic/aic79xx.c struct scb *scb; scb 1030 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1031 dev/ic/aic79xx.c if (scb != NULL) scb 1032 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1042 dev/ic/aic79xx.c struct scb *scb; scb 1046 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1047 dev/ic/aic79xx.c if (scb == NULL) { scb 1052 dev/ic/aic79xx.c ahd_outq(ahd, HADDR, scb->sense_busaddr); scb 1081 dev/ic/aic79xx.c struct scb *scb; scb 1099 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1100 dev/ic/aic79xx.c if (scb == NULL) { scb 1107 dev/ic/aic79xx.c ahd_compile_devinfo(&devinfo, SCB_GET_OUR_ID(scb), scb 1108 dev/ic/aic79xx.c SCB_GET_TARGET(ahd, scb), scb 1109 dev/ic/aic79xx.c SCB_GET_LUN(scb), scb 1110 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 1130 dev/ic/aic79xx.c scb->hscb->control &= ~(TAG_ENB|SCB_TAG_TYPE); scb 1131 dev/ic/aic79xx.c scb->hscb->control |= MK_MESSAGE; scb 1132 dev/ic/aic79xx.c ahd_outb(ahd, SCB_CONTROL, scb->hscb->control); scb 1134 dev/ic/aic79xx.c ahd_outb(ahd, SAVED_SCSIID, scb->hscb->scsiid); scb 1142 dev/ic/aic79xx.c scb->flags &= ~SCB_PACKETIZED; scb 1143 dev/ic/aic79xx.c scb->flags |= SCB_ABORT|SCB_CMDPHASE_ABORT; scb 1144 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 1145 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_REQUEUE_REQ); scb 1146 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 1159 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1171 dev/ic/aic79xx.c struct scb *scb; scb 1181 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 1182 dev/ic/aic79xx.c if (scb == NULL) { scb 1238 dev/ic/aic79xx.c struct scb *scb; scb 1258 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 1263 dev/ic/aic79xx.c scb); scb 1280 dev/ic/aic79xx.c scb); scb 1374 dev/ic/aic79xx.c struct scb *scb; scb 1381 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbindex); scb 1385 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1388 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 1389 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1394 dev/ic/aic79xx.c aic_get_transfer_length(scb), scb->sg_count); scb 1395 dev/ic/aic79xx.c ahd_dump_sglist(scb); scb 1403 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 1404 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_DATA_RUN_ERR); scb 1405 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 1411 dev/ic/aic79xx.c struct scb *scb; scb 1419 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1420 dev/ic/aic79xx.c if (scb != NULL) scb 1425 dev/ic/aic79xx.c ahd_search_qinfifo(ahd, SCB_GET_TARGET(ahd, scb), scb 1426 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 1427 dev/ic/aic79xx.c SCB_GET_LUN(scb), SCB_GET_TAG(scb), scb 1437 dev/ic/aic79xx.c struct scb *scb; scb 1440 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1441 dev/ic/aic79xx.c if (scb != NULL) { scb 1446 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1448 dev/ic/aic79xx.c scb->hscb->task_management); scb 1452 dev/ic/aic79xx.c switch (scb->hscb->task_management) { scb 1454 dev/ic/aic79xx.c tag = SCB_GET_TAG(scb); scb 1457 dev/ic/aic79xx.c lun = scb->hscb->lun; scb 1459 dev/ic/aic79xx.c ahd_abort_scbs(ahd, SCB_GET_TARGET(ahd, scb), scb 1464 dev/ic/aic79xx.c lun = scb->hscb->lun; scb 1469 dev/ic/aic79xx.c ahd_scb_devinfo(ahd, &devinfo, scb); scb 1489 dev/ic/aic79xx.c struct scb *scb; scb 1496 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1497 dev/ic/aic79xx.c if (scb != NULL) { scb 1502 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1516 dev/ic/aic79xx.c ahd_search_qinfifo(ahd, SCB_GET_TARGET(ahd, scb), scb 1517 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 1518 dev/ic/aic79xx.c SCB_GET_LUN(scb), SCB_GET_TAG(scb), scb 1552 dev/ic/aic79xx.c struct scb *scb; scb 1579 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1580 dev/ic/aic79xx.c if (scb != NULL scb 1582 dev/ic/aic79xx.c scb = NULL; scb 1645 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1646 dev/ic/aic79xx.c if (scb == NULL) { scb 1655 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 1660 dev/ic/aic79xx.c ahd_scb_devinfo(ahd, &devinfo, scb); scb 1661 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_SEL_TIMEOUT); scb 1662 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 1732 dev/ic/aic79xx.c struct scb *scb; scb 1738 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1739 dev/ic/aic79xx.c if (scb == NULL) { scb 1745 dev/ic/aic79xx.c packetized = (scb->flags & SCB_PACKETIZED) != 0; scb 1825 dev/ic/aic79xx.c struct scb *scb; scb 1836 dev/ic/aic79xx.c scb = NULL; scb 1875 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 1876 dev/ic/aic79xx.c if (scb != NULL && SCB_IS_SILENT(scb)) scb 1971 dev/ic/aic79xx.c if (scb == NULL) { scb 2002 dev/ic/aic79xx.c if (scb != NULL && msg_out == MSG_INITIATOR_DET_ERR) scb 2003 dev/ic/aic79xx.c scb->flags |= SCB_TRANSMISSION_ERROR; scb 2060 dev/ic/aic79xx.c struct scb *scb; scb 2084 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 2085 dev/ic/aic79xx.c if (scb == NULL) scb 2126 dev/ic/aic79xx.c if (scb->crc_retry_count < AHD_MAX_LQ_CRC_ERRORS) { scb 2127 dev/ic/aic79xx.c if (SCB_IS_SILENT(scb) == FALSE) { scb 2128 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2132 dev/ic/aic79xx.c scb->crc_retry_count++; scb 2134 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_UNCOR_PARITY); scb 2135 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 2136 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 2160 dev/ic/aic79xx.c struct scb *scb; scb 2163 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 2164 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2167 dev/ic/aic79xx.c ahd_abort_scbs(ahd, SCB_GET_TARGET(ahd, scb), 'A', scb 2168 dev/ic/aic79xx.c SCB_GET_LUN(scb), SCB_GET_TAG(scb), scb 2187 dev/ic/aic79xx.c struct scb *scb; scb 2212 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 2213 dev/ic/aic79xx.c if (scb != NULL scb 2215 dev/ic/aic79xx.c scb = NULL; scb 2227 dev/ic/aic79xx.c if (scb == NULL) { scb 2235 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2237 dev/ic/aic79xx.c SCB_GET_TAG(scb), scb 2241 dev/ic/aic79xx.c tag = SCB_GET_TAG(scb); scb 2243 dev/ic/aic79xx.c if ((scb->flags & SCB_CMDPHASE_ABORT) != 0) { scb 2256 dev/ic/aic79xx.c tag = SCB_GET_TAG(scb); scb 2257 dev/ic/aic79xx.c saved_lun = scb->hscb->lun; scb 2272 dev/ic/aic79xx.c if (scb != NULL scb 2273 dev/ic/aic79xx.c && scb->io_ctx->ccb_h.func_code== XPT_RESET_DEV scb 2274 dev/ic/aic79xx.c && ahd_match_scb(ahd, scb, target, 'A', scb 2277 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_REQ_CMP); scb 2329 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 2330 dev/ic/aic79xx.c ahd_qinfifo_requeue_tail(ahd, scb); scb 2352 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 2353 dev/ic/aic79xx.c ahd_qinfifo_requeue_tail(ahd, scb); scb 2375 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 2376 dev/ic/aic79xx.c ahd_qinfifo_requeue_tail(ahd, scb); scb 2408 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 2409 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_REQUEUE_REQ); scb 2410 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 2412 dev/ic/aic79xx.c ahd_abort_scbs(ahd, SCB_GET_TARGET(ahd, scb), scb 2413 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 2414 dev/ic/aic79xx.c SCB_GET_LUN(scb), SCB_LIST_NULL, scb 2421 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 2429 dev/ic/aic79xx.c if (scb != NULL) { scb 2432 dev/ic/aic79xx.c if ((scb->hscb->control & TAG_ENB) != 0) scb 2433 dev/ic/aic79xx.c tag = SCB_GET_TAG(scb); scb 2436 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2438 dev/ic/aic79xx.c SCB_GET_LUN(scb), tag, scb 2465 dev/ic/aic79xx.c struct scb *scb; scb 2474 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 2488 dev/ic/aic79xx.c scb = NULL; scb 2489 dev/ic/aic79xx.c } else if (scb == NULL) { scb 2498 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_SEQUENCE_FAIL); scb 2500 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2511 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2514 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2541 dev/ic/aic79xx.c if (scb == NULL) { scb 2548 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 2549 dev/ic/aic79xx.c scb->flags |= SCB_ABORT; scb 2737 dev/ic/aic79xx.c ahd_print_scb(struct scb *scb) scb 2742 dev/ic/aic79xx.c hscb = scb->hscb; scb 2744 dev/ic/aic79xx.c (void *)scb, scb 2757 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 2758 dev/ic/aic79xx.c ahd_dump_sglist(scb); scb 2762 dev/ic/aic79xx.c ahd_dump_sglist(struct scb *scb) scb 2766 dev/ic/aic79xx.c if (scb->sg_count > 0) { scb 2767 dev/ic/aic79xx.c if ((scb->ahd_softc->flags & AHD_64BIT_ADDRESSING) != 0) { scb 2770 dev/ic/aic79xx.c sg_list = (struct ahd_dma64_seg*)scb->sg_list; scb 2771 dev/ic/aic79xx.c for (i = 0; i < scb->sg_count; i++) { scb 2788 dev/ic/aic79xx.c sg_list = (struct ahd_dma_seg*)scb->sg_list; scb 2789 dev/ic/aic79xx.c for (i = 0; i < scb->sg_count; i++) { scb 3397 dev/ic/aic79xx.c struct scb *pending_scb; scb 3554 dev/ic/aic79xx.c struct scb *scb) scb 3559 dev/ic/aic79xx.c our_id = SCSIID_OUR_ID(scb->hscb->scsiid); scb 3561 dev/ic/aic79xx.c if ((scb->hscb->control & TARGET_SCB) != 0) scb 3563 dev/ic/aic79xx.c ahd_compile_devinfo(devinfo, our_id, SCB_GET_TARGET(ahd, scb), scb 3564 dev/ic/aic79xx.c SCB_GET_LUN(scb), SCB_GET_CHANNEL(ahd, scb), role); scb 3577 dev/ic/aic79xx.c struct scb *scb) scb 3600 dev/ic/aic79xx.c } else if (scb == NULL) { scb 3609 dev/ic/aic79xx.c if ((scb->flags & SCB_DEVICE_RESET) == 0 scb 3610 dev/ic/aic79xx.c && (scb->flags & SCB_PACKETIZED) == 0 scb 3614 dev/ic/aic79xx.c identify_msg = MSG_IDENTIFYFLAG | SCB_GET_LUN(scb); scb 3615 dev/ic/aic79xx.c if ((scb->hscb->control & DISCENB) != 0) scb 3620 dev/ic/aic79xx.c if ((scb->hscb->control & TAG_ENB) != 0) { scb 3622 dev/ic/aic79xx.c scb->hscb->control & (TAG_ENB|SCB_TAG_TYPE); scb 3623 dev/ic/aic79xx.c ahd->msgout_buf[ahd->msgout_index++] = SCB_GET_TAG(scb); scb 3628 dev/ic/aic79xx.c if (scb->flags & SCB_DEVICE_RESET) { scb 3631 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 3641 dev/ic/aic79xx.c } else if ((scb->flags & SCB_ABORT) != 0) { scb 3643 dev/ic/aic79xx.c if ((scb->hscb->control & TAG_ENB) != 0) { scb 3649 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 3651 dev/ic/aic79xx.c (scb->hscb->control & TAG_ENB) != 0 ? " Tag" : ""); scb 3660 dev/ic/aic79xx.c } else if ((scb->flags & (SCB_AUTO_NEGOTIATE|SCB_NEGOTIATE)) != 0) { scb 3673 dev/ic/aic79xx.c printf("SCSIID = %x, target_mask = %x\n", scb->hscb->scsiid, scb 3676 dev/ic/aic79xx.c "SCB flags = %x", SCB_GET_TAG(scb), scb->hscb->control, scb 3678 dev/ic/aic79xx.c scb->flags); scb 3687 dev/ic/aic79xx.c scb->hscb->control &= ~MK_MESSAGE; scb 4713 dev/ic/aic79xx.c struct scb *scb; scb 4721 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 4801 dev/ic/aic79xx.c } else if ((scb->hscb->control & MSG_SIMPLE_TASK) != 0) { scb 4805 dev/ic/aic79xx.c tag_type = (scb->hscb->control & MSG_SIMPLE_TASK); scb 4829 dev/ic/aic79xx.c scb->hscb->control &= mask; scb 4830 dev/ic/aic79xx.c aic_set_transaction_tag(scb, /*enabled*/FALSE, scb 4834 dev/ic/aic79xx.c ahd_busy_tcl(ahd, BUILD_TCL(scb->hscb->scsiid, devinfo->lun), scb 4835 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 4842 dev/ic/aic79xx.c ahd_search_qinfifo(ahd, SCB_GET_TARGET(ahd, scb), scb 4843 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 4844 dev/ic/aic79xx.c SCB_GET_LUN(scb), /*tag*/SCB_LIST_NULL, scb 4879 dev/ic/aic79xx.c struct scb *scb; scb 4882 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 4888 dev/ic/aic79xx.c || aic_get_transfer_dir(scb) != CAM_DIR_IN) { scb 4936 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 4944 dev/ic/aic79xx.c if (sg != scb->sg_list scb 4963 dev/ic/aic79xx.c sgptr = ahd_sg_virt_to_bus(ahd, scb, scb 4969 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 4977 dev/ic/aic79xx.c if (sg != scb->sg_list scb 4996 dev/ic/aic79xx.c sgptr = ahd_sg_virt_to_bus(ahd, scb, scb 5028 dev/ic/aic79xx.c struct scb *scb; scb 5040 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scb_index); scb 5051 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 5075 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 5087 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, sgptr); scb 5176 dev/ic/aic79xx.c struct scb *scb) scb 5187 dev/ic/aic79xx.c if (scb != NULL && (scb->flags & SCB_AUTO_NEGOTIATE) != 0) scb 5296 dev/ic/aic79xx.c ahd_name(ahd), (u_int)sizeof(struct scb), scb 5678 dev/ic/aic79xx.c struct scb * scb 5681 dev/ic/aic79xx.c struct scb *scb; scb 5686 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->pending_scbs, pending_links) { scb 5687 dev/ic/aic79xx.c if (SCB_GET_TAG(scb) == tag) scb 5688 dev/ic/aic79xx.c return (scb); scb 5694 dev/ic/aic79xx.c TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) { scb 5695 dev/ic/aic79xx.c struct scb *list_scb; scb 5697 dev/ic/aic79xx.c list_scb = scb; scb 5708 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) { scb 5709 dev/ic/aic79xx.c if (SCB_GET_TAG(scb) == tag) scb 5710 dev/ic/aic79xx.c return (scb); scb 5819 dev/ic/aic79xx.c ahd_add_col_list(struct ahd_softc *ahd, struct scb *scb, u_int col_idx) scb 5823 dev/ic/aic79xx.c struct scb *first_scb; scb 5825 dev/ic/aic79xx.c scb->flags |= SCB_ON_COL_LIST; scb 5826 dev/ic/aic79xx.c AHD_SET_SCB_COL_IDX(scb, col_idx); scb 5831 dev/ic/aic79xx.c LIST_INSERT_AFTER(first_scb, scb, collision_links); scb 5833 dev/ic/aic79xx.c LIST_INSERT_HEAD(free_list, scb, collision_links); scb 5834 dev/ic/aic79xx.c TAILQ_INSERT_TAIL(free_tailq, scb, links.tqe); scb 5839 dev/ic/aic79xx.c ahd_rem_col_list(struct ahd_softc *ahd, struct scb *scb) scb 5843 dev/ic/aic79xx.c struct scb *first_scb; scb 5846 dev/ic/aic79xx.c scb->flags &= ~SCB_ON_COL_LIST; scb 5847 dev/ic/aic79xx.c col_idx = AHD_GET_SCB_COL_IDX(ahd, scb); scb 5851 dev/ic/aic79xx.c if (first_scb == scb) { scb 5852 dev/ic/aic79xx.c struct scb *next_scb; scb 5859 dev/ic/aic79xx.c next_scb = LIST_NEXT(scb, collision_links); scb 5861 dev/ic/aic79xx.c TAILQ_INSERT_AFTER(free_tailq, scb, scb 5864 dev/ic/aic79xx.c TAILQ_REMOVE(free_tailq, scb, links.tqe); scb 5866 dev/ic/aic79xx.c LIST_REMOVE(scb, collision_links); scb 5872 dev/ic/aic79xx.c struct scb * scb 5875 dev/ic/aic79xx.c struct scb *scb; scb 5877 dev/ic/aic79xx.c TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) { scb 5878 dev/ic/aic79xx.c if (AHD_GET_SCB_COL_IDX(ahd, scb) != col_idx) { scb 5879 dev/ic/aic79xx.c ahd_rem_col_list(ahd, scb); scb 5883 dev/ic/aic79xx.c if ((scb = LIST_FIRST(&ahd->scb_data.any_dev_free_scb_list)) == NULL) { scb 5887 dev/ic/aic79xx.c LIST_REMOVE(scb, links.le); scb 5889 dev/ic/aic79xx.c && (scb->col_scb != NULL) scb 5890 dev/ic/aic79xx.c && (scb->col_scb->flags & SCB_ACTIVE) == 0) { scb 5891 dev/ic/aic79xx.c LIST_REMOVE(scb->col_scb, links.le); scb 5892 dev/ic/aic79xx.c ahd_add_col_list(ahd, scb->col_scb, col_idx); scb 5895 dev/ic/aic79xx.c scb->flags |= SCB_ACTIVE; scb 5896 dev/ic/aic79xx.c return (scb); scb 5903 dev/ic/aic79xx.c ahd_free_scb(struct ahd_softc *ahd, struct scb *scb) scb 5907 dev/ic/aic79xx.c scb->flags = SCB_FLAG_NONE; scb 5908 dev/ic/aic79xx.c scb->hscb->control = 0; scb 5909 dev/ic/aic79xx.c ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = NULL; scb 5911 dev/ic/aic79xx.c if (scb->col_scb == NULL) { scb 5917 dev/ic/aic79xx.c scb, links.le); scb 5918 dev/ic/aic79xx.c } else if ((scb->col_scb->flags & SCB_ON_COL_LIST) != 0) { scb 5925 dev/ic/aic79xx.c ahd_rem_col_list(ahd, scb->col_scb); scb 5927 dev/ic/aic79xx.c scb, links.le); scb 5929 dev/ic/aic79xx.c scb->col_scb, links.le); scb 5930 dev/ic/aic79xx.c } else if ((scb->col_scb->flags scb 5932 dev/ic/aic79xx.c && (scb->col_scb->hscb->control & TAG_ENB) != 0) { scb 5939 dev/ic/aic79xx.c ahd_add_col_list(ahd, scb, scb 5940 dev/ic/aic79xx.c AHD_GET_SCB_COL_IDX(ahd, scb->col_scb)); scb 5949 dev/ic/aic79xx.c scb, links.le); scb 5952 dev/ic/aic79xx.c aic_platform_scb_free(ahd, scb); scb 5959 dev/ic/aic79xx.c struct scb *next_scb; scb 6088 dev/ic/aic79xx.c next_scb = (struct scb *)malloc(sizeof(*next_scb), scb 7112 dev/ic/aic79xx.c ahd_match_scb(struct ahd_softc *ahd, struct scb *scb, int target, scb 7115 dev/ic/aic79xx.c int targ = SCB_GET_TARGET(ahd, scb); scb 7116 dev/ic/aic79xx.c char chan = SCB_GET_CHANNEL(ahd, scb); scb 7117 dev/ic/aic79xx.c int slun = SCB_GET_LUN(scb); scb 7129 dev/ic/aic79xx.c group = XPT_FC_GROUP(scb->io_ctx->ccb_h.func_code); scb 7132 dev/ic/aic79xx.c && ((tag == SCB_GET_TAG(scb)) scb 7136 dev/ic/aic79xx.c && ((tag == scb->io_ctx->csio.tag_id) scb 7140 dev/ic/aic79xx.c match = ((tag == SCB_GET_TAG(scb)) || (tag == SCB_LIST_NULL)); scb 7148 dev/ic/aic79xx.c ahd_freeze_devq(struct ahd_softc *ahd, struct scb *scb) scb 7154 dev/ic/aic79xx.c target = SCB_GET_TARGET(ahd, scb); scb 7155 dev/ic/aic79xx.c lun = SCB_GET_LUN(scb); scb 7156 dev/ic/aic79xx.c channel = SCB_GET_CHANNEL(ahd, scb); scb 7162 dev/ic/aic79xx.c ahd_platform_freeze_devq(ahd, scb); scb 7166 dev/ic/aic79xx.c ahd_qinfifo_requeue_tail(struct ahd_softc *ahd, struct scb *scb) scb 7168 dev/ic/aic79xx.c struct scb *prev_scb; scb 7182 dev/ic/aic79xx.c ahd_qinfifo_requeue(ahd, prev_scb, scb); scb 7188 dev/ic/aic79xx.c ahd_qinfifo_requeue(struct ahd_softc *ahd, struct scb *prev_scb, scb 7189 dev/ic/aic79xx.c struct scb *scb) scb 7194 dev/ic/aic79xx.c busaddr = aic_le32toh(scb->hscb->hscb_busaddr); scb 7197 dev/ic/aic79xx.c prev_scb->hscb->next_hscb_busaddr = scb->hscb->hscb_busaddr; scb 7201 dev/ic/aic79xx.c ahd->qinfifo[AHD_QIN_WRAP(ahd->qinfifonext)] = SCB_GET_TAG(scb); scb 7203 dev/ic/aic79xx.c scb->hscb->next_hscb_busaddr = ahd->next_queued_hscb->hscb_busaddr; scb 7204 dev/ic/aic79xx.c ahd_sync_scb(ahd, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); scb 7228 dev/ic/aic79xx.c struct scb *scb; scb 7242 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->pending_scbs, pending_links) { scb 7251 dev/ic/aic79xx.c ahd_done_with_status(struct ahd_softc *ahd, struct scb *scb, uint32_t status) scb 7256 dev/ic/aic79xx.c ostat = aic_get_transaction_status(scb); scb 7258 dev/ic/aic79xx.c aic_set_transaction_status(scb, status); scb 7259 dev/ic/aic79xx.c cstat = aic_get_transaction_status(scb); scb 7261 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 7262 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 7270 dev/ic/aic79xx.c struct scb *scb; scb 7271 dev/ic/aic79xx.c struct scb *mk_msg_scb; scb 7272 dev/ic/aic79xx.c struct scb *prev_scb; scb 7322 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, ahd->qinfifo[qinpos]); scb 7323 dev/ic/aic79xx.c if (scb == NULL) { scb 7329 dev/ic/aic79xx.c if (ahd_match_scb(ahd, scb, target, channel, lun, tag, role)) { scb 7336 dev/ic/aic79xx.c if ((scb->flags & SCB_ACTIVE) == 0) scb 7338 dev/ic/aic79xx.c ahd_done_with_status(ahd, scb, status); scb 7346 dev/ic/aic79xx.c ahd_qinfifo_requeue(ahd, prev_scb, scb); scb 7347 dev/ic/aic79xx.c prev_scb = scb; scb 7351 dev/ic/aic79xx.c ahd_qinfifo_requeue(ahd, prev_scb, scb); scb 7352 dev/ic/aic79xx.c prev_scb = scb; scb 7394 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 7395 dev/ic/aic79xx.c if (scb == NULL) { scb 7402 dev/ic/aic79xx.c if (ahd_match_scb(ahd, scb, target, channel, CAM_LUN_WILDCARD, scb 7412 dev/ic/aic79xx.c printf(" %d ( ", SCB_GET_TARGET(ahd, scb)); scb 7417 dev/ic/aic79xx.c SCB_GET_TARGET(ahd, scb)); scb 7458 dev/ic/aic79xx.c printf(" 0x%x", SCB_GET_TAG(scb)); scb 7467 dev/ic/aic79xx.c && ahd_match_scb(ahd, scb, target, channel, CAM_LUN_WILDCARD, scb 7501 dev/ic/aic79xx.c struct scb *scb; scb 7520 dev/ic/aic79xx.c scb = ahd_lookup_scb(ahd, scbid); scb 7521 dev/ic/aic79xx.c if (scb == NULL) { scb 7529 dev/ic/aic79xx.c if (ahd_match_scb(ahd, scb, target, channel, scb 7537 dev/ic/aic79xx.c if ((scb->flags & SCB_ACTIVE) == 0) scb 7539 dev/ic/aic79xx.c ahd_done_with_status(ahd, scb, status); scb 7655 dev/ic/aic79xx.c struct scb *scbp; scb 7656 dev/ic/aic79xx.c struct scb *scbp_next; scb 8021 dev/ic/aic79xx.c ahd_handle_scb_status(struct ahd_softc *ahd, struct scb *scb) scb 8023 dev/ic/aic79xx.c if (scb->hscb->shared_data.istatus.scsi_status != 0) { scb 8024 dev/ic/aic79xx.c ahd_handle_scsi_status(ahd, scb); scb 8026 dev/ic/aic79xx.c ahd_calc_residual(ahd, scb); scb 8027 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 8032 dev/ic/aic79xx.c ahd_handle_scsi_status(struct ahd_softc *ahd, struct scb *scb) scb 8046 dev/ic/aic79xx.c hscb = scb->hscb; scb 8056 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 8057 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 8065 dev/ic/aic79xx.c if ((scb->flags & SCB_SENSE) != 0) { scb 8070 dev/ic/aic79xx.c scb->flags &= ~SCB_SENSE; scb 8071 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_AUTOSENSE_FAIL); scb 8072 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 8075 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_SCSI_STATUS_ERROR); scb 8076 dev/ic/aic79xx.c aic_set_scsi_status(scb, hscb->shared_data.istatus.scsi_status); scb 8082 dev/ic/aic79xx.c ahd_sync_sense(ahd, scb, BUS_DMASYNC_POSTREAD); scb 8083 dev/ic/aic79xx.c siu = (struct scsi_status_iu_header *)scb->sense_data; scb 8084 dev/ic/aic79xx.c aic_set_scsi_status(scb, siu->status); scb 8087 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8089 dev/ic/aic79xx.c SCB_GET_TAG(scb), siu->status); scb 8097 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8125 dev/ic/aic79xx.c aic_set_transaction_status(scb, scb 8129 dev/ic/aic79xx.c scb->flags |= SCB_PKT_SENSE; scb 8135 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 8149 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8151 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 8155 dev/ic/aic79xx.c if (aic_perform_autosense(scb) == 0) scb 8158 dev/ic/aic79xx.c ahd_compile_devinfo(&devinfo, SCB_GET_OUR_ID(scb), scb 8159 dev/ic/aic79xx.c SCB_GET_TARGET(ahd, scb), scb 8160 dev/ic/aic79xx.c SCB_GET_LUN(scb), scb 8161 dev/ic/aic79xx.c SCB_GET_CHANNEL(ahd, scb), scb 8169 dev/ic/aic79xx.c sg = scb->sg_list; scb 8174 dev/ic/aic79xx.c ahd_update_residual(ahd, scb); scb 8177 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8181 dev/ic/aic79xx.c scb->sg_count = 0; scb 8182 dev/ic/aic79xx.c sg = ahd_sg_setup(ahd, scb, sg, ahd_get_sense_bufaddr(ahd, scb), scb 8183 dev/ic/aic79xx.c aic_get_sense_bufsize(ahd, scb), scb 8188 dev/ic/aic79xx.c && SCB_GET_LUN(scb) < 8) scb 8189 dev/ic/aic79xx.c sc->byte2 = SCB_GET_LUN(scb) << 5; scb 8192 dev/ic/aic79xx.c sc->length = aic_get_sense_bufsize(ahd, scb); scb 8212 dev/ic/aic79xx.c if (aic_get_residual(scb) == aic_get_transfer_length(scb)) { scb 8219 dev/ic/aic79xx.c scb->flags &= scb 8221 dev/ic/aic79xx.c scb->flags |= SCB_AUTO_NEGOTIATE; scb 8224 dev/ic/aic79xx.c ahd_setup_data_scb(ahd, scb); scb 8225 dev/ic/aic79xx.c scb->flags |= SCB_SENSE; scb 8226 dev/ic/aic79xx.c ahd_queue_scb(ahd, scb); scb 8234 dev/ic/aic79xx.c aic_scb_timer_reset(scb, 5 * 1000); scb 8242 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 8251 dev/ic/aic79xx.c ahd_calc_residual(struct ahd_softc *ahd, struct scb *scb) scb 8275 dev/ic/aic79xx.c hscb = scb->hscb; scb 8296 dev/ic/aic79xx.c resid = aic_get_transfer_length(scb); scb 8301 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8303 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 8304 dev/ic/aic79xx.c ahd_freeze_devq(ahd, scb); scb 8305 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_DATA_RUN_ERR); scb 8306 dev/ic/aic79xx.c aic_freeze_scb(scb); scb 8319 dev/ic/aic79xx.c sg = ahd_sg_bus_to_virt(ahd, scb, resid_sgptr & SG_PTR_MASK); scb 8334 dev/ic/aic79xx.c if ((scb->flags & SCB_SENSE) == 0) scb 8335 dev/ic/aic79xx.c aic_set_residual(scb, resid); scb 8337 dev/ic/aic79xx.c aic_set_sense_residual(scb, resid); scb 8341 dev/ic/aic79xx.c ahd_print_path(ahd, scb); scb 8343 dev/ic/aic79xx.c (scb->flags & SCB_SENSE) ? "Sense " : "", resid); scb 8850 dev/ic/aic79xx.c struct scb *scb; scb 8933 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->pending_scbs, pending_links) { scb 8936 dev/ic/aic79xx.c cur_col = printf("\n%3d FIFO_USE[0x%x] ", SCB_GET_TAG(scb), scb 8938 dev/ic/aic79xx.c ahd_set_scbptr(ahd, SCB_GET_TAG(scb)); scb 8948 dev/ic/aic79xx.c TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) { scb 8949 dev/ic/aic79xx.c struct scb *list_scb; scb 8951 dev/ic/aic79xx.c list_scb = scb; scb 8958 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) { scb 8961 dev/ic/aic79xx.c printf("%d ", SCB_GET_TAG(scb)); scb 9008 dev/ic/aic79xx.c struct scb *fifo_scb; scb 9141 dev/ic/aic79xx.c struct scb *scb, *list_scb; scb 9150 dev/ic/aic79xx.c scb = (struct scb *)arg; scb 9151 dev/ic/aic79xx.c ahd = scb->ahd_softc; scb 9158 dev/ic/aic79xx.c SCB_GET_TAG(scb), was_paused ? "" : "not "); scb 9164 dev/ic/aic79xx.c if (scb->flags & SCB_ACTIVE) { scb 9165 dev/ic/aic79xx.c aic_set_transaction_status(scb, CAM_CMD_TIMEOUT); scb 9175 dev/ic/aic79xx.c channel = SCB_GET_CHANNEL(ahd, scb); scb 9696 dev/ic/aic79xx.c struct scb *scb; scb 9707 dev/ic/aic79xx.c LIST_FOREACH(scb, &ahd->pending_scbs, pending_links) { scb 9710 dev/ic/aic79xx.c ccbh = &scb->io_ctx->ccb_h; scb 10216 dev/ic/aic79xx.c ahd_sg_setup(struct ahd_softc *ahd, struct scb *scb, scb 10219 dev/ic/aic79xx.c scb->sg_count++; scb 10240 dev/ic/aic79xx.c ahd_setup_scb_common(struct ahd_softc *ahd, struct scb *scb) scb 10243 dev/ic/aic79xx.c scb->crc_retry_count = 0; scb 10244 dev/ic/aic79xx.c if ((scb->flags & SCB_PACKETIZED) != 0) { scb 10246 dev/ic/aic79xx.c scb->hscb->task_attribute = scb->hscb->control & SCB_TAG_TYPE; scb 10248 dev/ic/aic79xx.c if (aic_get_transfer_length(scb) & 0x01) scb 10249 dev/ic/aic79xx.c scb->hscb->task_attribute = SCB_XFERLEN_ODD; scb 10251 dev/ic/aic79xx.c scb->hscb->task_attribute = 0; scb 10254 dev/ic/aic79xx.c if (scb->hscb->cdb_len <= MAX_CDB_LEN_WITH_SENSE_ADDR scb 10255 dev/ic/aic79xx.c || (scb->hscb->cdb_len & SCB_CDB_LEN_PTR) != 0) scb 10256 dev/ic/aic79xx.c scb->hscb->shared_data.idata.cdb_plus_saddr.sense_addr = scb 10257 dev/ic/aic79xx.c aic_htole32(scb->sense_busaddr); scb 10261 dev/ic/aic79xx.c ahd_setup_data_scb(struct ahd_softc *ahd, struct scb *scb) scb 10269 dev/ic/aic79xx.c sg = (struct ahd_dma64_seg *)scb->sg_list; scb 10270 dev/ic/aic79xx.c scb->hscb->dataptr = sg->addr; scb 10271 dev/ic/aic79xx.c scb->hscb->datacnt = sg->len; scb 10276 dev/ic/aic79xx.c sg = (struct ahd_dma_seg *)scb->sg_list; scb 10277 dev/ic/aic79xx.c dataptr_words = (uint32_t*)&scb->hscb->dataptr; scb 10284 dev/ic/aic79xx.c scb->hscb->dataptr |= aic_htole64(high_addr << 8); scb 10286 dev/ic/aic79xx.c scb->hscb->datacnt = sg->len; scb 10294 dev/ic/aic79xx.c scb->hscb->sgptr = aic_htole32(scb->sg_list_busaddr|SG_FULL_RESID); scb 10298 dev/ic/aic79xx.c ahd_setup_noxfer_scb(struct ahd_softc *ahd, struct scb *scb) scb 10300 dev/ic/aic79xx.c scb->hscb->sgptr = aic_htole32(SG_LIST_NULL); scb 10301 dev/ic/aic79xx.c scb->hscb->dataptr = 0; scb 10302 dev/ic/aic79xx.c scb->hscb->datacnt = 0; scb 10314 dev/ic/aic79xx.c ahd_sg_bus_to_virt(struct ahd_softc *ahd, struct scb *scb, uint32_t sg_busaddr) scb 10319 dev/ic/aic79xx.c sg_offset = sg_busaddr - (scb->sg_list_busaddr - ahd_sg_size(ahd)); scb 10320 dev/ic/aic79xx.c return ((uint8_t *)scb->sg_list + sg_offset); scb 10324 dev/ic/aic79xx.c ahd_sg_virt_to_bus(struct ahd_softc *ahd, struct scb *scb, void *sg) scb 10329 dev/ic/aic79xx.c sg_offset = ((uint8_t *)sg - (uint8_t *)scb->sg_list) scb 10332 dev/ic/aic79xx.c return (scb->sg_list_busaddr + sg_offset); scb 10336 dev/ic/aic79xx.c ahd_sync_scb(struct ahd_softc *ahd, struct scb *scb, int op) scb 10338 dev/ic/aic79xx.c ahd_dmamap_sync(ahd, ahd->parent_dmat, scb->hscb_map->dmamap, scb 10339 dev/ic/aic79xx.c /*offset*/(uint8_t*)scb->hscb - scb->hscb_map->vaddr, scb 10340 dev/ic/aic79xx.c /*len*/sizeof(*scb->hscb), op); scb 10344 dev/ic/aic79xx.c ahd_sync_sglist(struct ahd_softc *ahd, struct scb *scb, int op) scb 10346 dev/ic/aic79xx.c if (scb->sg_count == 0) scb 10350 dev/ic/aic79xx.c scb->sense_map->dmamap, scb 10351 dev/ic/aic79xx.c /*offset*/scb->sg_list_busaddr - ahd_sg_size(ahd), scb 10352 dev/ic/aic79xx.c /*len*/ahd_sg_size(ahd) * scb->sg_count, op); scb 10356 dev/ic/aic79xx.c ahd_sync_sense(struct ahd_softc *ahd, struct scb *scb, int op) scb 10359 dev/ic/aic79xx.c scb->sense_map->dmamap, scb 10360 dev/ic/aic79xx.c /*offset*/scb->sense_busaddr, scb 10372 dev/ic/aic79xx.c ahd_complete_scb(struct ahd_softc *ahd, struct scb *scb) scb 10376 dev/ic/aic79xx.c sgptr = aic_le32toh(scb->hscb->sgptr); scb 10378 dev/ic/aic79xx.c ahd_handle_scb_status(ahd, scb); scb 10380 dev/ic/aic79xx.c ahd_done(ahd, scb); scb 10388 dev/ic/aic79xx.c ahd_update_residual(struct ahd_softc *ahd, struct scb *scb) scb 10392 dev/ic/aic79xx.c sgptr = aic_le32toh(scb->hscb->sgptr); scb 10394 dev/ic/aic79xx.c ahd_calc_residual(ahd, scb); scb 10623 dev/ic/aic79xx.c struct scb * scb 10626 dev/ic/aic79xx.c struct scb* scb; scb 10630 dev/ic/aic79xx.c scb = ahd->scb_data.scbindex[tag]; scb 10631 dev/ic/aic79xx.c if (scb != NULL) scb 10632 dev/ic/aic79xx.c ahd_sync_scb(ahd, scb, scb 10634 dev/ic/aic79xx.c return (scb); scb 10638 dev/ic/aic79xx.c ahd_swap_with_next_hscb(struct ahd_softc *ahd, struct scb *scb) scb 10659 dev/ic/aic79xx.c memcpy(q_hscb, scb->hscb, sizeof(*scb->hscb)); scb 10661 dev/ic/aic79xx.c q_hscb->next_hscb_busaddr = scb->hscb->hscb_busaddr; scb 10664 dev/ic/aic79xx.c ahd->next_queued_hscb = scb->hscb; scb 10665 dev/ic/aic79xx.c ahd->next_queued_hscb_map = scb->hscb_map; scb 10666 dev/ic/aic79xx.c scb->hscb = q_hscb; scb 10667 dev/ic/aic79xx.c scb->hscb_map = q_hscb_map; scb 10670 dev/ic/aic79xx.c ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = scb; scb 10677 dev/ic/aic79xx.c ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb) scb 10679 dev/ic/aic79xx.c ahd_swap_with_next_hscb(ahd, scb); scb 10681 dev/ic/aic79xx.c if (SCBID_IS_NULL(SCB_GET_TAG(scb))) scb 10683 dev/ic/aic79xx.c SCB_GET_TAG(scb)); scb 10688 dev/ic/aic79xx.c ahd->qinfifo[AHD_QIN_WRAP(ahd->qinfifonext)] = SCB_GET_TAG(scb); scb 10691 dev/ic/aic79xx.c if (scb->sg_count != 0) scb 10692 dev/ic/aic79xx.c ahd_setup_data_scb(ahd, scb); scb 10694 dev/ic/aic79xx.c ahd_setup_noxfer_scb(ahd, scb); scb 10695 dev/ic/aic79xx.c ahd_setup_scb_common(ahd, scb); scb 10701 dev/ic/aic79xx.c ahd_sync_scb(ahd, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); scb 10707 dev/ic/aic79xx.c host_dataptr = aic_le64toh(scb->hscb->dataptr); scb 10710 dev/ic/aic79xx.c SCB_GET_TAG(scb), scb->hscb->scsiid, scb 10711 dev/ic/aic79xx.c aic_le32toh(scb->hscb->hscb_busaddr), scb 10714 dev/ic/aic79xx.c aic_le32toh(scb->hscb->datacnt)); scb 10722 dev/ic/aic79xx.c ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb) scb 10724 dev/ic/aic79xx.c return (scb->sense_data); scb 10728 dev/ic/aic79xx.c ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb) scb 10730 dev/ic/aic79xx.c return (scb->sense_busaddr); scb 119 dev/ic/aic79xx.h #define SCB_IS_SCSIBUS_B(ahd, scb) (0) scb 120 dev/ic/aic79xx.h #define SCB_GET_OUR_ID(scb) \ scb 121 dev/ic/aic79xx.h SCSIID_OUR_ID((scb)->hscb->scsiid) scb 122 dev/ic/aic79xx.h #define SCB_GET_TARGET(ahd, scb) \ scb 123 dev/ic/aic79xx.h SCSIID_TARGET((ahd), (scb)->hscb->scsiid) scb 124 dev/ic/aic79xx.h #define SCB_GET_CHANNEL(ahd, scb) \ scb 125 dev/ic/aic79xx.h SCSIID_CHANNEL(ahd, (scb)->hscb->scsiid) scb 126 dev/ic/aic79xx.h #define SCB_GET_LUN(scb) \ scb 127 dev/ic/aic79xx.h ((scb)->hscb->lun) scb 128 dev/ic/aic79xx.h #define SCB_GET_TARGET_OFFSET(ahd, scb) \ scb 129 dev/ic/aic79xx.h SCB_GET_TARGET(ahd, scb) scb 130 dev/ic/aic79xx.h #define SCB_GET_TARGET_MASK(ahd, scb) \ scb 131 dev/ic/aic79xx.h (0x01 << (SCB_GET_TARGET_OFFSET(ahd, scb))) scb 133 dev/ic/aic79xx.h #define SCB_IS_SILENT(scb) \ scb 135 dev/ic/aic79xx.h && (((scb)->flags & SCB_SILENT) != 0)) scb 137 dev/ic/aic79xx.h #define SCB_IS_SILENT(scb) \ scb 138 dev/ic/aic79xx.h (((scb)->flags & SCB_SILENT) != 0) scb 152 dev/ic/aic79xx.h #define SCB_GET_TAG(scb) \ scb 153 dev/ic/aic79xx.h aic_le16toh(scb->hscb->tag) scb 163 dev/ic/aic79xx.h #define AHD_GET_SCB_COL_IDX(ahd, scb) \ scb 164 dev/ic/aic79xx.h ((SCB_GET_LUN(scb) << 4) | SCB_GET_TARGET(ahd, scb)) scb 166 dev/ic/aic79xx.h #define AHD_SET_SCB_COL_IDX(scb, col_idx) \ scb 168 dev/ic/aic79xx.h (scb)->hscb->scsiid = ((col_idx) << TID_SHIFT) & TID; \ scb 169 dev/ic/aic79xx.h (scb)->hscb->lun = ((col_idx) >> 4) & (AHD_NUM_LUNS_NONPKT-1); \ scb 639 dev/ic/aic79xx.h struct scb { scb 642 dev/ic/aic79xx.h SLIST_ENTRY(scb) sle; scb 643 dev/ic/aic79xx.h LIST_ENTRY(scb) le; scb 644 dev/ic/aic79xx.h TAILQ_ENTRY(scb) tqe; scb 647 dev/ic/aic79xx.h SLIST_ENTRY(scb) sle; scb 648 dev/ic/aic79xx.h LIST_ENTRY(scb) le; scb 649 dev/ic/aic79xx.h TAILQ_ENTRY(scb) tqe; scb 653 dev/ic/aic79xx.h LIST_ENTRY(scb) timedout_links; scb 654 dev/ic/aic79xx.h struct scb *col_scb; scb 675 dev/ic/aic79xx.h TAILQ_HEAD(scb_tailq, scb); scb 676 dev/ic/aic79xx.h LIST_HEAD(scb_list, scb); scb 699 dev/ic/aic79xx.h struct scb *scbindex[AHD_SCB_MAX]; scb 1117 dev/ic/aic79xx.h LIST_HEAD(, scb) pending_scbs; scb 1122 dev/ic/aic79xx.h LIST_HEAD(, scb) timedout_scbs; scb 1396 dev/ic/aic79xx.h struct scb *scb); scb 1397 dev/ic/aic79xx.h int ahd_match_scb(struct ahd_softc *ahd, struct scb *scb, scb 1426 dev/ic/aic79xx.h struct scb *ahd_get_scb(struct ahd_softc *ahd, u_int col_idx); scb 1427 dev/ic/aic79xx.h void ahd_free_scb(struct ahd_softc *ahd, struct scb *scb); scb 1460 dev/ic/aic79xx.h struct scb *scb, uint32_t status); scb 1469 dev/ic/aic79xx.h void ahd_freeze_devq(struct ahd_softc *ahd, struct scb *scb); scb 1478 dev/ic/aic79xx.h struct scb *scb); scb 1480 dev/ic/aic79xx.h struct scb *scb); scb 1482 dev/ic/aic79xx.h struct scb *scb); scb 1503 dev/ic/aic79xx.h struct ahd_devinfo *, struct scb *); scb 1575 dev/ic/aic79xx.h void ahd_print_scb(struct scb *scb); scb 1578 dev/ic/aic79xx.h void ahd_dump_sglist(struct scb *scb); scb 97 dev/ic/aic79xx_inline.h void *ahd_sg_setup(struct ahd_softc *ahd, struct scb *scb, scb 101 dev/ic/aic79xx_inline.h struct scb *scb); scb 103 dev/ic/aic79xx_inline.h struct scb *scb); scb 105 dev/ic/aic79xx_inline.h struct scb *scb); scb 110 dev/ic/aic79xx_inline.h ahd_sg_bus_to_virt(struct ahd_softc *, struct scb *, scb 113 dev/ic/aic79xx_inline.h ahd_sg_virt_to_bus(struct ahd_softc *, struct scb *, scb 115 dev/ic/aic79xx_inline.h void ahd_sync_scb(struct ahd_softc *, struct scb *, int); scb 116 dev/ic/aic79xx_inline.h void ahd_sync_sglist(struct ahd_softc *, struct scb *, int); scb 117 dev/ic/aic79xx_inline.h void ahd_sync_sense(struct ahd_softc *, struct scb *, int); scb 122 dev/ic/aic79xx_inline.h void ahd_complete_scb(struct ahd_softc *, struct scb *); scb 123 dev/ic/aic79xx_inline.h void ahd_update_residual(struct ahd_softc *, struct scb *); scb 151 dev/ic/aic79xx_inline.h struct scb *ahd_lookup_scb(struct ahd_softc *, u_int); scb 152 dev/ic/aic79xx_inline.h void ahd_swap_with_next_hscb(struct ahd_softc *ahd, struct scb *scb); scb 153 dev/ic/aic79xx_inline.h void ahd_queue_scb(struct ahd_softc *ahd, struct scb *scb); scb 154 dev/ic/aic79xx_inline.h uint8_t *ahd_get_sense_buf(struct ahd_softc *ahd, struct scb *scb); scb 155 dev/ic/aic79xx_inline.h uint32_t ahd_get_sense_bufaddr(struct ahd_softc *ahd, struct scb *scb); scb 81 dev/ic/aic79xx_openbsd.c struct scb *); scb 83 dev/ic/aic79xx_openbsd.c void ahd_adapter_req_set_xfer_mode(struct ahd_softc *, struct scb *); scb 173 dev/ic/aic79xx_openbsd.c ahd_done(struct ahd_softc *ahd, struct scb *scb) scb 175 dev/ic/aic79xx_openbsd.c struct scsi_xfer *xs = scb->xs; scb 180 dev/ic/aic79xx_openbsd.c LIST_REMOVE(scb, pending_links); scb 191 dev/ic/aic79xx_openbsd.c bus_dmamap_sync(ahd->parent_dmat, scb->dmamap, 0, scb 192 dev/ic/aic79xx_openbsd.c scb->dmamap->dm_mapsize, op); scb 193 dev/ic/aic79xx_openbsd.c bus_dmamap_unload(ahd->parent_dmat, scb->dmamap); scb 217 dev/ic/aic79xx_openbsd.c if ((scb->flags & SCB_SENSE) == 0) { scb 252 dev/ic/aic79xx_openbsd.c } else if ((scb->flags & SCB_SENSE) != 0) { scb 264 dev/ic/aic79xx_openbsd.c memcpy(&xs->sense, ahd_get_sense_buf(ahd, scb), scb 267 dev/ic/aic79xx_openbsd.c } else if ((scb->flags & SCB_PKT_SENSE) != 0) { scb 271 dev/ic/aic79xx_openbsd.c siu = (struct scsi_status_iu_header *)scb->sense_data; scb 280 dev/ic/aic79xx_openbsd.c ahd_free_scb(ahd, scb); scb 307 dev/ic/aic79xx_openbsd.c struct scb *scb; scb 348 dev/ic/aic79xx_openbsd.c if ((scb = ahd_get_scb(ahd, col_idx)) == NULL) { scb 355 dev/ic/aic79xx_openbsd.c hscb = scb->hscb; scb 357 dev/ic/aic79xx_openbsd.c SC_DEBUG(xs->sc_link, SDEV_DB3, ("start scb(%p)\n", scb)); scb 359 dev/ic/aic79xx_openbsd.c scb->xs = xs; scb 360 dev/ic/aic79xx_openbsd.c timeout_set(&xs->stimeout, ahd_timeout, scb); scb 370 dev/ic/aic79xx_openbsd.c scb->flags |= SCB_DEVICE_RESET; scb 373 dev/ic/aic79xx_openbsd.c return (ahd_execute_scb(scb, NULL, 0)); scb 376 dev/ic/aic79xx_openbsd.c return (ahd_setup_data(ahd, xs, scb)); scb 383 dev/ic/aic79xx_openbsd.c struct scb *scb; scb 391 dev/ic/aic79xx_openbsd.c scb = (struct scb *)arg; scb 392 dev/ic/aic79xx_openbsd.c xs = scb->xs; scb 402 dev/ic/aic79xx_openbsd.c ahd_setup_data_scb(ahd, scb); scb 405 dev/ic/aic79xx_openbsd.c for (i = nsegments, sg = scb->sg_list; i > 0; i--) { scb 407 dev/ic/aic79xx_openbsd.c sg = ahd_sg_setup(ahd, scb, sg, dm_segs->ds_addr, scb 418 dev/ic/aic79xx_openbsd.c bus_dmamap_sync(ahd->parent_dmat, scb->dmamap, 0, scb 419 dev/ic/aic79xx_openbsd.c scb->dmamap->dm_mapsize, op); scb 432 dev/ic/aic79xx_openbsd.c scb->dmamap); scb 433 dev/ic/aic79xx_openbsd.c ahd_free_scb(ahd, scb); scb 438 dev/ic/aic79xx_openbsd.c tinfo = ahd_fetch_transinfo(ahd, SCSIID_CHANNEL(ahd, scb->hscb->scsiid), scb 439 dev/ic/aic79xx_openbsd.c SCSIID_OUR_ID(scb->hscb->scsiid), scb 440 dev/ic/aic79xx_openbsd.c SCSIID_TARGET(ahd, scb->hscb->scsiid), scb 443 dev/ic/aic79xx_openbsd.c mask = SCB_GET_TARGET_MASK(ahd, scb); scb 446 dev/ic/aic79xx_openbsd.c scb->hscb->control |= DISCENB; scb 449 dev/ic/aic79xx_openbsd.c scb->hscb->control |= TAG_ENB; scb 452 dev/ic/aic79xx_openbsd.c scb->flags |= SCB_PACKETIZED; scb 453 dev/ic/aic79xx_openbsd.c if (scb->hscb->task_management != 0) scb 454 dev/ic/aic79xx_openbsd.c scb->hscb->control &= ~MK_MESSAGE; scb 458 dev/ic/aic79xx_openbsd.c scb->flags |= SCB_AUTO_NEGOTIATE; scb 459 dev/ic/aic79xx_openbsd.c scb->hscb->control |= MK_MESSAGE; scb 464 dev/ic/aic79xx_openbsd.c LIST_INSERT_HEAD(&ahd->pending_scbs, scb, pending_links); scb 469 dev/ic/aic79xx_openbsd.c scb->flags |= SCB_ACTIVE; scb 471 dev/ic/aic79xx_openbsd.c if ((scb->flags & SCB_TARGET_IMMEDIATE) != 0) { scb 473 dev/ic/aic79xx_openbsd.c ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = scb; scb 475 dev/ic/aic79xx_openbsd.c ahd_set_scbptr(ahd, SCB_GET_TAG(scb)); scb 479 dev/ic/aic79xx_openbsd.c ahd_queue_scb(ahd, scb); scb 484 dev/ic/aic79xx_openbsd.c int lun = SCB_GET_LUN(scb); scb 489 dev/ic/aic79xx_openbsd.c ahd_adapter_req_set_xfer_mode(ahd, scb); scb 492 dev/ic/aic79xx_openbsd.c ahd_scb_devinfo(ahd, &devinfo, scb); scb 511 dev/ic/aic79xx_openbsd.c ahd_timeout(scb); scb 540 dev/ic/aic79xx_openbsd.c struct scb *scb) scb 545 dev/ic/aic79xx_openbsd.c hscb = scb->hscb; scb 552 dev/ic/aic79xx_openbsd.c ahd_free_scb(ahd, scb); scb 567 dev/ic/aic79xx_openbsd.c scb->dmamap, xs->data, scb 580 dev/ic/aic79xx_openbsd.c ahd_free_scb(ahd, scb); scb 584 dev/ic/aic79xx_openbsd.c error = ahd_execute_scb(scb, scb->dmamap->dm_segs, scb 585 dev/ic/aic79xx_openbsd.c scb->dmamap->dm_nsegs); scb 588 dev/ic/aic79xx_openbsd.c return ahd_execute_scb(scb, NULL, 0); scb 654 dev/ic/aic79xx_openbsd.c ahd_adapter_req_set_xfer_mode(struct ahd_softc *ahd, struct scb *scb) scb 664 dev/ic/aic79xx_openbsd.c target_id = scb->xs->sc_link->target; scb 665 dev/ic/aic79xx_openbsd.c our_id = SCSI_SCSI_ID(ahd, scb->xs->sc_link); scb 669 dev/ic/aic79xx_openbsd.c quirks = scb->xs->sc_link->quirks; scb 741 dev/ic/aic79xx_openbsd.c aic_scb_timer_reset(struct scb *scb, u_int msec) scb 748 dev/ic/aic79xx_openbsd.c if (!(scb->xs->xs_control & XS_CTL_POLL)) scb 749 dev/ic/aic79xx_openbsd.c callout_reset(&scb->xs->xs_callout, ticks, ahd_timeout, scb); scb 760 dev/ic/aic79xx_openbsd.c aic_platform_scb_free(struct ahd_softc *ahd, struct scb *scb) scb 772 dev/ic/aic79xx_openbsd.c timeout_del(&scb->xs->stimeout); scb 779 dev/ic/aic79xx_openbsd.c ahd_print_path(struct ahd_softc *ahd, struct scb *scb) scb 781 dev/ic/aic79xx_openbsd.c sc_print_addr(scb->xs->sc_link); scb 162 dev/ic/aic79xx_openbsd.h void aic_scb_timer_reset(struct scb *, u_int); scb 165 dev/ic/aic79xx_openbsd.h #define aic_get_timeout(scb) ((scb)->xs->timeout) scb 216 dev/ic/aic79xx_openbsd.h #define aic_set_transaction_status(scb, status) (scb)->xs->error = (status) scb 217 dev/ic/aic79xx_openbsd.h #define aic_set_scsi_status(scb, status) (scb)->xs->xs_status = (status) scb 218 dev/ic/aic79xx_openbsd.h #define aic_set_transaction_tag(scb, enabled, type) scb 219 dev/ic/aic79xx_openbsd.h #define aic_set_residual(scb, residual) (scb)->xs->resid = (residual) scb 220 dev/ic/aic79xx_openbsd.h #define aic_set_sense_residual(scb, residual) (scb)->xs->resid = (residual) scb 222 dev/ic/aic79xx_openbsd.h #define aic_get_transaction_status(scb) \ scb 223 dev/ic/aic79xx_openbsd.h (((scb)->xs->flags & ITSDONE) ? CAM_REQ_CMP : (scb)->xs->error) scb 224 dev/ic/aic79xx_openbsd.h #define aic_get_scsi_status(scb) ((scb)->xs->status) scb 225 dev/ic/aic79xx_openbsd.h #define aic_get_transfer_length(scb) ((scb)->xs->datalen) scb 226 dev/ic/aic79xx_openbsd.h #define aic_get_transfer_dir(scb) \ scb 227 dev/ic/aic79xx_openbsd.h ((scb)->xs->flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) scb 228 dev/ic/aic79xx_openbsd.h #define aic_get_residual(scb) ((scb)->xs->resid) scb 229 dev/ic/aic79xx_openbsd.h #define aic_get_sense_bufsize(ahd, scb) (sizeof(struct scsi_sense_data)) scb 231 dev/ic/aic79xx_openbsd.h #define aic_perform_autosense(scb) (1) scb 235 dev/ic/aic79xx_openbsd.h #define aic_freeze_scb(scb) scb 236 dev/ic/aic79xx_openbsd.h #define ahd_platform_freeze_devq(ahd, scb) scb 239 dev/ic/aic79xx_openbsd.h void aic_platform_scb_free(struct ahd_softc *, struct scb *); scb 262 dev/ic/aic79xx_openbsd.h void ahd_print_path(struct ahd_softc *, struct scb *); scb 284 dev/ic/aic79xx_openbsd.h void ahd_done(struct ahd_softc *, struct scb *); scb 173 dev/ic/aic7xxx.c struct scb *scb); scb 210 dev/ic/aic7xxx.c struct scb *scb); scb 218 dev/ic/aic7xxx.c struct scb *prev_scb, scb 219 dev/ic/aic7xxx.c struct scb *scb); scb 333 dev/ic/aic7xxx.c struct scb *scb; scb 387 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 388 dev/ic/aic7xxx.c if (scb == NULL) { scb 400 dev/ic/aic7xxx.c ahc_update_residual(ahc, scb); scb 401 dev/ic/aic7xxx.c ahc_done(ahc, scb); scb 417 dev/ic/aic7xxx.c struct scb *scb; scb 422 dev/ic/aic7xxx.c if ((scb = TAILQ_FIRST(queue)) != NULL scb 423 dev/ic/aic7xxx.c && (scb->flags & SCB_ACTIVE) == 0) { scb 424 dev/ic/aic7xxx.c scb->flags |= SCB_ACTIVE; scb 425 dev/ic/aic7xxx.c ahc_queue_scb(ahc, scb); scb 464 dev/ic/aic7xxx.c struct scb *scb; scb 499 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 500 dev/ic/aic7xxx.c if (scb == NULL) { scb 510 dev/ic/aic7xxx.c hscb = scb->hscb; scb 513 dev/ic/aic7xxx.c if ((scb->flags & SCB_SENSE) != 0) { scb 519 dev/ic/aic7xxx.c scb->flags &= ~SCB_SENSE; scb 520 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_AUTOSENSE_FAIL); scb 523 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_SCSI_STATUS_ERROR); scb 525 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb); scb 526 dev/ic/aic7xxx.c ahc_freeze_scb(scb); scb 527 dev/ic/aic7xxx.c ahc_set_scsi_status(scb, hscb->shared_data.status.scsi_status); scb 543 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 545 dev/ic/aic7xxx.c scb->hscb->tag); scb 549 dev/ic/aic7xxx.c if (ahc_perform_autosense(scb) == 0) scb 558 dev/ic/aic7xxx.c sg = scb->sg_list; scb 563 dev/ic/aic7xxx.c ahc_update_residual(ahc, scb); scb 566 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 570 dev/ic/aic7xxx.c sg->addr = ahc_get_sense_bufaddr(ahc, scb); scb 571 dev/ic/aic7xxx.c sg->len = ahc_get_sense_bufsize(ahc, scb); scb 581 dev/ic/aic7xxx.c && SCB_GET_LUN(scb) < 8) scb 582 dev/ic/aic7xxx.c sc->byte2 = SCB_GET_LUN(scb) << 5; scb 605 dev/ic/aic7xxx.c if (ahc_get_residual(scb) scb 606 dev/ic/aic7xxx.c == ahc_get_transfer_length(scb)) { scb 613 dev/ic/aic7xxx.c scb->flags &= ~SCB_NEGOTIATE; scb 614 dev/ic/aic7xxx.c scb->flags |= SCB_AUTO_NEGOTIATE; scb 619 dev/ic/aic7xxx.c hscb->sgptr = scb->sg_list_phys | SG_FULL_RESID; scb 624 dev/ic/aic7xxx.c (scb - ahc->scb_data->scbarray) * scb 629 dev/ic/aic7xxx.c scb->sg_map->sg_dmamap, scb 630 dev/ic/aic7xxx.c 0, scb->sg_map->sg_dmamap->dm_mapsize, scb 637 dev/ic/aic7xxx.c scb->sg_count = 1; scb 638 dev/ic/aic7xxx.c scb->flags |= SCB_SENSE; scb 639 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb); scb 645 dev/ic/aic7xxx.c ahc_scb_timer_reset(scb, 5 * 1000000); scb 747 dev/ic/aic7xxx.c struct scb *scb; scb 767 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 769 dev/ic/aic7xxx.c if (scb == NULL) scb 776 dev/ic/aic7xxx.c scb); scb 793 dev/ic/aic7xxx.c scb); scb 851 dev/ic/aic7xxx.c struct scb *scb; scb 858 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 859 dev/ic/aic7xxx.c if (scb != NULL) scb 860 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, scb 885 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbindex); scb 890 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 894 dev/ic/aic7xxx.c scb->hscb->tag); scb 896 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 899 dev/ic/aic7xxx.c ahc_get_transfer_length(scb), scb->sg_count); scb 900 dev/ic/aic7xxx.c if (scb->sg_count > 0) { scb 901 dev/ic/aic7xxx.c for (i = 0; i < scb->sg_count; i++) { scb 905 dev/ic/aic7xxx.c (aic_le32toh(scb->sg_list[i].len) >> 24 scb 907 dev/ic/aic7xxx.c aic_le32toh(scb->sg_list[i].addr), scb 908 dev/ic/aic7xxx.c aic_le32toh(scb->sg_list[i].len) scb 917 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb); scb 918 dev/ic/aic7xxx.c if ((scb->flags & SCB_SENSE) == 0) { scb 919 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_DATA_RUN_ERR); scb 921 dev/ic/aic7xxx.c scb->flags &= ~SCB_SENSE; scb 922 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_AUTOSENSE_FAIL); scb 924 dev/ic/aic7xxx.c ahc_freeze_scb(scb); scb 955 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbindex); scb 956 dev/ic/aic7xxx.c if (scb != NULL) scb 961 dev/ic/aic7xxx.c ahc_search_qinfifo(ahc, SCB_GET_TARGET(ahc, scb), scb 962 dev/ic/aic7xxx.c SCB_GET_CHANNEL(ahc, scb), scb 963 dev/ic/aic7xxx.c SCB_GET_LUN(scb), scb->hscb->tag, scb 1036 dev/ic/aic7xxx.c struct scb *scb; scb 1072 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 1073 dev/ic/aic7xxx.c if (scb != NULL scb 1075 dev/ic/aic7xxx.c scb = NULL; scb 1151 dev/ic/aic7xxx.c if (scb != NULL) { scb 1152 dev/ic/aic7xxx.c if (SCB_IS_SILENT(scb)) scb 1155 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 1156 dev/ic/aic7xxx.c scb->flags |= SCB_TRANSMISSION_ERROR; scb 1243 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 1244 dev/ic/aic7xxx.c if (scb == NULL) { scb 1253 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 1258 dev/ic/aic7xxx.c ahc_scb_devinfo(ahc, &devinfo, scb); scb 1259 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_SEL_TIMEOUT); scb 1260 dev/ic/aic7xxx.c ahc_freeze_devq(ahc, scb); scb 1328 dev/ic/aic7xxx.c tag = scb->hscb->tag; scb 1329 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 1331 dev/ic/aic7xxx.c scb->hscb->tag, tag == SCB_LIST_NULL ? scb 1346 dev/ic/aic7xxx.c if (scb != NULL scb 1347 dev/ic/aic7xxx.c && scb->io_ctx->ccb_h.func_code== XPT_RESET_DEV scb 1348 dev/ic/aic7xxx.c && ahc_match_scb(ahc, scb, target, channel, scb 1352 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_REQ_CMP); scb 1383 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb); scb 1395 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb); scb 1409 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(ahc, scb); scb 1416 dev/ic/aic7xxx.c if (scb != NULL) { scb 1419 dev/ic/aic7xxx.c if ((scb->hscb->control & TAG_ENB) != 0) scb 1420 dev/ic/aic7xxx.c tag = scb->hscb->tag; scb 1423 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 1425 dev/ic/aic7xxx.c SCB_GET_LUN(scb), tag, scb 1593 dev/ic/aic7xxx.c ahc_print_scb(struct scb *scb) scb 1597 dev/ic/aic7xxx.c struct hardware_scb *hscb = scb->hscb; scb 1600 dev/ic/aic7xxx.c (void *)scb, scb 1613 dev/ic/aic7xxx.c if (scb->sg_count > 0) { scb 1614 dev/ic/aic7xxx.c for (i = 0; i < scb->sg_count; i++) { scb 1617 dev/ic/aic7xxx.c (aic_le32toh(scb->sg_list[i].len) >> 24 scb 1619 dev/ic/aic7xxx.c aic_le32toh(scb->sg_list[i].addr), scb 1620 dev/ic/aic7xxx.c aic_le32toh(scb->sg_list[i].len)); scb 2165 dev/ic/aic7xxx.c struct scb *pending_scb; scb 2314 dev/ic/aic7xxx.c struct scb *scb) scb 2319 dev/ic/aic7xxx.c our_id = SCSIID_OUR_ID(scb->hscb->scsiid); scb 2321 dev/ic/aic7xxx.c if ((scb->flags & SCB_TARGET_SCB) != 0) scb 2323 dev/ic/aic7xxx.c ahc_compile_devinfo(devinfo, our_id, SCB_GET_TARGET(ahc, scb), scb 2324 dev/ic/aic7xxx.c SCB_GET_LUN(scb), SCB_GET_CHANNEL(ahc, scb), role); scb 2348 dev/ic/aic7xxx.c struct scb *scb) scb 2358 dev/ic/aic7xxx.c if ((scb->flags & SCB_DEVICE_RESET) == 0 scb 2362 dev/ic/aic7xxx.c identify_msg = MSG_IDENTIFYFLAG | SCB_GET_LUN(scb); scb 2363 dev/ic/aic7xxx.c if ((scb->hscb->control & DISCENB) != 0) scb 2368 dev/ic/aic7xxx.c if ((scb->hscb->control & TAG_ENB) != 0) { scb 2370 dev/ic/aic7xxx.c scb->hscb->control & (TAG_ENB|SCB_TAG_TYPE); scb 2371 dev/ic/aic7xxx.c ahc->msgout_buf[ahc->msgout_index++] = scb->hscb->tag; scb 2376 dev/ic/aic7xxx.c if (scb->flags & SCB_DEVICE_RESET) { scb 2379 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2389 dev/ic/aic7xxx.c } else if ((scb->flags & SCB_ABORT) != 0) { scb 2390 dev/ic/aic7xxx.c if ((scb->hscb->control & TAG_ENB) != 0) scb 2395 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2397 dev/ic/aic7xxx.c (scb->hscb->control & TAG_ENB) != 0 ? " Tag" : ""); scb 2406 dev/ic/aic7xxx.c } else if ((scb->flags & (SCB_AUTO_NEGOTIATE|SCB_NEGOTIATE)) != 0) { scb 2411 dev/ic/aic7xxx.c printf("SCSIID = %x, target_mask = %x\n", scb->hscb->scsiid, scb 2414 dev/ic/aic7xxx.c "SCB flags = %x", scb->hscb->tag, scb->hscb->control, scb 2415 dev/ic/aic7xxx.c ahc_inb(ahc, MSG_OUT), scb->flags); scb 2423 dev/ic/aic7xxx.c scb->hscb->control &= ~MK_MESSAGE; scb 2622 dev/ic/aic7xxx.c struct scb *scb; scb 2631 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scbid); scb 2645 dev/ic/aic7xxx.c scb = NULL; scb 2646 dev/ic/aic7xxx.c } else if (scb == NULL) { scb 2655 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, CAM_SEQUENCE_FAIL); scb 2657 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2667 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2670 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2697 dev/ic/aic7xxx.c if (scb == NULL) { scb 2704 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 2705 dev/ic/aic7xxx.c scb->flags |= SCB_ABORT; scb 3495 dev/ic/aic7xxx.c struct scb *scb; scb 3503 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 3564 dev/ic/aic7xxx.c } else if ((scb->hscb->control & MSG_SIMPLE_TASK) != 0) { scb 3568 dev/ic/aic7xxx.c tag_type = (scb->hscb->control & MSG_SIMPLE_TASK); scb 3592 dev/ic/aic7xxx.c scb->hscb->control &= mask; scb 3593 dev/ic/aic7xxx.c ahc_set_transaction_tag(scb, /*enabled*/FALSE, scb 3607 dev/ic/aic7xxx.c TAILQ_INSERT_HEAD(untagged_q, scb, links.tqe); scb 3608 dev/ic/aic7xxx.c scb->flags |= SCB_UNTAGGEDQ; scb 3610 dev/ic/aic7xxx.c ahc_busy_tcl(ahc, BUILD_TCL(scb->hscb->scsiid, devinfo->lun), scb 3611 dev/ic/aic7xxx.c scb->hscb->tag); scb 3618 dev/ic/aic7xxx.c ahc_search_qinfifo(ahc, SCB_GET_TARGET(ahc, scb), scb 3619 dev/ic/aic7xxx.c SCB_GET_CHANNEL(ahc, scb), scb 3620 dev/ic/aic7xxx.c SCB_GET_LUN(scb), /*tag*/SCB_LIST_NULL, scb 3641 dev/ic/aic7xxx.c struct scb *scb; scb 3644 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 3650 dev/ic/aic7xxx.c || ahc_get_transfer_dir(scb) != CAM_DIR_IN) { scb 3699 dev/ic/aic7xxx.c sg = ahc_sg_bus_to_virt(scb, sgptr); scb 3707 dev/ic/aic7xxx.c if (sg != scb->sg_list scb 3725 dev/ic/aic7xxx.c sgptr = ahc_sg_virt_to_bus(scb, sg); scb 3749 dev/ic/aic7xxx.c struct scb *scb; scb 3757 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 3764 dev/ic/aic7xxx.c sg = ahc_sg_bus_to_virt(scb, sgptr); scb 3859 dev/ic/aic7xxx.c struct scb *scb) scb 3870 dev/ic/aic7xxx.c if (scb != NULL && (scb->flags & SCB_AUTO_NEGOTIATE) != 0) scb 4257 dev/ic/aic7xxx.c (struct scb *)malloc(sizeof(struct scb) * AHC_SCB_MAX_ALLOC, scb 4261 dev/ic/aic7xxx.c memset(scb_data->scbarray, 0, sizeof(struct scb) * AHC_SCB_MAX_ALLOC); scb 4380 dev/ic/aic7xxx.c struct scb *next_scb; scb 4835 dev/ic/aic7xxx.c (u_int)sizeof(struct scb), scb 5067 dev/ic/aic7xxx.c ahc_match_scb(struct ahc_softc *ahc, struct scb *scb, int target, scb 5073 dev/ic/aic7xxx.c if (scb == NULL) scb 5076 dev/ic/aic7xxx.c targ = SCB_GET_TARGET(ahc, scb); scb 5077 dev/ic/aic7xxx.c chan = SCB_GET_CHANNEL(ahc, scb); scb 5078 dev/ic/aic7xxx.c slun = SCB_GET_LUN(scb); scb 5089 dev/ic/aic7xxx.c group = XPT_FC_GROUP(scb->io_ctx->ccb_h.func_code); scb 5092 dev/ic/aic7xxx.c && ((tag == scb->hscb->tag) scb 5096 dev/ic/aic7xxx.c && ((tag == scb->io_ctx->csio.tag_id) scb 5100 dev/ic/aic7xxx.c match = ((tag == scb->hscb->tag) || (tag == SCB_LIST_NULL)); scb 5108 dev/ic/aic7xxx.c ahc_freeze_devq(struct ahc_softc *ahc, struct scb *scb) scb 5114 dev/ic/aic7xxx.c target = SCB_GET_TARGET(ahc, scb); scb 5115 dev/ic/aic7xxx.c lun = SCB_GET_LUN(scb); scb 5116 dev/ic/aic7xxx.c channel = SCB_GET_CHANNEL(ahc, scb); scb 5122 dev/ic/aic7xxx.c ahc_platform_freeze_devq(ahc, scb); scb 5126 dev/ic/aic7xxx.c ahc_qinfifo_requeue_tail(struct ahc_softc *ahc, struct scb *scb) scb 5128 dev/ic/aic7xxx.c struct scb *prev_scb; scb 5139 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb); scb 5148 dev/ic/aic7xxx.c ahc_qinfifo_requeue(struct ahc_softc *ahc, struct scb *prev_scb, scb 5149 dev/ic/aic7xxx.c struct scb *scb) scb 5152 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, scb->hscb->tag); scb 5154 dev/ic/aic7xxx.c prev_scb->hscb->next = scb->hscb->tag; scb 5158 dev/ic/aic7xxx.c ahc->qinfifo[ahc->qinfifonext] = scb->hscb->tag; scb 5163 dev/ic/aic7xxx.c scb->hscb->next = ahc->next_queued_scb->hscb->tag; scb 5164 dev/ic/aic7xxx.c ahc_sync_scb(ahc, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); scb 5187 dev/ic/aic7xxx.c struct scb *scb; scb 5188 dev/ic/aic7xxx.c struct scb *prev_scb; scb 5225 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qinpos]); scb 5226 dev/ic/aic7xxx.c if (scb == NULL) { scb 5232 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel, lun, tag, role)) { scb 5243 dev/ic/aic7xxx.c ostat = ahc_get_transaction_status(scb); scb 5245 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, status); scb 5246 dev/ic/aic7xxx.c cstat = ahc_get_transaction_status(scb); scb 5248 dev/ic/aic7xxx.c ahc_freeze_scb(scb); scb 5249 dev/ic/aic7xxx.c if ((scb->flags & SCB_ACTIVE) == 0) scb 5251 dev/ic/aic7xxx.c ahc_done(ahc, scb); scb 5258 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb); scb 5259 dev/ic/aic7xxx.c prev_scb = scb; scb 5263 dev/ic/aic7xxx.c ahc_qinfifo_requeue(ahc, prev_scb, scb); scb 5264 dev/ic/aic7xxx.c prev_scb = scb; scb 5290 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qinstart]); scb 5292 dev/ic/aic7xxx.c if (scb == NULL) { scb 5303 dev/ic/aic7xxx.c next = scb->hscb->next; scb 5304 dev/ic/aic7xxx.c ahc->scb_data->scbindex[scb->hscb->tag] = NULL; scb 5305 dev/ic/aic7xxx.c ahc_swap_with_next_hscb(ahc, scb); scb 5306 dev/ic/aic7xxx.c scb->hscb->next = next; scb 5307 dev/ic/aic7xxx.c ahc->qinfifo[qinstart] = scb->hscb->tag; scb 5310 dev/ic/aic7xxx.c ahc_outb(ahc, NEXT_QUEUED_SCB, scb->hscb->tag); scb 5314 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, ahc->qinfifo[qintail]); scb 5315 dev/ic/aic7xxx.c scb->hscb->next = ahc->next_queued_scb->hscb->tag; scb 5337 dev/ic/aic7xxx.c scb = ahc_lookup_scb(ahc, scb_index); scb 5338 dev/ic/aic7xxx.c if (scb == NULL) { scb 5343 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel, scb 5355 dev/ic/aic7xxx.c ostat = ahc_get_transaction_status(scb); scb 5357 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, status); scb 5358 dev/ic/aic7xxx.c cstat = ahc_get_transaction_status(scb); scb 5360 dev/ic/aic7xxx.c ahc_freeze_scb(scb); scb 5361 dev/ic/aic7xxx.c if ((scb->flags & SCB_ACTIVE) == 0) scb 5363 dev/ic/aic7xxx.c ahc_done(ahc, scb); scb 5395 dev/ic/aic7xxx.c struct scb *scb; scb 5426 dev/ic/aic7xxx.c struct scb *next_scb; scb 5432 dev/ic/aic7xxx.c scb = next_scb; scb 5433 dev/ic/aic7xxx.c next_scb = TAILQ_NEXT(scb, links.tqe); scb 5444 dev/ic/aic7xxx.c if ((scb->flags & SCB_ACTIVE) != 0) scb 5447 dev/ic/aic7xxx.c if (ahc_match_scb(ahc, scb, target, channel, lun, scb 5449 dev/ic/aic7xxx.c || (xs != NULL && xs != scb->xs)) scb 5462 dev/ic/aic7xxx.c ostat = ahc_get_transaction_status(scb); scb 5464 dev/ic/aic7xxx.c ahc_set_transaction_status(scb, status); scb 5465 dev/ic/aic7xxx.c cstat = ahc_get_transaction_status(scb); scb 5467 dev/ic/aic7xxx.c ahc_freeze_scb(scb); scb 5468 dev/ic/aic7xxx.c ahc_done(ahc, scb); scb 5472 dev/ic/aic7xxx.c scb->flags &= ~SCB_UNTAGGEDQ; scb 5473 dev/ic/aic7xxx.c TAILQ_REMOVE(untagged_q, scb, links.tqe); scb 5491 dev/ic/aic7xxx.c struct scb *scbp; scb 5653 dev/ic/aic7xxx.c struct scb *scbp; scb 5654 dev/ic/aic7xxx.c struct scb *scbp_next; scb 5972 dev/ic/aic7xxx.c ahc_calc_residual(struct ahc_softc *ahc, struct scb *scb) scb 5996 dev/ic/aic7xxx.c hscb = scb->hscb; scb 6011 dev/ic/aic7xxx.c resid = ahc_get_transfer_length(scb); scb 6025 dev/ic/aic7xxx.c sg = ahc_sg_bus_to_virt(scb, resid_sgptr & SG_PTR_MASK); scb 6040 dev/ic/aic7xxx.c if ((scb->flags & SCB_SENSE) == 0) scb 6041 dev/ic/aic7xxx.c ahc_set_residual(scb, resid); scb 6043 dev/ic/aic7xxx.c ahc_set_sense_residual(scb, resid); scb 6047 dev/ic/aic7xxx.c ahc_print_path(ahc, scb); scb 6049 dev/ic/aic7xxx.c (scb->flags & SCB_SENSE) ? "Sense " : "", resid); scb 6489 dev/ic/aic7xxx.c struct scb *scb; scb 6620 dev/ic/aic7xxx.c LIST_FOREACH(scb, &ahc->pending_scbs, pending_links) { scb 6623 dev/ic/aic7xxx.c /*cur_col =*/ printf("\n%3d ", scb->hscb->tag); scb 6624 dev/ic/aic7xxx.c ahc_scb_control_print(scb->hscb->control, &cur_col, 60); scb 6625 dev/ic/aic7xxx.c ahc_scb_scsiid_print(scb->hscb->scsiid, &cur_col, 60); scb 6626 dev/ic/aic7xxx.c ahc_scb_lun_print(scb->hscb->lun, &cur_col, 60); scb 6628 dev/ic/aic7xxx.c ahc_outb(ahc, SCBPTR, scb->hscb->tag); scb 6640 dev/ic/aic7xxx.c SLIST_FOREACH(scb, &ahc->scb_data->free_scbs, links.sle) { scb 6643 dev/ic/aic7xxx.c printf("%d ", scb->hscb->tag); scb 6654 dev/ic/aic7xxx.c TAILQ_FOREACH(scb, untagged_q, links.tqe) { scb 6657 dev/ic/aic7xxx.c printf("%d ", scb->hscb->tag); scb 6972 dev/ic/aic7xxx.c struct scb *scb; scb 6983 dev/ic/aic7xxx.c LIST_FOREACH(scb, &ahc->pending_scbs, pending_links) { scb 6986 dev/ic/aic7xxx.c ccbh = &scb->io_ctx->ccb_h; scb 169 dev/ic/aic7xxx_inline.h ahc_sg_bus_to_virt(struct scb *scb, scb 172 dev/ic/aic7xxx_inline.h ahc_sg_virt_to_bus(struct scb *scb, scb 177 dev/ic/aic7xxx_inline.h struct scb *scb, int op); scb 187 dev/ic/aic7xxx_inline.h ahc_sg_bus_to_virt(struct scb *scb, uint32_t sg_busaddr) scb 191 dev/ic/aic7xxx_inline.h sg_index = (sg_busaddr - scb->sg_list_phys)/sizeof(struct ahc_dma_seg); scb 195 dev/ic/aic7xxx_inline.h return (&scb->sg_list[sg_index]); scb 199 dev/ic/aic7xxx_inline.h ahc_sg_virt_to_bus(struct scb *scb, struct ahc_dma_seg *sg) scb 204 dev/ic/aic7xxx_inline.h sg_index = sg - &scb->sg_list[1]; scb 206 dev/ic/aic7xxx_inline.h return (scb->sg_list_phys + (sg_index * sizeof(*scb->sg_list))); scb 217 dev/ic/aic7xxx_inline.h ahc_sync_scb(struct ahc_softc *ahc, struct scb *scb, int op) scb 221 dev/ic/aic7xxx_inline.h /*offset*/(scb->hscb - ahc->scb_data->hscbs) * sizeof(*scb->hscb), scb 222 dev/ic/aic7xxx_inline.h /*len*/sizeof(*scb->hscb), op); scb 246 dev/ic/aic7xxx_inline.h struct scb *scb); scb 261 dev/ic/aic7xxx_inline.h IO_INLINE struct scb* scb 263 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_free_scb(struct ahc_softc *ahc, struct scb *scb); scb 264 dev/ic/aic7xxx_inline.h IO_INLINE struct scb *ahc_lookup_scb(struct ahc_softc *ahc, u_int tag); scb 266 dev/ic/aic7xxx_inline.h struct scb *scb); scb 267 dev/ic/aic7xxx_inline.h IO_INLINE void ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb); scb 270 dev/ic/aic7xxx_inline.h struct scb *scb); scb 273 dev/ic/aic7xxx_inline.h struct scb *scb); scb 282 dev/ic/aic7xxx_inline.h ahc_update_residual(struct ahc_softc *ahc, struct scb *scb) scb 286 dev/ic/aic7xxx_inline.h sgptr = aic_le32toh(scb->hscb->sgptr); scb 288 dev/ic/aic7xxx_inline.h ahc_calc_residual(ahc, scb); scb 345 dev/ic/aic7xxx_inline.h IO_INLINE struct scb * scb 348 dev/ic/aic7xxx_inline.h struct scb *scb; scb 350 dev/ic/aic7xxx_inline.h scb = SLIST_FIRST(&ahc->scb_data->free_scbs); scb 352 dev/ic/aic7xxx_inline.h if (scb != NULL) scb 355 dev/ic/aic7xxx_inline.h return (scb); scb 362 dev/ic/aic7xxx_inline.h ahc_free_scb(struct ahc_softc *ahc, struct scb *scb) scb 366 dev/ic/aic7xxx_inline.h hscb = scb->hscb; scb 369 dev/ic/aic7xxx_inline.h scb->flags = SCB_FLAG_NONE; scb 372 dev/ic/aic7xxx_inline.h SLIST_INSERT_HEAD(&ahc->scb_data->free_scbs, scb, links.sle); scb 375 dev/ic/aic7xxx_inline.h ahc_platform_scb_free(ahc, scb); scb 379 dev/ic/aic7xxx_inline.h IO_INLINE struct scb * scb 382 dev/ic/aic7xxx_inline.h struct scb* scb; scb 384 dev/ic/aic7xxx_inline.h scb = ahc->scb_data->scbindex[tag]; scb 385 dev/ic/aic7xxx_inline.h if (scb != NULL) scb 386 dev/ic/aic7xxx_inline.h ahc_sync_scb(ahc, scb, scb 388 dev/ic/aic7xxx_inline.h return (scb); scb 393 dev/ic/aic7xxx_inline.h ahc_swap_with_next_hscb(struct ahc_softc *ahc, struct scb *scb) scb 412 dev/ic/aic7xxx_inline.h memcpy(q_hscb, scb->hscb, sizeof(*scb->hscb)); scb 413 dev/ic/aic7xxx_inline.h if ((scb->flags & SCB_CDB32_PTR) != 0) { scb 419 dev/ic/aic7xxx_inline.h q_hscb->next = scb->hscb->tag; scb 422 dev/ic/aic7xxx_inline.h ahc->next_queued_scb->hscb = scb->hscb; scb 423 dev/ic/aic7xxx_inline.h scb->hscb = q_hscb; scb 426 dev/ic/aic7xxx_inline.h ahc->scb_data->scbindex[scb->hscb->tag] = scb; scb 433 dev/ic/aic7xxx_inline.h ahc_queue_scb(struct ahc_softc *ahc, struct scb *scb) scb 435 dev/ic/aic7xxx_inline.h ahc_swap_with_next_hscb(ahc, scb); scb 437 dev/ic/aic7xxx_inline.h if (scb->hscb->tag == SCB_LIST_NULL scb 438 dev/ic/aic7xxx_inline.h || scb->hscb->next == SCB_LIST_NULL) scb 440 dev/ic/aic7xxx_inline.h scb->hscb->tag, scb->hscb->next); scb 445 dev/ic/aic7xxx_inline.h scb->hscb->lun &= LID; scb 446 dev/ic/aic7xxx_inline.h if (ahc_get_transfer_length(scb) & 0x1) scb 447 dev/ic/aic7xxx_inline.h scb->hscb->lun |= SCB_XFERLEN_ODD; scb 452 dev/ic/aic7xxx_inline.h ahc->qinfifo[ahc->qinfifonext] = scb->hscb->tag; scb 462 dev/ic/aic7xxx_inline.h ahc_sync_scb(ahc, scb, BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE); scb 478 dev/ic/aic7xxx_inline.h ahc_get_sense_buf(struct ahc_softc *ahc, struct scb *scb) scb 482 dev/ic/aic7xxx_inline.h offset = scb - ahc->scb_data->scbarray; scb 487 dev/ic/aic7xxx_inline.h ahc_get_sense_bufaddr(struct ahc_softc *ahc, struct scb *scb) scb 491 dev/ic/aic7xxx_inline.h offset = scb - ahc->scb_data->scbarray; scb 57 dev/ic/aic7xxx_openbsd.c int ahc_setup_data(struct ahc_softc *, struct scsi_xfer *, struct scb *); scb 60 dev/ic/aic7xxx_openbsd.c void ahc_adapter_req_set_xfer_mode(struct ahc_softc *, struct scb *); scb 173 dev/ic/aic7xxx_openbsd.c ahc_done(struct ahc_softc *ahc, struct scb *scb) scb 175 dev/ic/aic7xxx_openbsd.c struct scsi_xfer *xs = scb->xs; scb 182 dev/ic/aic7xxx_openbsd.c LIST_REMOVE(scb, pending_links); scb 183 dev/ic/aic7xxx_openbsd.c if ((scb->flags & SCB_UNTAGGEDQ) != 0) { scb 187 dev/ic/aic7xxx_openbsd.c target_offset = SCB_GET_TARGET_OFFSET(ahc, scb); scb 189 dev/ic/aic7xxx_openbsd.c TAILQ_REMOVE(untagged_q, scb, links.tqe); scb 190 dev/ic/aic7xxx_openbsd.c scb->flags &= ~SCB_UNTAGGEDQ; scb 203 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->dmamap, 0, scb 204 dev/ic/aic7xxx_openbsd.c scb->dmamap->dm_mapsize, op); scb 205 dev/ic/aic7xxx_openbsd.c bus_dmamap_unload(ahc->parent_dmat, scb->dmamap); scb 229 dev/ic/aic7xxx_openbsd.c if ((scb->flags & SCB_SENSE) == 0) { scb 265 dev/ic/aic7xxx_openbsd.c } else if ((scb->flags & SCB_SENSE) != 0) { scb 277 dev/ic/aic7xxx_openbsd.c memcpy(&xs->sense, ahc_get_sense_buf(ahc, scb), scb 278 dev/ic/aic7xxx_openbsd.c aic_le32toh(scb->sg_list->len) & AHC_SG_LEN_MASK); scb 283 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb); scb 311 dev/ic/aic7xxx_openbsd.c struct scb *scb; scb 331 dev/ic/aic7xxx_openbsd.c if ((scb = ahc_get_scb(ahc)) == NULL) { scb 337 dev/ic/aic7xxx_openbsd.c hscb = scb->hscb; scb 339 dev/ic/aic7xxx_openbsd.c SC_DEBUG(xs->sc_link, SDEV_DB3, ("start scb(%p)\n", scb)); scb 340 dev/ic/aic7xxx_openbsd.c scb->xs = xs; scb 341 dev/ic/aic7xxx_openbsd.c timeout_set(&xs->stimeout, ahc_timeout, scb); scb 351 dev/ic/aic7xxx_openbsd.c scb->flags |= SCB_DEVICE_RESET; scb 353 dev/ic/aic7xxx_openbsd.c return (ahc_execute_scb(scb, NULL, 0)); scb 356 dev/ic/aic7xxx_openbsd.c return (ahc_setup_data(ahc, xs, scb)); scb 362 dev/ic/aic7xxx_openbsd.c struct scb *scb; scb 371 dev/ic/aic7xxx_openbsd.c scb = (struct scb *)arg; scb 372 dev/ic/aic7xxx_openbsd.c xs = scb->xs; scb 385 dev/ic/aic7xxx_openbsd.c sg = scb->sg_list; scb 403 dev/ic/aic7xxx_openbsd.c scb->hscb->sgptr = aic_htole32(scb->sg_list_phys|SG_FULL_RESID); scb 410 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->dmamap, 0, scb 411 dev/ic/aic7xxx_openbsd.c scb->dmamap->dm_mapsize, op); scb 416 dev/ic/aic7xxx_openbsd.c bus_dmamap_sync(ahc->parent_dmat, scb->sg_map->sg_dmamap, scb 417 dev/ic/aic7xxx_openbsd.c 0, scb->sg_map->sg_dmamap->dm_mapsize, scb 421 dev/ic/aic7xxx_openbsd.c scb->hscb->dataptr = scb->sg_list->addr; scb 422 dev/ic/aic7xxx_openbsd.c scb->hscb->datacnt = scb->sg_list->len; scb 424 dev/ic/aic7xxx_openbsd.c scb->hscb->sgptr = aic_htole32(SG_LIST_NULL); scb 425 dev/ic/aic7xxx_openbsd.c scb->hscb->dataptr = 0; scb 426 dev/ic/aic7xxx_openbsd.c scb->hscb->datacnt = 0; scb 429 dev/ic/aic7xxx_openbsd.c scb->sg_count = nsegments; scb 439 dev/ic/aic7xxx_openbsd.c bus_dmamap_unload(ahc->parent_dmat, scb->dmamap); scb 441 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb); scb 446 dev/ic/aic7xxx_openbsd.c tinfo = ahc_fetch_transinfo(ahc, SCSIID_CHANNEL(ahc, scb->hscb->scsiid), scb 447 dev/ic/aic7xxx_openbsd.c SCSIID_OUR_ID(scb->hscb->scsiid), scb 448 dev/ic/aic7xxx_openbsd.c SCSIID_TARGET(ahc, scb->hscb->scsiid), scb 451 dev/ic/aic7xxx_openbsd.c mask = SCB_GET_TARGET_MASK(ahc, scb); scb 452 dev/ic/aic7xxx_openbsd.c scb->hscb->scsirate = tinfo->scsirate; scb 453 dev/ic/aic7xxx_openbsd.c scb->hscb->scsioffset = tinfo->curr.offset; scb 456 dev/ic/aic7xxx_openbsd.c scb->hscb->control |= ULTRAENB; scb 459 dev/ic/aic7xxx_openbsd.c scb->hscb->control |= DISCENB; scb 462 dev/ic/aic7xxx_openbsd.c scb->flags |= SCB_AUTO_NEGOTIATE; scb 463 dev/ic/aic7xxx_openbsd.c scb->hscb->control |= MK_MESSAGE; scb 467 dev/ic/aic7xxx_openbsd.c scb->hscb->control |= TAG_ENB; scb 473 dev/ic/aic7xxx_openbsd.c LIST_INSERT_HEAD(&ahc->pending_scbs, scb, pending_links); scb 488 dev/ic/aic7xxx_openbsd.c if ((scb->hscb->control & (TARGET_SCB|TAG_ENB)) == 0 scb 493 dev/ic/aic7xxx_openbsd.c target_offset = SCB_GET_TARGET_OFFSET(ahc, scb); scb 495 dev/ic/aic7xxx_openbsd.c TAILQ_INSERT_TAIL(untagged_q, scb, links.tqe); scb 496 dev/ic/aic7xxx_openbsd.c scb->flags |= SCB_UNTAGGEDQ; scb 497 dev/ic/aic7xxx_openbsd.c if (TAILQ_FIRST(untagged_q) != scb) { scb 506 dev/ic/aic7xxx_openbsd.c scb->flags |= SCB_ACTIVE; scb 508 dev/ic/aic7xxx_openbsd.c if ((scb->flags & SCB_TARGET_IMMEDIATE) != 0) { scb 510 dev/ic/aic7xxx_openbsd.c ahc->scb_data->scbindex[scb->hscb->tag] = scb; scb 513 dev/ic/aic7xxx_openbsd.c ahc_outb(ahc, SCBPTR, scb->hscb->tag); scb 514 dev/ic/aic7xxx_openbsd.c ahc_outb(ahc, TARG_IMMEDIATE_SCB, scb->hscb->tag); scb 517 dev/ic/aic7xxx_openbsd.c ahc_queue_scb(ahc, scb); scb 524 dev/ic/aic7xxx_openbsd.c ahc_adapter_req_set_xfer_mode(ahc, scb); scb 525 dev/ic/aic7xxx_openbsd.c ahc_scb_devinfo(ahc, &devinfo, scb); scb 545 dev/ic/aic7xxx_openbsd.c ahc_timeout(scb); scb 574 dev/ic/aic7xxx_openbsd.c struct scb *scb) scb 579 dev/ic/aic7xxx_openbsd.c hscb = scb->hscb; scb 586 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb); scb 596 dev/ic/aic7xxx_openbsd.c scb->flags |= SCB_CDB32_PTR; scb 606 dev/ic/aic7xxx_openbsd.c scb->dmamap, xs->data, scb 617 dev/ic/aic7xxx_openbsd.c ahc_free_scb(ahc, scb); scb 621 dev/ic/aic7xxx_openbsd.c error = ahc_execute_scb(scb, scb 622 dev/ic/aic7xxx_openbsd.c scb->dmamap->dm_segs, scb 623 dev/ic/aic7xxx_openbsd.c scb->dmamap->dm_nsegs); scb 626 dev/ic/aic7xxx_openbsd.c return ahc_execute_scb(scb, NULL, 0); scb 633 dev/ic/aic7xxx_openbsd.c struct scb *scb, *list_scb; scb 639 dev/ic/aic7xxx_openbsd.c scb = (struct scb *)arg; scb 640 dev/ic/aic7xxx_openbsd.c ahc = (struct ahc_softc *)scb->xs->sc_link->adapter_softc; scb 645 dev/ic/aic7xxx_openbsd.c printf("%s: SCB %d timed out\n", ahc_name(ahc), scb->hscb->tag); scb 651 dev/ic/aic7xxx_openbsd.c if (scb->flags & SCB_ACTIVE) { scb 652 dev/ic/aic7xxx_openbsd.c channel = SCB_GET_CHANNEL(ahc, scb); scb 653 dev/ic/aic7xxx_openbsd.c ahc_set_transaction_status(scb, CAM_CMD_TIMEOUT); scb 732 dev/ic/aic7xxx_openbsd.c ahc_adapter_req_set_xfer_mode(struct ahc_softc *ahc, struct scb *scb) scb 744 dev/ic/aic7xxx_openbsd.c ahc_scb_devinfo(ahc, &devinfo, scb); scb 745 dev/ic/aic7xxx_openbsd.c quirks = scb->xs->sc_link->quirks; scb 170 dev/ic/aic7xxx_openbsd.h ahc_scb_timer_reset(struct scb *scb, u_int usec) scb 172 dev/ic/aic7xxx_openbsd.h if (!(scb->xs->xs_control & XS_CTL_POLL)) { scb 173 dev/ic/aic7xxx_openbsd.h callout_reset(&scb->xs->xs_callout, scb 174 dev/ic/aic7xxx_openbsd.h (usec * hz)/1000000, ahc_timeout, scb); scb 205 dev/ic/aic7xxx_openbsd.h static __inline void ahc_set_transaction_status(struct scb *, uint32_t); scb 206 dev/ic/aic7xxx_openbsd.h static __inline void ahc_set_scsi_status(struct scb *, uint32_t); scb 207 dev/ic/aic7xxx_openbsd.h static __inline uint32_t ahc_get_transaction_status(struct scb *); scb 208 dev/ic/aic7xxx_openbsd.h static __inline uint32_t ahc_get_scsi_status(struct scb *); scb 209 dev/ic/aic7xxx_openbsd.h static __inline void ahc_set_transaction_tag(struct scb *, int, u_int); scb 210 dev/ic/aic7xxx_openbsd.h static __inline u_long ahc_get_transfer_length(struct scb *); scb 211 dev/ic/aic7xxx_openbsd.h static __inline int ahc_get_transfer_dir(struct scb *); scb 212 dev/ic/aic7xxx_openbsd.h static __inline void ahc_set_residual(struct scb *, u_long); scb 213 dev/ic/aic7xxx_openbsd.h static __inline void ahc_set_sense_residual(struct scb *, u_long); scb 214 dev/ic/aic7xxx_openbsd.h static __inline u_long ahc_get_residual(struct scb *); scb 215 dev/ic/aic7xxx_openbsd.h static __inline int ahc_perform_autosense(struct scb *); scb 217 dev/ic/aic7xxx_openbsd.h struct scb *); scb 218 dev/ic/aic7xxx_openbsd.h static __inline void ahc_freeze_scb(struct scb *); scb 219 dev/ic/aic7xxx_openbsd.h static __inline void ahc_platform_freeze_devq(struct ahc_softc *, struct scb *); scb 224 dev/ic/aic7xxx_openbsd.h void ahc_set_transaction_status(struct scb *scb, uint32_t status) scb 226 dev/ic/aic7xxx_openbsd.h scb->xs->error = status; scb 230 dev/ic/aic7xxx_openbsd.h void ahc_set_scsi_status(struct scb *scb, uint32_t status) scb 232 dev/ic/aic7xxx_openbsd.h scb->xs->status = status; scb 236 dev/ic/aic7xxx_openbsd.h uint32_t ahc_get_transaction_status(struct scb *scb) scb 238 dev/ic/aic7xxx_openbsd.h if (scb->xs->flags & ITSDONE) scb 241 dev/ic/aic7xxx_openbsd.h return scb->xs->error; scb 245 dev/ic/aic7xxx_openbsd.h uint32_t ahc_get_scsi_status(struct scb *scb) scb 247 dev/ic/aic7xxx_openbsd.h return (scb->xs->status); scb 251 dev/ic/aic7xxx_openbsd.h void ahc_set_transaction_tag(struct scb *scb, int enabled, u_int type) scb 256 dev/ic/aic7xxx_openbsd.h u_long ahc_get_transfer_length(struct scb *scb) scb 258 dev/ic/aic7xxx_openbsd.h return (scb->xs->datalen); scb 262 dev/ic/aic7xxx_openbsd.h int ahc_get_transfer_dir(struct scb *scb) scb 264 dev/ic/aic7xxx_openbsd.h return (scb->xs->flags & (SCSI_DATA_IN | SCSI_DATA_OUT)); scb 268 dev/ic/aic7xxx_openbsd.h void ahc_set_residual(struct scb *scb, u_long resid) scb 270 dev/ic/aic7xxx_openbsd.h scb->xs->resid = resid; scb 274 dev/ic/aic7xxx_openbsd.h void ahc_set_sense_residual(struct scb *scb, u_long resid) scb 276 dev/ic/aic7xxx_openbsd.h scb->xs->resid = resid; scb 280 dev/ic/aic7xxx_openbsd.h u_long ahc_get_residual(struct scb *scb) scb 282 dev/ic/aic7xxx_openbsd.h return (scb->xs->resid); scb 286 dev/ic/aic7xxx_openbsd.h int ahc_perform_autosense(struct scb *scb) scb 293 dev/ic/aic7xxx_openbsd.h ahc_get_sense_bufsize(struct ahc_softc *ahc, struct scb *scb) scb 299 dev/ic/aic7xxx_openbsd.h ahc_freeze_scb(struct scb *scb) scb 304 dev/ic/aic7xxx_openbsd.h ahc_platform_freeze_devq(struct ahc_softc *ahc, struct scb *scb) scb 317 dev/ic/aic7xxx_openbsd.h ahc_platform_scb_free(struct ahc_softc *ahc, struct scb *scb) scb 327 dev/ic/aic7xxx_openbsd.h timeout_del(&scb->xs->stimeout); scb 389 dev/ic/aic7xxx_openbsd.h static __inline void ahc_print_path(struct ahc_softc *, struct scb *); scb 393 dev/ic/aic7xxx_openbsd.h ahc_print_path(struct ahc_softc *ahc, struct scb *scb) scb 395 dev/ic/aic7xxx_openbsd.h sc_print_addr(scb->xs->sc_link); scb 427 dev/ic/aic7xxx_openbsd.h void ahc_done(struct ahc_softc *, struct scb *); scb 94 dev/ic/aic7xxxvar.h #define SCB_IS_SCSIBUS_B(ahc, scb) \ scb 95 dev/ic/aic7xxxvar.h (SCSIID_CHANNEL(ahc, (scb)->hscb->scsiid) == 'B') scb 96 dev/ic/aic7xxxvar.h #define SCB_GET_OUR_ID(scb) \ scb 97 dev/ic/aic7xxxvar.h SCSIID_OUR_ID((scb)->hscb->scsiid) scb 98 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET(ahc, scb) \ scb 99 dev/ic/aic7xxxvar.h SCSIID_TARGET((ahc), (scb)->hscb->scsiid) scb 100 dev/ic/aic7xxxvar.h #define SCB_GET_CHANNEL(ahc, scb) \ scb 101 dev/ic/aic7xxxvar.h SCSIID_CHANNEL(ahc, (scb)->hscb->scsiid) scb 102 dev/ic/aic7xxxvar.h #define SCB_GET_LUN(scb) \ scb 103 dev/ic/aic7xxxvar.h ((scb)->hscb->lun & LID) scb 104 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET_OFFSET(ahc, scb) \ scb 105 dev/ic/aic7xxxvar.h (SCB_GET_TARGET(ahc, scb)) scb 106 dev/ic/aic7xxxvar.h #define SCB_GET_TARGET_MASK(ahc, scb) \ scb 107 dev/ic/aic7xxxvar.h (0x01 << (SCB_GET_TARGET_OFFSET(ahc, scb))) scb 109 dev/ic/aic7xxxvar.h #define SCB_IS_SILENT(scb) \ scb 111 dev/ic/aic7xxxvar.h && (((scb)->flags & SCB_SILENT) != 0)) scb 113 dev/ic/aic7xxxvar.h #define SCB_IS_SILENT(scb) \ scb 114 dev/ic/aic7xxxvar.h (((scb)->flags & SCB_SILENT) != 0) scb 589 dev/ic/aic7xxxvar.h struct scb { scb 592 dev/ic/aic7xxxvar.h SLIST_ENTRY(scb) sle; scb 593 dev/ic/aic7xxxvar.h TAILQ_ENTRY(scb) tqe; scb 595 dev/ic/aic7xxxvar.h LIST_ENTRY(scb) pending_links; scb 611 dev/ic/aic7xxxvar.h SLIST_HEAD(, scb) free_scbs; /* scb 615 dev/ic/aic7xxxvar.h struct scb *scbindex[256]; /* scb 625 dev/ic/aic7xxxvar.h struct scb *scbarray; /* Array of kernel SCBs */ scb 905 dev/ic/aic7xxxvar.h TAILQ_HEAD(scb_tailq, scb); scb 957 dev/ic/aic7xxxvar.h struct scb *next_queued_scb; scb 962 dev/ic/aic7xxxvar.h LIST_HEAD(, scb) pending_scbs; scb 1218 dev/ic/aic7xxxvar.h struct scb *scb); scb 1219 dev/ic/aic7xxxvar.h int ahc_match_scb(struct ahc_softc *ahc, struct scb *scb, scb 1265 dev/ic/aic7xxxvar.h void ahc_freeze_devq(struct ahc_softc *, struct scb *); scb 1270 dev/ic/aic7xxxvar.h void ahc_calc_residual(struct ahc_softc *, struct scb *); scb 1310 dev/ic/aic7xxxvar.h struct ahc_devinfo *, struct scb *); scb 1352 dev/ic/aic7xxxvar.h void ahc_print_scb(struct scb *scb); scb 232 dev/ic/i82596.c sc->scb = 32; scb 235 dev/ic/i82596.c (sc->ie_bus_write16)(sc, IE_ISCP_SCB(sc->iscp), sc->scb); scb 296 dev/ic/i82596.c (sc->ie_bus_write16)(sc, IE_ISCP_SCB(sc->iscp), sc->scb); scb 372 dev/ic/i82596.c off = IE_SCB_CMD(sc->scb); scb 389 dev/ic/i82596.c sc->ie_bus_read16(sc, IE_SCB_STATUS(sc->scb)), scb 430 dev/ic/i82596.c off = IE_SCB_CMD(sc->scb); scb 482 dev/ic/i82596.c int scb = sc->scb; scb 485 dev/ic/i82596.c sc->ie_bus_read16(sc, IE_SCB_ERRCRC(scb)) + scb 486 dev/ic/i82596.c sc->ie_bus_read16(sc, IE_SCB_ERRALN(scb)) + scb 487 dev/ic/i82596.c sc->ie_bus_read16(sc, IE_SCB_ERRRES(scb)) + scb 488 dev/ic/i82596.c sc->ie_bus_read16(sc, IE_SCB_ERROVR(scb)); scb 491 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_ERRCRC(scb), 0); scb 492 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_ERRALN(scb), 0); scb 493 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_ERRRES(scb), 0); scb 494 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_ERROVR(scb), 0); scb 515 dev/ic/i82596.c off = IE_SCB_STATUS(sc->scb); scb 1191 dev/ic/i82596.c off = IE_SCB_STATUS(sc->scb); scb 1205 dev/ic/i82596.c off = IE_SCB_CMDLST(sc->scb); scb 1424 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_CMDLST(sc->scb), cmdbuf); scb 1831 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_RCVLST(sc->scb), scb 1843 dev/ic/i82596.c sc->ie_bus_write16(sc, IE_SCB_CMDLST(sc->scb), scb 234 dev/ic/i82596var.h int scb; /* Offset to SCB (set by front-end) */ scb 299 dev/ic/i82596var.h int off = IE_SCB_STATUS(sc->scb); scb 235 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb; scb 361 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb = sc->scb; scb 363 dev/isa/if_ie.c scb->ie_command = scb->ie_status & mask; scb 366 dev/isa/if_ie.c while (scb->ie_command) scb 836 dev/isa/if_ie.c status = sc->scb->ie_status & IE_ST_WHENCE; scb 883 dev/isa/if_ie.c status = sc->scb->ie_status & IE_ST_WHENCE; scb 901 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb = sc->scb; scb 912 dev/isa/if_ie.c scb->ie_err_crc + scb->ie_err_align + scb 913 dev/isa/if_ie.c scb->ie_err_resource + scb->ie_err_overrun; scb 914 dev/isa/if_ie.c scb->ie_err_crc = scb->ie_err_align = scb 915 dev/isa/if_ie.c scb->ie_err_resource = scb->ie_err_overrun = scb 922 dev/isa/if_ie.c (scb->ie_status & IE_RU_READY) == 0) { scb 925 dev/isa/if_ie.c scb->ie_recv_list = MK_16(MEM, sc->rframes[0]); scb 1215 dev/isa/if_ie.c sc->scb->ie_command_list = MK_16(MEM, sc->xmit_cmds[sc->xctail]); scb 1534 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb; scb 1554 dev/isa/if_ie.c scb = (volatile struct ie_sys_ctl_block *)where; scb 1555 dev/isa/if_ie.c bzero((char *)scb, sizeof *scb); scb 1562 dev/isa/if_ie.c iscp->ie_scb_offset = MK_16(realbase, scb) + 256; scb 1584 dev/isa/if_ie.c iscp->ie_scb_offset = MK_16(realbase, scb); scb 1600 dev/isa/if_ie.c sc->scb = scb; scb 1823 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb = sc->scb; scb 1826 dev/isa/if_ie.c scb->ie_command = (u_short)cmd; scb 1852 dev/isa/if_ie.c while (scb->ie_command) scb 1873 dev/isa/if_ie.c sc->scb->ie_command_list = MK_16(MEM, cmd); scb 1956 dev/isa/if_ie.c sc->scb->ie_recv_list = MK_16(MEM, sc->rframes[0]); scb 1998 dev/isa/if_ie.c sc->scb->ie_command_list = MK_16(MEM, cmd); scb 2020 dev/isa/if_ie.c volatile struct ie_sys_ctl_block *scb = sc->scb; scb 2023 dev/isa/if_ie.c ptr = (void *)ALIGN(scb + 1); scb 2031 dev/isa/if_ie.c scb->ie_command_list = MK_16(MEM, cmd); scb 2053 dev/isa/if_ie.c scb->ie_command_list = MK_16(MEM, cmd); scb 2087 dev/isa/if_ie.c sc->scb->ie_recv_list = MK_16(MEM, sc->rframes[0]); scb 204 dev/isa/seagate.c struct sea_scb scb[SCB_TABLE_SIZE]; scb 279 dev/isa/seagate.c int sea_select(struct sea_softc *sea, struct sea_scb *scb); scb 282 dev/isa/seagate.c int sea_abort(struct sea_softc *, struct sea_scb *scb); scb 289 dev/isa/seagate.c void sea_send_scb(struct sea_softc *sea, struct sea_scb *scb); scb 323 dev/isa/seagate.c struct sea_scb *scb; scb 328 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->ready_list, chain) scb 331 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->nexus_list, chain) scb 527 dev/isa/seagate.c TAILQ_INSERT_TAIL(&sea->free_list, &sea->scb[i], chain); scb 540 dev/isa/seagate.c struct sea_scb *scb; scb 551 dev/isa/seagate.c if ((scb = sea_get_scb(sea, flags)) == NULL) { scb 554 dev/isa/seagate.c scb->flags = SCB_ACTIVE; scb 555 dev/isa/seagate.c scb->xs = xs; scb 570 dev/isa/seagate.c scb->datalen = xs->datalen; scb 571 dev/isa/seagate.c scb->data = xs->data; scb 579 dev/isa/seagate.c sea_send_scb(sea, scb); scb 585 dev/isa/seagate.c timeout_set(&scb->xs->stimeout, sea_timeout, scb); scb 586 dev/isa/seagate.c timeout_add(&scb->xs->stimeout, (xs->timeout * hz) / 1000); scb 597 dev/isa/seagate.c sea_timeout(scb); scb 599 dev/isa/seagate.c sea_timeout(scb); scb 612 dev/isa/seagate.c struct sea_scb *scb; scb 621 dev/isa/seagate.c scb = TAILQ_FIRST(&sea->free_list); scb 622 dev/isa/seagate.c if (scb) { scb 623 dev/isa/seagate.c TAILQ_REMOVE(&sea->free_list, scb, chain); scb 627 dev/isa/seagate.c scb = (struct sea_scb *) malloc(sizeof(struct sea_scb), scb 629 dev/isa/seagate.c if (scb) { scb 630 dev/isa/seagate.c bzero(scb, sizeof(struct sea_scb)); scb 643 dev/isa/seagate.c return scb; scb 655 dev/isa/seagate.c sea_send_scb(struct sea_softc *sea, struct sea_scb *scb) scb 658 dev/isa/seagate.c TAILQ_INSERT_TAIL(&sea->ready_list, scb, chain); scb 673 dev/isa/seagate.c struct sea_scb *scb; scb 696 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->ready_list, chain) { scb 697 dev/isa/seagate.c if (!(sea->busy[scb->xs->sc_link->target] & scb 698 dev/isa/seagate.c (1 << scb->xs->sc_link->lun))) { scb 699 dev/isa/seagate.c TAILQ_REMOVE(&sea->ready_list, scb, scb 733 dev/isa/seagate.c if (sea_select(sea, scb)) { scb 736 dev/isa/seagate.c scb, chain); scb 766 dev/isa/seagate.c sea_free_scb(struct sea_softc *sea, struct sea_scb *scb, int flags) scb 772 dev/isa/seagate.c scb->flags = SCB_FREE; scb 773 dev/isa/seagate.c TAILQ_INSERT_HEAD(&sea->free_list, scb, chain); scb 779 dev/isa/seagate.c if (TAILQ_NEXT(scb, chain) == NULL) scb 788 dev/isa/seagate.c struct sea_scb *scb = arg; scb 789 dev/isa/seagate.c struct scsi_xfer *xs = scb->xs; scb 804 dev/isa/seagate.c if (scb->flags & SCB_ABORTED) { scb 807 dev/isa/seagate.c scb->xs->retries = 0; scb 808 dev/isa/seagate.c scb->flags |= SCB_ABORTED; scb 809 dev/isa/seagate.c sea_done(sea, scb); scb 813 dev/isa/seagate.c scb->flags |= SCB_ABORTED; scb 814 dev/isa/seagate.c sea_abort(sea, scb); scb 817 dev/isa/seagate.c timeout_set(&scb->xs->stimeout, sea_timeout, scb); scb 818 dev/isa/seagate.c timeout_add(&scb->xs->stimeout, 2 * hz); scb 834 dev/isa/seagate.c struct sea_scb *scb; scb 877 dev/isa/seagate.c scb = NULL; scb 886 dev/isa/seagate.c TAILQ_FOREACH(scb, &sea->nexus_list, chain) scb 887 dev/isa/seagate.c if (target_mask == (1 << scb->xs->sc_link->target) && scb 888 dev/isa/seagate.c lun == scb->xs->sc_link->lun) { scb 889 dev/isa/seagate.c TAILQ_REMOVE(&sea->nexus_list, scb, scb 893 dev/isa/seagate.c if (!scb) { scb 912 dev/isa/seagate.c sea->nexus = scb; scb 1003 dev/isa/seagate.c sea_select(struct sea_softc *sea, struct sea_scb *scb) scb 1021 dev/isa/seagate.c scb->flags |= SCB_ERROR; scb 1025 dev/isa/seagate.c scb->flags |= SCB_TIMEOUT; scb 1032 dev/isa/seagate.c DATA = (u_char)((1 << scb->xs->sc_link->target) | sea->our_id_mask); scb 1048 dev/isa/seagate.c scb->flags |= SCB_TIMEOUT; scb 1074 dev/isa/seagate.c msg[0] = MSG_IDENTIFY(scb->xs->sc_link->lun, 1); scb 1085 dev/isa/seagate.c sea->nexus = scb; scb 1086 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] |= 1 << scb->xs->sc_link->lun; scb 1097 dev/isa/seagate.c sea_abort(struct sea_softc *sea, struct sea_scb *scb) scb 1109 dev/isa/seagate.c if (scb == tmp) { scb 1110 dev/isa/seagate.c TAILQ_REMOVE(&sea->ready_list, scb, chain); scb 1128 dev/isa/seagate.c if (scb == tmp) { scb 1129 dev/isa/seagate.c if (sea_select(sea, scb)) scb 1140 dev/isa/seagate.c if (scb == tmp) { scb 1142 dev/isa/seagate.c scb, chain); scb 1154 dev/isa/seagate.c sea_done(struct sea_softc *sea, struct sea_scb *scb) scb 1156 dev/isa/seagate.c struct scsi_xfer *xs = scb->xs; scb 1158 dev/isa/seagate.c timeout_del(&scb->xs->stimeout); scb 1160 dev/isa/seagate.c xs->resid = scb->datalen; scb 1163 dev/isa/seagate.c if (scb->flags == SCB_ACTIVE) { scb 1166 dev/isa/seagate.c if (scb->flags & (SCB_TIMEOUT | SCB_ABORTED)) scb 1168 dev/isa/seagate.c if (scb->flags & SCB_ERROR) scb 1172 dev/isa/seagate.c sea_free_scb(sea, scb, xs->flags); scb 1211 dev/isa/seagate.c struct sea_scb *scb = sea->nexus; scb 1228 dev/isa/seagate.c scb->flags = SCB_ERROR; scb 1230 dev/isa/seagate.c sea_done(sea, scb); scb 1257 dev/isa/seagate.c if (!scb->data) scb 1260 dev/isa/seagate.c if (scb->datalen && !(scb->datalen % BLOCK_SIZE)) { scb 1261 dev/isa/seagate.c while (scb->datalen) { scb 1284 dev/isa/seagate.c "=S" (scb->data), scb 1287 dev/isa/seagate.c "0" (scb->data), scb 1294 dev/isa/seagate.c DATA = *(scb->data++); scb 1304 dev/isa/seagate.c "=D" (scb->data), "=c" (block) , scb 1306 dev/isa/seagate.c "0" (scb->data), scb 1313 dev/isa/seagate.c *(scb->data++) = DATA; scb 1316 dev/isa/seagate.c scb->datalen -= BLOCK_SIZE; scb 1320 dev/isa/seagate.c if (scb->datalen) scb 1321 dev/isa/seagate.c sea_transfer_pio(sea, &phase, &scb->datalen, scb 1322 dev/isa/seagate.c &scb->data); scb 1333 dev/isa/seagate.c scb->flags = SCB_ABORTED; scb 1336 dev/isa/seagate.c sea_done(sea, scb); scb 1342 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] &= scb 1343 dev/isa/seagate.c ~(1 << scb->xs->sc_link->lun); scb 1345 dev/isa/seagate.c sea_done(sea, scb); scb 1354 dev/isa/seagate.c scb, chain); scb 1384 dev/isa/seagate.c sea->busy[scb->xs->sc_link->target] &= scb 1385 dev/isa/seagate.c ~(1 << scb->xs->sc_link->lun); scb 1387 dev/isa/seagate.c scb->flags = SCB_ABORTED; scb 1390 dev/isa/seagate.c sea_done(sea, scb); scb 1396 dev/isa/seagate.c len = scb->xs->cmdlen; scb 1397 dev/isa/seagate.c data = (char *) scb->xs->cmd; scb 1404 dev/isa/seagate.c scb->xs->status = tmp; scb 1413 dev/isa/seagate.c scb->flags = SCB_TIMEOUT; scb 1415 dev/isa/seagate.c sea_done(sea, scb); scb 342 dev/isa/wds.c struct wds_scb *scb; scb 365 dev/isa/wds.c scb = wds_scb_phys_kv(sc, phystol(wmbi->scb_addr)); scb 366 dev/isa/wds.c if (!scb) { scb 374 dev/isa/wds.c u_int8_t *cp = (u_int8_t *)&scb->cmd.scb; scb 379 dev/isa/wds.c printf("scb addr = 0x%x\n", scb); scb 383 dev/isa/wds.c timeout_del(&scb->xs->stimeout); scb 385 dev/isa/wds.c isadma_copyfrombuf((caddr_t)scb, SCB_PHYS_SIZE, scb 386 dev/isa/wds.c 1, scb->scb_phys); scb 388 dev/isa/wds.c wds_done(sc, scb, wmbi->stat); scb 439 dev/isa/wds.c wds_reset_scb(sc, scb) scb 441 dev/isa/wds.c struct wds_scb *scb; scb 444 dev/isa/wds.c scb->flags = 0; scb 451 dev/isa/wds.c wds_free_scb(sc, scb) scb 453 dev/isa/wds.c struct wds_scb *scb; scb 457 dev/isa/wds.c if (scb->buf != 0) { scb 458 dev/isa/wds.c wds_free_buf(sc, scb->buf); scb 459 dev/isa/wds.c scb->buf = 0; scb 465 dev/isa/wds.c if (scb->scb_phys[0].addr) scb 466 dev/isa/wds.c isadma_unmap((caddr_t)scb, SCB_PHYS_SIZE, 1, scb->scb_phys); scb 469 dev/isa/wds.c wds_reset_scb(sc, scb); scb 470 dev/isa/wds.c TAILQ_INSERT_HEAD(&sc->sc_free_scb, scb, chain); scb 476 dev/isa/wds.c if (TAILQ_NEXT(scb, chain) == NULL) scb 505 dev/isa/wds.c wds_init_scb(sc, scb) scb 507 dev/isa/wds.c struct wds_scb *scb; scb 511 dev/isa/wds.c bzero(scb, sizeof(struct wds_scb)); scb 516 dev/isa/wds.c scb->hashkey = KVTOPHYS(scb); scb 517 dev/isa/wds.c hashnum = SCB_HASH(scb->hashkey); scb 518 dev/isa/wds.c scb->nexthash = sc->sc_scbhash[hashnum]; scb 519 dev/isa/wds.c sc->sc_scbhash[hashnum] = scb; scb 520 dev/isa/wds.c wds_reset_scb(sc, scb); scb 535 dev/isa/wds.c struct wds_scb *scb; scb 555 dev/isa/wds.c scb = TAILQ_FIRST(&sc->sc_free_scb); scb 556 dev/isa/wds.c if (scb) { scb 557 dev/isa/wds.c TAILQ_REMOVE(&sc->sc_free_scb, scb, chain); scb 561 dev/isa/wds.c scb = (struct wds_scb *) malloc(sizeof(struct wds_scb), scb 563 dev/isa/wds.c if (!scb) { scb 568 dev/isa/wds.c wds_init_scb(sc, scb); scb 577 dev/isa/wds.c scb->flags |= SCB_ALLOC; scb 580 dev/isa/wds.c if (isadma_map((caddr_t)scb, SCB_PHYS_SIZE, scb->scb_phys, scb 582 dev/isa/wds.c hashnum = SCB_HASH(scb->scb_phys[0].addr); scb 583 dev/isa/wds.c scb->nexthash = sc->sc_scbhash[hashnum]; scb 586 dev/isa/wds.c scb->scb_phys[0].addr = 0; scb 587 dev/isa/wds.c wds_free_scb(sc, scb); scb 588 dev/isa/wds.c scb = 0; scb 592 dev/isa/wds.c scb->buf = wds_get_buf(sc, flags); scb 593 dev/isa/wds.c if (scb->buf == 0) { scb 594 dev/isa/wds.c wds_free_scb(sc, scb); scb 595 dev/isa/wds.c scb = 0; scb 603 dev/isa/wds.c return (scb); scb 640 dev/isa/wds.c struct wds_scb *scb = sc->sc_scbhash[hashnum]; scb 642 dev/isa/wds.c while (scb) { scb 643 dev/isa/wds.c if (scb->hashkey == scb_phys) scb 646 dev/isa/wds.c if (scb->hashkey == (scb_phys - sizeof(struct wds_cmd))) scb 648 dev/isa/wds.c scb = scb->nexthash; scb 650 dev/isa/wds.c return scb; scb 657 dev/isa/wds.c wds_queue_scb(sc, scb) scb 659 dev/isa/wds.c struct wds_scb *scb; scb 662 dev/isa/wds.c TAILQ_INSERT_TAIL(&sc->sc_waiting_scb, scb, chain); scb 675 dev/isa/wds.c struct wds_scb *scb; scb 685 dev/isa/wds.c scb = wds_scb_phys_kv(sc, phystol(wmbo->scb_addr)); scb 686 dev/isa/wds.c scb->flags &= ~SCB_SENDING; scb 704 dev/isa/wds.c struct wds_scb *scb; scb 709 dev/isa/wds.c while ((scb = TAILQ_FIRST(&sc->sc_waiting_scb)) != NULL) { scb 719 dev/isa/wds.c TAILQ_REMOVE(&sc->sc_waiting_scb, scb, chain); scb 721 dev/isa/wds.c scb->flags |= SCB_SENDING; scb 726 dev/isa/wds.c isadma_copytobuf((caddr_t)scb, SCB_PHYS_SIZE, scb 727 dev/isa/wds.c 1, scb->scb_phys); scb 728 dev/isa/wds.c ltophys(scb->scb_phys[0].addr, wmbo->scb_addr); scb 730 dev/isa/wds.c if (scb->flags & SCB_SENSE) scb 731 dev/isa/wds.c ltophys(KVTOPHYS(&scb->sense), wmbo->scb_addr); scb 733 dev/isa/wds.c ltophys(KVTOPHYS(&scb->cmd), wmbo->scb_addr); scb 742 dev/isa/wds.c if ((scb->flags & SCB_POLLED) == 0) { scb 743 dev/isa/wds.c timeout_set(&scb->xs->stimeout, wds_timeout, scb); scb 744 dev/isa/wds.c timeout_add(&scb->xs->stimeout, (scb->timeout * hz) / 1000); scb 758 dev/isa/wds.c wds_done(sc, scb, stat) scb 760 dev/isa/wds.c struct wds_scb *scb; scb 763 dev/isa/wds.c struct scsi_xfer *xs = scb->xs; scb 769 dev/isa/wds.c scb->flags |= SCB_DONE; scb 775 dev/isa/wds.c bcopy(&scb->sense_data, &xs->sense, sizeof (struct scsi_sense_data)); scb 787 dev/isa/wds.c switch (scb->cmd.venderr) { scb 794 dev/isa/wds.c if (scb->cmd.stat == SCSI_CHECK) { scb 796 dev/isa/wds.c wds_sense (sc, scb); scb 798 dev/isa/wds.c } else if (scb->cmd.stat == SCSI_BUSY) { scb 809 dev/isa/wds.c printf("%s: VENDOR ERROR %02x, scsi %02x\n", sc->sc_dev.dv_xname, scb->cmd.venderr, scb->cmd.stat); scb 838 dev/isa/wds.c bcopy(scb->buf->data, xs->data, xs->datalen); scb 843 dev/isa/wds.c if (scb->data_nseg) { scb 846 dev/isa/wds.c scb->data_nseg, scb->data_phys); scb 848 dev/isa/wds.c scb->data_nseg, scb->data_phys); scb 851 dev/isa/wds.c wds_free_scb(sc, scb); scb 992 dev/isa/wds.c struct wds_scb *scb; scb 996 dev/isa/wds.c if ((scb = wds_get_scb(sc, SCSI_NOSLEEP, 0)) == NULL) { scb 1001 dev/isa/wds.c scb->xs = NULL; scb 1002 dev/isa/wds.c scb->timeout = 40; scb 1004 dev/isa/wds.c bzero(&scb->cmd, sizeof scb->cmd); scb 1005 dev/isa/wds.c scb->cmd.write = 0x80; scb 1006 dev/isa/wds.c scb->cmd.opcode = WDSX_GETFIRMREV; scb 1010 dev/isa/wds.c scb->flags |= SCB_POLLED; scb 1013 dev/isa/wds.c wds_queue_scb(sc, scb); scb 1016 dev/isa/wds.c if (wds_ipoll(sc, scb, scb->timeout)) scb 1020 dev/isa/wds.c printf(": version %x.%02x ", scb->cmd.targ, scb->cmd.scb.opcode); scb 1021 dev/isa/wds.c sc->sc_revision = (scb->cmd.targ << 8) | scb->cmd.scb.opcode; scb 1023 dev/isa/wds.c j = 2 + &(scb->cmd.targ); scb 1031 dev/isa/wds.c wds_free_scb(sc, scb); scb 1054 dev/isa/wds.c struct wds_scb *scb; scb 1081 dev/isa/wds.c if ((scb = wds_get_scb(sc, flags, NEEDBUFFER(sc))) == NULL) { scb 1084 dev/isa/wds.c scb->xs = xs; scb 1085 dev/isa/wds.c scb->timeout = xs->timeout; scb 1096 dev/isa/wds.c bzero(&scb->cmd, sizeof scb->cmd); scb 1097 dev/isa/wds.c bcopy(xs->cmd, &scb->cmd.scb, xs->cmdlen < 12 ? xs->cmdlen : 12); scb 1100 dev/isa/wds.c scb->cmd.targ = (xs->sc_link->target << 5) | xs->sc_link->lun; scb 1105 dev/isa/wds.c scb->cmd.write = (xs->flags & SCSI_DATA_IN) ? 0x80 : 0x00; scb 1108 dev/isa/wds.c sg = scb->scat_gath; scb 1136 dev/isa/wds.c scb->data_nseg = isadma_map(xs->data, xs->datalen, scb 1137 dev/isa/wds.c scb->data_phys, mflags); scb 1138 dev/isa/wds.c for (seg = 0; seg < scb->data_nseg; seg++) { scb 1139 dev/isa/wds.c ltophys(scb->data_phys[seg].addr, scb 1141 dev/isa/wds.c ltophys(scb->data_phys[seg].length, scb 1208 dev/isa/wds.c if (scb->data_nseg == 0) { scb 1214 dev/isa/wds.c scb->data_nseg, scb->data_phys); scb 1215 dev/isa/wds.c ltophys((unsigned)((struct wds_scb *)(scb->scb_phys[0].addr))->scat_gath, scb 1216 dev/isa/wds.c scb->data_addr); scb 1217 dev/isa/wds.c ltophys(scb->data_nseg * sizeof(struct wds_scat_gath), scb 1218 dev/isa/wds.c scb->data_length); scb 1220 dev/isa/wds.c scb->cmd.opcode = WDSX_SCSISG; scb 1221 dev/isa/wds.c ltophys(KVTOPHYS(scb->scat_gath), scb->cmd.data); scb 1222 dev/isa/wds.c ltophys(seg * sizeof(struct wds_scat_gath), scb->cmd.len); scb 1232 dev/isa/wds.c bcopy(xs->data, scb->buf->data, xs->datalen); scb 1234 dev/isa/wds.c bzero(scb->buf->data, xs->datalen); scb 1235 dev/isa/wds.c scb->cmd.opcode = WDSX_SCSICMD; scb 1236 dev/isa/wds.c ltophys(KVTOPHYS(scb->buf->data), scb->cmd.data); scb 1237 dev/isa/wds.c ltophys(xs->datalen, scb->cmd.len); scb 1239 dev/isa/wds.c scb->cmd.opcode = WDSX_SCSICMD; scb 1240 dev/isa/wds.c ltophys(0, scb->cmd.data); scb 1241 dev/isa/wds.c ltophys(0, scb->cmd.len); scb 1244 dev/isa/wds.c scb->cmd.stat = 0x00; scb 1245 dev/isa/wds.c scb->cmd.venderr = 0x00; scb 1246 dev/isa/wds.c ltophys(0, scb->cmd.link); scb 1252 dev/isa/wds.c scb->flags |= SCB_POLLED; scb 1259 dev/isa/wds.c wds_queue_scb(sc, scb); scb 1263 dev/isa/wds.c while ((scb->xs->flags & ITSDONE) == 0) { scb 1264 dev/isa/wds.c tsleep(scb, PRIBIO, "wdswait", 0); scb 1266 dev/isa/wds.c if (scb->data_nseg) { scb 1269 dev/isa/wds.c scb->data_nseg, scb->data_phys); scb 1271 dev/isa/wds.c scb->data_nseg, scb->data_phys); scb 1273 dev/isa/wds.c wds_free_scb(sc, scb); scb 1284 dev/isa/wds.c if (wds_poll(sc, xs, scb->timeout)) { scb 1285 dev/isa/wds.c wds_timeout(scb); scb 1286 dev/isa/wds.c if (wds_poll(sc, xs, scb->timeout)) scb 1287 dev/isa/wds.c wds_timeout(scb); scb 1293 dev/isa/wds.c wds_free_scb(sc, scb); scb 1301 dev/isa/wds.c wds_sense(sc, scb) scb 1303 dev/isa/wds.c struct wds_scb *scb; scb 1305 dev/isa/wds.c struct scsi_xfer *xs = scb->xs; scb 1306 dev/isa/wds.c struct scsi_sense *ss = (void *)&scb->sense.scb; scb 1313 dev/isa/wds.c scb->flags |= SCB_SENSE; scb 1318 dev/isa/wds.c bcopy(scb->buf->data, xs->data, xs->datalen); scb 1328 dev/isa/wds.c scb->sense.targ = scb->cmd.targ; scb 1329 dev/isa/wds.c scb->sense.write = 0x80; scb 1330 dev/isa/wds.c scb->sense.opcode = WDSX_SCSICMD; scb 1331 dev/isa/wds.c ltophys(KVTOPHYS(&scb->sense_data), scb->sense.data); scb 1332 dev/isa/wds.c ltophys(sizeof(struct scsi_sense_data), scb->sense.len); scb 1335 dev/isa/wds.c wds_queue_scb(sc, scb); scb 1379 dev/isa/wds.c wds_ipoll(sc, scb, count) scb 1381 dev/isa/wds.c struct wds_scb *scb; scb 1395 dev/isa/wds.c if (scb->flags & SCB_DONE) scb 1407 dev/isa/wds.c struct wds_scb *scb = arg; scb 1415 dev/isa/wds.c isadma_copyfrombuf((caddr_t)scb, SCB_PHYS_SIZE, 1, scb->scb_phys); scb 1417 dev/isa/wds.c xs = scb->xs; scb 1429 dev/isa/wds.c if (scb->flags & SCB_SENDING) { scb 1440 dev/isa/wds.c if (scb->flags & SCB_ABORT) { scb 1447 dev/isa/wds.c scb->xs->error = XS_TIMEOUT; scb 1448 dev/isa/wds.c scb->timeout = WDS_ABORT_TIMEOUT; scb 1449 dev/isa/wds.c scb->flags |= SCB_ABORT; scb 1450 dev/isa/wds.c wds_queue_scb(sc, scb); scb 57 dev/isa/wdsreg.h struct scsi_generic scb; scb 241 dev/microcode/aic7xxx/aicasm_gram.y | scb scb 242 dev/microcode/aic7xxx/aicasm_gram.y | program scb scb 814 dev/microcode/aic7xxx/aicasm_gram.y scb: