libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’œ libnvme(9) β€” okay bestie, sit down, it's enum time

So this is a page from the libnvme manual, section 9. The main character of today's episode is enum nvme_id_ctrl_lpa β€” and it's literally exactly what it says on the tin: flags indicating optional attributes for log pages that are accessed via the Get Log Page command. No cap. That's the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

Like, here's the shape of it, copy-pasted with love:

       enum nvme_id_ctrl_lpa {
           NVME_CTRL_LPA_SMARTS_SHIFT ,
           NVME_CTRL_LPA_CSES_SHIFT ,
           NVME_CTRL_LPA_LPEDS_SHIFT ,
           NVME_CTRL_LPA_TS_SHIFT ,
           NVME_CTRL_LPA_PES_SHIFT ,
           NVME_CTRL_LPA_MLPS_SHIFT ,
           NVME_CTRL_LPA_DA4S_SHIFT ,
           NVME_CTRL_LPA_SMARTS_MASK ,
           NVME_CTRL_LPA_CSES_MASK ,
           NVME_CTRL_LPA_LPEDS_MASK ,
           NVME_CTRL_LPA_TS_MASK ,
           NVME_CTRL_LPA_PES_MASK ,
           NVME_CTRL_LPA_MLPS_MASK ,
           NVME_CTRL_LPA_DA4S_MASK ,
           NVME_CTRL_LPA_SMARTS ,
           NVME_CTRL_LPA_CSES ,
           NVME_CTRL_LPA_LPEDS ,
           NVME_CTRL_LPA_TS ,
           NVME_CTRL_LPA_PES ,
           NVME_CTRL_LPA_MLPS ,
           NVME_CTRL_LPA_DA4S

       };

Look at all those little constants holding hands. Obsessed. 🫢


πŸŽ€ Constants πŸŽ€

The shifts (aka the "where does the bit live" girlies) 🌸

  • NVME_CTRL_LPA_SMARTS_SHIFT β€” SMARTS shift. That's it. That's her whole job. πŸ’…
  • NVME_CTRL_LPA_CSES_SHIFT β€” CSES shift. Slay, position yourself.
  • NVME_CTRL_LPA_LPEDS_SHIFT β€” LPEDS shift. Iconic lil offset.
  • NVME_CTRL_LPA_TS_SHIFT β€” TS shift. Periodt.
  • NVME_CTRL_LPA_PES_SHIFT β€” PES shift. Yes bestie.
  • NVME_CTRL_LPA_MLPS_SHIFT β€” MLPS shift. We love a consistent naming scheme.
  • NVME_CTRL_LPA_DA4S_SHIFT β€” DA4S shift. The last of the shift girlies. 🧚

The masks (aka the "cover the other bits, thanks" crew) ✨

  • NVME_CTRL_LPA_SMARTS_MASK β€” SMARTS mask.
  • NVME_CTRL_LPA_CSES_MASK β€” CSES mask.
  • NVME_CTRL_LPA_LPEDS_MASK β€” LPEDS mask.
  • NVME_CTRL_LPA_TS_MASK β€” TS mask.
  • NVME_CTRL_LPA_PES_MASK β€” PES mask.
  • NVME_CTRL_LPA_MLPS_MASK β€” MLPS mask.
  • NVME_CTRL_LPA_DA4S_MASK β€” DA4S mask.

The actual flag values (the main characters, highkey) πŸ‘‘

  • NVME_CTRL_LPA_SMARTS β€” if set, the controller supports the SMART/Health log page on a per namespace basis. Per namespace. She's specific. πŸ’–
  • NVME_CTRL_LPA_CSES β€” if Set, the controller supports the commands supported and effects log page. (Yes the original capitalizes "Set" there β€” we keep the lore intact.) 😌
  • NVME_CTRL_LPA_LPEDS β€” if set, the controller supports extended data for the log page command, including the extended number of dwords and the log page offset fields. Extra data? Extra dwords? Extra everything. πŸ”₯
  • NVME_CTRL_LPA_TS β€” if set, the controller supports the telemetry host-initiated and telemetry controller-initiated log pages, and sending telemetry log notices. Telemetry is having a moment. πŸ›°οΈ
  • NVME_CTRL_LPA_PES β€” if set, the controller supports the persistent event log. It remembers. She never forgets. πŸ’€
  • NVME_CTRL_LPA_MLPS β€” if set, the controller supports the log pages log page, the scope of each command in the commands supported and effects log page, the feature identifiers supported and effects log page, and the NVMe-MI commands supported and effects log page. That's a lot of log pages, and every single one of them made the list. No cuts. πŸŽ€
  • NVME_CTRL_LPA_DA4S β€” if set, the controller supports data area 4 for telemetry host-initiated and telemetry. Data area 4 said "I'm here too." πŸ‘‘
Lowkey the whole point: check which of these bits is set and you know what optional log-page behaviour your controller is bringing to the group chat. Don't assume β€” read the flag. πŸ™ˆ

That's the page, bestie β€” every flag, every shift, every mask, nothing skipped, nothing invented. πŸ’œ

Sign-off szn: this cutie was served up in the libnvme(9) manual, dated October 2026, and the entry itself is enum nvme_id_ctrl_lpa. Screenshot it, cite it, live by it. πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from