libnvme(2)

πŸ’– NAME πŸ’–

okay bestie, gather round β€” this page lives in the libnvme(2) API Manual, and what it's giving you is:

enum nvme_io_opcode β€” the Opcodes for I/O Commands

that's it, that's the whole vibe: one enum, twenty members, zero chill. it's the master list of every I/O command opcode nvme knows about, and we're gonna go through every single one together, no skipping, no scrolling past. 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole thing in its natural habitat, copy-paste ready, not a single member changed:

enum nvme_io_opcode {
    nvme_cmd_flush ,
    nvme_cmd_write ,
    nvme_cmd_read ,
    nvme_cmd_write_uncor ,
    nvme_cmd_compare ,
    nvme_cmd_write_zeroes ,
    nvme_cmd_dsm ,
    nvme_cmd_verify ,
    nvme_cmd_resv_register ,
    nvme_cmd_resv_report ,
    nvme_cmd_resv_acquire ,
    nvme_cmd_io_mgmt_recv ,
    nvme_cmd_resv_release ,
    nvme_cmd_cancel ,
    nvme_cmd_copy ,
    nvme_cmd_io_mgmt_send ,
    nvme_zns_cmd_mgmt_send ,
    nvme_zns_cmd_mgmt_recv ,
    nvme_zns_cmd_append ,
    nvme_cmd_fabric

};

yes, there's a lil blank line before the closing brace, and yes, we're keeping it. character for character, bestie. πŸ’… the way that last blank line is just sitting there is honestly so real of it.


✨ Constants ✨

and now the moment you've all been waiting for β€” the official roll call. twenty members, in order, with what each one is called. πŸ‘‘

  • nvme_cmd_flush β€” Flush 🌊
  • nvme_cmd_write β€” Write ✍️
  • nvme_cmd_read β€” Read πŸ“–
  • nvme_cmd_write_uncor β€” Write Uncorrectable πŸ”₯
  • nvme_cmd_compare β€” Compare βš–οΈ
  • nvme_cmd_write_zeroes β€” write Zeros πŸ«₯ (the page genuinely writes it lowercase as "write Zeros" and we are NOT fixing it, we're respecting the author's choices)
  • nvme_cmd_dsm β€” Dataset Management πŸ—‚οΈ
  • nvme_cmd_verify β€” Verify βœ…
  • nvme_cmd_resv_register β€” Reservation Register πŸ“
  • nvme_cmd_resv_report β€” Reservation Report πŸ“‹
  • nvme_cmd_resv_acquire β€” Reservation Acquire πŸ”’
  • nvme_cmd_io_mgmt_recv β€” I/O Management Receive πŸ“₯
  • nvme_cmd_resv_release β€” Reservation Release πŸ”“
  • nvme_cmd_cancel β€” Cancel 🚫
  • nvme_cmd_copy β€” Copy πŸ“„
  • nvme_cmd_io_mgmt_send β€” I/O Management Send πŸ“€
  • nvme_zns_cmd_mgmt_send β€” Zone Management Send 🧚
  • nvme_zns_cmd_mgmt_recv β€” Zone Management Receive 🧚
  • nvme_zns_cmd_append β€” Zone Append βž•
  • nvme_cmd_fabric β€” Fabric Commands 🧡
heads up bestie: that's all the information this page gives you. no defaults, no return values, no error codes, no signals, no environment variables, no SEE ALSO β€” just the enum and these descriptions. so don't go inventing behaviour for any of these bad boys. if you need the actual semantics, that's a different page's problem. πŸ™ˆ

also notice the naming switch-up, iykyk: the first chunk is all nvme_cmd_*, and then four of them β€” nvme_zns_cmd_mgmt_send, nvme_zns_cmd_mgmt_recv, nvme_zns_cmd_append β€” come in as nvme_zns_cmd_* instead, then nvme_cmd_fabric brings us right back home. the way it just switches prefixes mid-enum like that? main character energy. periodt. 🌈


and that's the whole page, gorgeous. πŸ’– twenty opcodes, fully accounted for, nothing skipped, nothing invented, vibe check passed with flying colours. go forth and reference your enum members responsibly. πŸŽ€

this has been enum nvme_io_opcode from the libnvme(2) manual β€” dated July 2026, which is literally so futuristic of it β€” signing off, mwah, slay, eat your veggies, #include your headers. 🌸🫢⭐

πŸ“¦ where this page comes from