libnvme(2)

πŸ’– NAME πŸ’–

okay so bestie, welcome to libnvme(2) β€” this is the API manual, and today's main character is the enum nvme_mi_cmd_supported_effects, aka the MI Command Supported and Effects Data Structure. that's a whole mouthful but it's literally just the vibes-check for which MI commands you can run and what chaos they cause πŸ¦‹


✨ SYNOPSIS ✨

here's the whole squad, look at them all lined up like a little lineup of icons:

enum nvme_mi_cmd_supported_effects {
    NVME_MI_CMD_SUPPORTED_EFFECTS_CSUPP ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_UDCC ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_NCC ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_NIC ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_CCC ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_SHIFT ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_MASK ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NS ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_CTRL ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NVM_SET ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_ENDGRP ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_DOMAIN ,
    NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NSS

};

periodt. every single one of those is copy-pasted exactly, i do not play with identifiers πŸ’…


πŸŽ€ Constants πŸŽ€

and now the breakdown, one by one, no skips, no shortcuts, we're doing all of them:

  • NVME_MI_CMD_SUPPORTED_EFFECTS_CSUPP β€” Command Supported. it's giving "yes bestie this command exists, we ride at dawn" πŸ”₯
  • NVME_MI_CMD_SUPPORTED_EFFECTS_UDCC β€” User Data Content Change. your user data content? changed. that's the whole thing πŸ‘‘
  • NVME_MI_CMD_SUPPORTED_EFFECTS_NCC β€” Namespace Capability Change. the namespace capability got a glow-up, highkey
  • NVME_MI_CMD_SUPPORTED_EFFECTS_NIC β€” Namespace Inventory Change. inventory said "new stuff just dropped" 🌸
  • NVME_MI_CMD_SUPPORTED_EFFECTS_CCC β€” Controller Capability Change. not me changing the controller's capabilities 😭
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_SHIFT β€” a 20 bit shift. that's the shift, that's it, 20 bits of pure movement πŸ’«
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_MASK β€” a 12 bit mask, literally 0xfff. cute lil mask, iconic
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NS β€” Namespace Scope. the scope is a namespace, no cap 🫢
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_CTRL β€” Controller Scope. scope = controller. slay
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NVM_SET β€” NVM Set Scope. yes, the NVM Set is the scope, we love a themed scope
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_ENDGRP β€” Endurance Group Scope. endurance group but make it scope πŸ’ͺ
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_DOMAIN β€” Domain Scope. it's giving domain. that's the vibe check result βœ…
  • NVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NSS β€” NVM Subsystem Scope. and finally, NVM subsystem scope, the last one, ate and left no crumbs πŸ“
okay that's literally all thirteen of them, i counted, you're welcome πŸ’œ

and that's a wrap on our little enum tour!! this page is enum nvme_mi_cmd_supported_effects from libnvme(2), dated July 2026, and it lives inside the API Manual β€” thanks for coming to my ted talk, mwah πŸ’…πŸ§šπŸŒˆ

πŸ“¦ where this page comes from