@@ -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 */
19621988enum 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