libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… libnvme(9) β€” hey bestie, welcome to the API Manual

okay so bestie, listen β€” this is the page for libnvme(9), and today's main character is a little enum called nvme_security_personality_attrs. it's literally the Security Personality Attributes data structure, and no, that's not a personality test for your SSD (tho honestly? iconic concept). it's about security protocols. stay with me, it slaps. ✨


✨ NAME ✨

enum nvme_security_personality_attrs β€” the Security Personality Attributes data structure. that's it, that's the name, and it ate. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole vibe, exactly as it lives in the header:

enum nvme_security_personality_attrs {
    NVME_SEC_PERSONALITY_ASP ,
    NVME_SEC_PERSONALITY_TCGP ,
    NVME_SEC_PERSONALITY_AHATSDP ,
    NVME_SEC_PERSONALITY_VSP_SHIFT ,
    NVME_SEC_PERSONALITY_VSP_MASK

};

that's five whole constants, no more no less, and we're gonna meet every single one of them. πŸ‘‘


🌸 Constants 🌸

these are the icons of the enum, one by one, no skipping, fr fr:

  • NVME_SEC_PERSONALITY_ASP β€” this one is the Allow Security Protocol bit, and it's giving gatekeeper energy πŸšͺ: if it's set, then the security protocols specified by this data structure shall be allowed; if it's cleared, then they shall be prohibited. that's it. that's the whole vibe check. if you flip this bit you literally changed the policy, so like… be normal about it.
  • NVME_SEC_PERSONALITY_TCGP β€” the TCG Security Protocol one πŸ’–. it specifies the security protocol range 01h to 06h. that's the range, those are the numbers, we respect them.
  • NVME_SEC_PERSONALITY_AHATSDP β€” the Authentication in Host Attachments of Transient Storage Devices Protocol 😭 (yes that's a real long name, yes it's a mouthful, no we are not shortening it, it's not my fault). it specifies the security protocol value EEh. iconic hex, no notes.
  • NVME_SEC_PERSONALITY_VSP_SHIFT β€” the shift amount πŸ”€ to get the Vendor Specific Protocol Fx bitmap field, which covers security protocols F0h to FFh. shift amount. shift it. slay.
  • NVME_SEC_PERSONALITY_VSP_MASK β€” the mask 🎭 to get that same Vendor Specific Protocol Fx bitmap field. shift on one side, mask on the other, a whole little duo, iykyk.
okay real talk for a sec 🫢 β€” NVME_SEC_PERSONALITY_VSP_SHIFT and NVME_SEC_PERSONALITY_VSP_MASK are literally just a shift amount and a mask for the same field, the Vendor Specific Protocol Fx bitmap (protocols F0h to FFh). use both together or you're gonna have a bad time. πŸ’€

and that's the whole page bestie!! you made it, we're so proud of you 🌈⭐ no cap, you now know every single constant, every value, every range, and every bit of the Security Personality Attributes data structure. go forth and be secure. πŸ’œ

🌸 signing off from this libnvme(9) page, dated October 2026, brought to you by the libnvme API manual β€” mwah, ily, bye!! πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from