Lines Matching refs:ccb

72 static void         adv_action(struct cam_sim *sim, union ccb *ccb);
86 static __inline void adv_clear_state(struct adv_softc *adv, union ccb* ccb);
87 static void adv_clear_state_really(struct adv_softc *adv, union ccb* ccb);
123 adv_clear_state(struct adv_softc *adv, union ccb* ccb) in adv_clear_state() argument
126 adv_clear_state_really(adv, ccb); in adv_clear_state()
130 adv_clear_state_really(struct adv_softc *adv, union ccb* ccb) in adv_clear_state_really() argument
147 cinfo = (struct adv_ccb_info *)ccb->ccb_h.ccb_cinfo_ptr; in adv_clear_state_really()
167 ccb->ccb_h.status |= CAM_RELEASE_SIMQ; in adv_clear_state_really()
189 adv_action(struct cam_sim *sim, union ccb *ccb) in adv_action() argument
193 CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("adv_action\n")); in adv_action()
197 switch (ccb->ccb_h.func_code) { in adv_action()
205 ccb_h = &ccb->ccb_h; in adv_action()
206 csio = &ccb->csio; in adv_action()
212 cinfo->ccb = ccb; in adv_action()
264 adv_execute_ccb(ccb, segs, csio->sglist_cnt, 0); in adv_action()
267 adv_execute_ccb(ccb, NULL, 0, 0); in adv_action()
278 ccb->ccb_h.status = CAM_REQ_INVALID; in adv_action()
279 xpt_done(ccb); in adv_action()
292 cts = &ccb->cts; in adv_action()
307 ccb->ccb_h.status = CAM_REQ_INVALID; in adv_action()
379 ccb->ccb_h.status = CAM_REQ_CMP; in adv_action()
380 xpt_done(ccb); in adv_action()
392 cts = &ccb->cts; in adv_action()
429 ccb->ccb_h.status = CAM_REQ_CMP; in adv_action()
430 xpt_done(ccb); in adv_action()
440 ccg = &ccb->ccg; in adv_action()
454 ccb->ccb_h.status = CAM_REQ_CMP; in adv_action()
455 xpt_done(ccb); in adv_action()
466 ccb->ccb_h.status = CAM_REQ_CMP; in adv_action()
467 xpt_done(ccb); in adv_action()
472 ccb->ccb_h.status = CAM_REQ_INVALID; in adv_action()
473 xpt_done(ccb); in adv_action()
477 struct ccb_pathinq *cpi = &ccb->cpi; in adv_action()
498 xpt_done(ccb); in adv_action()
502 ccb->ccb_h.status = CAM_REQ_INVALID; in adv_action()
503 xpt_done(ccb); in adv_action()
608 adv_clear_state(adv, (union ccb *)csio); in adv_execute_ccb()
610 xpt_done((union ccb *)csio); in adv_execute_ccb()
621 adv_clear_state(adv, (union ccb *)csio); in adv_execute_ccb()
623 xpt_done((union ccb *)csio); in adv_execute_ccb()
664 union ccb *ccb; in adv_timeout() local
668 ccb = (union ccb *)arg; in adv_timeout()
669 adv = (struct adv_softc *)xpt_path_sim(ccb->ccb_h.path)->softc; in adv_timeout()
670 cinfo = (struct adv_ccb_info *)ccb->ccb_h.ccb_cinfo_ptr; in adv_timeout()
672 xpt_print_path(ccb->ccb_h.path); in adv_timeout()
710 xpt_print_path(ccb->ccb_h.path); in adv_timeout()
712 adv_abort_ccb(adv, ccb->ccb_h.target_id, in adv_timeout()
713 ccb->ccb_h.target_lun, ccb, in adv_timeout()
715 callout_reset(ccb->ccb_h.timeout_ch, 2 * hz, adv_timeout, ccb); in adv_timeout()
718 xpt_print_path(ccb->ccb_h.path); in adv_timeout()
720 ccb->ccb_h.status &= ~CAM_STATUS_MASK; in adv_timeout()
721 ccb->ccb_h.status |= CAM_CMD_TIMEOUT; in adv_timeout()
1044 union ccb* ccb; in adv_run_doneq() local
1107 ccb = cinfo->ccb; in adv_run_doneq()
1108 ccb->csio.resid = scsiq.remain_bytes; in adv_run_doneq()
1109 adv_done(adv, ccb, in adv_run_doneq()
1121 adv_done(struct adv_softc *adv, union ccb *ccb, u_int done_stat, in adv_done() argument
1126 cinfo = (struct adv_ccb_info *)ccb->ccb_h.ccb_cinfo_ptr; in adv_done()
1127 LIST_REMOVE(&ccb->ccb_h, sim_links.le); in adv_done()
1128 callout_stop(ccb->ccb_h.timeout_ch); in adv_done()
1129 if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { in adv_done()
1132 if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) in adv_done()
1143 ccb->ccb_h.status = CAM_REQ_CMP; in adv_done()
1146 xpt_print_path(ccb->ccb_h.path); in adv_done()
1166 ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; in adv_done()
1167 if ((ccb->ccb_h.flags & CAM_TAG_ACTION_VALID) != 0 in adv_done()
1172 adv_abort_ccb(adv, ccb->ccb_h.target_id, in adv_done()
1173 ccb->ccb_h.target_lun, in adv_done()
1179 ccb->csio.scsi_status = scsi_status; in adv_done()
1183 ccb->ccb_h.status |= CAM_AUTOSNS_VALID; in adv_done()
1185 ccb->csio.sense_data = in adv_done()
1194 ccb->ccb_h.status |= CAM_SCSI_STATUS_ERROR; in adv_done()
1197 ccb->ccb_h.status |= CAM_REQ_CMP; in adv_done()
1202 ccb->ccb_h.status = CAM_SEL_TIMEOUT; in adv_done()
1205 ccb->ccb_h.status = CAM_DATA_RUN_ERR; in adv_done()
1208 ccb->ccb_h.status = CAM_UNEXP_BUSFREE; in adv_done()
1211 ccb->ccb_h.status = CAM_SEQUENCE_FAIL; in adv_done()
1215 ccb->ccb_h.status = CAM_SEQUENCE_FAIL; in adv_done()
1221 ccb->ccb_h.status = CAM_SEQUENCE_FAIL; in adv_done()
1225 ccb->ccb_h.status = CAM_AUTOSENSE_FAIL; in adv_done()
1244 if ((ccb->ccb_h.status & CAM_STATUS_MASK) == CAM_REQ_INPROG) in adv_done()
1245 ccb->ccb_h.status = CAM_REQ_ABORTED; in adv_done()
1249 xpt_print_path(ccb->ccb_h.path); in adv_done()
1252 ccb->ccb_h.status = CAM_REQ_CMP_ERR; in adv_done()
1255 adv_clear_state(adv, ccb); in adv_done()
1256 if ((ccb->ccb_h.status & CAM_STATUS_MASK) != CAM_REQ_CMP in adv_done()
1257 && (ccb->ccb_h.status & CAM_DEV_QFRZN) == 0) { in adv_done()
1258 xpt_freeze_devq(ccb->ccb_h.path, /*count*/1); in adv_done()
1259 ccb->ccb_h.status |= CAM_DEV_QFRZN; in adv_done()
1266 ccb->ccb_h.ccb_cinfo_ptr = NULL; in adv_done()
1267 ccb->ccb_h.status &= ~CAM_SIM_QUEUED; in adv_done()
1268 xpt_done(ccb); in adv_done()
1411 xpt_action((union ccb *)csa); in adv_attach()