libnvme(9)

πŸ“¦ version 3.2, in arch rolling

okay so bestie, welcome to libnvme(9) β€” the API manual page for this one enum, and it's giving β€œsmall but iconic” energy ✨. let's get into it πŸ’…

πŸ’– NAME πŸ’–

enum nvme_id_ns_flbas β€” this field is literally the whole vibe check for the LBA data size & metadata size combination that the namespace has been formatted with πŸŽ€.


✨ SYNOPSIS ✨

the layout is exactly this, no cap:

enum nvme_id_ns_flbas {
    NVME_NS_FLBAS_LOWER_SHIFT ,
    NVME_NS_FLBAS_LOWER_MASK ,
    NVME_NS_FLBAS_META_EXT ,
    NVME_NS_FLBAS_HIGHER_SHIFT ,
    NVME_NS_FLBAS_HIGHER_MASK

};

πŸŽ€ Constants πŸŽ€

here's the full breakdown of every constant, bestie β€” don't skip a single one 🫢

  • NVME_NS_FLBAS_LOWER_SHIFT β€” shift to get the lower 4 bits of LBA format index 🌸
  • NVME_NS_FLBAS_LOWER_MASK β€” mask to get the index of one of the supported LBA Formats's least significant 4bits indicated in :c:type:`struct nvme_id_ns <nvme_id_ns>`.lbaf πŸ’–
  • NVME_NS_FLBAS_META_EXT β€” applicable only if format contains metadata. if this bit is set, it indicates that the metadata is transferred at the end of the data LBA, creating an extended data LBA. if cleared, it indicates that all of the metadata for a command is transferred as a separate contiguous buffer of data πŸ¦‹
  • NVME_NS_FLBAS_HIGHER_SHIFT β€” shift to get the higher 2 bits of LBA format index ⭐
  • NVME_NS_FLBAS_HIGHER_MASK β€” mask to get the index of one of the supported LBA Formats's most significant 2bits indicated in :c:type:`struct nvme_id_ns <nvme_id_ns>`.lbaf πŸ‘‘

and that's the whole page, bestie πŸ’– this cutie comes from the libnvme(9) manual, source/version enum nvme_id_ns_flbas, dated October 2026 β€” periodt πŸŒˆπŸ‘‘

πŸ“¦ where this page comes from