nvme_init_copy_range_f3(2)
π nvme_init_copy_range_f3(2) π
okay so bestie, welcome to the libnvme API manual, section 2, and today's main character is nvme_init_copy_range_f3 β a lil function that constructs a copy range f3 structure. yes, the f3 one. she's specific. she's iconic. let's get into it π«Ά
β¨ NAME β¨
nvme_init_copy_range_f3 β Constructs a copy range f3 structure
like literally that's her whole job. constructing. building. assembling the girlies into an array. no cap π
πΈ SYNOPSIS πΈ
void nvme_init_copy_range_f3 (struct nvme_copy_range_f3 *copy , __u32
*snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u64 *eilbrts ,
__u32 *elbatms , __u32 *elbats , __u16 nr );
she returns void, so don't go looking for a return value, there isn't one, it's giving mysterious and that's fine πβ¨
π¦ ARGUMENTS π¦
nine params, one function, zero regrets. here's the tea:
copyβ Copy range array. this is the destination bestie, the structure that's about to get filled up πsnsidsβ Source namespace identifier. which namespace the data's coming from, iykyknlbsβ Number of logical blocks. how many blocks we're moving, count them, don't be sloppyslbasβ Starting LBA. the starting logical block address, where it all begins πsoptsβ Source options. the options for the source, simple aseilbrtsβ Expected initial logical block reference tag. long name, big energy, it's exactly what it sayselbatmsβ Expected logical block application tag mask. the mask version. mask, babes πelbatsβ Expected logical block application tag. same family, no mask, they're siblings your honornrβ Number of descriptors to construct. how many of these bad boys we're building, lowkey the most important number here π₯
ngl bestie, every single one of these is a pointer except nr β so don't go passing plain values and then act surprised. the vibes must be pointers. periodt π
π A LIL VIBE CHECK π
quick recap so it sticks:
- it's
void, so nothing comes back out π copyis where the constructed ranges livenrtells the loop how many descriptors to construct- everything else is the source data feeding into each descriptor
that's the whole function. no hidden lore. no extra chapters. she does one thing and she does it flawlessly β
and that's a wrap, bestie! this little page beamed straight out of the libnvme API manual, nvme_init_copy_range_f3 edition, dated July 2026 β same name in the header, same name in the footer, nvme_init_copy_range_f3(2) top and bottom because symmetry is free and she's serving it ππβ¨
π¦ 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