Lines Matching defs:ccb
29 ccb_refs(union ccb *ccb)
31 return ((u_int *)&ccb->ccb_h.spriv_field0);
37 nvmf_ccb_done(union ccb *ccb)
39 if (!refcount_release(ccb_refs(ccb)))
42 if (nvmf_cqe_aborted(&ccb->nvmeio.cpl)) {
43 struct cam_sim *sim = xpt_path_sim(ccb->ccb_h.path);
47 ccb->ccb_h.status = CAM_DEV_NOT_THERE;
49 ccb->ccb_h.status = CAM_REQUEUE_REQ;
50 xpt_done(ccb);
51 } else if (ccb->nvmeio.cpl.status != 0) {
52 ccb->ccb_h.status = CAM_NVME_STATUS_ERROR;
53 xpt_done(ccb);
54 } else if (ccb->ccb_h.spriv_ioerror != 0) {
55 KASSERT(ccb->ccb_h.spriv_ioerror != EJUSTRETURN,
57 ccb->ccb_h.status = CAM_REQ_CMP_ERR;
58 xpt_done(ccb);
60 ccb->ccb_h.status = CAM_REQ_CMP;
61 xpt_done(ccb);
68 union ccb *ccb = arg;
76 ccb->ccb_h.spriv_ioerror = error;
85 ccb->ccb_h.spriv_ioerror = EJUSTRETURN;
88 KASSERT(xfered == ccb->nvmeio.dxfer_len,
92 nvmf_ccb_done(ccb);
98 union ccb *ccb = arg;
100 ccb->nvmeio.cpl = *cqe;
101 nvmf_ccb_done(ccb);
105 nvmf_sim_io(struct nvmf_softc *sc, union ccb *ccb)
107 struct ccb_nvmeio *nvmeio = &ccb->nvmeio;
119 xpt_done(ccb);
127 ccb, M_NOWAIT);
131 xpt_done(ccb);
136 refcount_init(ccb_refs(ccb), 2);
137 mem = memdesc_ccb(ccb);
139 (ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_OUT,
140 nvmf_ccb_io_complete, ccb);
142 refcount_init(ccb_refs(ccb), 1);
148 ccb->ccb_h.spriv_ioerror = 0;
149 KASSERT(ccb->ccb_h.status == CAM_REQ_INPROG,
151 ccb->ccb_h.status |= CAM_SIM_QUEUED;
156 nvmf_sim_action(struct cam_sim *sim, union ccb *ccb)
160 CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE,
162 ccb->ccb_h.func_code));
164 switch (ccb->ccb_h.func_code) {
167 struct ccb_pathinq *cpi = &ccb->cpi;
192 xpt_path_lun_id(ccb->ccb_h.path);
207 struct ccb_trans_settings *cts = &ccb->cts;
231 ccb->ccb_h.status = CAM_REQ_CMP;
235 nvmf_sim_io(sc, ccb);
240 ccb->ccb_h.func_code);
241 ccb->ccb_h.status = CAM_REQ_INVALID;
244 xpt_done(ccb);
289 union ccb *ccb;
291 ccb = xpt_alloc_ccb_nowait();
292 if (ccb == NULL) {
302 if (xpt_create_path(&ccb->ccb_h.path, NULL, cam_sim_path(sc->sim), 0,
306 xpt_free_ccb(ccb);
309 xpt_rescan(ccb);