libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’œ libnvme(9) β€” the one and only, bestie

okay so this page is from libnvme's API manual, and it's literally all about one enum. one. enum. and honestly? it ate. it's the zone attributes info that lives inside a ZNS zone descriptor, and once you get it you'll be obsessed πŸ¦‹


✨ NAME ✨

enum nvme_zns_zai β€” the Zone Descriptor Data Structure's Zone Attributes Information, aka the little bitfield that tells you how badly the controller recommends you reset or finish a zone πŸ”₯


🌸 SYNOPSIS 🌸

enum nvme_zns_zai {
    NVME_ZNS_ZAI_RZRTL_SHIFT ,
    NVME_ZNS_ZAI_RZRTL_MASK ,
    NVME_ZNS_ZAI_FZRTL_SHIFT ,
    NVME_ZNS_ZAI_FZRTL_MASK ,
    NVME_ZNS_ZAI_RTL_0 ,
    NVME_ZNS_ZAI_RTL_1 ,
    NVME_ZNS_ZAI_RTL_2 ,
    NVME_ZNS_ZAI_RTL_3

};

like, that's it. that's the whole enum. no cap 🫢 (and yes, there's a lil blank line before the closing brace in the original, we're keeping the vibes exactly as they are πŸ’…)


πŸŽ€ Constants πŸŽ€

okay so these are the members, one by one, and each one is doing its own little job. no skipping, bestie β€” all eight, in order, periodt ⭐

  • NVME_ZNS_ZAI_RZRTL_SHIFT β€” the shift amount you use to pull the Reset Zone Recommended Time Limit (RZRTL for short, iykyk) out of the struct nvme_zns_desc.zai field. shift it, get the number, slay πŸ’«
  • NVME_ZNS_ZAI_RZRTL_MASK β€” the mask that gets you RZRTL from that same struct nvme_zns_desc.zai field. mask + shift = the classic duo, they're in their main character energy together πŸ‘‘
  • NVME_ZNS_ZAI_FZRTL_SHIFT β€” shift amount to get the Finish Zone Recommended Time Limit (FZRTL) out of the struct nvme_zns_desc.zai field. yes it's the finish twin of the reset one, and yes it's iconic ✨
  • NVME_ZNS_ZAI_FZRTL_MASK β€” the mask that extracts FZRTL from struct nvme_zns_desc.zai. mask, shift, done. we love a predictable little bitfield 🧚
  • NVME_ZNS_ZAI_RTL_0 β€” Reset/Finish Recommended Limit (RRL/FRL). the base value, the level zero, the starting point of the recommendation ladder 🌈
  • NVME_ZNS_ZAI_RTL_1 β€” Reset/Finish Recommended Limit 1 (RRL1/FRL1). one rung up, still chill πŸ’–
  • NVME_ZNS_ZAI_RTL_2 β€” Reset/Finish Recommended Limit 2 (RRL2/FRL2). two rungs up, the controller is starting to give you a look πŸ’€
  • NVME_ZNS_ZAI_RTL_3 β€” Reset/Finish Recommended Limit 3 (RRL3/FRL3). three rungs up, highest of the four, and honestly? time to listen to it 😭
ngl bestie, the whole point is: grab struct nvme_zns_desc.zai, apply the right shift and mask pair for the limit you want (RZRTL or FZRTL), and compare it against the NVME_ZNS_ZAI_RTL_* values. that's the vibe check, that's the whole flow πŸ“

and that's the page!! πŸ’œ thanks for reading the whole thing, you're a real one 🫢 this was enum nvme_zns_zai from the libnvme(9) manual β€” the API manual, section 9, dated October 2026. go forth and reset/finish those zones responsibly, mwah πŸ’…βœ¨

πŸ“¦ where this page comes from