e1000e_tx_hwtstamp_work(9)
π e1000e_tx_hwtstamp_work(9) β the Kernel API Manual page bestie π
okay so like, this is a page from the Kernel API Manual (yes that Kernel API Manual, the one we all live in) and the star of the show is e1000e_tx_hwtstamp_work. she's a little work function with a big job and honestly? she ate. let's get into it π«Ά
β¨ NAME β¨
e1000e_tx_hwtstamp_work β check for Tx time stamp
bestie it's literally right there in the name: she checks for the Tx time stamp. that's the whole vibe check. π
πΈ SYNOPSIS πΈ
void e1000e_tx_hwtstamp_work (struct work_struct *work );
that's it, that's the whole signature. void return because she doesn't owe you a value, she just does the thing. periodt. π
π¦ ARGUMENTS π¦
workβ pointer to work struct. that's the pointer, that's the work struct, that's the whole entire argument, no notes. π
π DESCRIPTION π
okay so bestie, picture this: this work function is sitting there polling the TSYNCTXCTL valid bit β just, like, checking it over and over, very main character energy β to determine when a timestamp has been taken for the current stored skb. β
and here's the iconic part: the timestamp must be for this skb, because only one such packet is allowed in the queue. one packet. singular. no chaos, no crowding, no "who's timestamp is this anyway" drama. it's giving exclusive club with a one-person guest list. πβ¨
so yeah, she polls the valid bit, she confirms the timestamp belongs to the stored skb, and everything stays correct because the queue keeps it to exactly one packet. slay. π
π₯ SEE ALSO π₯
first up, the source file itself, the mothership:
- Kernel file
./drivers/net/ethernet/intel/e1000e/netdev.c
and now the full friend group, no cap, every single one of them, because we don't do "abbreviated" around here:
__ew32_prepare(9),e1000_regdump(9),e1000e_dump(9),e1000_desc_unused(9)e1000e_systim_to_hwtstamp(9),e1000e_rx_hwtstamp(9),e1000_receive_skb(9),e1000_rx_checksum(9)e1000_alloc_rx_buffers(9),e1000_alloc_rx_buffers_ps(9),e1000_alloc_jumbo_rx_buffers(9)e1000_clean_rx_irq(9),e1000_clean_tx_irq(9),e1000_clean_rx_irq_ps(9),e1000_clean_jumbo_rx_irq(9),e1000_clean_rx_ring(9)e1000_intr_msi(9),e1000_intr(9),e1000_configure_msix(9)e1000e_set_interrupt_capability(9),e1000_request_msix(9),e1000_request_irq(9),e1000_irq_disable(9),e1000_irq_enable(9)e1000e_get_hw_control(9),e1000e_release_hw_control(9)e1000_alloc_ring_dma(9),e1000e_setup_tx_resources(9),e1000e_setup_rx_resources(9),e1000_clean_tx_ring(9),e1000e_free_tx_resources(9),e1000e_free_rx_resources(9)e1000_update_itr(9),e1000e_write_itr(9),e1000_alloc_queues(9),e1000e_poll(9)e1000e_vlan_filter_disable(9),e1000e_vlan_filter_enable(9),e1000e_vlan_strip_disable(9),e1000e_vlan_strip_enable(9)e1000_configure_tx(9),e1000_setup_rctl(9),e1000_configure_rx(9)e1000e_write_mc_addr_list(9),e1000e_write_uc_addr_list(9),e1000e_set_rx_mode(9)e1000e_get_base_timinca(9),e1000e_config_hwtstamp(9)e1000_configure(9),e1000e_power_up_phy(9),e1000_power_down_phy(9)e1000_flush_tx_ring(9),e1000_flush_rx_ring(9),e1000_flush_desc_rings(9)e1000e_systim_reset(9),e1000e_reset(9),e1000e_trigger_lsc(9),e1000e_down(9)e1000e_sanitize_systim(9),e1000e_read_systim(9),e1000e_cyclecounter_read(9)e1000_sw_init(9),e1000_intr_msi_test(9),e1000_test_msi_interrupt(9),e1000_test_msi(9)e1000e_open(9),e1000e_close(9),e1000_set_mac(9)e1000e_update_phy_task(9),e1000_update_phy_info(9),e1000e_update_phy_stats(9),e1000e_update_stats(9),e1000_phy_read_status(9)e1000_watchdog(9),e1000_tx_timeout(9),e1000e_get_stats64(9),e1000_change_mtu(9),e1000e_hwtstamp_set(9)__e1000e_disable_aspm(9),e1000e_disable_aspm(9),e1000e_disable_aspm_locked(9),e1000_netpoll(9)e1000_io_error_detected(9),e1000_io_slot_reset(9),e1000_io_resume(9)e1000_probe(9),e1000_remove(9),e1000_init_module(9),e1000_exit_module(9)
like, that's the whole extended universe right there. iykyk. π§π
ngl the source path gets cut off in the original footer (./drivers/net/ethernet/intel/e...) β that's just how the page renders it, not me being lazy. the full file lives at./drivers/net/ethernet/intel/e1000e/netdev.c, which is also listed up in SEE ALSO. π
okay and finally, the cute little sign-off at the bottom of the page: this lil beauty comes from ./drivers/net/ethernet/intel/e... and it's dated October 2026, sitting pretty in the Kernel API Manual, and the name on the door is e1000e_tx_hwtstamp_work(9). go off, king. πππ«
π¦ 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