From c774a82e6b0e051aa126a72b998eab35fe29b56e Mon Sep 17 00:00:00 2001 From: Tokunori Ikegami Date: Thu, 18 Apr 2024 00:43:39 +0900 Subject: [PATCH] types: Add NVME_CMIC definitions The existing NVME_CTRL_CMIC definitions are complex values. Signed-off-by: Tokunori Ikegami --- src/nvme/types.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/nvme/types.h b/src/nvme/types.h index ea8e3860..5a069048 100644 --- a/src/nvme/types.h +++ b/src/nvme/types.h @@ -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.