STRUCT ICE_CROSSTSTAMP_CFG(9)
π 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. solock_regis the door andlock_busyis 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:
- Kernel file:
./drivers/net/ethernet/intel/ice/ice_ptp.cπ ice_ptp_find_pin_idx(9),ice_ptp_cfg_tx_interrupt(9),ice_set_rx_tstamp(9),ice_ptp_disable_timestamp_mode(9),ice_ptp_restore_timestamp_mode(9),ice_ptp_read_src_clk_reg(9),ice_ptp_extend_32b_ts(9),ice_ptp_extend_40b_ts(9),ice_ptp_is_tx_tracker_up(9),ice_ptp_req_tx_single_tstamp(9),ice_ptp_complete_tx_single_tstamp(9),ice_ptp_process_tx_tstamp(9),ice_ptp_alloc_tx_tracker(9),ice_ptp_flush_tx_tracker(9),ice_ptp_mark_tx_tracker_stale(9),ice_ptp_flush_all_tx_tracker(9),ice_ptp_release_tx_tracker(9),ice_ptp_init_tx_e82x(9),ice_ptp_init_tx(9),ice_ptp_update_cached_phctime(9),ice_ptp_reset_cached_phctime(9),ice_ptp_write_init(9),ice_ptp_write_adj(9),ice_base_incval(9),ice_ptp_check_tx_fifo(9),ice_ptp_wait_for_offsets(9),ice_ptp_port_phy_stop(9),ice_ptp_port_phy_restart(9),ice_ptp_link_change(9),ice_ptp_cfg_phy_interrupt(9),ice_ptp_reset_phy_timestamping(9),ice_ptp_restart_all_phy(9),ice_ptp_adjfine(9),ice_ptp_extts_event(9),ice_ptp_cfg_extts(9),ice_ptp_disable_all_extts(9),ice_ptp_enable_all_extts(9),ice_ptp_write_perout(9),ice_ptp_cfg_perout(9),ice_ptp_disable_all_perout(9),ice_ptp_enable_all_perout(9),ice_verify_pin(9),ice_ptp_gpio_enable(9),ice_ptp_gettimex64(9),ice_ptp_settime64(9),ice_ptp_adjtime_nonatomic(9),ice_ptp_adjtime(9),struct ice_crosststamp_ctx(9),ice_capture_crosststamp(9),ice_ptp_getcrosststamp(9),ice_ptp_hwtstamp_get(9),ice_ptp_set_timestamp_mode(9),ice_ptp_hwtstamp_set(9),ice_ptp_get_rx_hwts(9),ice_ptp_setup_pin_cfg(9),ice_ptp_disable_pins(9),ice_ptp_parse_sdp_entries(9),ice_ptp_set_funcs_e82x(9),ice_ptp_set_funcs_e810(9),ice_ptp_set_funcs_e830(9),ice_ptp_set_caps(9),ice_ptp_create_clock(9),ice_ptp_request_ts(9),ice_ptp_ts_irq(9),ice_ptp_maybe_trigger_tx_interrupt(9),ice_ptp_queue_work(9),ice_ptp_prepare_rebuild_sec(9),ice_ptp_prepare_for_reset(9),ice_ptp_rebuild_owner(9),ice_ptp_rebuild(9),ice_ptp_clock_index(9),ice_ptp_init_owner(9),ice_ptp_init_work(9),ice_ptp_init_port(9),ice_ptp_init_tx_interrupt_mode(9),ice_ptp_init(9),ice_ptp_release(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms