nvme_init_copy_range_f2(2)
π nvme_init_copy_range_f2(2) β the libnvme API manual, but make it make sense π
okay bestie, sit DOWN because we're about to build a copy range f2 structure together and honestly? it's giving construction site but make it β¨ storageβ¨. this little function lives in the libnvme API manual (yes, page nvme_init_copy_range_f2(2), that's her full name) and she has one job: fill in your copy range array so you don't have to hand-fill every single field like a peasant. π«Ά
πΈ NAME πΈ
nvme_init_copy_range_f2 β Constructs a copy range f2 structure
like, that's it, that's the whole vibe. she constructs. she initialises. she slays. π
β¨ SYNOPSIS β¨
void nvme_init_copy_range_f2 (struct nvme_copy_range_f2 *copy , __u32
*snsids , __u16 *nlbs , __u64 *slbas , __u16 *sopts , __u32 *eilbrts ,
__u32 *elbatms , __u32 *elbats , __u16 nr );
no return value, friend β she's a void girlie, she works in the shadows, she edits copy in place and leaves. main character energy but make it humble. π
π ARGUMENTS π
every single one of these is an array pointer btw (except nr, she's just a number, icon behaviour), so heads up β you're passing addresses of whole arrays, not vibes.
copyβ Copy range array. this is the thing getting built. the canvas. the moment. πΌοΈsnsidsβ Source namespace identifier. which namespace are we copying from, bestie? this tells you.nlbsβ Number of logical blocks. how many blocks we're grabbing, one per descriptor.slbasβ Starting LBA. where in the source namespace we start reading, no cap.soptsβ Source options. little flag situation, per descriptor.eilbrtsβ Expected initial logical block reference tag. yes it's a long name, yes it matters. π₯elbatmsβ Expected logical block application tag mask. the mask, the gatekeeper, the filter. π§elbatsβ Expected logical block application tag. and this is the tag itself getting checked against that mask.nrβ Number of descriptors to construct. how many times we loop this whole thing. every other array better be at least this long or we're in trouble, fr fr. π
π THE VIBE CHECK π
you hand her a copy array plus a matching set of parallel arrays (snsids, nlbs, slbas, sopts, eilbrts, elbatms, elbats) and a count nr, and she constructs nr copy range f2 descriptors inside copy. that's the tea. β none of the arguments are optional-looking, and there are nine of them, so count carefully on your fingers before you call her. π
pro tip from your favourite unix bestie: it's copy (the array) that gets written into β the rest are your inputs. don't get it twisted. π
kisses, babe β this page came to you from the libnvme API manual, dated July 2026, and it's filed under nvme_init_copy_range_f2. go construct something iconic. ππ¦β¨
π¦ 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