Skip to content

Commit a8e4aed

Browse files
ikegami-tigaw
authored andcommitted
types: add NVME_CTRL_OACS definitions
Add NVME_CTRL_OACS_HMLM missed and also mask/shift/get definitions. Signed-off-by: Tokunori Ikegami <[email protected]>
1 parent db633fd commit a8e4aed

1 file changed

Lines changed: 78 additions & 14 deletions

File tree

src/nvme/types.h

Lines changed: 78 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1935,6 +1935,30 @@ enum nvme_id_ctrl_mec {
19351935
* enum nvme_id_ctrl_oacs - Flags indicating the optional Admin commands and
19361936
* features supported by the controller, see
19371937
* &struct nvme_id_ctrl.oacs.
1938+
* @NVME_CTRL_OACS_SSRS_SHIFT: Shift amount to get the Security Send Receive supported
1939+
* @NVME_CTRL_OACS_FNVMS_SHIFT:Shift amount to get the Format NVM supported
1940+
* @NVME_CTRL_OACS_FWDS_SHIFT: Shift amount to get the Firmware Download supported
1941+
* @NVME_CTRL_OACS_NMS_SHIFT: Shift amount to get the Namespace Management supported
1942+
* @NVME_CTRL_OACS_DSTS_SHIFT: Shift amount to get the Device Self-test supported
1943+
* @NVME_CTRL_OACS_DIRS_SHIFT: Shift amount to get the Directives supported
1944+
* @NVME_CTRL_OACS_NSRS_SHIFT: Shift amount to get the NVMe-MI Send Receive supported
1945+
* @NVME_CTRL_OACS_VMS_SHIFT: Shift amount to get the Virtualization Management supported
1946+
* @NVME_CTRL_OACS_DBCS_SHIFT: Shift amount to get the Doorbell Buffer Config supported
1947+
* @NVME_CTRL_OACS_GLSS_SHIFT: Shift amount to get the Get LBA Status supported
1948+
* @NVME_CTRL_OACS_CFLS_SHIFT: Shift amount to get the Command and Feature Lockdown supported
1949+
* @NVME_CTRL_OACS_HMLMS_SHIFT:Shift amount to get the Host Managed Live Migration support
1950+
* @NVME_CTRL_OACS_SSRS_MASK: Mask to get the Security Send Receive supported
1951+
* @NVME_CTRL_OACS_FNVMS_MASK: Mask to get the Format NVM supported
1952+
* @NVME_CTRL_OACS_FWDS_MASK: Mask to get the Firmware Download supported
1953+
* @NVME_CTRL_OACS_NMS_MASK: Mask to get the Namespace Management supported
1954+
* @NVME_CTRL_OACS_DSTS_MASK: Mask to get the Device Self-test supported
1955+
* @NVME_CTRL_OACS_DIRS_MASK: Mask to get the Directives supported
1956+
* @NVME_CTRL_OACS_NSRS_MASK: Mask to get the NVMe-MI Send Receive supported
1957+
* @NVME_CTRL_OACS_VMS_MASK: Mask to get the Virtualization Management supported
1958+
* @NVME_CTRL_OACS_DBCS_MASK: Mask to get the Doorbell Buffer Config supported
1959+
* @NVME_CTRL_OACS_GLSS_MASK: Mask to get the Get LBA Status supported
1960+
* @NVME_CTRL_OACS_CFLS_MASK: Mask to get the Command and Feature Lockdown supported
1961+
* @NVME_CTRL_OACS_HMLMS_MASK: Mask to get the Host Managed Live Migration support
19381962
* @NVME_CTRL_OACS_SECURITY: If set, then the controller supports the
19391963
* Security Send and Security Receive commands.
19401964
* @NVME_CTRL_OACS_FORMAT: If set then the controller supports the Format
@@ -1956,22 +1980,62 @@ enum nvme_id_ctrl_mec {
19561980
* Doorbell Buffer Config command.
19571981
* @NVME_CTRL_OACS_LBA_STATUS: If set, then the controller supports the Get LBA
19581982
* Status capability.
1959-
* @NVME_CTRL_OACS_CMD_FEAT_LD: If set, then the controller supports the command
1960-
* and feature lockdown capability.
1983+
* @NVME_CTRL_OACS_CMD_FEAT_LD:If set, then the controller supports the command
1984+
* and feature lockdown capability.
1985+
* @NVME_CTRL_OACS_HMLM: If set, then the controller supports the command
1986+
* and Host Managed Live Migration capability.
19611987
*/
19621988
enum nvme_id_ctrl_oacs {
1963-
NVME_CTRL_OACS_SECURITY = 1 << 0,
1964-
NVME_CTRL_OACS_FORMAT = 1 << 1,
1965-
NVME_CTRL_OACS_FW = 1 << 2,
1966-
NVME_CTRL_OACS_NS_MGMT = 1 << 3,
1967-
NVME_CTRL_OACS_SELF_TEST = 1 << 4,
1968-
NVME_CTRL_OACS_DIRECTIVES = 1 << 5,
1969-
NVME_CTRL_OACS_NVME_MI = 1 << 6,
1970-
NVME_CTRL_OACS_VIRT_MGMT = 1 << 7,
1971-
NVME_CTRL_OACS_DBBUF_CFG = 1 << 8,
1972-
NVME_CTRL_OACS_LBA_STATUS = 1 << 9,
1973-
NVME_CTRL_OACS_CMD_FEAT_LD = 1 << 10,
1974-
};
1989+
NVME_CTRL_OACS_SSRS_SHIFT = 0,
1990+
NVME_CTRL_OACS_FNVMS_SHIFT = 1,
1991+
NVME_CTRL_OACS_FWDS_SHIFT = 2,
1992+
NVME_CTRL_OACS_NMS_SHIFT = 3,
1993+
NVME_CTRL_OACS_DSTS_SHIFT = 4,
1994+
NVME_CTRL_OACS_DIRS_SHIFT = 5,
1995+
NVME_CTRL_OACS_NSRS_SHIFT = 6,
1996+
NVME_CTRL_OACS_VMS_SHIFT = 7,
1997+
NVME_CTRL_OACS_DBCS_SHIFT = 8,
1998+
NVME_CTRL_OACS_GLSS_SHIFT = 9,
1999+
NVME_CTRL_OACS_CFLS_SHIFT = 10,
2000+
NVME_CTRL_OACS_HMLMS_SHIFT = 11,
2001+
NVME_CTRL_OACS_SSRS_MASK = 1,
2002+
NVME_CTRL_OACS_FNVMS_MASK = 1,
2003+
NVME_CTRL_OACS_FWDS_MASK = 1,
2004+
NVME_CTRL_OACS_NMS_MASK = 1,
2005+
NVME_CTRL_OACS_DSTS_MASK = 1,
2006+
NVME_CTRL_OACS_DIRS_MASK = 1,
2007+
NVME_CTRL_OACS_NSRS_MASK = 1,
2008+
NVME_CTRL_OACS_VMS_MASK = 1,
2009+
NVME_CTRL_OACS_DBCS_MASK = 1,
2010+
NVME_CTRL_OACS_GLSS_MASK = 1,
2011+
NVME_CTRL_OACS_CFLS_MASK = 1,
2012+
NVME_CTRL_OACS_HMLMS_MASK = 1,
2013+
NVME_CTRL_OACS_SECURITY = NVME_VAL(CTRL_OACS_SSRS),
2014+
NVME_CTRL_OACS_FORMAT = NVME_VAL(CTRL_OACS_FNVMS),
2015+
NVME_CTRL_OACS_FW = NVME_VAL(CTRL_OACS_FWDS),
2016+
NVME_CTRL_OACS_NS_MGMT = NVME_VAL(CTRL_OACS_NMS),
2017+
NVME_CTRL_OACS_SELF_TEST = NVME_VAL(CTRL_OACS_DSTS),
2018+
NVME_CTRL_OACS_DIRECTIVES = NVME_VAL(CTRL_OACS_DIRS),
2019+
NVME_CTRL_OACS_NVME_MI = NVME_VAL(CTRL_OACS_NSRS),
2020+
NVME_CTRL_OACS_VIRT_MGMT = NVME_VAL(CTRL_OACS_VMS),
2021+
NVME_CTRL_OACS_DBBUF_CFG = NVME_VAL(CTRL_OACS_DBCS),
2022+
NVME_CTRL_OACS_LBA_STATUS = NVME_VAL(CTRL_OACS_GLSS),
2023+
NVME_CTRL_OACS_CMD_FEAT_LD = NVME_VAL(CTRL_OACS_CFLS),
2024+
NVME_CTRL_OACS_HMLM = NVME_VAL(CTRL_OACS_HMLMS),
2025+
};
2026+
2027+
#define NVME_CTRL_OACS_SSRS(oacs) NVME_GET(CTRL_OACS_SSRS)
2028+
#define NVME_CTRL_OACS_FNVMS(oacs) NVME_GET(CTRL_OACS_FNVMS)
2029+
#define NVME_CTRL_OACS_FWDS(oacs) NVME_GET(CTRL_OACS_FWDS)
2030+
#define NVME_CTRL_OACS_NMS_M(oacs) NVME_GET(CTRL_OACS_NMS)
2031+
#define NVME_CTRL_OACS_DSTS(oacs) NVME_GET(CTRL_OACS_DSTS)
2032+
#define NVME_CTRL_OACS_DIRS(oacs) NVME_GET(CTRL_OACS_DIRS)
2033+
#define NVME_CTRL_OACS_NSRS(oacs) NVME_GET(CTRL_OACS_NSRS)
2034+
#define NVME_CTRL_OACS_VMS_M(oacs) NVME_GET(CTRL_OACS_VMS)
2035+
#define NVME_CTRL_OACS_DBCS(oacs) NVME_GET(CTRL_OACS_DBCS)
2036+
#define NVME_CTRL_OACS_GLSS(oacs) NVME_GET(CTRL_OACS_GLSS)
2037+
#define NVME_CTRL_OACS_CFLS(oacs) NVME_GET(CTRL_OACS_CFLS)
2038+
#define NVME_CTRL_OACS_HMLMS(oacs) NVME_GET(CTRL_OACS_HMLMS)
19752039

19762040
/**
19772041
* enum nvme_id_ctrl_frmw - Flags and values indicates capabilities regarding

0 commit comments

Comments
 (0)