libnvme(9)
π 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
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms