libnvme(2)

πŸ’– libnvme(2) β€” API Manual πŸ’–

okay bestie, sit DOWN. we're doing the manual page for ✨libnvme✨, and this particular page is all about enum nvme_id_ctrl_oncs. no cap, it's a good one.


🌸 NAME 🌸

enum nvme_id_ctrl_oncs β€” this field is giving "here's everything I can do" energy: it indicates the optional NVM commands and features supported by the controller. πŸ’…


✨ 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

};

🫢 Constants 🫢

okay so every single one of these is a "if set, then…" situation. like, the bit being flipped is the whole personality. let's go one by one, bestie, no skipping. πŸ‘‘

  • NVME_CTRL_ONCS_COMPARE β€” if set, then the controller supports the Compare command. iconic behavior fr fr.
  • NVME_CTRL_ONCS_WRITE_UNCORRECTABLE β€” if set, then the controller supports the Write Uncorrectable command. the name is lowkey dramatic but it's just a capability bit, we move.
  • NVME_CTRL_ONCS_DSM β€” if set, then the controller supports the Dataset Management command. slay.
  • NVME_CTRL_ONCS_WRITE_ZEROES β€” if set, then the controller supports the Write Zeroes command. zeros, but make it a feature. πŸ’€
  • 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. yes, both of those, exactly like that. memorize it. ✨
  • NVME_CTRL_ONCS_RESERVATIONS β€” if set, then the controller supports reservations. it said "this seat's taken," periodt.
  • NVME_CTRL_ONCS_TIMESTAMP β€” if set, then the controller supports the Timestamp feature. it knows what time it is, literally. πŸ•
  • NVME_CTRL_ONCS_VERIFY β€” if set, then the controller supports the Verify command. trust but verify, am i right?
  • NVME_CTRL_ONCS_COPY β€” if set, then the controller supports the copy command. (lowercase "copy" here, iykyk β€” copying it exactly as written, don't come for me 😭)
  • 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. all-or-nothing, no half-sends, main character energy only. πŸ”₯
  • NVME_CTRL_ONCS_ALL_FAST_COPY β€” if set, then all copy operations for the Copy command are fast copy operations. not "some," not "most" β€” ALL. we love a commitment. πŸ’¨
  • NVME_CTRL_ONCS_WRITE_ZEROES_DEALLOCATE β€” if MAXWZD bit 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 the WZDSL field in the I/O Command Set specific Identify Controller data structure. okay this one has lore, read it twice bestie, it's doing a lot. 🧚
  • NVME_CTRL_ONCS_NAMESPACE_ZEROES β€” if NSZS bit set, then the controller supports the Namespace Zeroes (NSZ) bit in the NVM Command Set Write Zeroes command. namespace zeroes, very demure, very mindful. πŸŽ€
real talk: every one of these is conditional. no bit, no feature. don't be out here assuming a controller can do the thing just because the constant exists β€” check the field first, bestie. πŸ’œ

and that's the whole page!! you understood it, i'm obsessed, goodbye. πŸ’…βœ¨

anyway, cute little sign-off: this was enum nvme_id_ctrl_oncs from the libnvme(2) API Manual, dated July 2026. read it, screenshot it, send it to the group chat. πŸ¦‹πŸŒΈπŸ«Ά

πŸ“¦ where this page comes from