]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
types: Add NVME_CMIC definitions
authorTokunori Ikegami <ikegami.t@gmail.com>
Wed, 17 Apr 2024 15:43:39 +0000 (00:43 +0900)
committerDaniel Wagner <wagi@monom.org>
Thu, 18 Apr 2024 11:21:11 +0000 (13:21 +0200)
The existing NVME_CTRL_CMIC definitions are complex values.

Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
src/nvme/types.h

index ea8e3860c75acf85e25124b0cbecb376884d4b3f..5a0690488eb5cf4f2da19a3c97b3009e3df4a6e3 100644 (file)
@@ -1114,6 +1114,25 @@ struct nvme_id_ctrl {
        __u8                    vs[1024];
 };
 
+enum nvme_cmic {
+       NVME_CMIC_MULTI_PORT_SHIFT      = 0,
+       NVME_CMIC_MULTI_CTRL_SHIFT      = 1,
+       NVME_CMIC_MULTI_SRIOV_SHIFT     = 2,
+       NVME_CMIC_MULTI_ANA_SHIFT       = 3,
+       NVME_CMIC_MULTI_RSVD_SHIFT      = 4,
+       NVME_CMIC_MULTI_PORT_MASK       = 0x1,
+       NVME_CMIC_MULTI_CTRL_MASK       = 0x1,
+       NVME_CMIC_MULTI_SRIOV_MASK      = 0x1,
+       NVME_CMIC_MULTI_ANA_MASK        = 0x1,
+       NVME_CMIC_MULTI_RSVD_MASK       = 0xf,
+};
+
+#define NVME_CMIC_MULTI_PORT(cmic)     NVME_GET(cmic, CMIC_MULTI_PORT)
+#define NVME_CMIC_MULTI_CTRL(cmic)     NVME_GET(cmic, CMIC_MULTI_CTRL)
+#define NVME_CMIC_MULTI_SRIOV(cmic)    NVME_GET(cmic, CMIC_MULTI_SRIOV)
+#define NVME_CMIC_MULTI_ANA(cmic)      NVME_GET(cmic, CMIC_MULTI_ANA)
+#define NVME_CMIC_MULTI_RSVD(cmic)     NVME_GET(cmic, CMIC_MULTI_RSVD)
+
 /**
  * enum nvme_id_ctrl_cmic - Controller Multipath IO and Namespace Sharing
  *                         Capabilities of the controller and NVM subsystem.