Changeset View
Changeset View
Standalone View
Standalone View
sys/cam/cam_ccb.h
Context not available. | |||||
/* Serial Management Protocol */ | /* Serial Management Protocol */ | ||||
XPT_NVME_IO = 0x1c | XPT_FC_DEV_QUEUED, | XPT_NVME_IO = 0x1c | XPT_FC_DEV_QUEUED, | ||||
/* Execiute the requestred NVMe I/O operation */ | /* Execute the requested NVMe I/O operation */ | ||||
XPT_MMCSD_IO = 0x1d | XPT_FC_DEV_QUEUED, | XPT_MMCSD_IO = 0x1d | XPT_FC_DEV_QUEUED, | ||||
/* Placeholder for MMC / SD / SDIO I/O stuff */ | /* Placeholder for MMC / SD / SDIO I/O stuff */ | ||||
Context not available. | |||||
| XPT_FC_XPT_ONLY, | | XPT_FC_XPT_ONLY, | ||||
/* Scan Target */ | /* Scan Target */ | ||||
XPT_NVME_ADMIN = 0x1f | XPT_FC_DEV_QUEUED, | |||||
/* Execute the requested NVMe Admin operation */ | |||||
/* HBA engine commands 0x20->0x2F */ | /* HBA engine commands 0x20->0x2F */ | ||||
XPT_ENG_INQ = 0x20 | XPT_FC_XPT_ONLY, | XPT_ENG_INQ = 0x20 | XPT_FC_XPT_ONLY, | ||||
/* HBA engine feature inquiry */ | /* HBA engine feature inquiry */ | ||||
Context not available. | |||||
}; | }; | ||||
/* | /* | ||||
* NVMe I/O Request CCB used for the XPT_NVME_IO function code. | * NVMe I/O Request CCB used for the XPT_NVME_IO and XPT_NVME_ADMIN function codes. | ||||
*/ | */ | ||||
struct ccb_nvmeio { | struct ccb_nvmeio { | ||||
struct ccb_hdr ccb_h; | struct ccb_hdr ccb_h; | ||||
Context not available. | |||||
nvmeio->data_ptr = data_ptr; | nvmeio->data_ptr = data_ptr; | ||||
nvmeio->dxfer_len = dxfer_len; | nvmeio->dxfer_len = dxfer_len; | ||||
} | } | ||||
static __inline void | |||||
cam_fill_nvmeadmin(struct ccb_nvmeio *nvmeio, u_int32_t retries, | |||||
void (*cbfcnp)(struct cam_periph *, union ccb *), | |||||
u_int32_t flags, u_int8_t *data_ptr, u_int32_t dxfer_len, | |||||
u_int32_t timeout) | |||||
{ | |||||
nvmeio->ccb_h.func_code = XPT_NVME_ADMIN; | |||||
nvmeio->ccb_h.flags = flags; | |||||
nvmeio->ccb_h.retry_count = retries; | |||||
nvmeio->ccb_h.cbfcnp = cbfcnp; | |||||
nvmeio->ccb_h.timeout = timeout; | |||||
nvmeio->data_ptr = data_ptr; | |||||
nvmeio->dxfer_len = dxfer_len; | |||||
} | |||||
__END_DECLS | __END_DECLS | ||||
#endif /* _CAM_CAM_CCB_H */ | #endif /* _CAM_CAM_CCB_H */ | ||||
Context not available. |