Lines Matching refs:pccb
178 static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, union ccb *pccb);
631 union ccb *pccb = srb->pccb; in arcmsr_report_sense_info() local
633 pccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; in arcmsr_report_sense_info()
634 pccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; in arcmsr_report_sense_info()
635 if(pccb->csio.sense_len) { in arcmsr_report_sense_info()
636 memset(&pccb->csio.sense_data, 0, sizeof(pccb->csio.sense_data)); in arcmsr_report_sense_info()
637 memcpy(&pccb->csio.sense_data, srb->arcmsr_cdb.SenseData, in arcmsr_report_sense_info()
638 get_min(sizeof(struct SENSE_DATA), sizeof(pccb->csio.sense_data))); in arcmsr_report_sense_info()
639 ((u_int8_t *)&pccb->csio.sense_data)[0] = (0x1 << 7 | 0x70); /* Valid,ErrorCode */ in arcmsr_report_sense_info()
640 pccb->ccb_h.status |= CAM_AUTOSNS_VALID; in arcmsr_report_sense_info()
739 union ccb *pccb = srb->pccb; in arcmsr_srb_complete() local
743 if((pccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { in arcmsr_srb_complete()
746 if((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { in arcmsr_srb_complete()
759 pccb->ccb_h.status |= CAM_RELEASE_SIMQ; in arcmsr_srb_complete()
765 xpt_done(pccb); in arcmsr_srb_complete()
775 target = srb->pccb->ccb_h.target_id; in arcmsr_report_srb_state()
776 lun = srb->pccb->ccb_h.target_lun; in arcmsr_report_srb_state()
781 srb->pccb->ccb_h.status |= CAM_REQ_CMP; in arcmsr_report_srb_state()
790 srb->pccb->ccb_h.status |= CAM_DEV_NOT_THERE; in arcmsr_report_srb_state()
797 srb->pccb->ccb_h.status |= CAM_DEV_NOT_THERE; in arcmsr_report_srb_state()
811 srb->pccb->ccb_h.status |= CAM_UNCOR_PARITY; in arcmsr_report_srb_state()
868 target = srb->pccb->ccb_h.target_id; in arcmsr_srb_timeout()
869 lun = srb->pccb->ccb_h.target_lun; in arcmsr_srb_timeout()
874 cmd = scsiio_cdb_ptr(&srb->pccb->csio)[0]; in arcmsr_srb_timeout()
876 srb->pccb->ccb_h.status |= CAM_CMD_TIMEOUT; in arcmsr_srb_timeout()
967 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_iop_reset()
970 , acb->pci_unit, srb->pccb->ccb_h.target_id in arcmsr_iop_reset()
971 , (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_iop_reset()
993 union ccb *pccb = srb->pccb; in arcmsr_build_srb() local
994 struct ccb_scsiio *pcsio = &pccb->csio; in arcmsr_build_srb()
999 arcmsr_cdb->TargetID = pccb->ccb_h.target_id; in arcmsr_build_srb()
1000 arcmsr_cdb->LUN = pccb->ccb_h.target_lun; in arcmsr_build_srb()
1009 if((pccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) { in arcmsr_build_srb()
1720 if((target == srb->pccb->ccb_h.target_id) && (lun == srb->pccb->ccb_h.target_lun)) in arcmsr_abort_dr_ccbs()
1723 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_abort_dr_ccbs()
2764 static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, union ccb *pccb) in arcmsr_iop_message_xfer() argument
2769 uint8_t *ptr = scsiio_cdb_ptr(&pccb->csio); in arcmsr_iop_message_xfer()
2775 if ((pccb->ccb_h.flags & CAM_DATA_MASK) == CAM_DATA_VADDR) { in arcmsr_iop_message_xfer()
2776 buffer = pccb->csio.data_ptr; in arcmsr_iop_message_xfer()
2777 transfer_len = pccb->csio.dxfer_len; in arcmsr_iop_message_xfer()
2829 if(pccb->csio.sense_len) { in arcmsr_iop_message_xfer()
2830 ((u_int8_t *)&pccb->csio.sense_data)[0] = (0x1 << 7 | 0x70); in arcmsr_iop_message_xfer()
2832 ((u_int8_t *)&pccb->csio.sense_data)[2] = 0x05; in arcmsr_iop_message_xfer()
2834 ((u_int8_t *)&pccb->csio.sense_data)[7] = 0x0A; in arcmsr_iop_message_xfer()
2836 ((u_int8_t *)&pccb->csio.sense_data)[12] = 0x20; in arcmsr_iop_message_xfer()
2859 if(pccb->csio.sense_len) { in arcmsr_iop_message_xfer()
2860 ((u_int8_t *)&pccb->csio.sense_data)[0] = (0x1 << 7 | 0x70); in arcmsr_iop_message_xfer()
2862 ((u_int8_t *)&pccb->csio.sense_data)[2] = 0x05; in arcmsr_iop_message_xfer()
2864 ((u_int8_t *)&pccb->csio.sense_data)[7] = 0x0A; in arcmsr_iop_message_xfer()
2866 ((u_int8_t *)&pccb->csio.sense_data)[12] = 0x20; in arcmsr_iop_message_xfer()
2967 union ccb *pccb; in arcmsr_execute_srb() local
2970 pccb = srb->pccb; in arcmsr_execute_srb()
2971 target = pccb->ccb_h.target_id; in arcmsr_execute_srb()
2972 lun = pccb->ccb_h.target_lun; in arcmsr_execute_srb()
2980 if((pccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG) { in arcmsr_execute_srb()
2981 pccb->ccb_h.status |= CAM_REQ_TOO_BIG; in arcmsr_execute_srb()
2987 pccb->ccb_h.status |= CAM_REQ_TOO_BIG; in arcmsr_execute_srb()
2993 pccb->ccb_h.status |= CAM_SCSI_BUS_RESET; in arcmsr_execute_srb()
3000 cmd = scsiio_cdb_ptr(&pccb->csio)[0]; in arcmsr_execute_srb()
3006 pccb->ccb_h.status |= CAM_DEV_NOT_THERE; in arcmsr_execute_srb()
3011 if((pccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_INPROG) { in arcmsr_execute_srb()
3024 pccb->ccb_h.status &= ~CAM_SIM_QUEUED; in arcmsr_execute_srb()
3025 pccb->ccb_h.status |= CAM_REQUEUE_REQ; in arcmsr_execute_srb()
3029 pccb->ccb_h.status |= CAM_SIM_QUEUED; in arcmsr_execute_srb()
3032 if (pccb->ccb_h.timeout != CAM_TIME_INFINITY) in arcmsr_execute_srb()
3036 (pccb->ccb_h.timeout + (ARCMSR_TIMEOUT_DELAY * 1000)), 0, in arcmsr_execute_srb()
3068 if(srb->pccb == abortccb) { in arcmsr_seek_cmd2abort()
3109 union ccb *pccb) in arcmsr_handle_virtual_command() argument
3111 if (pccb->ccb_h.target_lun) { in arcmsr_handle_virtual_command()
3112 pccb->ccb_h.status |= CAM_DEV_NOT_THERE; in arcmsr_handle_virtual_command()
3113 xpt_done(pccb); in arcmsr_handle_virtual_command()
3116 pccb->ccb_h.status |= CAM_REQ_CMP; in arcmsr_handle_virtual_command()
3117 switch (scsiio_cdb_ptr(&pccb->csio)[0]) { in arcmsr_handle_virtual_command() local
3120 char *buffer = pccb->csio.data_ptr; in arcmsr_handle_virtual_command()
3134 xpt_done(pccb); in arcmsr_handle_virtual_command()
3139 if (arcmsr_iop_message_xfer(acb, pccb)) { in arcmsr_handle_virtual_command()
3140 pccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; in arcmsr_handle_virtual_command()
3141 pccb->csio.scsi_status = SCSI_STATUS_CHECK_COND; in arcmsr_handle_virtual_command()
3143 xpt_done(pccb); in arcmsr_handle_virtual_command()
3147 xpt_done(pccb); in arcmsr_handle_virtual_command()
3154 static void arcmsr_action(struct cam_sim *psim, union ccb *pccb) in arcmsr_action() argument
3160 pccb->ccb_h.status |= CAM_REQ_INVALID; in arcmsr_action()
3161 xpt_done(pccb); in arcmsr_action()
3164 switch (pccb->ccb_h.func_code) { in arcmsr_action()
3167 int target = pccb->ccb_h.target_id; in arcmsr_action()
3170 if (pccb->ccb_h.flags & CAM_CDB_PHYS) { in arcmsr_action()
3171 pccb->ccb_h.status = CAM_REQ_INVALID; in arcmsr_action()
3172 xpt_done(pccb); in arcmsr_action()
3178 arcmsr_handle_virtual_command(acb, pccb); in arcmsr_action()
3182 pccb->ccb_h.status |= CAM_RESRC_UNAVAIL; in arcmsr_action()
3183 xpt_done(pccb); in arcmsr_action()
3186 pccb->ccb_h.arcmsr_ccbsrb_ptr = srb; in arcmsr_action()
3187 pccb->ccb_h.arcmsr_ccbacb_ptr = acb; in arcmsr_action()
3188 srb->pccb = pccb; in arcmsr_action()
3191 , pccb in arcmsr_action()
3195 pccb->ccb_h.status |= CAM_RELEASE_SIMQ; in arcmsr_action()
3200 struct ccb_pathinq *cpi = &pccb->cpi; in arcmsr_action()
3240 xpt_done(pccb); in arcmsr_action()
3246 pabort_ccb = pccb->cab.abort_ccb; in arcmsr_action()
3253 pccb->ccb_h.status |= CAM_REQ_CMP; in arcmsr_action()
3257 pccb->ccb_h.status |= CAM_PATH_INVALID; in arcmsr_action()
3261 pccb->ccb_h.status |= CAM_UA_ABORT; in arcmsr_action()
3264 pccb->ccb_h.status |= CAM_REQ_INVALID; in arcmsr_action()
3267 xpt_done(pccb); in arcmsr_action()
3278 pccb->ccb_h.status |= CAM_REQ_CMP; in arcmsr_action()
3279 xpt_done(pccb); in arcmsr_action()
3283 pccb->ccb_h.status |= CAM_REQ_INVALID; in arcmsr_action()
3284 xpt_done(pccb); in arcmsr_action()
3290 if(pccb->ccb_h.target_id == ARCMSR_VIRTUAL_DEVICE_ID) { in arcmsr_action()
3291 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; in arcmsr_action()
3292 xpt_done(pccb); in arcmsr_action()
3295 cts = &pccb->cts; in arcmsr_action()
3344 pccb->ccb_h.status |= CAM_REQ_CMP; in arcmsr_action()
3345 xpt_done(pccb); in arcmsr_action()
3349 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; in arcmsr_action()
3350 xpt_done(pccb); in arcmsr_action()
3354 if(pccb->ccb_h.target_id == ARCMSR_VIRTUAL_DEVICE_ID) { in arcmsr_action()
3355 pccb->ccb_h.status |= CAM_FUNC_NOTAVAIL; in arcmsr_action()
3356 xpt_done(pccb); in arcmsr_action()
3359 cam_calc_geometry(&pccb->ccg, 1); in arcmsr_action()
3360 xpt_done(pccb); in arcmsr_action()
3363 pccb->ccb_h.status |= CAM_REQ_INVALID; in arcmsr_action()
3364 xpt_done(pccb); in arcmsr_action()
3496 , srb->pccb->ccb_h.target_id in arcmsr_polling_hba_srbdone()
3497 , (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_polling_hba_srbdone()
3498 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_polling_hba_srbdone()
3555 , srb->pccb->ccb_h.target_id in arcmsr_polling_hbb_srbdone()
3556 , (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_polling_hbb_srbdone()
3557 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_polling_hbb_srbdone()
3608 , acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_polling_hbc_srbdone()
3609 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_polling_hbc_srbdone()
3664 , acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_polling_hbd_srbdone()
3665 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_polling_hbd_srbdone()
3718 , acb->pci_unit, srb->pccb->ccb_h.target_id, (uintmax_t)srb->pccb->ccb_h.target_lun, srb); in arcmsr_polling_hbe_srbdone()
3719 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_polling_hbe_srbdone()
5347 srb->pccb->ccb_h.status |= CAM_REQ_ABORTED; in arcmsr_shutdown()