nvme_init_dsm_range(2)

πŸ’– NAME πŸ’–

nvme_init_dsm_range β€” bestie, this one constructs a data set range structure for you ✨


🌸 SYNOPSIS 🌸

void nvme_init_dsm_range (struct nvme_dsm_range *dsm , __u32 *ctx_attrs
, __u32 *llbas , __u64 *slbas , __u16 nr_ranges );

πŸŽ€ ARGUMENTS πŸŽ€

  • dsm β€” the DSM range array itself, the main character of this whole operation πŸ‘‘
  • ctx_attrs β€” an array of context attributes πŸ¦‹
  • llbas β€” an array of lengths, measured in logical blocks πŸ“
  • slbas β€” an array of starting logical blocks, like where each range begins 🌈
  • nr_ranges β€” the size of the dsm arrays, aka how many ranges we're working with πŸ”’

✨ DESCRIPTION ✨

okay so every single one of those arrays has to be the same size β€” that size being nr_ranges. like, all of them, no exceptions, the vibe check is that they match πŸ’…

and literally the whole point of this function? it's intended to be used with constructing a payload for nvme_dsm. that's the assignment. that's the job. periodt 🫢


🌟 RETURN 🌟

It hands you back the nvme command status if a response came through β€” or -errno otherwise πŸ’€


ngl that's the whole page, bestie β€” go forth and construct those data set range structures, you've got this πŸ§šπŸ’œ

This was nvme_init_dsm_range from the libnvme API manual, dated July 2026. slay, bye!! πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from