libnvme(2)

πŸ’– NAME πŸ’–

okay so bestie, this is libnvme(2) from the API Manual, and today's main character is:

enum nvme_pmrcap β€” this field indicates the persistent memory region capabilities 🫢

that's it. that's the whole vibe. a struct-less little enum fam that tells you what a persistent memory region can actually do. and yes we're gonna go through every single member bc i am NOT about to leave you out here guessing. periodt πŸ’…


✨ SYNOPSIS ✨

here's the whole thing, exactly as it is, no notes, no edits, iconic behavior only:

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

};

🌸 Constants 🌸

so the pattern here is shift constants and mask constants, and honestly? it's giving bitfield energy and i'm obsessed πŸ‘‘

  • 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. it's still here, bestie, but it's the old one, don't build your whole personality on it 😭
  • 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 deal, its deprecated twin is NVME_PMRCAP_PMRWBM_MASK, use that one πŸ™ˆ
  • NVME_PMRCAP_PMRTU_500MS β€” 500 milliseconds ⚑
  • NVME_PMRCAP_PMRTU_60S β€” minutes ⏰
ok real talk queen, heads up: the description literally just says minutes for NVME_PMRCAP_PMRTU_60S, and i am not about to go inventing extra lore for it. that's the text. i'm just the messenger 🫑

and that's the whole page, no crumbs left, every single constant accounted for πŸ’œ

this lil cutie came from the enum nvme_pmrcap page in the libnvme(2) API Manual, dated July 2026 🌈✨ mwah, go forth and mask your bits responsibly, ily bye πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from