libnvme(2)

✨ NAME ✨

struct nvme_copy_range_f1 β€” bestie, this is the Copy - Source Range Entries Descriptor Format 1h. It's giving "here's exactly where to copy from and what tags to expect" πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct nvme_copy_range_f1 {
    __u8 rsvd0[8];
    __le64 slba;
    __le16 nlb;
    __u8 rsvd18[8];
    __u8 elbt[10];
    __le16 elbat;
    __le16 elbatm;
 };

πŸ’– Members πŸ’–

Okay so let's break down every single field, no skips, no cap:

  • rsvd0 β€” Reserved. Yeah, it's just chillin'. Don't touch it, it's not for you πŸ™ˆ
  • slba β€” Starting LBA. The main character of this descriptor β€” where the copy range begins, lowkey the whole point.
  • nlb β€” Number of Logical Blocks. How many blocks we're copying, periodt.
  • rsvd18 β€” Reserved. Another reserved spot, minding its own business πŸ’€
  • elbt β€” Expected Initial Logical Block Reference Tag / Expected Logical Block Storage Tag. It's giving "trust but verify" ✨
  • elbat β€” Expected Logical Block Application Tag. Yep, the expected application tag.
  • elbatm β€” Expected Logical Block Application Tag Mask. The mask that goes with that tag, as one does πŸŽ€

Real talk: those reserved fields (rsvd0, rsvd18) are reserved β€” leave them alone or the vibe check will not pass.

Okay and for the sign-off bestie: this page is from July 2026, it's the struct nvme_copy_range_f1 page, and it lives under the libnvme(2) manual. Slay, go copy some ranges responsibly πŸ«ΆπŸ’–

πŸ“¦ where this page comes from