libnvme(9)
β¨ libnvme β API Manual β¨
okay bestie, welcome to the libnvme API manual, section 9 (kernel developer's manual energy, we love that for us) π
this page is the whole rundown on one very specific little struct, and yes it's giving "why is this one struct getting its own manpage" but honestly it needs it, just trust.
π NAME π
struct nvme_get_log_args β the arguments bundle for the NVMe Admin Get Log command. it's the lil suitcase of everything the command needs to go fetch a log page for you π§³β¨
π¦ SYNOPSIS π¦
struct nvme_get_log_args {
__u64 lpo;
__u32 *result;
void *log;
int args_size;
int fd;
__u32 timeout;
enum nvme_cmd_get_log_lid lid;
__u32 len;
__u32 nsid;
enum nvme_csi csi;
__u16 lsi;
__u8 lsp;
__u8 uuidx;
bool rae;
bool ot;
};
π Members π
here's the full roster, one by one, no skipping, no skipping is the rule π₯
lpoβ log page offset, for when you're doing a partial log transfer (sliding in at a specific spot instead of grabbing the whole thing, periodt).resultβ the command completion result, straight out of CQE dword0. that's the receipts π§Ύlogβ the userspace destination address where the data actually gets transferred to. that's where it lands, bestie.args_sizeβ the length of the structure itself. yes it measures itself, iconic.fdβ the file descriptor of the nvme device. your entry point πͺtimeoutβ timeout, in ms. milliseconds, not seconds, don't get caught out πlidβ log page identifier. for the known values, go peek atenum nvme_cmd_get_log_lid.lenβ the length of the user buffer you're providing to hold the log data, in bytes.nsidβ namespace identifier, if applicable (iykyk β sometimes there's just no namespace in the picture).csiβ command set identifier. known values live inenum nvme_csi.lsiβ log specific identifier.lspβ log specific field.uuidxβ UUID selection, if it's supported. if it's not, well. πraeβ retain asynchronous events. keep 'em, don't toss 'em.otβ offset type π and this one actually matters: if it's set,lpospecifies the index into the list of data structures; otherwiselpospecifies the byte offset into the log page. two completely different meanings for the same field, so don't mix them up fr fr.
and that's the whole struct, start to finish, every member accounted for π«Ά go forth and pull those log pages, main character π
signing off from the libnvme(9) manual, August 2026 edition β API Manual, struct nvme_get_log_args, that's a wrap πΈ
π¦ where this page comes from
- fedora 44: libnvme-doc 1.16.2-1.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms