libnvme(9)
π libnvme(9) β like, the actual API manual, bestie
okay so real talk, this is the libnvme(9) manual page, and today's main character is enum nvme_id_iocs_iocsc β yes that's a mouthful, no I will not be pronouncing it out loud π
β¨ NAME β¨
enum nvme_id_iocs_iocsc β bestie, this field literally indicates the Identify I/O Command Set Data Structure. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
here's the whole thing in all its glory, copy it exactly, don't @ me:
enum nvme_id_iocs_iocsc {
NVME_IOCS_IOCSC_NVMCS_SHIFT ,
NVME_IOCS_IOCSC_NVMCS_MASK ,
NVME_IOCS_IOCSC_KVCS_SHIFT ,
NVME_IOCS_IOCSC_KVCS_MASK ,
NVME_IOCS_IOCSC_ZNSCS_SHIFT ,
NVME_IOCS_IOCSC_ZNSCS_MASK ,
NVME_IOCS_IOCSC_SLMCS_SHIFT ,
NVME_IOCS_IOCSC_SLMCS_MASK ,
NVME_IOCS_IOCSC_CPNCS_SHIFT ,
NVME_IOCS_IOCSC_CPNCS_MASK
};
π¦ Constants π¦
okay so each command set gets itself a little SHIFT + MASK duo, like matching friendship bracelets except they're bitfields π«Ά. the SHIFT tells you how far to slide, the MASK tells you what to grab. slay.
NVME_IOCS_IOCSC_NVMCS_SHIFTβ the shift amount so you can get the value of NVM Command Set πNVME_IOCS_IOCSC_NVMCS_MASKβ the mask so you can get the value of NVM Command Set β¨NVME_IOCS_IOCSC_KVCS_SHIFTβ shift amount, but make it Key Value Command Set πNVME_IOCS_IOCSC_KVCS_MASKβ mask, and yup, it's for the Key Value Command Set π¦NVME_IOCS_IOCSC_ZNSCS_SHIFTβ shift amount to get the value of Zoned Namespace Command Set, iconic honestly πΈNVME_IOCS_IOCSC_ZNSCS_MASKβ mask to get the value of Zoned Namespace Command Set πNVME_IOCS_IOCSC_SLMCS_SHIFTβ shift amount to get the value of Subsystem Local Memory Command Set, say that five times fast πNVME_IOCS_IOCSC_SLMCS_MASKβ mask to get the value of Subsystem Local Memory Command Set π₯NVME_IOCS_IOCSC_CPNCS_SHIFTβ shift amount to get the value of Computational Programs Namespace Command Set πNVME_IOCS_IOCSC_CPNCS_MASKβ mask to get the value of Computational Programs Namespace Command Set β
ngl bestie, they're all "shift to get the value" and "mask to get the value" β that's the entire lore. ten constants, five command sets, zero surprises. iykyk π
and that's the page!! no cap, that's genuinely everything π this lil' writeup is from October 2026, it's the enum nvme_id_iocs_iocsc entry, and it lives in the libnvme(9) manual β go forth and mask your bits responsibly, mwah π§β¨
π¦ 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