idpf_ptp_ts...d_32b_to_64b(9)
π
idpf_ptp_tstamp_extend_32b_to_64b (9) β Kernel API Manual β¨
okay so bestie, this is a page from the Kernel API Manual, section 9. the name got a lil chopped in the header (idpf_ptp_ts...d_32b_to_64b(9) β she's giving "middle child at a family reunion"), but the full govt name is idpf_ptp_tstamp_extend_32b_to_64b. and honestly? the name says it all, but we're gonna say it all anyway because that's literally the whole page. π
πΈ NAME πΈ
idpf_ptp_tstamp_extend_32b_to_64b β Convert a 32b nanoseconds Tx or Rx timestamp value to 64b. that's it. that's the function. she takes your small timestamp and makes it big. glow-up of the century, no cap. π
β¨ SYNOPSIS β¨
u64 idpf_ptp_tstamp_extend_32b_to_64b (u64 cached_phc_time , u32
in_timestamp );
two args in, one u64 out. simple. iconic. done. π«Ά
π¦ ARGUMENTS π¦
cached_phc_timeβ recently cached copy of PHC time. like, a screenshot of the clock from a second ago. it's the vibe check the function uses to figure out which way time is going. β°in_timestampβ the Ingress/egress 32b nanoseconds timestamp value. this is the baby timestamp that's about to get extended. she's small but she's valid. π
π DESCRIPTION π
kay so here's the situation, and it's giving hardware shenanigans. the hardware captures timestamps which contain only 32 bits of nominal nanoseconds, as opposed to the 64bit timestamps that the stack expects. π
like, the hardware is out here handing you a snack-size timestamp and the network stack is expecting a full meal. that's the gap. that's the whole problem. and this function is the little fairy that bridges it. π§
π₯ RETURN π₯
the Tx timestamp value extended to 64 bits based on cached PHC time. one u64, fully grown, ready for the stack. slay. β
π SEE ALSO π
the kernel file lives at ./drivers/net/ethernet/intel/idpf/idpf_ptp.c β go read the source, iykyk. π
and here's the whole friend group, in order, everyone invited to the group chat:
idpf_ptp_get_access(9)idpf_ptp_get_features_access(9)idpf_ptp_enable_shtime(9)idpf_ptp_read_src_clk_reg_direct(9)idpf_ptp_read_src_clk_reg_mailbox(9)idpf_ptp_read_src_clk_reg(9)idpf_ptp_get_sync_device_time_direct(9)idpf_ptp_get_sync_device_time_mailbox(9)idpf_ptp_get_sync_device_time(9)idpf_ptp_get_crosststamp(9)idpf_ptp_gettimex64(9)idpf_ptp_update_phctime_rxq_grp(9)idpf_ptp_update_cached_phctime(9)idpf_ptp_settime64(9)idpf_ptp_adjtime_nonatomic(9)idpf_ptp_adjtime(9)idpf_ptp_adjfine(9)idpf_ptp_verify_pin(9)idpf_ptp_gpio_enable(9)idpf_ptp_extend_ts(9)idpf_ptp_request_ts(9)idpf_ptp_set_rx_tstamp(9)idpf_ptp_set_timestamp_mode(9)idpf_tstamp_task(9)idpf_ptp_do_aux_work(9)idpf_ptp_set_caps(9)idpf_ptp_create_clock(9)idpf_ptp_release_vport_tstamp(9)idpf_ptp_release_tstamp(9)idpf_ptp_get_txq_tstamp_capability(9)idpf_ptp_init(9)idpf_ptp_release(9)
π reminder bestie: this is section 9 documentation, so the names are function names, not commands you type into a terminal. don't go typin' idpf_ptp_init at your shell prompt and wondering why nothing happens. π
and that's the page!! this lil beauty lives in ./drivers/net/ethernet/intel/idpf, dated October 2026. mwah, go extend some timestamps, 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