libnvme(9)
π libnvme(9) β API Manual π
okay so bestie, welcome to the libnvme API manual β¨ today's main character is a struct called nvme_mi_vpd_hdr, aka the Vital Product Data Common Header β yes that's its government name, and yes it ate π
πΈ NAME πΈ
struct nvme_mi_vpd_hdr β Vital Product Data Common Header π
like, it's the little header that sits at the front of your VPD and tells you where all the other areas live. no cap, it's giving table-of-contents energy.
β¨ SYNOPSIS β¨
here's the whole vibe, character for character, don't touch it:
struct nvme_mi_vpd_hdr {
__u8 ipmiver;
__u8 iuaoff;
__u8 ciaoff;
__u8 biaoff;
__u8 piaoff;
__u8 mrioff;
__u8 rsvd6;
__u8 chchk;
__u8 vpd[];
};
look at all those __u8s just lined up like a little choir π«Ά and then vpd[] at the end being all flexible and mysterious, flexible-array-member vibes fr fr.
π¦ Members π¦
time for the roll call, everyone say hi π
ipmiverβ IPMI Format Version Number. it's literally the version number of the IPMI format πiuaoffβ Internal Use Area Starting Offset. where the Internal Use Area starts, iconically.ciaoffβ Chassis Info Area Starting Offset. yup, the starting offset of the Chassis Info Area β¨biaoffβ Board Info Area Starting Offset. the Board Info Area's starting offset, slay.piaoffβ Product Info Area Starting Offset. Product Info Area starting offset, we been knew.mrioffβ MultiRecord Info Area Starting Offset. and this one's the MultiRecord Info Area starting offset πrsvd6β Reserved. π not for you, bestie, it's reserved, hands off.chchkβ Common Header Checksum. the checksum for the common header, keeping things honest π§vpdβ Vital Product Data. the actual data itself, the whole point of the party π
so yeah, a bunch of offsets, a version, a reserved byte doing nothing (respectfully), a checksum, and then the payload. simple, iconic, no notes π
lowkey reminder bestie: every single one of those fields is __u8, and the manual says exactly what each one is β don't go guessing at meanings that aren't written down here, that's not the vibe check we're passing π
and that's the whole page, bestie!! ππβ¨
sign-off time: this lil struct doc is from the libnvme(9) API Manual, dated October 2026, and the footer's whole personality was struct nvme_mi_vpd_hdr with the page name libnvme(9) again β so basically it said its own name twice, which is very main character of it π
byeee π¦
π¦ 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