libnvme(9)

πŸ“¦ version 3.2, in arch rolling

✨ libnvme(9) β€” API Manual ✨

okay bestie, so this is a page out of the libnvme API manual (that's section 9, the kernel/API girlies know πŸ’…), and today's main character is a struct that's honestly kind of a baddie: struct nvme_copy_range_f3, aka the Copy - Source Range Entries Descriptor Format 3h. yes that's a whole mouthful, we love a long title πŸŽ€


🌸 NAME 🌸

struct nvme_copy_range_f3 β€” Copy - Source Range Entries Descriptor Format 3h

like, it's a copy range entry descriptor, the format 3h one specifically, no cap πŸ’–


✨ SYNOPSIS ✨

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

look at her. iconic struct layout, honestly 🫢


πŸ¦‹ Members πŸ¦‹

so here's the full roster, every single field, we're not skipping a one of them:

  • snsid β€” Source Namespace Identifier πŸ’« like, which namespace are we copying from, ykwim
  • rsvd4 β€” Reserved πŸ”’ (it's reserved, bestie, hands off)
  • slba β€” Starting LBA, the starting logical block address, the ~beginning~ if you will πŸ“
  • nlb β€” Number of Logical Blocks πŸ”’
  • cetype β€” Bits 3-0: Command Extension Type 🧩 only bits 3-0, mind you
  • rsvd19 β€” Reserved πŸ”’
  • cev β€” Command Extension Value πŸ’ 
  • sopt β€” Source Options βš™οΈ
  • rsvd24 β€” Reserved πŸ”’ (yes, another one, they really said save some room)
  • elbt β€” Expected Initial Logical Block Reference Tag / Expected Logical Block Storage Tag 🏷️ (it's giving two-jobs energy, and honestly? she's serving both)
  • elbat β€” Expected Logical Block Application Tag πŸ“Ž
  • elbatm β€” Expected Logical Block Application Tag Mask 🎭
ngl the reserved fields are giving "saving seats for friends who never show up" 😭 but that's the struct, we respect her πŸ™ˆ

🌈 a lil sign-off 🌈

this page was living in the libnvme(9) manual, dated October 2026, and it's literally all about struct nvme_copy_range_f3. periodt, that's the whole vibe, go copy some ranges responsibly bestie πŸ’œβœ¨

πŸ“¦ where this page comes from