libnvme(2)

πŸ’– libnvme β€” enum nvme_mi_message_type πŸ’–

okay bestie, sit DOWN, because we're cracking open a page from the API Manual for libnvme β€” section 2 of the manual pages, iykyk β€” and it's all about one lil enum that does a whole lot of heavy lifting. no cap.


✨ NAME ✨

enum nvme_mi_message_type β€” the NVMe-MI message type field. that's it, that's the whole vibe. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

enum nvme_mi_message_type {
    NVME_MI_MT_CONTROL ,
    NVME_MI_MT_MI ,
    NVME_MI_MT_ADMIN ,
    NVME_MI_MT_PCIE ,
    NVME_MI_MT_AE

};

look at her. five constants, zero drama. πŸ’…


🌸 Constants 🌸

  • NVME_MI_MT_CONTROL β€” the NV-MI Control Primitive. it's giving ✨management vibes✨, the one that handles the control-primitive stuff.
  • NVME_MI_MT_MI β€” an NVMe-MI command. yes, MI inside MI, it's MI-ception and we love her for it. 🫢
  • NVME_MI_MT_ADMIN β€” an NVMe Admin command. the responsible older sibling of the group. πŸ‘‘
  • NVME_MI_MT_PCIE β€” a PCIe command. it's down at the bus level doing bus-level things. πŸ”₯
  • NVME_MI_MT_AE β€” Asynchronous Event. the main character who shows up whenever she feels like it, uninvited. 😭 not me getting jumpscared by an async event.

πŸ’œ Description πŸ’œ

so here's the tea: this enum is used as byte 1 of both the request and the response messages β€” specifically the NMIMT bits of the NMP byte. πŸ“

⚠️ and do NOT, I repeat, do NOT confuse this with the MCTP message type in byte 0. different byte, different bestie, different whole situation. that's a separate field living its own life in byte 0 and she doesn't want your confusion. πŸ’€

and that's the page, babe! 🌈 this lil writeup is dated July 2026, it's all about enum nvme_mi_message_type, and it lives in the libnvme(2) spot of the API Manual. go forth and byte 1 responsibly. πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from