libnvme(9)
πΈ libnvme β the struct nvme_set_features_args page π
okay bestie, so this is a page out of the libnvme API manual (that's the libnvme(9) section, for the record π). It's not a command you type, it's a struct β like, the lil bundle of vibes you hand to the NVMe Admin Set Feature command so it knows what you actually want. Let's get into it π«Ά
β¨ NAME β¨
struct nvme_set_features_args β the arguments for the NVMe Admin Set Feature command π
π¦ SYNOPSIS π¦
struct nvme_set_features_args {
__u32 *result;
void *data;
int args_size;
int fd;
__u32 timeout;
__u32 nsid;
__u32 cdw11;
__u32 cdw12;
__u32 cdw13;
__u32 cdw15;
__u32 data_len;
bool save;
__u8 uuidx;
__u8 fid;
};
no cap, that's the whole shape of it β copy it exactly, don't get cute with the field names π€
π« Members π«
okay so here's the β¨cast of charactersβ¨ in this struct, one by one, no skipping, we respect every single field in this house π
resultβ the command completion result, straight from CQEdword0β that's where the answer comes back to you.dataβ the user address of the feature data, if applicable π¦ like, only if this feature actually has data to point at.args_sizeβ the size ofstruct nvme_set_features_argsπ yes bestie, the struct knows its own size, iconic behaviour.fdβ the file descriptor of the nvme device π₯ that's your lil handle to the actual drive.timeoutβ the timeout, in ms β³ measured in milliseconds, so be precise.nsidβ the namespace ID, if applicable π only relevant when a namespace is actually in the picture.cdw11β the value to set the feature to π this is the main character of the whole operation, fr fr.cdw12β the feature specific commanddword12field π what goes here depends on the feature, so iykyk.cdw13β the feature specific commanddword13field πΈ again, feature specific, so check your feature's docs.cdw15β the feature specific commanddword15field π yes,dword15β there's nodword14in the list, don't come for me, that's literally just what the struct says πdata_lenβ the length of the feature data, if applicable, in bytes π bytes!! not vibes!!saveβ save the value across power states π so it survives a power cycle, slay.uuidxβ the UUID Index, for differentiating vendor specific encoding π§ that's the lil disambiguator when vendors do their own thing.fidβ the feature identifier π which feature you're setting, periodt.
heads up bestie: a bunch of these say "if applicable" and "feature specific" for a reason β what you actually fill in depends on which feature you're setting. the struct doesn't guess for you π
and that's the whole page, no crumbs left π stay hydrated, close your file descriptors, and may your CQE dword0 always say what you hoped π«Ά
this was the libnvme API manual, libnvme(9) section β page for struct nvme_set_features_args, dated August 2026 β¨ bye bestie, go set some features π
π¦ 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