libnvme(9)

✨ NAME ✨

okay bestie, gather round πŸ’– this is struct nvme_dsm_args β€” literally the arguments you hand over for the NVMe Dataset Management command. that's it, that's the vibe. it's the lil bundle of stuff the kernel needs before it goes and does the thing. no cap.


🌸 SYNOPSIS 🌸

here's the whole struct, character for character, don't @ me:

struct nvme_dsm_args {
    __u32 *result;
    struct nvme_dsm_range *dsm;
    int args_size;
    int fd;
    __u32 timeout;
    __u32 nsid;
    __u32 attrs;
    __u16 nr_ranges;
 };

πŸ’… Members πŸ’…

okay so every single field, one by one, no skipping, we don't do that here 🫢

  • result β€” the command completion result, straight out of CQE dword0. yeah. that's where the answer lives, bestie. πŸ’«
  • dsm β€” the data set management attributes. this is the main character of the whole struct ngl. πŸ‘‘
  • args_size β€” the size of struct nvme_dsm_args. it's giving self-aware. it knows how big it is. iconic. πŸŽ€
  • fd β€” the file descriptor of the nvme device. your lil portal to the drive, lowkey. πŸ”‘
  • timeout β€” timeout in ms. so like, how long you're willing to wait before you're like "okay this is taking forever". ⏳
  • nsid β€” the namespace identifier. which namespace we talking about, fr fr. πŸ¦‹
  • attrs β€” DSM attributes β€” check enum nvme_dsm_attributes for the full menu, iykyk. πŸ“‹
  • nr_ranges β€” number of block ranges in the data set management attributes. so how many ranges you're bringing to the function. bring the whole crew. πŸ’œ
heads up bestie: attrs is the one that points you at enum nvme_dsm_attributes, so if you're confused about what to put there, that's your field trip destination. go look. 🌈

and that's the whole page, periodt. this was libnvme(9) β€” the API Manual, specifically the struct nvme_dsm_args page, dated August 2026. πŸ’–βœ¨ take care of her, she's a lil struct but she carries a lot. mwah. πŸŽ€πŸ¦‹πŸ’…

πŸ“¦ where this page comes from