libnvme(2)

πŸŽ€ NAME πŸŽ€

bestie, welcome to libnvme(2) β€” this is the page for enum nvme_id_ctrl_kpioc, aka the Key Per I/O Capabilities enum πŸ’–


✨ SYNOPSIS ✨

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

};

like… it's an enum, it's four constants, it's giving "tiny but mighty" πŸ¦‹


🌸 Constants 🌸

okay so these are the little integer besties you use to dig the actual values out of the struct nvme_id_ctrl.kpioc field. shifts and masks, the classic duo πŸ‘‘

  • NVME_CTRL_KPIOC_KPIOS_SHIFT β€” the shift amount you use to pull the Key Per I/O Supported value out of the struct nvme_id_ctrl.kpioc field. shift it, bestie πŸ’…
  • NVME_CTRL_KPIOC_KPIOSC_SHIFT β€” the shift amount you use to pull the Key Per I/O Scope value out of the struct nvme_id_ctrl.kpioc field. same energy, different field bit πŸŽ€
  • 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. and-mask it and slay ✨
  • NVME_CTRL_KPIOC_KPIOSC_MASK β€” the mask you use to get the Key Per I/O Scope value out of the struct nvme_id_ctrl.kpioc field. mask on, find out 🌈
ngl the pattern is the whole point: _SHIFT tells you how far to shove the bits over, _MASK tells you which bits to keep. do both and you've got your value, no cap 🫢

that's the whole vibe, bestie β€” this was the libnvme(2) page for enum nvme_id_ctrl_kpioc, straight out of the API Manual, dated July 2026 🌸✨ go read your controller identify data and be iconic πŸ’–

πŸ“¦ where this page comes from