libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NAME πŸ’…

okay bestie, say hi to struct nvme_non_volatile_storage_medium_access_descriptor β€” the Non-Volatile Storage Medium Access Descriptor, aka QNSED for short (yes the acronym does not match, no we're not asking questions). This is a libnvme API manual page, and it's literally just here to introduce you to this one struct. slay.


✨ SYNOPSIS ✨

here's the whole vibe, character for character, don't touch a thing:

struct nvme_non_volatile_storage_medium_access_descriptor {
    __u8 sc;
    __u8 rsvd1;
    __le16 nnsmad;
    __le32 si;
    struct nvme_rate_limiting_max_access_descriptor rlma;
    __u8 rsvd40[24];
    __le32 nvsma_offset[];
};

like look at her. flexible array member at the end. main character energy fr fr. πŸ¦‹


πŸŽ€ Members πŸŽ€

okay so let's meet the cast, one field at a time:

  • sc β€” the Scope. go look at enum nvme_rate_limiting_scope if you wanna know the actual options, iykyk.
  • rsvd1 β€” Reserved. that's it. that's the whole field. leave it alone bestie πŸ™ˆ
  • nnsmad β€” the Number of Non-Volatile Storage Medium Access Descriptors chillin' inside nvsma_offset. but plot twist: it's cleared to 0h if sc is NVM subsystem, or if the NVM subsystem supports a single domain. so sometimes she's a zero. we respect it. πŸ’€
  • si β€” the Scope Identifier, and it's for whichever scope sc is indicating. they're a matching set, adorable.
  • rlma β€” the Rate Limiting Maximum Access</puple> for the scope that sc points at. (type: struct nvme_rate_limiting_max_access_descriptor, no cap.)
  • rsvd40 β€” Reserved again. 24 bytes of pure "nothing to see here". iconic honestly.
  • nvsma_offset β€” Dword offsets, measured relative to the start of the Rate Limiting log page, pointing to the nested Non-Volatile Storage Medium Access Descriptors β€” and there are nnsmad of those entries. she's a whole map, not just a field. πŸ”₯
reminder bestie: rsvd1 and rsvd40 are Reserved. that means hands off, no cap. don't go writing your own lore into them.

and that's the page!! no cap, it's giving "short but essential". this was libnvme, from the API Manual, dated October… β€” and the footer literally closes out with our girl struct nvme_non_volatile_storage_medium_access_descriptor and libnvme(9) one more time, so yeah, she said her name twice. periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from