Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F156459116
D47468.id146099.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
12 KB
Referenced Files
None
Subscribers
None
D47468.id146099.diff
View Options
diff --git a/lib/libnvmf/nvmf_host.c b/lib/libnvmf/nvmf_host.c
--- a/lib/libnvmf/nvmf_host.c
+++ b/lib/libnvmf/nvmf_host.c
@@ -498,7 +498,7 @@
nvmf_init_sqe(&cmd, NVME_OPC_IDENTIFY);
/* 5.15.1 Use CNS of 0x01 for controller data. */
- cmd.cdw10 = htole32(1);
+ cmd.cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
cc = nvmf_allocate_command(qp, &cmd);
if (cc == NULL)
@@ -547,7 +547,7 @@
nvmf_init_sqe(&cmd, NVME_OPC_IDENTIFY);
/* 5.15.1 Use CNS of 0x00 for namespace data. */
- cmd.cdw10 = htole32(0);
+ cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
cmd.nsid = htole32(nsid);
cc = nvmf_allocate_command(qp, &cmd);
diff --git a/sbin/nvmecontrol/ns.c b/sbin/nvmecontrol/ns.c
--- a/sbin/nvmecontrol/ns.c
+++ b/sbin/nvmecontrol/ns.c
@@ -422,7 +422,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(0);
- pt.cmd.cdw10 = htole32(0x02);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
pt.buf = list;
pt.len = sizeof(list);
pt.is_read = 1;
@@ -467,7 +467,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(0);
- pt.cmd.cdw10 = htole32(0x10);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ALLOCATED_NAMESPACE_ID_LIST);
pt.buf = list;
pt.len = sizeof(list);
pt.is_read = 1;
@@ -511,7 +511,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(0x13);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -728,7 +728,7 @@
/* Get full list of controllers to attach to. */
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(0x13);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -799,7 +799,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x12);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST_ATTACHED);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -874,7 +874,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x12);
+ pt.cmd.cdw10 = htole32(NVME_CNS_CONTROLLER_LIST_ATTACHED);
pt.buf = clist;
pt.len = sizeof(clist);
pt.is_read = 1;
@@ -927,7 +927,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0x11);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_ALLOCATED_NAMESPACE);
pt.buf = &nsdata;
pt.len = sizeof(nsdata);
pt.is_read = 1;
diff --git a/sbin/nvmecontrol/nvmecontrol.c b/sbin/nvmecontrol/nvmecontrol.c
--- a/sbin/nvmecontrol/nvmecontrol.c
+++ b/sbin/nvmecontrol/nvmecontrol.c
@@ -102,7 +102,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
- pt.cmd.cdw10 = htole32(1);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
pt.buf = cdata;
pt.len = sizeof(*cdata);
pt.is_read = 1;
@@ -126,7 +126,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(0);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
pt.buf = nsdata;
pt.len = sizeof(*nsdata);
pt.is_read = 1;
@@ -150,7 +150,7 @@
memset(&pt, 0, sizeof(pt));
pt.cmd.opc = NVME_OPC_IDENTIFY;
pt.cmd.nsid = htole32(nsid);
- pt.cmd.cdw10 = htole32(2);
+ pt.cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
pt.buf = nslist;
pt.len = sizeof(*nslist);
pt.is_read = 1;
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -10778,7 +10778,7 @@
if (lun == NULL) {
cns = le32toh(ctnio->cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
memset(ctnio->kern_data_ptr, 0, len);
ctl_datamove((union ctl_io *)ctnio);
break;
diff --git a/sys/cam/ctl/ctl_backend_block.c b/sys/cam/ctl/ctl_backend_block.c
--- a/sys/cam/ctl/ctl_backend_block.c
+++ b/sys/cam/ctl/ctl_backend_block.c
@@ -1771,10 +1771,10 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
ctl_be_block_namespace_data(be_lun, io);
break;
- case 3:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
ctl_be_block_nvme_ids(be_lun, io);
break;
default:
@@ -3213,8 +3213,8 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
- case 3:
+ case NVME_CNS_ID_NAMESPACE:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
mtx_lock(&be_lun->queue_lock);
STAILQ_INSERT_TAIL(&be_lun->config_read_queue,
&io->io_hdr, links);
diff --git a/sys/cam/ctl/ctl_backend_ramdisk.c b/sys/cam/ctl/ctl_backend_ramdisk.c
--- a/sys/cam/ctl/ctl_backend_ramdisk.c
+++ b/sys/cam/ctl/ctl_backend_ramdisk.c
@@ -658,9 +658,9 @@
cns = le32toh(io->nvmeio.cmd.cdw10) & 0xff;
switch (cns) {
- case 0:
+ case NVME_CNS_ID_NAMESPACE:
return (ramdisk_namespace_data(io));
- case 3:
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST:
return (ramdisk_nvme_ids(io));
default:
ctl_nvme_set_invalid_field(&io->nvmeio);
diff --git a/sys/cam/nvme/nvme_xpt.c b/sys/cam/nvme/nvme_xpt.c
--- a/sys/cam/nvme/nvme_xpt.c
+++ b/sys/cam/nvme/nvme_xpt.c
@@ -281,7 +281,7 @@
sizeof(softc->cd), /* dxfer_len */
30 * 1000); /* timeout 30s */
nvme_ns_cmd(nvmeio, NVME_OPC_IDENTIFY, 0,
- 1, 0, 0, 0, 0, 0);
+ NVME_CNS_ID_CONTROLLER, 0, 0, 0, 0, 0);
break;
case NVME_PROBE_IDENTIFY_NS:
cam_fill_nvmeadmin(nvmeio,
@@ -292,7 +292,7 @@
sizeof(softc->ns), /* dxfer_len */
30 * 1000); /* timeout 30s */
nvme_ns_cmd(nvmeio, NVME_OPC_IDENTIFY, lun,
- 0, 0, 0, 0, 0, 0);
+ NVME_CNS_ID_NAMESPACE, 0, 0, 0, 0, 0);
break;
default:
panic("nvme_probe_start: invalid action state 0x%x\n", softc->action);
diff --git a/sys/dev/nvme/nvme.h b/sys/dev/nvme/nvme.h
--- a/sys/dev/nvme/nvme.h
+++ b/sys/dev/nvme/nvme.h
@@ -1142,6 +1142,20 @@
_Static_assert(sizeof(struct nvme_power_state) == 32, "bad size for nvme_power_state");
+#define NVME_CNS_ID_NAMESPACE 0x00
+#define NVME_CNS_ID_CONTROLLER 0x01
+#define NVME_CNS_ACTIVE_NAMESPACE_ID_LIST 0x02
+#define NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST 0x03
+#define NVME_CNS_NVM_SET_LIST 0x04
+#define NVME_CNS_ALLOCATED_NAMESPACE_ID_LIST 0x10
+#define NVME_CNS_ID_ALLOCATED_NAMESPACE 0x11
+#define NVME_CNS_CONTROLLER_LIST_ATTACHED 0x12
+#define NVME_CNS_CONTROLLER_LIST 0x13
+#define NVME_CNS_PRIMARY_CONTROLLER_CAPABILITIES 0x14
+#define NVME_CNS_SECONDARY_CONTROLLER_LIST 0x15
+#define NVME_CNS_NAMESPACE_GRANULARITY_LIST 0x16
+#define NVME_CNS_UUID_LIST 0x17
+
#define NVME_SERIAL_NUMBER_LENGTH 20
#define NVME_MODEL_NUMBER_LENGTH 40
#define NVME_FIRMWARE_REVISION_LENGTH 8
diff --git a/sys/dev/nvme/nvme_ctrlr_cmd.c b/sys/dev/nvme/nvme_ctrlr_cmd.c
--- a/sys/dev/nvme/nvme_ctrlr_cmd.c
+++ b/sys/dev/nvme/nvme_ctrlr_cmd.c
@@ -46,7 +46,7 @@
* TODO: create an identify command data structure, which
* includes this CNS bit in cdw10.
*/
- cmd->cdw10 = htole32(1);
+ cmd->cdw10 = htole32(NVME_CNS_ID_CONTROLLER);
nvme_ctrlr_submit_admin_request(ctrlr, req);
}
diff --git a/sys/dev/nvmf/controller/nvmft_controller.c b/sys/dev/nvmf/controller/nvmft_controller.c
--- a/sys/dev/nvmf/controller/nvmft_controller.c
+++ b/sys/dev/nvmf/controller/nvmft_controller.c
@@ -669,11 +669,11 @@
}
switch (cns) {
- case 0: /* Namespace data. */
- case 3: /* Namespace Identification Descriptor list. */
+ case NVME_CNS_ID_NAMESPACE: /* Namespace data. */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* Namespace Identification Descriptor list. */
nvmft_dispatch_command(ctrlr->admin, nc, true);
return;
- case 1:
+ case NVME_CNS_ID_CONTROLLER:
/* Controller data. */
m = m_getml(sizeof(ctrlr->cdata), M_WAITOK);
m_copyback(m, 0, sizeof(ctrlr->cdata), (void *)&ctrlr->cdata);
@@ -681,7 +681,7 @@
sizeof(ctrlr->cdata));
MPASS(status != NVMF_MORE);
break;
- case 2:
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST:
{
/* Active namespace list. */
struct nvme_ns_list *nslist;
diff --git a/sys/dev/nvmf/host/nvmf_cmd.c b/sys/dev/nvmf/host/nvmf_cmd.c
--- a/sys/dev/nvmf/host/nvmf_cmd.c
+++ b/sys/dev/nvmf/host/nvmf_cmd.c
@@ -100,7 +100,7 @@
cmd.opc = NVME_OPC_IDENTIFY;
/* 5.15.1 Use CNS of 0x02 for namespace data. */
- cmd.cdw10 = htole32(2);
+ cmd.cdw10 = htole32(NVME_CNS_ACTIVE_NAMESPACE_ID_LIST);
cmd.nsid = htole32(id);
req = nvmf_allocate_request(sc->admin, &cmd, req_cb, req_cb_arg, how);
@@ -126,7 +126,7 @@
cmd.opc = NVME_OPC_IDENTIFY;
/* 5.15.1 Use CNS of 0x00 for namespace data. */
- cmd.cdw10 = htole32(0);
+ cmd.cdw10 = htole32(NVME_CNS_ID_NAMESPACE);
cmd.nsid = htole32(id);
req = nvmf_allocate_request(sc->admin, &cmd, req_cb, req_cb_arg, how);
diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c
--- a/usr.sbin/bhyve/pci_nvme.c
+++ b/usr.sbin/bhyve/pci_nvme.c
@@ -1497,7 +1497,7 @@
pci_nvme_status_genc(&status, NVME_SC_SUCCESS);
switch (command->cdw10 & 0xFF) {
- case 0x00: /* return Identify Namespace data structure */
+ case NVME_CNS_ID_NAMESPACE: /* return Identify Namespace data structure */
/* Global NS only valid with NS Management */
if (command->nsid == NVME_GLOBAL_NAMESPACE_TAG) {
pci_nvme_status_genc(&status,
@@ -1508,20 +1508,20 @@
command->prp2, (uint8_t *)&sc->nsdata, sizeof(sc->nsdata),
NVME_COPY_TO_PRP);
break;
- case 0x01: /* return Identify Controller data structure */
+ case NVME_CNS_ID_CONTROLLER: /* return Identify Controller data structure */
nvme_prp_memcpy(sc->nsc_pi->pi_vmctx, command->prp1,
command->prp2, (uint8_t *)&sc->ctrldata,
sizeof(sc->ctrldata),
NVME_COPY_TO_PRP);
break;
- case 0x02: /* list of 1024 active NSIDs > CDW1.NSID */
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST: /* list of 1024 active NSIDs > CDW1.NSID */
dest = vm_map_gpa(sc->nsc_pi->pi_vmctx, command->prp1,
sizeof(uint32_t) * 1024);
/* All unused entries shall be zero */
memset(dest, 0, sizeof(uint32_t) * 1024);
((uint32_t *)dest)[0] = 1;
break;
- case 0x03: /* list of NSID structures in CDW1.NSID, 4096 bytes */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* list of NSID structures in CDW1.NSID, 4096 bytes */
if (command->nsid != 1) {
pci_nvme_status_genc(&status,
NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
@@ -1537,7 +1537,7 @@
((uint8_t *)dest)[1] = sizeof(uint64_t);
memcpy(((uint8_t *)dest) + 4, sc->nsdata.eui64, sizeof(uint64_t));
break;
- case 0x13:
+ case NVME_CNS_CONTROLLER_LIST:
/*
* Controller list is optional but used by UNH tests. Return
* a valid but empty list.
diff --git a/usr.sbin/camdd/camdd.c b/usr.sbin/camdd/camdd.c
--- a/usr.sbin/camdd/camdd.c
+++ b/usr.sbin/camdd/camdd.c
@@ -1398,7 +1398,7 @@
nc->opc = NVME_OPC_IDENTIFY;
nc->nsid = nsid;
- nc->cdw10 = 0; /* Identify Namespace is CNS = 0 */
+ nc->cdw10 = NVME_CNS_ID_NAMESPACE; /* Identify Namespace is CNS = 0 */
cam_fill_nvmeadmin(&ccb->nvmeio,
/*retries*/ probe_retry_count,
diff --git a/usr.sbin/nvmfd/controller.c b/usr.sbin/nvmfd/controller.c
--- a/usr.sbin/nvmfd/controller.c
+++ b/usr.sbin/nvmfd/controller.c
@@ -154,7 +154,7 @@
cns = le32toh(cmd->cdw10) & 0xFF;
switch (cns) {
- case 1:
+ case NVME_CNS_ID_CONTROLLER:
break;
default:
warnx("Unsupported CNS %#x for IDENTIFY", cns);
diff --git a/usr.sbin/nvmfd/io.c b/usr.sbin/nvmfd/io.c
--- a/usr.sbin/nvmfd/io.c
+++ b/usr.sbin/nvmfd/io.c
@@ -149,7 +149,7 @@
cns = le32toh(cmd->cdw10) & 0xFF;
switch (cns) {
- case 0: /* Namespace data. */
+ case NVME_CNS_ID_NAMESPACE: /* Namespace data. */
if (!device_namespace_data(le32toh(cmd->nsid), &nsdata)) {
nvmf_send_generic_error(nc,
NVME_SC_INVALID_NAMESPACE_OR_FORMAT);
@@ -158,7 +158,7 @@
nvmf_send_controller_data(nc, &nsdata, sizeof(nsdata));
return (true);
- case 2: /* Active namespace list. */
+ case NVME_CNS_ACTIVE_NAMESPACE_ID_LIST: /* Active namespace list. */
nsid = le32toh(cmd->nsid);
if (nsid >= 0xfffffffe) {
nvmf_send_generic_error(nc, NVME_SC_INVALID_FIELD);
@@ -168,7 +168,7 @@
device_active_nslist(nsid, &nslist);
nvmf_send_controller_data(nc, &nslist, sizeof(nslist));
return (true);
- case 3: /* Namespace Identification Descriptor list. */
+ case NVME_CNS_NAMESPACE_ID_DESCRIPTOR_LIST: /* Namespace Identification Descriptor list. */
if (!device_identification_descriptor(le32toh(cmd->nsid),
&nsdata)) {
nvmf_send_generic_error(nc,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 14, 8:06 PM (12 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33058097
Default Alt Text
D47468.id146099.diff (12 KB)
Attached To
Mode
D47468: nvme: Add macros for NVMe CNS values
Attached
Detach File
Event Timeline
Log In to Comment