Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/nvme/nvme_ns_cmd.c
Show First 20 Lines • Show All 120 Lines • ▼ Show 20 Lines | nvme_ns_cmd_deallocate(struct nvme_namespace *ns, void *payload, | ||||
req = nvme_allocate_request_vaddr(payload, | req = nvme_allocate_request_vaddr(payload, | ||||
num_ranges * sizeof(struct nvme_dsm_range), cb_fn, cb_arg); | num_ranges * sizeof(struct nvme_dsm_range), cb_fn, cb_arg); | ||||
if (req == NULL) | if (req == NULL) | ||||
return (ENOMEM); | return (ENOMEM); | ||||
cmd = &req->cmd; | cmd = &req->cmd; | ||||
cmd->opc_fuse = NVME_CMD_SET_OPC(NVME_OPC_DATASET_MANAGEMENT); | cmd->opc = NVME_OPC_DATASET_MANAGEMENT; | ||||
cmd->nsid = htole32(ns->id); | cmd->nsid = htole32(ns->id); | ||||
/* TODO: create a delete command data structure */ | /* TODO: create a delete command data structure */ | ||||
cmd->cdw10 = htole32(num_ranges - 1); | cmd->cdw10 = htole32(num_ranges - 1); | ||||
cmd->cdw11 = htole32(NVME_DSM_ATTR_DEALLOCATE); | cmd->cdw11 = htole32(NVME_DSM_ATTR_DEALLOCATE); | ||||
nvme_ctrlr_submit_io_request(ns->ctrlr, req); | nvme_ctrlr_submit_io_request(ns->ctrlr, req); | ||||
▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines |