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
- ubuntu stonking: libnvme-dev 1.16.2-1build1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms