ixgbe_ptp_c..._to_hwtstamp(9)
β¨ ixgbe_ptp_convert_to_hwtstamp β¨
okay so bestie, welcome to the Kernel API Manual π
this little cutie is called ixgbe_ptp_convert_to_hwtstamp, and yes the header up top shortens it to ixgbe_ptp_c..._to_hwtstamp(9) because man page headers are dramatic like that. anyway. sit down, we're learning about hardware timestamps π°οΈ
πΈ NAME πΈ
ixgbe_ptp_convert_to_hwtstamp β literally just converts a register value into a hw timestamp. that's the whole job. she's an icon, she's a legend, she's a one-task queen π
π SYNOPSIS π
void ixgbe_ptp_convert_to_hwtstamp (struct ixgbe_adapter *adapter ,
struct skb_shared_hwtstamps *hwtstamp , u64 timestamp );
no return value, she just does her thing and leaves π«
π¦ ARGUMENTS π¦
adapterβ the private adapter structure, aka her personal stash of hardware secrets πhwtstampβ the stack timestamp structure, where the shiny new value ends up πtimestampβ an unsigned 64bit system time value, so like. a big number. a very big number. 64 bits of pure potential β¨
π DESCRIPTION π
okay so here's the vibe: we need to convert the adapter's RX/TXSTMP registers into a hwtstamp value that the stack's ptp functions can actually use. it's giving translator. it's giving "I speak both hardware and software" main character energy π
the lock is used to protect consistency of the cyclecounter and the SYSTIME registers. but β and this is the important part, ngl β it does not need to protect against the Rx or Tx timestamp registers, because there can't be a new timestamp until the old one is unlatched by reading. so the lock is doing its little job over here, not over there. boundaries, bestie π«Ά
in addition to the timestamp in hardware, some controllers need a software overflow cyclecounter, and this function takes that into account as well. thoughtful queen. she remembered the edge case so you don't have to π
π₯ SEE ALSO π₯
the whole friend group π« starting with the kernel file itself:
- Kernel file
./drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
and then, in order, because we do not disrespect the list:
ixgbe_ptp_setup_sdp_X540(9)ixgbe_ptp_setup_sdp_X550(9)ixgbe_ptp_read_X550(9)ixgbe_ptp_read_82599(9)ixgbe_ptp_adjfine_82599(9)ixgbe_ptp_adjfine_X550(9)ixgbe_ptp_adjtime(9)ixgbe_ptp_gettimex(9)ixgbe_ptp_settime(9)ixgbe_ptp_feature_enable(9)ixgbe_ptp_check_pps_event(9)ixgbe_ptp_overflow_check(9)ixgbe_ptp_rx_hang(9)ixgbe_ptp_clear_tx_timestamp(9)ixgbe_ptp_tx_hang(9)ixgbe_ptp_tx_hwtstamp(9)ixgbe_ptp_tx_hwtstamp_work(9)ixgbe_ptp_rx_pktstamp(9)ixgbe_ptp_rx_rgtstamp(9)ixgbe_ptp_hwtstamp_get(9)ixgbe_ptp_set_timestamp_mode(9)ixgbe_ptp_hwtstamp_set(9)ixgbe_ptp_start_cyclecounter(9)ixgbe_ptp_init_systime(9)ixgbe_ptp_reset(9)ixgbe_ptp_create_clock(9)ixgbe_ptp_init(9)ixgbe_ptp_suspend(9)ixgbe_ptp_stop(9)
friendly reminder that the manual name is ixgbe_ptp_c..._to_hwtstamp(9) and this is the Kernel API Manual β so if you're quoting her at a party, quote her correctly π
and that's the whole page, bestie!! π source path is ./drivers/net/ethernet/intel/i... (truncated by the man page herself, not me), version-slash-date situation is October 2026, and the footer name is ixgbe_ptp_c..._to_hwtstamp(9) β so this diva has been documented in the future, which honestly tracks. slay. periodt. π
β¨π¦
π¦ 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