STRUCT NVDIMM_EFI_LABEL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct nvdimm_efi_label(9) β€” namespace superblock πŸ’–

okay so bestie, we're in the Kernel API Manual today and the main character is struct nvdimm_efi_label. It's literally the namespace superblock. That's it, that's the whole vibe. She's a label. She holds the metadata. She's iconic and she knows it. πŸŽ€


✨ NAME ✨

struct nvdimm_efi_label β€” namespace superblock. no cap, that's literally what the man page says and we're not gonna argue with it 🫢


🌸 SYNOPSIS 🌸

struct nvdimm_efi_label {
    u8 uuid[NSLABEL_UUID_LEN];
    u8 name[NSLABEL_NAME_LEN];
    __le32 flags;
    __le16 nlabel;
    __le16 position;
    __le64 isetcookie;
    __le64 lbasize;
    __le64 dpa;
    __le64 rawsize;
    __le32 slot;
    u8 align;
    u8 reserved[3];
    guid_t type_guid;
    guid_t abstraction_guid;
    u8 reserved2[88];
    __le64 checksum;
 };

look at her. seventeen fields. she's serving structure realness πŸ’…


πŸ¦‹ Members πŸ¦‹

time for the roll call, bestie, get your notes app open πŸ“

  • uuid β€” the UUID per RFC 4122. yeah, the real one, not a knockoff πŸ’œ
  • name β€” optional name, and it's NULL-terminated (so like, don't forget the \0 or she'll keep reading past the end and it's gonna be a whole thing 😭)
  • flags β€” go see NSLABEL_FLAG_* for the details, iykyk
  • nlabel β€” num labels to describe this ns. that's the number of labels doing the describing, fr fr
  • position β€” labels position in set. she's gotta know her spot in the lineup πŸ‘‘
  • isetcookie β€” interleave set cookie. a cookie!! πŸ“ (technically it's an interleave set cookie but still)
  • lbasize β€” LBA size in bytes, or 0 for pmem. zero means pmem, that's the rule, don't come for me
  • dpa β€” DPA of NVM range on this DIMM
  • rawsize β€” size of namespace
  • slot β€” slot of this label in label area
  • align β€” physical address alignment of the namespace
  • reserved β€” reserved. she's reserved. respect her privacy πŸ™ˆ
  • type_guid β€” a copy of struct acpi_nfit_system_address.range_guid
  • abstraction_guid β€” the personality id (btt, btt2, fsdax, devdax....). yes personality id, she contains multitudes ✨
  • reserved2 β€” reserved (again, still reserved, still not our business)
  • checksum β€” fletcher64 sum of this object. fletcher64 specifically. not fletcher32, not some other checksum, fletcher64, periodt πŸ”₯

🌈 SEE ALSO 🌈

the kernel file is ./drivers/nvdimm/label.h and honestly go read the whole friend group:

  • struct nd_namespace_index(9)
  • struct cxl_region_label(9)
  • struct nvdimm_cxl_label(9)
  • struct nd_label_id(9)

lowkey a reminder: reserved and reserved2 are literally named reserved. that's not a hint to get creative. leave them alone bestie πŸ’€

and that's the page!! 🧚 from ./drivers/nvdimm, dated October 2026, in the Kernel API Manual β€” mwah, slay, go read some label structs, ily β­πŸ’–

πŸ“¦ where this page comes from