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: