libnvme(9)

πŸ’– libnvme(9) β€” API Manual πŸ’–

okay bestie, welcome to the libnvme API manual, section 9 πŸŽ€ this one's a lil struct deep-dive and honestly it's giving "I have a very specific job and I do it flawlessly" energy ✨


✨ NAME ✨

struct nvme_zns_mgmt_recv_args β€” the arguments for the NVMe ZNS Management Receive command πŸ¦‹

no cap, that's literally the whole vibe. it's the lil bag of stuff you hand over when you wanna do a ZNS management receive.


🌸 SYNOPSIS 🌸

struct nvme_zns_mgmt_recv_args {
    __u64 slba;
    __u32 *result;
    void *data;
    int args_size;
    int fd;
    __u32 timeout;
    __u32 nsid;
    enum nvme_zns_recv_action zra;
    __u32 data_len;
    __u16 zrasf;
    bool zras_feat;
 };

look at her. eleven members. all accounted for. iconic. πŸ‘‘


πŸ’… Members πŸ’…

one bullet per member, and yes we're doing all of them, because skipping members is not the move πŸ™ˆ

  • slba β€” the Starting logical block address. where the party starts πŸ“
  • result β€” the command completion result, straight outta CQE dword0 🎯
  • data β€” the userspace address of the data. yes bestie, your buffer lives here 🏠
  • args_size β€” the size of struct nvme_zns_mgmt_recv_args. she knows her own measurements, self-aware queen πŸ’–
  • fd β€” the file descriptor of the nvme device πŸ”Œ
  • timeout β€” timeout in ms ⏳ (milliseconds, fr fr)
  • nsid β€” Namespace ID πŸͺͺ
  • zra β€” zone receive action πŸŒ€
  • data_len β€” length of data πŸ“
  • zrasf β€” Zone receive action specific field πŸ”
  • zras_feat β€” Zone receive action specific features ✨
ngl bestie, if you're passing this struct around, double-check args_size matches what you think it is β€” she's the one telling everyone how big the struct is, and she does not want to be wrong about it 😭

and that's the whole page, we ate and left no crumbs πŸ“

this was struct nvme_zns_mgmt_recv_args, from the libnvme(9) API Manual, dated August 2026 πŸŽ€

bye bestie, go receive some zones, mwah πŸ’‹πŸŒˆ

πŸ“¦ where this page comes from