libnvme(2)

πŸ¦‹ NAME πŸ¦‹

okay so bestie, welcome to libnvme β€” this is the enum nvme_cmbloc, and it's literally the vibe map for where the controller memory buffer lives. That's it. That's the whole thing. This field indicates the controller memory buffer location πŸ’…


✨ SYNOPSIS ✨

here's the iconic lineup, copy-pasted with love so nothing gets lost:

enum nvme_cmbloc {
    NVME_CMBLOC_BIR_SHIFT ,
    NVME_CMBLOC_CQMMS_SHIFT ,
    NVME_CMBLOC_CQPDS_SHIFT ,
    NVME_CMBLOC_CDPLMS_SHIFT ,
    NVME_CMBLOC_CDPCILS_SHIFT ,
    NVME_CMBLOC_CDMMMS_SHIFT ,
    NVME_CMBLOC_CQDA_SHIFT ,
    NVME_CMBLOC_OFST_SHIFT ,
    NVME_CMBLOC_BIR_MASK ,
    NVME_CMBLOC_CQMMS_MASK ,
    NVME_CMBLOC_CQPDS_MASK ,
    NVME_CMBLOC_CDPLMS_MASK ,
    NVME_CMBLOC_CDPCILS_MASK ,
    NVME_CMBLOC_CDMMMS_MASK ,
    NVME_CMBLOC_CQDA_MASK ,
    NVME_CMBLOC_OFST_MASK

};

πŸŽ€ Constants πŸŽ€

so here's the tea: you got your SHIFT girlies up top (they slide bits into position) and your MASK girlies down below (they pull the bits back out). two halves of one flawless outfit, fr fr 🫢

🌸 the SHIFT squad 🌸

  • NVME_CMBLOC_BIR_SHIFT β€” shift amount to get the base indicator register πŸ’«
  • NVME_CMBLOC_CQMMS_SHIFT β€” shift amount to get the CMB queue mixed memory support
  • NVME_CMBLOC_CQPDS_SHIFT β€” shift amount to get the CMB queue physically discontiguous support
  • NVME_CMBLOC_CDPLMS_SHIFT β€” shift amount to get the CMB data pointer mixed locations support
  • NVME_CMBLOC_CDPCILS_SHIFT β€” shift amount to get the CMB data pointer and command independent locations support
  • NVME_CMBLOC_CDMMMS_SHIFT β€” shift amount to get the CMB data metadata mixed memory support
  • NVME_CMBLOC_CQDA_SHIFT β€” shift amount to get the CMB queue dword alignment
  • NVME_CMBLOC_OFST_SHIFT β€” shift amount to get the offset

πŸ¦‹ the MASK squad πŸ¦‹

  • NVME_CMBLOC_BIR_MASK β€” mask to get the base indicator register πŸ’–
  • NVME_CMBLOC_CQMMS_MASK β€” mask to get the CMB queue mixed memory support
  • NVME_CMBLOC_CQPDS_MASK β€” mask to get the CMB queue physically discontiguous support
  • NVME_CMBLOC_CDPLMS_MASK β€” mask to get the CMB data pointer mixed locations support
  • NVME_CMBLOC_CDPCILS_MASK β€” mask to get the CMB data pointer and command independent locations support
  • NVME_CMBLOC_CDMMMS_MASK β€” mask to get the CMB data metadata mixed memory support
  • NVME_CMBLOC_CQDA_MASK β€” mask to get the CMB queue dword alignment
  • NVME_CMBLOC_OFST_MASK β€” mask to get the offset
no cap: every single one of these is either a shift amount or a mask. there's no secret third thing. i checked. πŸ’€

πŸ‘‘ sign-off πŸ‘‘

this lil cutie lives in the API manual for libnvme, and the page itself is literally named enum nvme_cmbloc (iconic, self-titled, main character energy). it went out into the world dated July 2026, and it reps libnvme β€” manual section 2. and that's the whole page, bestie. ate and left no crumbs. periodt. 🌈 ⭐ 🧚

πŸ“¦ where this page comes from