libnvme(9)
π
libnvme(9) β the enum nvme_id_ctrl_oncs glow-up
okay bestie, so this page is from the libnvme API manual, and it's literally just one little enum that tells you which β¨optionalβ¨ NVM commands and features your controller is out here supporting. it's giving "capability checklist but make it C". let's get into it π«Ά
β¨ NAME β¨
enum nvme_id_ctrl_oncs β this field indicates the optional NVM commands and features supported by the controller.
like, it's the controller's little resume of extra tricks it can do. no cap π
π¦ SYNOPSIS π¦
enum nvme_id_ctrl_oncs {
NVME_CTRL_ONCS_COMPARE ,
NVME_CTRL_ONCS_WRITE_UNCORRECTABLE ,
NVME_CTRL_ONCS_DSM ,
NVME_CTRL_ONCS_WRITE_ZEROES ,
NVME_CTRL_ONCS_SAVE_FEATURES ,
NVME_CTRL_ONCS_RESERVATIONS ,
NVME_CTRL_ONCS_TIMESTAMP ,
NVME_CTRL_ONCS_VERIFY ,
NVME_CTRL_ONCS_COPY ,
NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY ,
NVME_CTRL_ONCS_ALL_FAST_COPY ,
NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE ,
NVME_CTRL_ONCS_NAMESPACE_ZEROES
};
thirteen constants, zero skips, we love a complete roster π
πΈ Constants πΈ
okay so every single one of these is a "if set, thenβ¦" situation. as in, if the bit is set, your controller has that feature. main character bit flags fr fr.
NVME_CTRL_ONCS_COMPAREβ if set, then the controller supports the Compare command. it can compare things. icon behavior π₯NVME_CTRL_ONCS_WRITE_UNCORRECTABLEβ if set, then the controller supports the Write Uncorrectable command. yes the name sounds fake, it's real, move on πNVME_CTRL_ONCS_DSMβ if set, then the controller supports the Dataset Management command.NVME_CTRL_ONCS_WRITE_ZEROESβ if set, then the controller supports the Write Zeroes command. zeroes, but make it a command β¨NVME_CTRL_ONCS_SAVE_FEATURESβ if set, then the controller supports the Save field set to a non-zero value in the Set Features command and the Select field set to a non-zero value in the Get Features command. both. it's an and situation, not an or situation πNVME_CTRL_ONCS_RESERVATIONSβ if set, then the controller supports reservations.NVME_CTRL_ONCS_TIMESTAMPβ if set, then the controller supports the Timestamp feature. it knows what time it is βNVME_CTRL_ONCS_VERIFYβ if set, then the controller supports the Verify command.NVME_CTRL_ONCS_COPYβ if set, then the controller supports the copy command. (yes, lowercase "copy" in the original, we respect the source π )NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITYβ if set, then the write portion of a Copy command is performed as a single write command to which the same atomicity requirements that apply to a write command apply. so it's atomic in exactly the same way a write is atomic, no extra lore πNVME_CTRL_ONCS_ALL_FAST_COPYβ if set, then all copy operations for the Copy command are fast copy operations. all of them. every single one. fast. π¦NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATEβ ifMAXWZDbit set, then the maximum data size for Write Zeroes command depends on the value of the Deallocate bit in the Write Zeroes command and the value in theWZDSLfield in the I/O Command Set specific Identify Controller data structure. yes that's a whole sentence, yes it matters, don't skip it πNVME_CTRL_ONCS_NAMESPACE_ZEROESβ ifNSZSbit set, then the controller supports the Namespace Zeroes (NSZ) bit in the NVM Command Set Write Zeroes command.
ngl, notice how the last two are gated on their own bits (MAXWZDandNSZS) instead of the usual "if set" on the enum bit itself β that's literally what the page says, so don't come for me π
and that's the whole vibe check, bestie. thirteen flags, all accounted for, nothing dropped. slay π
sign-off szn π β this page is dated October 2026 and lives in libnvme(9), under the title enum nvme_id_ctrl_oncs. periodt. β¨
π¦ 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