ice_ptp_extend_40b_ts(9)
π ice_ptp_extend_40b_ts (kernel API manual, section 9) π
okay so bestie, welcome to the ice_ptp_extend_40b_ts page, straight out of the Kernel API Manual β¨ this lil function's whole job? turning a smol 40b timestamp into a full 64b nanoseconds glow-up π«Ά
πΈ NAME πΈ
ice_ptp_extend_40b_ts β the icon that converts a 40b timestamp into 64b nanoseconds π
β¨ SYNOPSIS β¨
u64 ice_ptp_extend_40b_ts (struct ice_pf *pf , u64 in_tstamp );
π ARGUMENTS π
pfβ the board's private structure, aka its little diary of state πin_tstampβ the ingress/egress 40b timestamp value, the raw material we're working with π
π¦ DESCRIPTION π¦
so here's the tea, bestie: the Tx and Rx timestamps are 40 bits wide π and they're packed like this β 32 bits of nominal nanoseconds, 7 bits of sub-nanoseconds, and a lil valid bit. the whole squad in one 40-bit package, no cap.
*--------------------------------------------------------------* | 32
bits of nanoseconds | 7 high bits of sub ns underflow | v |
*--------------------------------------------------------------*
let me break the layout down for you, because it's giving β¨ bit-field realness β¨:
- the low bit is the vibe check β an indicator of whether the timestamp is valid β
- the next 7 bits are a capture of the upper 7 bits of the sub-nanosecond underflow π
- the remaining 32 bits are the lower 32 bits of the PHC timer π
β οΈ heads up: it is assumed that the caller verifies the timestamp is valid prior to calling this function. like, that's on you, not on this function. do not come for her if you skipped the check π
what she does: extract the 32bit nominal nanoseconds and extend them π₯ and the basis for that timestamp extension? the cached PHC time stored in the device private PTP structure. that's her reference point, her main character anchor, iykyk π§
if you want the full lore on the extension algorithm, go read ice_ptp_extend_32b_ts β the original explainer, the blueprint, the mother of the method π
π₯ SEE ALSO π₯
the source file, obviously: Kernel file ./drivers/net/ethernet/intel/ice/ice_ptp.c π
and now, the whole entire friend group β literally every related function, all present, none skipped π
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_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_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)
and that's the page, bestie!! before you go, the receipts π§Ύ: this lil beauty lives at ./drivers/net/ethernet/intel/ice, it's dated October 2026, and it's filed under ice_ptp_extend_40b_ts(9) β so cite her correctly or it's not giving academic integrity π
β¨ bye ily π«Άπ
π¦ 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