libnvme(9)
π libnvme(9) β enum nvme_id_ctrl_frmw π
okay so bestie, welcome to the libnvme API manual, page 9 of the section, and today's main character is a little enum that's literally all about what your controller can and can't do when you try to shove new firmware at it. yes, we're in our firmware-update era. π¦
β¨ NAME β¨
enum nvme_id_ctrl_frmw β Flags and values that indicate capabilities regarding firmware updates, straight out of &struct nvme_id_ctrl.frmw. iykyk. π
πΈ SYNOPSIS πΈ
enum nvme_id_ctrl_frmw {
NVME_CTRL_FRMW_FFSRO_SHIFT ,
NVME_CTRL_FRMW_NOFS_SHIFT ,
NVME_CTRL_FRMW_FAWR_SHIFT ,
NVME_CTRL_FRMW_SMUD_SHIFT ,
NVME_CTRL_FRMW_FFSRO_MASK ,
NVME_CTRL_FRMW_NOFS_MASK ,
NVME_CTRL_FRMW_FAWR_MASK ,
NVME_CTRL_FRMW_SMUD_MASK ,
NVME_CTRL_FRMW_FFSRO ,
NVME_CTRL_FRMW_NOFS ,
NVME_CTRL_FRMW_FAWR ,
NVME_CTRL_FRMW_SMUD
};
look at her. twelve constants, one enum, zero notes. π
π Constants π
okay so this is the whole squad β four shifts, four masks, four actual values. not me being obsessed with how tidy this is. π«Ά
NVME_CTRL_FRMW_FFSRO_SHIFTβ the FFSRO shift π«NVME_CTRL_FRMW_NOFS_SHIFTβ the NOFS shift π«NVME_CTRL_FRMW_FAWR_SHIFTβ the FAWR shift π«NVME_CTRL_FRMW_SMUD_SHIFTβ the SMUD shift π«NVME_CTRL_FRMW_FFSRO_MASKβ the FFSRO mask πNVME_CTRL_FRMW_NOFS_MASKβ the NOFS mask πNVME_CTRL_FRMW_FAWR_MASKβ the FAWR mask πNVME_CTRL_FRMW_SMUD_MASKβ the SMUD mask πNVME_CTRL_FRMW_FFSROβ if this one's set, the first firmware slot is readonly. respect her boundaries fr fr. πNVME_CTRL_FRMW_NOFSβ mask to get the value of the number of firmware slots that the controller supports. that's how many slots you're working with, bestie. π’NVME_CTRL_FRMW_FAWRβ if set, the controller supports firmware activation without a reset. no reboot, just vibes. β¨NVME_CTRL_FRMW_SMUDβ if set, the controller is able to detect overlapping firmware/boot partition image update. she's paying attention, she sees everything ππ
lowkey a reminder: these are described exactly as the API spells them out β shifts, masks, and values β so don't go reading extra behaviour into them that isn't here. π
and that's the page, bestie! π this was the enum nvme_id_ctrl_frmw page from the libnvme API Manual, dated October 2026 β mwah, go update some firmware responsibly, ily π«Άπ
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms