libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– libnvme(9) πŸ’–

okay so bestie, we need to talk about libnvme(9) β€” it's the API manual for libnvme, and today we're doing a deep dive on this one enum, and honestly? it's giving "I contain multitudes" and I'm obsessed.


✨ NAME ✨

enum nvme_mi_mi_opcode β€” the operation code for supported NVMe-MI commands, periodt πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nvme_mi_mi_opcode {
    nvme_mi_mi_opcode_mi_data_read ,
    nvme_mi_mi_opcode_subsys_health_status_poll ,
    nvme_mi_mi_opcode_ctrl_health_status_poll ,
    nvme_mi_mi_opcode_configuration_set ,
    nvme_mi_mi_opcode_configuration_get ,
    nvme_mi_mi_opcode_vpd_read ,
    nvme_mi_mi_opcode_vpd_write ,
    nvme_mi_mi_opcode_reset ,
    nvme_mi_mi_opcode_ses_recv ,
    nvme_mi_mi_opcode_ses_send ,
    nvme_mi_mi_opcode_meb_read ,
    nvme_mi_mi_opcode_meb_write ,
    nvme_mi_mi_opcode_shutdown ,
    nvme_mi_mi_opcode_pda_read ,
    nvme_mi_mi_opcode_pda_write ,
    nvme_mi_mi_opcode_pda_write_zeroes

};

like, look at that list. sixteen whole opcodes. main character energy from top to bottom, no cap. πŸŽ€


🌸 Constants 🌸

each one of these is a literal vibe, so let's go through them one by one, bestie:

  • nvme_mi_mi_opcode_mi_data_read β€” Read NVMe-MI Data Structure. it literally reads the NVMe-MI data structure, slay.
  • nvme_mi_mi_opcode_subsys_health_status_poll β€” Subsystem Health Status Poll. checking on the subsystem's health, like a good friend should 🫢
  • nvme_mi_mi_opcode_ctrl_health_status_poll β€” Controller Health Status Poll. same energy but for the controller, iconic.
  • nvme_mi_mi_opcode_configuration_set β€” MI Configuration Set. setting the MI configuration, we love a decisive moment ✨
  • nvme_mi_mi_opcode_configuration_get β€” MI Configuration Get. getting the MI configuration, the sequel we deserved.
  • nvme_mi_mi_opcode_vpd_read β€” VPD Read. reading that VPD, periodt.
  • nvme_mi_mi_opcode_vpd_write β€” VPD Write. writing that VPD, the way that it just works πŸ’…
  • nvme_mi_mi_opcode_reset β€” Reset. it resets. dramatic? maybe. necessary? absolutely. πŸ”₯
  • nvme_mi_mi_opcode_ses_recv β€” SES Receive. receiving SES, iykyk.
  • nvme_mi_mi_opcode_ses_send β€” SES Send. sending SES, the other half of the duo 🌈
  • nvme_mi_mi_opcode_meb_read β€” Management Endpoint Buffer Read. reading from the Management Endpoint Buffer, no notes.
  • nvme_mi_mi_opcode_meb_write β€” Management Endpoint Buffer Write. writing to the Management Endpoint Buffer, ate and left no crumbs πŸ“
  • nvme_mi_mi_opcode_shutdown β€” Shutdown. it shuts it down. literally the main character of endings πŸ’€
  • nvme_mi_mi_opcode_pda_read β€” NVMe-MI PDA Read. reading the NVMe-MI PDA, lowkey essential.
  • nvme_mi_mi_opcode_pda_write β€” NVMe-MI PDA Write. writing the NVMe-MI PDA, highkey essential too.
  • nvme_mi_mi_opcode_pda_write_zeroes β€” NVMe-MI PDA Write Zeroes. writing zeroes to the NVMe-MI PDA, and honestly? zeroes have never been so iconic 🌟

okay that's the whole enum, bestie, every single opcode accounted for, nothing skipped, we ate πŸ½οΈπŸ’–

so like, that's the page!! this was enum nvme_mi_mi_opcode from the libnvme(9) API Manual, dated October 2026 β€” go off, you're gonna do amazing with these opcodes, ily, bye πŸ§šβœ¨πŸŽ€

πŸ“¦ where this page comes from