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, highkeyNVME_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, literally0xfff. cute lil mask, iconicNVME_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. slayNVME_MI_CMD_SUPPORTED_EFFECTS_SCOPE_NVM_SETβ NVM Set Scope. yes, the NVM Set is the scope, we love a themed scopeNVME_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
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms