libnvme(2)

πŸ’– NAME πŸ’–

ok so bestie, <pink>this is all about the enum nvme_id_ns_dps </pink> β€” it's the field that tells you the Type settings for the end-to-end data protection feature ✨. that's it, that's the whole vibe. protection info type selector, no cap πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

like, here's the entire thing, look at her:

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_MASK ,
    NVME_NS_DPS_PI_FIRST

};

six constants, six little icons, all of them matter πŸŽ€ don't skip any, i will know.


🌸 Constants 🌸

  • NVME_NS_DPS_PI_NONE β€” protection information is literally not enabled. it's giving "we didn't do the assignment" energy πŸ’€
  • NVME_NS_DPS_PI_TYPE1 β€” protection information is enabled, and it's Type 1. she said yes to PI 🫢
  • NVME_NS_DPS_PI_TYPE2 β€” protection information is enabled, Type 2 this time. same energy, different type πŸ’œ
  • NVME_NS_DPS_PI_TYPE3 β€” protection information is enabled, Type 3. the trilogy is complete, iconic πŸ‘‘
  • NVME_NS_DPS_PI_MASK β€” bestie this one is a mask, so you use it to get the value of the PI type 🎭 very "let me see the real you" of it.
  • NVME_NS_DPS_PI_FIRST β€” okay so if this is set, it means that the protection information (when it's enabled) is transferred as the first eight bytes of metadata 🌈 eight. bytes. first. write it down, iykyk.
fr fr, if you're masking with NVME_NS_DPS_PI_MASK and also checking NVME_NS_DPS_PI_FIRST, those are two separate little facts about the same field β€” don't merge them in your head, bestie 😭

that's genuinely the whole page, she's short but she ate πŸ”₯

sign-off time: this was the enum nvme_id_ns_dps page, straight outta the libnvme API manual (that's the libnvme(2) situation, mwah πŸ’‹), dated July 2026. go forth and check your protection information types, babes 🧚⭐

πŸ“¦ where this page comes from