libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ‘‘ libnvme(9) β€” the struct nvme_copy_range_f1 glow-up πŸ’…

okay so bestie, this is a page straight out of the libnvme(9) API Manual, and today's main character is a struct with a whole lot of reserved bytes and one very specific job. it's giving "copy source range descriptor, format 1h" energy and honestly? we're obsessed. let's get into it ✨


🌸 NAME 🌸

struct nvme_copy_range_f1 β€” Copy - Source Range Entries Descriptor Format 1h

like, that's the name, no cap. it's a Copy Source Range Entries Descriptor, and it's specifically the Format 1h flavour. iykyk πŸŽ€


✨ SYNOPSIS ✨

here's the whole thing in its full glory, copied exactly because we do not touch the source material 🫢

struct nvme_copy_range_f1 {
    __u8 rsvd0[8];
    __le64 slba;
    __le16 nlb;
    __u8 cetype;
    __u8 rsvd19;
    __le16 cev;
    __u8 rsvd22[4];
    __u8 elbt[10];
    __le16 elbat;
    __le16 elbatm;
 };

look at her. twelve fields. absolute icon. πŸ”₯


πŸ’– Members πŸ’–

okay, field-by-field tour, group chat style. every single one, no skipping, because we are thorough in this household 🧚

  • rsvd0 β€” Reserved. it's __u8 rsvd0[8], which means yes, eight whole bytes of "don't touch, not for you". respectfully, leave her alone πŸ™ˆ
  • slba β€” Starting LBA. the __le64, little-endian starting logical block address. this is where the copy starts, bestie πŸ“
  • nlb β€” Number of Logical Blocks. a __le16, so it's little-endian and honestly kind of smol. count your blocks πŸ’…
  • cetype β€” Bits 3-0: Command Extension Type. note that it's bits 3-0 specifically β€” the low nibble, okurrr. don't go reading the other bits, they're not invited ⭐
  • rsvd19 β€” Reserved. again. __u8. we're back to "mind your business" territory πŸŽ€
  • cev β€” Command Extension Value. a __le16, little-endian, and it pairs with that cetype up above. cute couple fr fr πŸ₯°
  • rsvd22 β€” Reserved. this time it's __u8 rsvd22[4] β€” four whole bytes of nothing. slay πŸ’€
  • elbt β€” Expected Initial Logical Block Reference Tag / Expected Logical Block Storage Tag. big name, big job. it's __u8 elbt[10] β€” ten bytes of tag expectation. main character energy ngl πŸ‘‘
  • elbat β€” Expected Logical Block Application Tag. __le16, little-endian. the expected application tag, distinct from the reference/storage tag above, so don't go mixing them up 🌸
  • elbatm β€” Expected Logical Block Application Tag Mask. also __le16, also little-endian. it's the mask for that application tag β€” the vibe check for which bits actually count 🌈

ok real talk for a sec: do not go poking at the rsvd0, rsvd19 or rsvd22 fields. they're marked Reserved in the original for a reason, bestie. those bytes are not yours. πŸ’€

and that's the whole page!! no extra lore, no hidden options, just one very well-structured descriptor πŸ’œ

cute sign-off: this masterpiece comes to you from October 2026, courtesy of the struct nvme_copy_range_f1 page in the libnvme(9) manual. drink some water, read your reserved fields responsibly, and remember β€” format 1h forever πŸ¦‹πŸ’–

πŸ“¦ where this page comes from