Lines Matching defs:ccb
52 static void nvme_sim_action(struct cam_sim *sim, union ccb *ccb);
68 union ccb *ccb = (union ccb *)ccb_arg;
74 memcpy(&ccb->nvmeio.cpl, cpl, sizeof(*cpl));
75 ccb->ccb_h.status &= ~CAM_SIM_QUEUED;
77 ccb->ccb_h.status = CAM_REQ_CMP_ERR;
78 xpt_done(ccb);
80 ccb->ccb_h.status = CAM_REQ_CMP;
81 xpt_done_direct(ccb);
86 nvme_sim_nvmeio(struct cam_sim *sim, union ccb *ccb)
88 struct ccb_nvmeio *nvmeio = &ccb->nvmeio;
100 nvme_sim_nvmeio_done, ccb);
102 req = nvme_allocate_request_ccb(ccb, nvme_sim_nvmeio_done, ccb);
104 req = nvme_allocate_request_null(nvme_sim_nvmeio_done, ccb);
107 nvme_sim_nvmeio_done, ccb);
111 xpt_done(ccb);
114 ccb->ccb_h.status |= CAM_SIM_QUEUED;
116 memcpy(&req->cmd, &ccb->nvmeio.cmd, sizeof(ccb->nvmeio.cmd));
118 if (ccb->ccb_h.func_code == XPT_NVME_IO)
143 nvme_sim_action(struct cam_sim *sim, union ccb *ccb)
147 CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE,
149 ccb->ccb_h.func_code));
153 switch (ccb->ccb_h.func_code) {
161 ccb->ccb_h.status = CAM_REQ_INVALID;
168 ccb->ccb_h.status = CAM_REQ_CMP;
172 struct ccb_pathinq *cpi = &ccb->cpi;
194 cpi->xport_specific.nvme.nsid = xpt_path_lun_id(ccb->ccb_h.path);
218 cts = &ccb->cts;
257 ccb->ccb_h.status = CAM_REQ_CMP;
261 nvme_sim_nvmeio(sim, ccb);
264 ccb->ccb_h.status = CAM_REQ_INVALID;
267 xpt_done(ccb);
325 union ccb *ccb;
327 ccb = xpt_alloc_ccb_nowait();
328 if (ccb == NULL) {
338 if (xpt_create_path(&ccb->ccb_h.path, /*periph*/NULL,
341 xpt_free_ccb(ccb);
344 xpt_rescan(ccb);