libnvme(9)
π libnvme(9) β enum nvme_id_ctrl_ctratt π
okay bestie so this is one of those pages from the libnvme API manual (yeah, the one that shows up as libnvme(9) in your man viewer) and listen, it's literally just a big glowing list of controller attributes β like, the personality quiz the NVMe controller fills out about itself. π¦ No functions to call, no drama, just the enum that names every bit and field of the CTRATT thing. Let's go. β¨
πΈ NAME πΈ
enum nvme_id_ctrl_ctratt β Controller attributes π
fr fr that's it, that's the whole name. Short king.
β SYNOPSIS β
enum nvme_id_ctrl_ctratt {
NVME_CTRL_CTRATT_HIDS_SHIFT ,
NVME_CTRL_CTRATT_NOPSPM_SHIFT ,
NVME_CTRL_CTRATT_NSETS_SHIFT ,
NVME_CTRL_CTRATT_RRLVLS_SHIFT ,
NVME_CTRL_CTRATT_EGS_SHIFT ,
NVME_CTRL_CTRATT_PLM_SHIFT ,
NVME_CTRL_CTRATT_TBKAS_SHIFT ,
NVME_CTRL_CTRATT_NG_SHIFT ,
NVME_CTRL_CTRATT_SQA_SHIFT ,
NVME_CTRL_CTRATT_ULIST_SHIFT ,
NVME_CTRL_CTRATT_MDS_SHIFT ,
NVME_CTRL_CTRATT_FCM_SHIFT ,
NVME_CTRL_CTRATT_VCM_SHIFT ,
NVME_CTRL_CTRATT_DEG_SHIFT ,
NVME_CTRL_CTRATT_DNVMS_SHIFT ,
NVME_CTRL_CTRATT_ELBAS_SHIFT ,
NVME_CTRL_CTRATT_MEM_SHIFT ,
NVME_CTRL_CTRATT_HMBR_SHIFT ,
NVME_CTRL_CTRATT_RHII_SHIFT ,
NVME_CTRL_CTRATT_FDPS_SHIFT ,
NVME_CTRL_CTRATT_PLS_SHIFT ,
NVME_CTRL_CTRATT_PMS_SHIFT ,
NVME_CTRL_CTRATT_VMS_SHIFT ,
NVME_CTRL_CTRATT_IIELLSS_SHIFT ,
NVME_CTRL_CTRATT_HIDS_MASK ,
NVME_CTRL_CTRATT_NOPSPM_MASK ,
NVME_CTRL_CTRATT_NSETS_MASK ,
NVME_CTRL_CTRATT_RRLVLS_MASK ,
NVME_CTRL_CTRATT_EGS_MASK ,
NVME_CTRL_CTRATT_PLM_MASK ,
NVME_CTRL_CTRATT_TBKAS_MASK ,
NVME_CTRL_CTRATT_NG_MASK ,
NVME_CTRL_CTRATT_SQA_MASK ,
NVME_CTRL_CTRATT_ULIST_MASK ,
NVME_CTRL_CTRATT_MDS_MASK ,
NVME_CTRL_CTRATT_FCM_MASK ,
NVME_CTRL_CTRATT_VCM_MASK ,
NVME_CTRL_CTRATT_DEG_MASK ,
NVME_CTRL_CTRATT_DNVMS_MASK ,
NVME_CTRL_CTRATT_ELBAS_MASK ,
NVME_CTRL_CTRATT_MEM_MASK ,
NVME_CTRL_CTRATT_HMBR_MASK ,
NVME_CTRL_CTRATT_RHII_MASK ,
NVME_CTRL_CTRATT_FDPS_MASK ,
NVME_CTRL_CTRATT_PLS_MASK ,
NVME_CTRL_CTRATT_PMS_MASK ,
NVME_CTRL_CTRATT_VMS_MASK ,
NVME_CTRL_CTRATT_IIELLSS_MASK ,
NVME_CTRL_CTRATT_128_ID ,
NVME_CTRL_CTRATT_NON_OP_PSP ,
NVME_CTRL_CTRATT_NVM_SETS ,
NVME_CTRL_CTRATT_READ_RECV_LVLS ,
NVME_CTRL_CTRATT_ENDURANCE_GROUPS ,
NVME_CTRL_CTRATT_PREDICTABLE_LAT ,
NVME_CTRL_CTRATT_TBKAS ,
NVME_CTRL_CTRATT_NAMESPACE_GRANULARITY ,
NVME_CTRL_CTRATT_SQ_ASSOCIATIONS ,
NVME_CTRL_CTRATT_UUID_LIST ,
NVME_CTRL_CTRATT_MDS ,
NVME_CTRL_CTRATT_FIXED_CAP ,
NVME_CTRL_CTRATT_VARIABLE_CAP ,
NVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPS ,
NVME_CTRL_CTRATT_DEL_NVM_SETS ,
NVME_CTRL_CTRATT_ELBAS ,
NVME_CTRL_CTRATT_MEM ,
NVME_CTRL_CTRATT_HMBR ,
NVME_CTRL_CTRATT_RHII ,
NVME_CTRL_CTRATT_FDPS ,
NVME_CTRL_CTRATT_PLS ,
NVME_CTRL_CTRATT_PMS ,
NVME_CTRL_CTRATT_VMS ,
NVME_CTRL_CTRATT_IIELLSS ,
NVME_CTRL_CTRATT_IIELLSS_POWER_STATE ,
NVME_CTRL_CTRATT_IIELLSS_GLOBAL
};
like, yes, there's a stray blank line before the closing brace. iconic. we don't fix it, we respect it. π«Ά
β¨ Constants β¨
π the _SHIFT girlies (bit positions, iykyk)
NVME_CTRL_CTRATT_HIDS_SHIFTβ HIDS shiftNVME_CTRL_CTRATT_NOPSPM_SHIFTβ NOPSPM shiftNVME_CTRL_CTRATT_NSETS_SHIFTβ NSETS shiftNVME_CTRL_CTRATT_RRLVLS_SHIFTβ RRLVLS shiftNVME_CTRL_CTRATT_EGS_SHIFTβ EGS shiftNVME_CTRL_CTRATT_PLM_SHIFTβ PLM shiftNVME_CTRL_CTRATT_TBKAS_SHIFTβ TBKAS shiftNVME_CTRL_CTRATT_NG_SHIFTβ NG shiftNVME_CTRL_CTRATT_SQA_SHIFTβ SQA shiftNVME_CTRL_CTRATT_ULIST_SHIFTβ ULIST shiftNVME_CTRL_CTRATT_MDS_SHIFTβ MDS shiftNVME_CTRL_CTRATT_FCM_SHIFTβ FCM shiftNVME_CTRL_CTRATT_VCM_SHIFTβ VCM shiftNVME_CTRL_CTRATT_DEG_SHIFTβ DEG shiftNVME_CTRL_CTRATT_DNVMS_SHIFTβ DNVMS shiftNVME_CTRL_CTRATT_ELBAS_SHIFTβ ELBAS shiftNVME_CTRL_CTRATT_MEM_SHIFTβ MEM shiftNVME_CTRL_CTRATT_HMBR_SHIFTβ HMBR shiftNVME_CTRL_CTRATT_RHII_SHIFTβ RHII shiftNVME_CTRL_CTRATT_FDPS_SHIFTβ FDPS shiftNVME_CTRL_CTRATT_PLS_SHIFTβ PLS shiftNVME_CTRL_CTRATT_PMS_SHIFTβ PMS shiftNVME_CTRL_CTRATT_VMS_SHIFTβ VMS shiftNVME_CTRL_CTRATT_IIELLSS_SHIFTβ IIELLSS shift
π the _MASK besties (the actual bit catchers)
NVME_CTRL_CTRATT_HIDS_MASKβ HIDS maskNVME_CTRL_CTRATT_NOPSPM_MASKβ NOPSPM maskNVME_CTRL_CTRATT_NSETS_MASKβ NSETS maskNVME_CTRL_CTRATT_RRLVLS_MASKβ RRLVLS maskNVME_CTRL_CTRATT_EGS_MASKβ EGS maskNVME_CTRL_CTRATT_PLM_MASKβ PLM maskNVME_CTRL_CTRATT_TBKAS_MASKβ TBKAS maskNVME_CTRL_CTRATT_NG_MASKβ NG maskNVME_CTRL_CTRATT_SQA_MASKβ SQA maskNVME_CTRL_CTRATT_ULIST_MASKβ ULIST maskNVME_CTRL_CTRATT_MDS_MASKβ MDS maskNVME_CTRL_CTRATT_FCM_MASKβ FCM maskNVME_CTRL_CTRATT_VCM_MASKβ VCM maskNVME_CTRL_CTRATT_DEG_MASKβ DEG maskNVME_CTRL_CTRATT_DNVMS_MASKβ DNVMS maskNVME_CTRL_CTRATT_ELBAS_MASKβ ELBAS maskNVME_CTRL_CTRATT_MEM_MASKβ MEM maskNVME_CTRL_CTRATT_HMBR_MASKβ HMBR maskNVME_CTRL_CTRATT_RHII_MASKβ RHII maskNVME_CTRL_CTRATT_FDPS_MASKβ FDPS maskNVME_CTRL_CTRATT_PLS_MASKβ PLS maskNVME_CTRL_CTRATT_PMS_MASKβ PMS maskNVME_CTRL_CTRATT_VMS_MASKβ VMS maskNVME_CTRL_CTRATT_IIELLSS_MASKβ IIELLSS mask
π₯ the actual attribute values (main character energy)
NVME_CTRL_CTRATT_128_IDβ 128-bit Host Identifier supported πNVME_CTRL_CTRATT_NON_OP_PSPβ Non-Operational Poser State Permissive Mode supported π (yes bestie, it literally says "Poser" β that's the page's own typo, not mine, I would never)NVME_CTRL_CTRATT_NVM_SETSβ NVM Sets supportedNVME_CTRL_CTRATT_READ_RECV_LVLSβ Read Recovery Levels supportedNVME_CTRL_CTRATT_ENDURANCE_GROUPSβ Endurance Groups supportedNVME_CTRL_CTRATT_PREDICTABLE_LATβ Predictable Latency Mode supportedNVME_CTRL_CTRATT_TBKASβ Traffic Based Keep Alive SupportNVME_CTRL_CTRATT_NAMESPACE_GRANULARITYβ Namespace Granularity reporting supportedNVME_CTRL_CTRATT_SQ_ASSOCIATIONSβ SQ Associations supportedNVME_CTRL_CTRATT_UUID_LISTβ UUID List reporting supportedNVME_CTRL_CTRATT_MDSβ Multi-Domain Subsystem supportedNVME_CTRL_CTRATT_FIXED_CAPβ Fixed Capacity Management supportedNVME_CTRL_CTRATT_VARIABLE_CAPβ Variable Capacity Management supportedNVME_CTRL_CTRATT_DEL_ENDURANCE_GROUPSβ Delete Endurance Groups supportedNVME_CTRL_CTRATT_DEL_NVM_SETSβ Delete NVM Sets supportedNVME_CTRL_CTRATT_ELBASβ Extended LBA Formats supportedNVME_CTRL_CTRATT_MEMβ MDTS and Size Limits Exclude Metadata supportedNVME_CTRL_CTRATT_HMBRβ HMB Restrict Non-Operational Power State AccessNVME_CTRL_CTRATT_RHIIβ Reservations and Host Identifier InteractionNVME_CTRL_CTRATT_FDPSβ Flexible Data Placement supportedNVME_CTRL_CTRATT_PLSβ Power Limit SupportNVME_CTRL_CTRATT_PMSβ Power Measurement SupportNVME_CTRL_CTRATT_VMSβ Voltage Measurement SupportNVME_CTRL_CTRATT_IIELLSSβ Idle I/O Exit Latency Limit Support and ScopeNVME_CTRL_CTRATT_IIELLSS_POWER_STATEβ Each operational power state scopeNVME_CTRL_CTRATT_IIELLSS_GLOBALβ All operational power states scope π
ngl there are no functions, no return values, no errno, no exit statuses on this page β it's purely a constant party. That's the whole vibe check. π
and that's the page bestie, no cap π§π β brought to you by the October 2026 edition of the libnvme(9) API manual, enum nvme_id_ctrl_ctratt and all its little bit-shifty children. go forth and mask responsibly. ππ·
π¦ 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