ice_ptp_getcrosststamp(9)
π ice_ptp_getcrosststamp β kernel API manual, bestie edition π
okay so we're diving into ice_ptp_getcrosststamp(9) today and honestly? it's giving "tiny function, big responsibilities." it lives in the kernel API manual, so grab a snack and let's go π¦
β¨ NAME β¨
ice_ptp_getcrosststamp β capture a device cross timestamp. that's it, that's the whole vibe π
β¨ SYNOPSIS β¨
int ice_ptp_getcrosststamp (struct ptp_clock_info *info , struct
system_device_crosststamp *cts );
literally two arguments, no notes π₯
β¨ DESCRIPTION β¨
so what this icon actually does π is capture a cross timestamp between the ART and the device PTP hardware clock. then it fills in the cross timestamp info and reports it right back to the caller. handing it over, no cap π«Ά
but here's the lowkey important part: to correctly correlate the ART timestamp back to the TSC time, the CPU must have X86_FEATURE_TSC_KNOWN_FREQ. it's not a suggestion, bestie, it's a requirement π
β¨ ARGUMENTS β¨
infoβ the driver's PTP info structure. yeah, that one πctsβ the memory to fill the cross timestamp info. you're giving it a home to fill up β¨
β¨ RETURN β¨
zero on success, or a negative error code on failure. zeros are slay, negatives are... not π
β¨ SEE ALSO β¨
the kernel file itself, for the curious:
./drivers/net/ethernet/intel/ice/ice_ptp.c
and the whole friend group (yes, all of them, no skipping, i checked twice π§):
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_cfg(9),struct ice_crosststamp_ctx(9),ice_capture_crosststamp(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)
heads up bestie: without X86_FEATURE_TSC_KNOWN_FREQ on the CPU, correlating ART back to TSC won't be correct. that's the whole caveat, don't skip it π
πΈ that's the page!! brought to you straight out of ./drivers/net/ethernet/intel/ice, from October 2026, in the kernel API manual β slay, go timestamp something πβ¨
π¦ 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