libnvme(9)
π libnvme(9) π
okay so this is straight out of the API Manual, and bestie, it's literally the whole page about enum nvme_cc β the enum that tells you all about the controller configuration π
no cap, that's what the NAME says, and I'm not gonna lie about it.
πΈ NAME πΈ
enum nvme_cc β this field indicates the controller configuration. periodt.
β¨ SYNOPSIS β¨
here's the whole enum, copied exactly, every single member, don't skip a one:
enum nvme_cc {
NVME_CC_EN_SHIFT ,
NVME_CC_CSS_SHIFT ,
NVME_CC_MPS_SHIFT ,
NVME_CC_AMS_SHIFT ,
NVME_CC_SHN_SHIFT ,
NVME_CC_IOSQES_SHIFT ,
NVME_CC_IOCQES_SHIFT ,
NVME_CC_CRIME_SHIFT ,
NVME_CC_EN_MASK ,
NVME_CC_CSS_MASK ,
NVME_CC_MPS_MASK ,
NVME_CC_AMS_MASK ,
NVME_CC_SHN_MASK ,
NVME_CC_CRIME_MASK ,
NVME_CC_IOSQES_MASK ,
NVME_CC_IOCQES_MASK ,
NVME_CC_CSS_NVM ,
NVME_CC_CSS_CSI ,
NVME_CC_CSS_ADMIN ,
NVME_CC_AMS_RR ,
NVME_CC_AMS_WRRU ,
NVME_CC_AMS_VS ,
NVME_CC_SHN_NONE ,
NVME_CC_SHN_NORMAL ,
NVME_CC_SHN_ABRUPT ,
NVME_CC_CRWME ,
NVME_CC_CRIME
};
π Constants π
this is the part where every single one gets its lil moment. and yes, I'm giving you the descriptions exactly as the manual hands them over β I'm a good archivist, not a chaos gremlin π
π¦ the shift amounts
NVME_CC_EN_SHIFTβ shift amount to get the enable β¨NVME_CC_CSS_SHIFTβ shift amount to get the I/O command set selectedNVME_CC_MPS_SHIFTβ shift amount to get the memory page sizeNVME_CC_AMS_SHIFTβ shift amount to get the arbitration mechanism selectedNVME_CC_SHN_SHIFTβ shift amount to get the shutdown notificationNVME_CC_IOSQES_SHIFTβ shift amount to get the I/O submission queue entry sizeNVME_CC_IOCQES_SHIFTβ shift amount to get the I/O completion queue entry sizeNVME_CC_CRIME_SHIFTβ shift amount to get the controller ready independent of media enable
π the masks
NVME_CC_EN_MASKβ mask to get the enableNVME_CC_CSS_MASKβ mask to get the I/O command set selectedNVME_CC_MPS_MASKβ mask to get the memory page sizeNVME_CC_AMS_MASKβ mask to get the arbitration mechanism selectedNVME_CC_SHN_MASKβ mask to get the shutdown notificationNVME_CC_CRIME_MASKβ mask to get the I/O submission queue entry sizeNVME_CC_IOSQES_MASKβ mask to get the I/O completion queue entry sizeNVME_CC_IOCQES_MASKβ mask to get the controller ready independent of media enable
bestie I am reading these straight off the page, character for character, no editing, no "fixing" β you want the manual, you get the manual, exactly as printed π₯
π§ the command sets
NVME_CC_CSS_NVMβ NVM command setNVME_CC_CSS_CSIβ all supported I/O command setsNVME_CC_CSS_ADMINβ admin command set only
π the arbitration mechanisms
NVME_CC_AMS_RRβ round robinNVME_CC_AMS_WRRUβ weighted round robin with urgent priority classNVME_CC_AMS_VSβ vendor specific
β the shutdown notifications
NVME_CC_SHN_NONEβ no notification; no effectNVME_CC_SHN_NORMALβ normal shutdown notificationNVME_CC_SHN_ABRUPTβ abrupt shutdown notification
π the controller-ready ones
NVME_CC_CRWMEβ controller ready with media enableNVME_CC_CRIMEβ controller ready independent of media enable
and that's literally the whole vibe, bestie β 27 members, all accounted for, nothing dropped π«Ά
signing off with the receipts: this was October 2026, the page is all about enum nvme_cc, and it lives in libnvme(9). go configure a controller, you icon ππ
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms