libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… libnvme(9) β€” API Manual, but make it make sense

okay bestie, welcome to the libnvme API manual, page 9, and today's main character is a little enum that's way more important than it looks. it lives in section 9 of the manual, and it's about Key Per I/O Capabilities β€” yes, that's the NAME, and yes, it ate. πŸ”‘


✨ NAME ✨

enum nvme_id_ctrl_kpioc β€” Key Per I/O Capabilities

like, it's an enum. it holds the capabilities. for keys. per I/O. the name really said "no notes" and left it at that. πŸŽ€


🌸 SYNOPSIS 🌸

here's the whole vibe, verbatim, don't touch the formatting or she'll get mad:

enum nvme_id_ctrl_kpioc {
    NVME_CTRL_KPIOC_KPIOS_SHIFT ,
    NVME_CTRL_KPIOC_KPIOSC_SHIFT ,
    NVME_CTRL_KPIOC_KPIOS_MASK ,
    NVME_CTRL_KPIOC_KPIOSC_MASK

};

four constants. that's the whole enum. small but mighty fr fr πŸ’ͺ


πŸ¦‹ Constants πŸ¦‹

okay so these are the four icons of the group chat, and every single one of them wants to help you pull something out of the struct nvme_id_ctrl.kpioc field. that field is the source of truth, and these constants are the little crowbars. 🧚

  • NVME_CTRL_KPIOC_KPIOS_SHIFT β€” the shift amount you use to get the Key Per I/O Supported value out of the struct nvme_id_ctrl.kpioc field. shift it, slay it, done. ✨
  • NVME_CTRL_KPIOC_KPIOSC_SHIFT β€” the shift amount you use to get the Key Per I/O Scope out of the struct nvme_id_ctrl.kpioc field. it's the scope one, not the supported one β€” do not mix them up, i'm begging 🫢
  • NVME_CTRL_KPIOC_KPIOS_MASK β€” the mask you use to get the Key Per I/O Supported value out of the struct nvme_id_ctrl.kpioc field. mask on, extract, serve. πŸ’…
  • NVME_CTRL_KPIOC_KPIOSC_MASK β€” the mask you use to get the Key Per I/O Scope out of the struct nvme_id_ctrl.kpioc field. that's the scope mask, bestie. the scope one. 😭
quick little recap because i love you: KPIOS = Key Per I/O Supported, KPIOSC = Key Per I/O Scope, SHIFT = shift amount, MASK = mask, and all four are read out of the struct nvme_id_ctrl.kpioc field. that's it, that's the whole lore. no cap. πŸ”₯

πŸ’œ and that's the tea

that's genuinely the whole page β€” four constants, one struct field, zero drama. ngl this is one of those quiet little enums that's just out here doing its job with main character energy and no credit. πŸ‘‘

anyway, mwah, this page came from libnvme, API Manual, section 9, dated October 2026, and its official manpage name is enum nvme_id_ctrl_kpioc β€” so if you ever need to cite her, that's what you call her. πŸ“ bye bestie, go shift some bits πŸ’–πŸŒˆ

πŸ“¦ where this page comes from