libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… libnvme(9) β€” struct nvme_exported_ns_list πŸŽ€

okay bestie, welcome to the libnvme manual, section 9, and today's main character is honestly kind of a legend: struct nvme_exported_ns_list. yes it's a struct name that's a whole sentence, no we're not gonna shorten it, periodt. ✨


🌸 NAME 🌸

struct nvme_exported_ns_list β€” the Exported Namespace List Data Structure, which is what you get back from the Manage Exported NVM Subsystem Receive command's List Exported Namespaces management operation. like, that's the whole vibe: it's the list of namespaces that got exported. the way that this struct is literally just a header plus a little array of descriptors... iconic. πŸ¦‹


✨ SYNOPSIS ✨

struct nvme_exported_ns_list {
    __le16 n;
    __u8 rsvd2;
    __u8 gn;
    __u8 rsvd4[4];
    struct nvme_exported_ns_descriptor entries[];
 };

look at her. look at the layout. __le16, a couple of reserved bytes, a gn, four more reserved bytes, and then the flexible array member doing its thing at the end. we love a trailing array, ngl. πŸ”₯


🧚 Members 🧚

okay so let's meet the cast, one field at a time, and yes i'm gonna be normal about the reserved fields (i'm not):

  • n β€” the Number of Exported Namespaces, aka (N). this is your count, your headcount, your "how many are we talking about here" number. πŸ’–
  • rsvd2 β€” Reserved. that's it. that's the tweet. hands off, bestie, don't touch. πŸ™ˆ
  • gn β€” the Generation Number, aka (GN). yes gn maps to "Generation Number", the naming committee was feeling efficient that day and honestly? respect. πŸ‘‘
  • rsvd4 β€” Reserved. again. it's giving "padding" and we're gonna leave it exactly alone. πŸ’€
  • entries β€” the Exported Namespace Descriptor list, and it's an array of struct nvme_exported_ns_descriptor, so go peek at that one for the actual descriptor details. this is the part where the real data lives, lowkey the best field. 🫢
heads up: rsvd2 and rsvd4 are Reserved. like, genuinely reserved. don't be the one who writes into them, that's not the move. 😭

🌈 a lil sign-off 🌈

that's the whole page, bestie β€” this one's from the libnvme manual, struct nvme_exported_ns_list section, dated October 2026, and it ate. no crumbs. now go read struct nvme_exported_ns_descriptor and slay your exports. πŸ’œπŸŒΈβ­

πŸ“¦ where this page comes from