libnvme(9) API Manual libnvme(9)

# [NAME](#NAME)

enum nvme\_cap - This field indicates the controller capabilities register

# [SYNOPSIS](#SYNOPSIS)

enum nvme\_cap {  
**NVME\_CAP\_MQES\_SHIFT** ,  
**NVME\_CAP\_CQR\_SHIFT** ,  
**NVME\_CAP\_AMS\_SHIFT** ,  
**NVME\_CAP\_TO\_SHIFT** ,  
**NVME\_CAP\_DSTRD\_SHIFT** ,  
**NVME\_CAP\_NSSRS\_SHIFT** ,  
**NVME\_CAP\_CSS\_SHIFT** ,  
**NVME\_CAP\_BPS\_SHIFT** ,  
**NVME\_CAP\_CPS\_SHIFT** ,  
**NVME\_CAP\_MPSMIN\_SHIFT** ,  
**NVME\_CAP\_MPSMAX\_SHIFT** ,  
**NVME\_CAP\_PMRS\_SHIFT** ,  
**NVME\_CAP\_CMBS\_SHIFT** ,  
**NVME\_CAP\_NSSS\_SHIFT** ,  
**NVME\_CAP\_CRMS\_SHIFT** ,  
**NVME\_CAP\_NSSES\_SHIFT** ,  
**NVME\_CAP\_MQES\_MASK** ,  
**NVME\_CAP\_CQR\_MASK** ,  
**NVME\_CAP\_AMS\_MASK** ,  
**NVME\_CAP\_TO\_MASK** ,  
**NVME\_CAP\_DSTRD\_MASK** ,  
**NVME\_CAP\_NSSRS\_MASK** ,  
**NVME\_CAP\_CSS\_MASK** ,  
**NVME\_CAP\_BPS\_MASK** ,  
**NVME\_CAP\_CPS\_MASK** ,  
**NVME\_CAP\_MPSMIN\_MASK** ,  
**NVME\_CAP\_MPSMAX\_MASK** ,  
**NVME\_CAP\_PMRS\_MASK** ,  
**NVME\_CAP\_CMBS\_MASK** ,  
**NVME\_CAP\_NSSS\_MASK** ,  
**NVME\_CAP\_CRMS\_MASK** ,  
**NVME\_CAP\_NSSES\_MASK** ,  
**NVME\_CAP\_AMS\_WRR** ,  
**NVME\_CAP\_AMS\_VS** ,  
**NVME\_CAP\_CSS\_NVM** ,  
**NVME\_CAP\_CSS\_CSI** ,  
**NVME\_CAP\_CSS\_ADMIN** ,  
**NVME\_CAP\_CPS\_NONE** ,  
**NVME\_CAP\_CPS\_CTRL** ,  
**NVME\_CAP\_CPS\_DOMAIN** ,  
**NVME\_CAP\_CPS\_NVMS** ,  
**NVME\_CAP\_CRWMS** ,  
**NVME\_CAP\_CRIMS**

};

# [Constants](#Constants)

