libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… libnvme(9) β€” API Manual, bestie edition πŸŽ€

okay so picture this: you're deep in libnvme (the API manual, to be exact), and you open up this one struct. It's called struct nvme_id_independent_id_ns, and it's literally the Identify - I/O Command Set Independent Identify Namespace Data Structure. That's a whole mouthful, I know, but stay with me β€” it's iconic, it's giving "namespace lore," and you're gonna slay this. ✨


🌸 NAME 🌸

struct nvme_id_independent_id_ns β€” the Identify - I/O Command Set Independent Identify Namespace Data Structure. yes that's the whole name. no we're not shortening it. periodt. πŸ’…


✨ SYNOPSIS ✨

here's the shape of it, bestie β€” copy it exactly, don't touch a single byte:

struct nvme_id_independent_id_ns {
    __u8 nsfeat;
    __u8 nmic;
    __u8 rescap;
    __u8 fpi;
    __le32 anagrpid;
    __u8 nsattr;
    __u8 rsvd9;
    __le16 nvmsetid;
    __le16 endgid;
    __u8 nstat;
    __u8 kpios;
    __le16 maxkt;
    __u8 rsvd18[2];
    __le32 rgrpid;
    __u8 rsvd24[4072];
 };

like, look at those little padding arrays. rsvd24[4072]?? it's carrying the whole struct on its back ngl. 🫢


πŸ¦‹ Members πŸ¦‹ (the field-by-field vibe check)

  • nsfeat β€” common namespace features. the basics. the foundation. the main character energy of the field list. πŸ‘‘
  • nmic β€” Namespace Multi-path I/O and Namespace Sharing Capabilities. long name, big responsibilities. πŸ’œ
  • rescap β€” Reservation Capabilities. what it can reserve, iykyk. πŸŽ€
  • fpi β€” Format Progress Indicator. yes it's tracking the format. yes it's watching. πŸ™ˆ
  • anagrpid β€” ANA Group Identifier. (__le32, so little-endian, bestie β€” do not @ me.) ⭐
  • nsattr β€” Namespace Attributes. the ~attributes~. very demure, very mindful. 🌸
  • rsvd9 β€” reserved. nothing to see here, move along. πŸ’€
  • nvmsetid β€” NVM Set Identifier. a __le16 icon. πŸ”₯
  • endgid β€” Endurance Group Identifier. another __le16, living its best life. 🌈
  • nstat β€” Namespace Status. how's the namespace doing? ask nstat. πŸ’–
  • kpios β€” Key Per I/O Status. key-per-I/O? status. that's the whole thing. πŸ¦‹
  • maxkt β€” Maximum Key Tag. __le16. max. key. tag. slay. ✨
  • rsvd18 β€” Reserved. it's an array of 2, it's just chillin'. 🧚
  • rgrpid β€” Reachability Group Identifier. __le32. reachability?? relatable fr fr. 🌟
  • rsvd24 β€” Reserved. 4072 whole bytes of reserved. they're not doing anything and honestly? same. πŸ’…
lowkey reminder: the rsvd* fields are reserved β€” hands off, no cap. don't go writing your fanfic into them. 🫢

that's the whole struct, bestie. every byte accounted for, every reserved array respected, nothing invented, nothing skipped. you ate. πŸ“

this page is libnvme(9), from the API Manual β€” struct nvme_id_independent_id_ns, dated October 2026. mwah, go touch some namespaces. πŸ’œ

πŸ“¦ where this page comes from