libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– 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