libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– NAME πŸ’–

okay bestie, welcome to libnvme(9) β€” the API Manual page for enum nvme_id_ctrl_oacs, and it’s literally the flag situation for the optional Admin commands and features supported by the controller, see &struct nvme_id_ctrl.oacs. no cap. πŸ’…


🌟 SYNOPSIS 🌟

here’s the whole enum, exactly as it is, bestie β€” don’t let the long list scare you:

enum nvme_id_ctrl_oacs {
    NVME_CTRL_OACS_SSRS_SHIFT ,
    NVME_CTRL_OACS_FNVMS_SHIFT ,
    NVME_CTRL_OACS_FWDS_SHIFT ,
    NVME_CTRL_OACS_NMS_SHIFT ,
    NVME_CTRL_OACS_DSTS_SHIFT ,
    NVME_CTRL_OACS_DIRS_SHIFT ,
    NVME_CTRL_OACS_NSRS_SHIFT ,
    NVME_CTRL_OACS_VMS_SHIFT ,
    NVME_CTRL_OACS_DBCS_SHIFT ,
    NVME_CTRL_OACS_GLSS_SHIFT ,
    NVME_CTRL_OACS_CFLS_SHIFT ,
    NVME_CTRL_OACS_HMLMS_SHIFT ,
    NVME_CTRL_OACS_ENSS_SHIFT ,
    NVME_CTRL_OACS_CCFLS_SHIFT ,
    NVME_CTRL_OACS_SSRS_MASK ,
    NVME_CTRL_OACS_FNVMS_MASK ,
    NVME_CTRL_OACS_FWDS_MASK ,
    NVME_CTRL_OACS_NMS_MASK ,
    NVME_CTRL_OACS_DSTS_MASK ,
    NVME_CTRL_OACS_DIRS_MASK ,
    NVME_CTRL_OACS_NSRS_MASK ,
    NVME_CTRL_OACS_VMS_MASK ,
    NVME_CTRL_OACS_DBCS_MASK ,
    NVME_CTRL_OACS_GLSS_MASK ,
    NVME_CTRL_OACS_CFLS_MASK ,
    NVME_CTRL_OACS_HMLMS_MASK ,
    NVME_CTRL_OACS_ENSS_MASK ,
    NVME_CTRL_OACS_CCFLS_MASK ,
    NVME_CTRL_OACS_SSRS ,
    NVME_CTRL_OACS_FNVMS ,
    NVME_CTRL_OACS_FWDS ,
    NVME_CTRL_OACS_NMS ,
    NVME_CTRL_OACS_DSTS ,
    NVME_CTRL_OACS_DIRS ,
    NVME_CTRL_OACS_NSRS ,
    NVME_CTRL_OACS_VMS ,
    NVME_CTRL_OACS_DBCS ,
    NVME_CTRL_OACS_GLSS ,
    NVME_CTRL_OACS_CFLS ,
    NVME_CTRL_OACS_HMLMS ,
    NVME_CTRL_OACS_ENSS ,
    NVME_CTRL_OACS_CCFLS

};

πŸŽ€ Constants πŸŽ€

okay so this is the entire constants crew, in the exact order they show up. shifts first, then masks, then the actual β€œif set” values β€” slay. ✨

🌸 Shift amounts 🌸

  • NVME_CTRL_OACS_SSRS_SHIFT β€” Shift amount to get the Security Send Receive supported
  • NVME_CTRL_OACS_FNVMS_SHIFT β€” Shift amount to get the Format NVM supported
  • NVME_CTRL_OACS_FWDS_SHIFT β€” Shift amount to get the Firmware Download supported
  • NVME_CTRL_OACS_NMS_SHIFT β€” Shift amount to get the Namespace Management supported
  • NVME_CTRL_OACS_DSTS_SHIFT β€” Shift amount to get the Device Self-test supported
  • NVME_CTRL_OACS_DIRS_SHIFT β€” Shift amount to get the Directives supported
  • NVME_CTRL_OACS_NSRS_SHIFT β€” Shift amount to get the NVMe-MI Send Receive supported
  • NVME_CTRL_OACS_VMS_SHIFT β€” Shift amount to get the Virtualization Management supported
  • NVME_CTRL_OACS_DBCS_SHIFT β€” Shift amount to get the Doorbell Buffer Config supported
  • NVME_CTRL_OACS_GLSS_SHIFT β€” Shift amount to get the Get LBA Status supported
  • NVME_CTRL_OACS_CFLS_SHIFT β€” Shift amount to get the Command and Feature Lockdown supported
  • NVME_CTRL_OACS_HMLMS_SHIFT β€” Shift amount to get the Host Managed Live Migration support
  • NVME_CTRL_OACS_ENSS_SHIFT β€” Shift amount to get the Exported NVM Subsystem Support
  • NVME_CTRL_OACS_CCFLS_SHIFT β€” Shift amount to get the Controller-scoped Command and Feature Lockdown supported

πŸ¦‹ Masks πŸ¦‹

  • NVME_CTRL_OACS_SSRS_MASK β€” Mask to get the Security Send Receive supported
  • NVME_CTRL_OACS_FNVMS_MASK β€” Mask to get the Format NVM supported
  • NVME_CTRL_OACS_FWDS_MASK β€” Mask to get the Firmware Download supported
  • NVME_CTRL_OACS_NMS_MASK β€” Mask to get the Namespace Management supported
  • NVME_CTRL_OACS_DSTS_MASK β€” Mask to get the Device Self-test supported
  • NVME_CTRL_OACS_DIRS_MASK β€” Mask to get the Directives supported
  • NVME_CTRL_OACS_NSRS_MASK β€” Mask to get the NVMe-MI Send Receive supported
  • NVME_CTRL_OACS_VMS_MASK β€” Mask to get the Virtualization Management supported
  • NVME_CTRL_OACS_DBCS_MASK β€” Mask to get the Doorbell Buffer Config supported
  • NVME_CTRL_OACS_GLSS_MASK β€” Mask to get the Get LBA Status supported
  • NVME_CTRL_OACS_CFLS_MASK β€” Mask to get the Command and Feature Lockdown supported
  • NVME_CTRL_OACS_HMLMS_MASK β€” Mask to get the Host Managed Live Migration support
  • NVME_CTRL_OACS_ENSS_MASK β€” Mask to get the Exported NVM Subsystem Support
  • NVME_CTRL_OACS_CCFLS_MASK β€” Mask to get the Controller-scoped Command and Feature Lockdown supported

πŸ‘‘ β€œIf set” values πŸ‘‘

  • NVME_CTRL_OACS_SSRS β€” If set, then the controller supports the Security Send and Security Receive commands.
  • NVME_CTRL_OACS_FNVMS β€” If set then the controller supports the Format NVM command.
  • NVME_CTRL_OACS_FWDS β€” If set, then the controller supports the Firmware Commit and Firmware Image Download commands.
  • NVME_CTRL_OACS_NMS β€” If set, then the controller supports the Namespace Management capability
  • NVME_CTRL_OACS_DSTS β€” If set, then the controller supports the Device Self-test command.
  • NVME_CTRL_OACS_DIRS β€” If set, then the controller supports Directives and the Directive Send and Directive Receive commands.
  • NVME_CTRL_OACS_NSRS β€” If set, then the controller supports the NVMe-MI Send and NVMe-MI Receive commands.
  • NVME_CTRL_OACS_VMS β€” If set, then the controller supports the Virtualization Management command.
  • NVME_CTRL_OACS_DBCS β€” If set, then the controller supports the Doorbell Buffer Config command.
  • NVME_CTRL_OACS_GLSS β€” If set, then the controller supports the Get LBA Status capability.
  • NVME_CTRL_OACS_CFLS β€” If set, then the controller supports the command and feature lockdown capability.
  • NVME_CTRL_OACS_HMLMS β€” If set, then the controller supports the Host Managed Live Migration capability.
  • NVME_CTRL_OACS_ENSS β€” If set, then the controller supports the Exported Resource Management capability.
  • NVME_CTRL_OACS_CCFLS β€” If set, then the controller supports the Controller-scoped Command and Feature Lockdown capability. Cleared to '0' if the Command and Feature Lockdown Supported (CFLS) bit is cleared to '0'.

mwah πŸ’‹ this iconic page is serving libnvme(9) API Manual energy, dated October 2026, and the main character is enum nvme_id_ctrl_oacs β€” periodt. 🫢

πŸ“¦ where this page comes from