STRUCT ICE_CROSSTSTAMP_CFG(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ice_crosststamp_cfg(9) β€” like, the Kernel API Manual bestie ✨

okay so first things first, this is a page from the Kernel API Manual and we're talking about struct ice_crosststamp_cfg, the literal blueprint for device cross timestamp configuration. cross timestamps are that ✨iconic✨ moment where the NIC and the system clock agree on what time it is, and this struct is the little config bundle that makes it happen. πŸŽ€


🌸 NAME 🌸

struct ice_crosststamp_cfg β€” device cross timestamp configuration. yes bestie, it's the config struct. it's giving "the paperwork behind the magic." πŸ’–


✨ SYNOPSIS ✨

struct ice_crosststamp_cfg {
    u32 lock_reg;
    u32 lock_busy;
    u32 ctl_reg;
    u32 ctl_active;
    u32 art_time_l;
    u32 art_time_h;
    u32 dev_time_l[2];
    u32 dev_time_h[2];
 };

look at her. eight fields, all u32, two of them arrays of 2. no cap, she's compact and she knows it. πŸ‘‘


πŸ¦‹ Members πŸ¦‹

okay so let's meet the whole cast, one by one, no skipping, periodt:

  • lock_reg β€” the hardware semaphore lock to use. this is the "please wait, someone's in here" sign for the hardware. πŸ”’
  • lock_busy β€” the bit inside that semaphore lock register that tells you the lock is busy. so lock_reg is the door and lock_busy is the little "occupied" light on it. lowkey obsessed with this duo. πŸšͺ
  • ctl_reg β€” the hardware register you poke to request a cross timestamp. say the word and she'll go get one for you. πŸ“¨
  • ctl_active β€” the bit in the control register that actually requests the cross timestamp. it's the button on the register. press it, bestie. πŸ”˜
  • art_time_l β€” lower 32 bits of ART system time. that's the system side of the equation. 🌍
  • art_time_h β€” upper 32 bits of ART system time. together with the one above, that's your full ART system time, split in two like a friendship necklace. πŸ’ž
  • dev_time_l β€” lower 32 bits of device time, per timer index. note the per-index energy: one of these per timer. πŸ“Ώ
  • dev_time_h β€” upper 32 bits of device time, per timer index. same deal, high half, per timer index. ✨
heads up: the two dev_time fields are per timer index β€” that's why they're declared as arrays of 2. don't treat them like single values, iykyk. 🫢

πŸ’œ SEE ALSO πŸ’œ

the friend group. the whole extended universe. every single one of them, fr fr:

like, that's the whole ice_ptp cinematic universe and honestly? we stan a thorough cross-reference section. 🌈


and that's the page, bestie! this one lives in ./drivers/net/ethernet/intel/ice and it's dated October 2026 β€” so yeah, it's a struct ice_crosststamp_cfg(9) moment, go read the source, mwah πŸ’‹πŸ«Ά

πŸ“¦ where this page comes from