libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– libnvme(9) πŸ’–

okay bestie, welcome to the API Manual β€” yes that's the manual name, we're not being weird about it, it's just the libnvme API docs and this one is specifically about one little enum. and honestly? it's giving "small but mighty." πŸ¦‹


✨ NAME ✨

enum nvme_id_ns_dps β€” this field is the whole vibe-check for the Type settings of the end-to-end data protection feature. like, it literally tells you what kind of protection information is going on. no cap. πŸ’…


🌸 SYNOPSIS 🌸

enum nvme_id_ns_dps {
    NVME_NS_DPS_PI_NONE ,
    NVME_NS_DPS_PI_TYPE1 ,
    NVME_NS_DPS_PI_TYPE2 ,
    NVME_NS_DPS_PI_TYPE3 ,
    NVME_NS_DPS_PI_SHIFT ,
    NVME_NS_DPS_PI_MASK ,
    NVME_NS_DPS_PI_FIRST_SHIFT ,
    NVME_NS_DPS_PI_FIRST_MASK ,
    NVME_NS_DPS_PI_FIRST

};

look at her. nine constants. absolutely iconic lineup, no notes. πŸ‘‘


πŸŽ€ Constants πŸŽ€

  • NVME_NS_DPS_PI_NONE β€” protection information is not enabled. we're just out here living unprotected, raw-dogging the metadata, and that's a whole choice. πŸ™ˆ
  • NVME_NS_DPS_PI_TYPE1 β€” protection information is enabled, Type 1 babyyy. ✨
  • NVME_NS_DPS_PI_TYPE2 β€” protection information is enabled, Type 2. different type, same slay. πŸ’–
  • NVME_NS_DPS_PI_TYPE3 β€” protection information is enabled, Type 3. the third one. the trilogy is complete. πŸ”₯
  • NVME_NS_DPS_PI_SHIFT β€” the protection information type shift. yes bestie, it shifts. that's the whole job. 🫢
  • NVME_NS_DPS_PI_MASK β€” the mask you AND with to actually get the value of the PI type. mask on, facts out. πŸŽ€
  • NVME_NS_DPS_PI_FIRST_SHIFT β€” the shift for "protection information in the first bytes." first bytes! main character bytes! ⭐
  • NVME_NS_DPS_PI_FIRST_MASK β€” the mask for "protection information in the first bytes." pairs perfectly with the shift above, they're literally a matching set. 🌈
  • NVME_NS_DPS_PI_FIRST β€” if this bit is set, it indicates that the protection information, if enabled, gets transferred as the first eight bytes of metadata. eight. whole. bytes. of. metadata. right up front, first thing in the door. πŸ’€ (and yeah, it's conditional β€” if enabled β€” don't forget that part, it's load-bearing.) 🧚

quick reminder bestie: NVME_NS_DPS_PI_NONE means protection information isn't enabled at all, and NVME_NS_DPS_PI_FIRST only does anything when the protection information is actually enabled. read the fine print, it's cute. πŸ’œ

and that's the whole page!! πŸ¦‹πŸ’–βœ¨πŸŽ€πŸŒΈπŸ«Ά

kisses, this was enum nvme_id_ns_dps from libnvme(9), source/version enum nvme_id_ns_dps, dated October 2026. go forth and protect your data end-to-end, bestie. periodt. πŸ’…πŸ‘‘

πŸ“¦ where this page comes from