libnvme(9)
π libnvme(9) β struct nvme_mi_admin_req_hdr π
okay bestie, buckle up, because this is the libnvme API manual and today's main character is struct nvme_mi_admin_req_hdr β the Admin command request header. yes, the whole page is literally just this one struct and honestly? it ate. let's get into it π«Ά
β¨ NAME β¨
struct nvme_mi_admin_req_hdr β Admin command request header. that's it, that's the vibe π
πΈ SYNOPSIS πΈ
bestie here's the whole thing, look at her:
struct nvme_mi_admin_req_hdr {
struct nvme_mi_msg_hdr hdr;
__u8 opcode;
__u8 flags;
__le16 ctrl_id;
__le32 cdw1, cdw2, cdw3, cdw4, cdw5;
__le32 doff;
__le32 dlen;
__le32 rsvd0, rsvd1;
__le32 cdw10, cdw11, cdw12, cdw13, cdw14, cdw15;
};
like, no cap, that's the entire struct. sixteen-ish fields of pure Admin command energy β
π Members π
time for the member-by-member vibe check, and yes we're doing all of them, i would never gatekeep π
hdrβ the Generic MI message header. it's giving "generic but essential" πopcodeβ Admin command opcode, and it's usingenum nvme_admin_opcode. iconic, lowkey π¦flagsβ Command Flags, and what they do is indicatedlenanddoffvalidity. but heads up bestie: this is Only defined in NVMe-MI version 1.1 π there are no fields defined in 1.2 (where thedlen/doffare always considered valid). so like, version check your vibes, fr frctrl_idβ Controller ID target of command. it's giving "who is this for" energy πcdw1β Submission Queue Entry doubleword 1 β¨cdw2β Submission Queue Entry doubleword 2 β¨cdw3β Submission Queue Entry doubleword 3 β¨cdw4β Submission Queue Entry doubleword 4 β¨cdw5β Submission Queue Entry doubleword 5 β¨doffβ Offset of data to return from command. that's your little pointer to the good stuff πdlenβ Length of sent/returned data. size matters, periodt πrsvd0β Reserved. not for you bestie, hands off πrsvd1β Reserved. also not for you, also hands off πcdw10β Submission Queue Entry doubleword 10 πcdw11β Submission Queue Entry doubleword 11 πcdw12β Submission Queue Entry doubleword 12 πcdw13β Submission Queue Entry doubleword 13 πcdw14β Submission Queue Entry doubleword 14 πcdw15β Submission Queue Entry doubleword 15 π
ok real talk for a sec:cdw1throughcdw5andcdw10throughcdw15are all Submission Queue Entry doublewords. notice howcdw6βcdw9are justβ¦ not here? anyway, not my struct, not my problem π§
π¦ Description π¦
so what is this thing? it's the Wire format for Admin command message headers, defined in section 6 of NVMe-MI. and that's the whole description, bestie β short, mysterious, main character energy. genuinely obsessed with how it says so much by saying so little ππ₯
and that's the page!! this gorgeous little slice of API manual is from libnvme(9), it covers struct nvme_mi_admin_req_hdr, and it's dated October 2026 β go forth and structure your admin requests, queen πβ¨π
π¦ 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