libnvme(2)

πŸ’– libnvme β€” struct nvme_copy_range_f3 πŸ’–

okay so bestie, welcome to the libnvme API Manual πŸŽ€ β€” this is a page from the libnvme(2) crew, and today's main character is a little struct called nvme_copy_range_f3. it's giving Copy β€” Source Range Entries Descriptor Format 3h ✨ no cap, that's literally what it is.


🌸 NAME 🌸

struct nvme_copy_range_f3 β€” Copy β€” Source Range Entries Descriptor Format 3h πŸ’…

like. it's the Format 3h flavour of a copy source range descriptor. that's the whole vibe. periodt.


✨ SYNOPSIS ✨

struct nvme_copy_range_f3 {
    __le32 snsid;
    __u8 rsvd4[4];
    __le64 slba;
    __le16 nlb;
    __u8 rsvd18[4];
    __le16 sopt;
    __u8 rsvd24[2];
    __u8 elbt[10];
    __le16 elbat;
    __le16 elbatm;
 };

look at her. πŸ¦‹ ten fields, all laid out exactly like that, don't you dare reorder them. the reserved bits are there for a reason even if they're just sitting pretty doing nothing. iykyk.


πŸ‘‘ Members πŸ‘‘

bullet by bullet, field by field, let's go:

  • snsid β€” Source Namespace Identifier 🌈 the nsid of the namespace the copy is reading from, bestie.
  • rsvd4 β€” Reserved πŸ™ˆ exactly what it says. hands off.
  • slba β€” Starting LBA ⭐ where the source range kicks off on the drive.
  • nlb β€” Number of Logical Blocks πŸ”₯ how many logical blocks we're talking about.
  • rsvd18 β€” Reserved πŸ™ˆ again. reserved. stay out of it.
  • sopt β€” Source Options πŸ’… the options for the source side of the copy.
  • rsvd24 β€” Reserved πŸ™ˆ third reserved field, still reserved, still not yours.
  • elbt β€” Expected Initial Logical Block Reference Tag / Expected Logical Block Storage Tag 🌸 yes both of those things, that's the full description, i'm not paraphrasing it away.
  • elbat β€” Expected Logical Block Application Tag 🫢 the application tag you expect.
  • elbatm β€” Expected Logical Block Application Tag Mask 🧚 and here's the mask that goes with it.

reminder bestie: those three rsvd* fields are Reserved. do not touch, do not write, do not make it weird. 🫢

and that's the whole page, angel. πŸ’œ this was struct nvme_copy_range_f3 from the libnvme(2) API Manual, July 2026 edition β€” mwah, slay, go forth and copy ranges responsibly. πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from