libnvme(2)

πŸ’– libnvme(2) β€” the API manual, but make it a vibe ✨

okay bestie, welcome to libnvme(2), the API manual itself, and today's main character is a struct. yes a struct. and she is serving.


🌸 NAME 🌸

struct nvme_nvm_id_ns β€” the NVME Command Set I/O Command Set Specific Identify Namespace Data Structure. that's her full legal name. she's a big deal. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole thing, verbatim, no edits, no notes, we do not touch the code:

struct nvme_nvm_id_ns {
    __le64 lbstm;
    __u8 pic;
    __u8 pifa;
    __u8 rsvd10[2];
    __le32 elbaf[64];
    __le32 npdgl;
    __le32 nprg;
    __le32 npra;
    __le32 nors;
    __le32 npdal;
    __le32 lbapss;
    __le32 tlbaag;
    __u8 rsvd296[3800];
 };

not me counting the bytes in rsvd296[3800]... she's got a lot of reserved space and honestly, relatable. the padding is the personality. 😭✨


πŸ‘‘ Members πŸ‘‘

field-by-field, one by one, no skips, no shortcuts, we respect the whole lineup 🫢

  • lbstm β€” Logical Block Storage Tag Mask. it's the mask, bestie, it masks. πŸŽ€
  • pic β€” Protection Information Capabilities. what she's capable of. iconic behavior.
  • pifa β€” Protection Information Format Attribute. the format attribute of the protection info, as promised. 🌸
  • rsvd10 β€” Reserved. she's reserved. give her space. πŸ™ˆ
  • elbaf β€” List of Extended LBA Format Support. a whole list, [64] wide, very much a group chat. πŸ’œ
  • npdgl β€” Namespace Preferred Deallocate Granularity Large. yes "Large" is part of the name, don't @ me.
  • nprg β€” Namespace Preferred Read Granularity.
  • npra β€” Namespace Preferred Read Alignment.
  • nors β€” Namespace Optimal Read Size. optimal! she said optimal! πŸ‘‘
  • npdal β€” Namespace Preferred Deallocate Alignment Large. again with the Large. we love a consistent queen.
  • lbapss β€” LBA Format Placement Shard Size. shard. size. say it with me. ✨
  • tlbaag β€” Tracked LBA Allocation Granularity.
  • rsvd296 β€” Reserved. and there is so much of it ([3800]), she's just out here holding space for the future. 🌈

lowkey a reminder: rsvd10 and rsvd296 are Reserved β€” no cap, don't go writing your own little secrets in there, that's not the move. πŸ’€

and that's the whole page, bestie β€” every member, every byte count, every default, all of it, untouched. this was struct nvme_nvm_id_ns, from the libnvme API manual, dated July 2026. periodt. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…πŸ«Ά

πŸ“¦ where this page comes from