libnvme(2)

πŸ’– NAME πŸ’–

struct nvme_change_ns_event β€” the Change Namespace Event Data vibe. it's the little blob of info that tells you a namespace just Went Through Something, bestie. this is from the libnvme(2) API manual, iykyk.


✨ SYNOPSIS ✨

okay so here's the whole shape of it, no cap, copied exactly:

struct nvme_change_ns_event {
    __le32 nsmgt_cdw10;
    __u8 rsvd4[4];
    __le64 nsze;
    __u8 rsvd16[8];
    __le64 nscap;
    __u8 flbas;
    __u8 dps;
    __u8 nmic;
    __u8 rsvd35;
    __le32 ana_grp_id;
    __le16 nvmset_id;
    __le16 rsvd42;
    __le32 nsid;
 };

she's little. she's stacked. she's got reserved padding sprinkled through her like confetti πŸŽ€


πŸ¦‹ Members πŸ¦‹

every field, one by one, and yes i'm giving each one its moment:

  • nsmgt_cdw10 β€” Namespace Management CDW10. it's a __le32, she's the command dword and she's tiny-endian, so watch your byte order bestie πŸ’…
  • rsvd4 β€” Reserved. a __u8[4]. literally just vibes and empty space, do not touch her πŸ™ˆ
  • nsze β€” Namespace Size. __le64. how big the namespace is. main character measurement energy ✨
  • rsvd16 β€” Reserved again. __u8[8]. more padding. she's there to keep everything lined up and pretty πŸŽ€
  • nscap β€” Namespace Capacity. __le64. size and capacity are different things, ngl, that's the whole personality of this struct πŸ”₯
  • flbas β€” Formatted LBA Size. one lil __u8. it's giving "how big is one block" πŸ’–
  • dps β€” End-to-end Data Protection Type Settings. __u8. protection, but make it end-to-end πŸ›‘οΈ
  • nmic β€” Namespace Multi-path I/O and Namespace Sharing Capabilities. __u8. that's a long name for one single byte and honestly? iconic πŸ‘‘
  • rsvd35 β€” Reserved. __u8. just one byte of silence. respect her space 🀫
  • ana_grp_id β€” ANA Group Identifier. __le32. ANA group stuff iykyk, little-endian as always πŸ’œ
  • nvmset_id β€” NVM Set Identifier. __le16. which NVM set are we in bestie 🌸
  • rsvd42 β€” Reserved. __le16. yes again. there are a lot of reserved fields here and that's just her truth 😭
  • nsid β€” Namespace ID. __le32. the actual star of the show, the one you've been waiting for ⭐
just a heads up: all those rsvd* fields are Reserved fr fr β€” don't read meaning into them, don't write meaning into them, just let them be. they're structural, not informative πŸ’€

okay that's the whole page bestie. this is struct nvme_change_ns_event, out of the libnvme(2) API manual, and it was last dated July 2026. hope your namespaces change in the most uneventful way possible 🫢 bye pookie πŸ“

πŸ“¦ where this page comes from