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: