libnvme(2)

πŸ’– NAME πŸ’–

enum nvme_smart_crit β€” the Critical Warning situation, bestie. This is the libnvme API manual (section 2, for the girlies reading API docs at 2am), and we're about to vibe check every single bit of it. 🚨


✨ SYNOPSIS ✨

enum nvme_smart_crit {
    NVME_SMART_CW_ASCBT_SHIFT ,
    NVME_SMART_CW_TTC_SHIFT ,
    NVME_SMART_CW_NDR_SHIFT ,
    NVME_SMART_CW_AMRO_SHIFT ,
    NVME_SMART_CW_VMBF_SHIFT ,
    NVME_SMART_CW_PMRRO_SHIFT ,
    NVME_SMART_CW_ASCBT_MASK ,
    NVME_SMART_CW_TTC_MASK ,
    NVME_SMART_CW_NDR_MASK ,
    NVME_SMART_CW_AMRO_MASK ,
    NVME_SMART_CW_VMBF_MASK ,
    NVME_SMART_CW_PMRRO_MASK ,
    NVME_SMART_CRIT_SPARE ,
    NVME_SMART_CRIT_TEMPERATURE ,
    NVME_SMART_CRIT_DEGRADED ,
    NVME_SMART_CRIT_MEDIA ,
    NVME_SMART_CRIT_VOLATILE_MEMORY ,
    NVME_SMART_CRIT_PMR_RO

};

πŸŽ€ Constants πŸŽ€

Okay so these are the members, one by one, no skipping, we're doing the whole list because that's the assignment. πŸ’…

  • NVME_SMART_CW_ASCBT_SHIFT β€” the shift amount to get the available spare capacity has fallen below the threshold. πŸ“‰
  • NVME_SMART_CW_TTC_SHIFT β€” the shift amount to get the temperature is either greater than or equal to an over temperature threshold; or less than or equal to an under temperature threshold. πŸ₯΅πŸ₯Ά
  • NVME_SMART_CW_NDR_SHIFT β€” the shift amount to get the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. 😭
  • NVME_SMART_CW_AMRO_SHIFT β€” the shift amount to get the all of the media has been placed in read only mode. The controller shall not set this bit if the read-only condition on the media is a result of a change in the write protection state of a namespace. βœ‹
  • NVME_SMART_CW_VMBF_SHIFT β€” the shift amount to get the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution. πŸͺ«
  • NVME_SMART_CW_PMRRO_SHIFT β€” the shift amount to get the Persistent Memory Region has become read-only or unreliable. 🫠
  • NVME_SMART_CW_ASCBT_MASK β€” if set, then the available spare capacity has fallen below the threshold. πŸ”»
  • NVME_SMART_CW_TTC_MASK β€” mask to get the temperature is either greater than or equal to an over temperature threshold; or less than or equal to an under temperature threshold. 🌑️
  • NVME_SMART_CW_NDR_MASK β€” mask to get the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. πŸ’€
  • NVME_SMART_CW_AMRO_MASK β€” mask to get the all of the media has been placed in read only mode. The controller shall not set this bit if the read-only condition on the media is a result of a change in the write protection state of a namespace. πŸ”’
  • NVME_SMART_CW_VMBF_MASK β€” mask to get the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution. πŸ”‹
  • NVME_SMART_CW_PMRRO_MASK β€” mask to get the Persistent Memory Region has become read-only or unreliable. πŸŒͺ️
  • NVME_SMART_CRIT_SPARE β€” if set, then the available spare capacity has fallen below the threshold. πŸ“‰
  • NVME_SMART_CRIT_TEMPERATURE β€” if set, then a temperature is either greater than or equal to an over temperature threshold; or less than or equal to an under temperature threshold. πŸ₯΅πŸ₯Ά
  • NVME_SMART_CRIT_DEGRADED β€” if set, then the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystem reliability. 😭
  • NVME_SMART_CRIT_MEDIA β€” if set, then all of the media has been placed in read only mode. The controller shall not set this bit if the read-only condition on the media is a result of a change in the write protection state of a namespace. βœ‹
  • NVME_SMART_CRIT_VOLATILE_MEMORY β€” if set, then the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution. πŸͺ«
  • NVME_SMART_CRIT_PMR_RO β€” if set, then the Persistent Memory Region has become read-only or unreliable. 🫠
Not me telling you that if a <italic>SHIFT</italic> one is your vibe you shift to get the thing, and if a <italic>MASK</italic> one is your vibe you mask to get the thing, and if a <italic>CRIT</italic> one is your vibe it's just "if set, then…" periodt. The AMRO and MEDIA ones both carry that "controller shall not set this bit" caveat β€” do not lose that, it's load-bearing!! 🫢

That's the whole page, every constant, every caveat, nothing dropped, we ate and left no crumbs. πŸ‘‘

Byeee bestie β€” this was the enum nvme_smart_crit page (July 2026 ✨) from the libnvme(2) API Manual (section 2, API Manual, the whole libnvme girlie). Go forth and read your SMART critical warnings responsibly. πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from