libnvme(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’– NAME πŸ’–

okay so bestie, welcome to libnvme(9) β€” this is the page for struct nvme_lm_track_memory_changes_data, aka the Track Memory Changes Data Structure πŸ¦‹ and like… the host supplies it in the data buffer of a Track Send command's Track Memory Changes management operation, specifically when it's starting tracking (that's when TACT is set to %NVME_LM_TACT_START_TRACKING). no cap, that's the whole vibe of this struct πŸ’…


✨ SYNOPSIS ✨

struct nvme_lm_track_memory_changes_data {
    __u8 ver;
    __u8 rsvd1[2];
    __u8 rmrtg;
    __le32 rnmrtd;
    struct nvme_lm_memory_range_tracking_descriptor desc[];
};

like, that's the whole thing, she's little but she's doing A LOT πŸŽ€


πŸŽ€ Members πŸŽ€

  • ver β€” the Version field (that's VER in the spec, iykyk) and bestie it shall be cleared to 0h β€” zero it out, fr fr, no improvising πŸ™ˆ
  • rsvd1 β€” Reserved. it's giving "not your business" energy, just leave it alone πŸ’€
  • rmrtg β€” the Requested Memory Range Tracking Granularity (RMRTG) ⭐
  • rnmrtd β€” the Number of Memory Range Tracking Descriptors (RNMRTD), and psst πŸ‘€ it's a 1's based value, so it counts from one, not zero β€” do not mess this up bestie 😭
  • desc β€” the Memory Range Tracking Descriptor list πŸ”₯ see struct nvme_lm_memory_range_tracking_descriptor for what's actually inside each one β€” that's her sister struct, go say hi 🫢

lowkey important reminder: ver gets cleared to 0h. that's not a suggestion, that's the spec, and the spec ate πŸ’…

and that's the page!! slay 🌈 this was the libnvme(9) API Manual, and the source page was dated October 2026 with struct nvme_lm_track_memory_changes_data right there at the bottom of the footer πŸ’– mwah, go track those memory changes, main character πŸ‘‘βœ¨

πŸ“¦ where this page comes from