[NVME\_CAP\_MQES\_SHIFT](#NVME_CAP_MQES_SHIFT)

Shift amount to get the maximum queue entries supported

[NVME\_CAP\_CQR\_SHIFT](#NVME_CAP_CQR_SHIFT)

Shift amount to get the contiguous queues required

[NVME\_CAP\_AMS\_SHIFT](#NVME_CAP_AMS_SHIFT)

Shift amount to get the arbitration mechanism supported

[NVME\_CAP\_TO\_SHIFT](#NVME_CAP_TO_SHIFT)

Shift amount to get the timeout

[NVME\_CAP\_DSTRD\_SHIFT](#NVME_CAP_DSTRD_SHIFT)

Shift amount to get the doorbell stride

[NVME\_CAP\_NSSRS\_SHIFT](#NVME_CAP_NSSRS_SHIFT)

Shift amount to get the NVM subsystem reset supported

[NVME\_CAP\_CSS\_SHIFT](#NVME_CAP_CSS_SHIFT)

Shift amount to get the command sets supported

[NVME\_CAP\_BPS\_SHIFT](#NVME_CAP_BPS_SHIFT)

Shift amount to get the boot partition support

[NVME\_CAP\_CPS\_SHIFT](#NVME_CAP_CPS_SHIFT)

Shift amount to get the controller power scope

[NVME\_CAP\_MPSMIN\_SHIFT](#NVME_CAP_MPSMIN_SHIFT)

Shift amount to get the memory page size minimum

[NVME\_CAP\_MPSMAX\_SHIFT](#NVME_CAP_MPSMAX_SHIFT)

Shift amount to get the memory page size maximum

[NVME\_CAP\_PMRS\_SHIFT](#NVME_CAP_PMRS_SHIFT)

Shift amount to get the persistent memory region supported

[NVME\_CAP\_CMBS\_SHIFT](#NVME_CAP_CMBS_SHIFT)

Shift amount to get the controller memory buffer supported

[NVME\_CAP\_NSSS\_SHIFT](#NVME_CAP_NSSS_SHIFT)

Shift amount to get the NVM subsystem shutdown supported

[NVME\_CAP\_CRMS\_SHIFT](#NVME_CAP_CRMS_SHIFT)

Shift amount to get the controller ready modes supported

[NVME\_CAP\_NSSES\_SHIFT](#NVME_CAP_NSSES_SHIFT)

Shift amount to get the NVM subsystem shutdown enhancements supported

[NVME\_CAP\_MQES\_MASK](#NVME_CAP_MQES_MASK)

Mask to get the maximum queue entries supported

[NVME\_CAP\_CQR\_MASK](#NVME_CAP_CQR_MASK)

Mask to get the contiguous queues required

[NVME\_CAP\_AMS\_MASK](#NVME_CAP_AMS_MASK)

Mask to get the arbitration mechanism supported

[NVME\_CAP\_TO\_MASK](#NVME_CAP_TO_MASK)

Mask to get the timeout

[NVME\_CAP\_DSTRD\_MASK](#NVME_CAP_DSTRD_MASK)

Mask to get the doorbell stride

[NVME\_CAP\_NSSRS\_MASK](#NVME_CAP_NSSRS_MASK)

Mask to get the NVM subsystem reset supported

[NVME\_CAP\_CSS\_MASK](#NVME_CAP_CSS_MASK)

Mask to get the command sets supported

[NVME\_CAP\_BPS\_MASK](#NVME_CAP_BPS_MASK)

Mask to get the boot partition support

[NVME\_CAP\_CPS\_MASK](#NVME_CAP_CPS_MASK)

Mask to get the controller power scope

[NVME\_CAP\_MPSMIN\_MASK](#NVME_CAP_MPSMIN_MASK)

Mask to get the memory page size minimum

[NVME\_CAP\_MPSMAX\_MASK](#NVME_CAP_MPSMAX_MASK)

Mask to get the memory page size maximum

[NVME\_CAP\_PMRS\_MASK](#NVME_CAP_PMRS_MASK)

Mask to get the persistent memory region supported

[NVME\_CAP\_CMBS\_MASK](#NVME_CAP_CMBS_MASK)

Mask to get the controller memory buffer supported

[NVME\_CAP\_NSSS\_MASK](#NVME_CAP_NSSS_MASK)

Mask to get the NVM subsystem shutdown supported

[NVME\_CAP\_CRMS\_MASK](#NVME_CAP_CRMS_MASK)

Mask to get the controller ready modes supported

[NVME\_CAP\_NSSES\_MASK](#NVME_CAP_NSSES_MASK)

Mask to get the NVM subsystem shutdown enhancements supported

[NVME\_CAP\_AMS\_WRR](#NVME_CAP_AMS_WRR)

Weighted round robin with urgent priority class

[NVME\_CAP\_AMS\_VS](#NVME_CAP_AMS_VS)

Vendor specific

[NVME\_CAP\_CSS\_NVM](#NVME_CAP_CSS_NVM)

NVM command set or a discovery controller

[NVME\_CAP\_CSS\_CSI](#NVME_CAP_CSS_CSI)

Controller supports one or more I/O command sets

[NVME\_CAP\_CSS\_ADMIN](#NVME_CAP_CSS_ADMIN)

No I/O command set is supported

[NVME\_CAP\_CPS\_NONE](#NVME_CAP_CPS_NONE)

Not reported

[NVME\_CAP\_CPS\_CTRL](#NVME_CAP_CPS_CTRL)

Controller scope

[NVME\_CAP\_CPS\_DOMAIN](#NVME_CAP_CPS_DOMAIN)

Domain scope

[NVME\_CAP\_CPS\_NVMS](#NVME_CAP_CPS_NVMS)

NVM subsystem scope

[NVME\_CAP\_CRWMS](#NVME_CAP_CRWMS)

Controller ready with media support

[NVME\_CAP\_CRIMS](#NVME_CAP_CRIMS)

Controller ready independent of media support

enum nvme\_cap October 2026

---

Document: nvme_cap-libnvme3(2) from nvme-cli 3.2-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
