libnvme(9)
β¨ NAME β¨
okay so bestie, welcome to libnvme(9) β this is the API manual page for struct nvme_endurance_group_log, aka the Endurance Group Information Log. it's the struct that holds all the endurance-group tea, and yes it's giving "big log energy" π
πΈ SYNOPSIS πΈ
here's the shape of it, exactly as it lives in the headers, no cap:
struct nvme_endurance_group_log {
__u8 critical_warning;
__u8 endurance_group_features;
__u8 rsvd2;
__u8 avl_spare;
__u8 avl_spare_threshold;
__u8 percent_used;
__le16 domain_identifier;
__u8 rsvd8[24];
__u8 endurance_estimate[16];
__u8 data_units_read[16];
__u8 data_units_written[16];
__u8 media_units_written[16];
__u8 host_read_cmds[16];
__u8 host_write_cmds[16];
__u8 media_data_integrity_err[16];
__u8 num_err_info_log_entries[16];
__u8 total_end_grp_cap[16];
__u8 unalloc_end_grp_cap[16];
__u8 rsvd192[320];
};
lowkey obsessed with how tidy that layout is. 16-byte fields as far as the eye can see π«Ά
π Members π
okay now the member-by-member vibe check, one bullet per field, nothing skipped:
critical_warningβ Critical Warning. yes bestie, pay attention to this one π₯endurance_group_featuresβ Endurance Group Features.rsvd2β Reserved. (it's reserved. we don't touch it. periodt π)avl_spareβ Available Spare.avl_spare_thresholdβ Available Spare Threshold.percent_usedβ Percentage Used.domain_identifierβ Domain Identifier. it's a__le16, so little-endian, iykyk β¨rsvd8β Reserved. more reserved space, more respect πendurance_estimateβ Endurance Estimate.data_units_readβ Data Units Read.data_units_writtenβ Data Units Written.media_units_writtenβ Media Units Written.host_read_cmdsβ Host Read Commands.host_write_cmdsβ Host Write Commands.media_data_integrity_errβ Media and Data Integrity Errors. the one you hope stays at zero πnum_err_info_log_entriesβ Number of Error Information Log Entries.total_end_grp_capβ Total Endurance Group Capacity.unalloc_end_grp_capβ Unallocated Endurance Group Capacity.rsvd192β Reserved. the big one.320bytes of pure reserved icon behavior π
ngl bestie, all those[16]arrays are just raw bytes β the struct doesn't convert anything for you, so that's your job. and please do NOT go writing into thersvd*fields, they are reserved for a reason π
and that's the whole page, fr fr π this was struct nvme_endurance_group_log from the API Manual β page libnvme(9), dated October 2026. slay, go log some endurance groups 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