libnvme(9)
π libnvme(9) β struct nvme_id_ctrl_nvm π
okay bestie, welcome to the API Manual for libnvme, and specifically for this absolute icon: the I/O Command Set Specific Identify Controller data structure. it's called struct nvme_id_ctrl_nvm and honestly? she's giving "controller said what it can do, in NVM command set flavour." let's get into it π«Ά
β¨ NAME β¨
struct nvme_id_ctrl_nvm β the I/O Command Set Specific Identify Controller data structure, bestie. that's the whole vibe. π
πΈ SYNOPSIS πΈ
here's the struct in all her glory β copy it exactly, no cap:
struct nvme_id_ctrl_nvm {
__u8 vsl;
__u8 wzsl;
__u8 wusl;
__u8 dmrl;
__le32 dmrsl;
__le64 dmsl;
__u8 kpiocap;
__u8 wzdsl;
__le16 aocs;
__le32 ver;
__u8 lbamqf;
__u8 rla;
__le16 slmc;
__u8 rsvd28[4068];
};
yes there really is a 4068-byte reserved array at the end. she's mostly vibes and padding. π
π¦ Members π¦
okay so every field, one by one, no skipping β this is the whole point of the page fr fr:
vslβ Verify Size Limit. that's the ceiling on verify, periodt.wzslβ Write Zeroes Size Limit. how big your write-zeroes can be. πwuslβ Write Uncorrectable Size Limit. same energy, but for write uncorrectable.dmrlβ Dataset Management Ranges Limit. how many ranges dataset management is willing to deal with.dmrslβ Dataset Management Range Size Limit. per-range size cap, iykyk.dmslβ Dataset Management Size Limit. the big overall dataset management limit. πkpiocapβ Key Per I/O Capabilities. key per I/O said "here's what I can do." π₯wzdslβ Write Zeroes With Deallocate Size Limit. write zeroes with deallocate, specifically β not the same aswzsl, don't get it twisted. β¨aocsβ Admin Optional Command Support. which admin optional commands are supported, literally.verβ Version. the version field. iconic of her.lbamqfβ LBA Migration Queue Format. LBA migration queue, but which format? this field.rlaβ Rate Limiting Attributes β checkenum nvme_id_ctrl_nvm_rlafor the details bestie, that's where the real tea is. πΈslmcβ Soft Limit Maximum Controllers, and it's 0's based, and it's valid only if SLS is set. like, only. don't forget the SLS part. πrsvd28β Reserved. nothing to see here, just 4068 bytes of "mind your business." π
real talk: slmc is 0's based and conditional on SLS β that's not a vibe check, that's a correctness check. π
π§ sign-off π§
this little page is from October 2026, all about struct nvme_id_ctrl_nvm, and it lives in the libnvme(9) manual. go forth and identify those controllers, bestie β slay. πβπ
π¦ 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