libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ¦‹ NAME πŸ¦‹

okay so bestie, this one is enum nvme_pmrcap β€” literally the struct that tells you all about the persistent memory region capabilities πŸ’… no cap, that's the whole vibe. It's an enum, it's in libnvme(9), and it's basically a little cheat-sheet of every shift and mask you need to poke at PMR capability bits. Obsessed.


✨ SYNOPSIS ✨

enum nvme_pmrcap {
    NVME_PMRCAP_RDS_SHIFT ,
    NVME_PMRCAP_WDS_SHIFT ,
    NVME_PMRCAP_BIR_SHIFT ,
    NVME_PMRCAP_PMRTU_SHIFT ,
    NVME_PMRCAP_PMRWBM_SHIFT ,
    NVME_PMRCAP_PMRTO_SHIFT ,
    NVME_PMRCAP_CMSS_SHIFT ,
    NVME_PMRCAP_PMRWMB_SHIFT ,
    NVME_PMRCAP_RDS_MASK ,
    NVME_PMRCAP_WDS_MASK ,
    NVME_PMRCAP_BIR_MASK ,
    NVME_PMRCAP_PMRTU_MASK ,
    NVME_PMRCAP_PMRWBM_MASK ,
    NVME_PMRCAP_PMRTO_MASK ,
    NVME_PMRCAP_CMSS_MASK ,
    NVME_PMRCAP_PMRWMB_MASK ,
    NVME_PMRCAP_PMRTU_500MS ,
    NVME_PMRCAP_PMRTU_60S

};

look at her πŸ₯Ή every single constant, copied exactly, zero edits. we do not touch the source. periodt.


🌸 Constants 🌸

okay so these are all the little members, and I'm giving you each one with its official description translated into vibes but keeping literally every word of meaning intact 🫢

πŸ’« The *_SHIFT girlies β€” shift amounts

  • NVME_PMRCAP_RDS_SHIFT β€” shift amount to get the read data support 🌈
  • NVME_PMRCAP_WDS_SHIFT β€” shift amount to get the write data support πŸ’–
  • NVME_PMRCAP_BIR_SHIFT β€” shift amount to get the base indicator register πŸŽ€
  • NVME_PMRCAP_PMRTU_SHIFT β€” shift amount to get the persistent memory region time units ⏱️
  • NVME_PMRCAP_PMRWBM_SHIFT β€” shift amount to get the persistent memory region write barrier mechanisms 🧱
  • NVME_PMRCAP_PMRTO_SHIFT β€” shift amount to get the persistent memory region timeout ⏳
  • NVME_PMRCAP_CMSS_SHIFT β€” shift amount to get the controller memory space supported πŸ‘‘
  • NVME_PMRCAP_PMRWMB_SHIFT β€” Deprecated shift amount to get the persistent memory region write barrier mechanisms πŸ’€ yes bestie, deprecated, she's legacy, the newer PMRWBM one is the main character now

🎯 The *_MASK besties β€” mask values

  • NVME_PMRCAP_RDS_MASK β€” mask to get the read data support 🌸
  • NVME_PMRCAP_WDS_MASK β€” mask to get the write data support ✨
  • NVME_PMRCAP_BIR_MASK β€” mask to get the base indicator register πŸŽ€
  • NVME_PMRCAP_PMRTU_MASK β€” mask to get the persistent memory region time units ⏱️
  • NVME_PMRCAP_PMRWBM_MASK β€” mask to get the persistent memory region write barrier mechanisms 🧱
  • NVME_PMRCAP_PMRTO_MASK β€” mask to get the persistent memory region timeout ⏳
  • NVME_PMRCAP_CMSS_MASK β€” mask to get the controller memory space supported πŸ‘‘
  • NVME_PMRCAP_PMRWMB_MASK β€” Deprecated mask to get the persistent memory region write barrier mechanisms πŸ’€ same energy, older spelling, do not come for me

πŸ“ The time-unit values

  • NVME_PMRCAP_PMRTU_500MS β€” 500 milliseconds 🫢
  • NVME_PMRCAP_PMRTU_60S β€” minutes 😭 and yes, the original manpage literally just says β€œminutes” for this one β€” not me being quirky, that is verbatim the text, iykyk πŸ™ˆ
lowkey a reminder that NVME_PMRCAP_PMRWMB_SHIFT and NVME_PMRCAP_PMRWMB_MASK are marked Deprecated β€” the page says so, so I'm saying so, don't @ me πŸ’…

and that's the page, bestie!! πŸ§šπŸ’œ

cute lil sign-off: this whole thing comes from the API Manual β€” that's the libnvme(9) manual name right there, folded in like a little bow πŸŽ€ β€” and the footer date is October 2026, version slot filled by libnvme(9) again. mwah, go read your capability bits responsibly ⭐πŸ”₯

πŸ“¦ where this page comes from