libnvme(2)

πŸ’– NAME πŸ’–

struct nvmf_discovery_log β€” it's the Discovery Log Page, aka Log Identifier 70h ✨

And yes bestie, this page lives in the libnvme API manual, so it's libnvme(2) β€” you're exactly where you're supposed to be 🫢


🌸 SYNOPSIS 🌸

struct nvmf_discovery_log {
    __le64 genctr;
    __le64 numrec;
    __le16 recfmt;
    __u8 rsvd14[1006];
    struct nvmf_disc_log_entry entries[];
};

πŸ¦‹ Members πŸ¦‹

Okay so this struct is literally just a header + a whole rack of entries, and here's what every single field is doing:

  • genctr β€” the Generation Counter (GENCTR), and she's the vibe tracker for the whole page πŸ‘‘. She tells you what version of the discovery info you're looking at, and she starts her life at a value of 0h. Every time the Discovery Log Page changes, this counter gets incremented by one. And here's the cute bit: if the value is FFFFFFFF_FFFFFFFFh, then the field shall be cleared to 0h when incremented β€” yep, she rolls over back to 0h πŸ”„. No drama, just wrapped.
  • numrec β€” Number of Records (NUMREC) πŸ’…. It tells you how many records are chillin' inside the log.
  • recfmt β€” Record Format (RECFMT) πŸŽ€. This one specifies the format of the Discovery Log Page. If someone defines a brand new format, this value gets incremented by one. And the format of the record specified in this definition shall be 0h. Periodt.
  • rsvd14 β€” Reserved πŸ’€. That's it, that's the field, don't touch her.
  • entries β€” Discovery Log Page Entries πŸ”₯ β€” and you need to go see struct nvmf_disc_log_entry for the actual deets. Go look, I'll wait 🧚

okay that's the whole page, bestie, you ate that πŸ’œ

This was struct nvmf_discovery_log from the libnvme(2) API Manual, dated July 2026 πŸ“… β€” screenshot it, save it, love it, bye πŸŽ€βœ¨πŸ’–

πŸ“¦ where this page comes from