e1000e_setup_tx_resources(9)
π e1000e_setup_tx_resources(9) π
okay bestie, so this is a page from the Kernel API Manual β yes, the kernel, the big one, the final boss of C β and it's about one lil' function that gets your transmit side all set up. Grab a strawberry drink π and let's go.
πΈ NAME πΈ
e1000e_setup_tx_resources β literally just allocating the Tx resources (which, in this house, means Descriptors, capital D, respect it π).
β¨ SYNOPSIS β¨
int e1000e_setup_tx_resources (struct e1000_ring *tx_ring );
That's it. That's the whole vibe. One function, one argument, one int coming back at you. Clean, minimal, iconic.
π ARGUMENTS π
tx_ringβ the Tx descriptor ring, aka the main character here. This is the ring you're setting up resources for. It's not optional bestie, she's the whole point π¦
π DESCRIPTION π
So here's the tea β β this function returns 0 on success, and a negative value on failure. That's it, that's the contract. No cap.
lowkey important: that's a negative return on failure, not some positive error code. if you see a negative number come back, something went sideways, and that's your sign to go handle it fr fr π
π«Ά SEE ALSO π«Ά
okay this section is a lot and I mean that with love. Every single one of these lives in the kernel file ./drivers/net/ethernet/intel/e1000e/netdev.c, and every one of them has its own page. Buckle up π§
- register + dump + desc basics β
__ew32_prepare(9),e1000_regdump(9),e1000e_dump(9),e1000_desc_unused(9) - timestamp besties β
e1000e_systim_to_hwtstamp(9),e1000e_rx_hwtstamp(9) - rx path girlies β
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) - clean-up crew β
e1000e_tx_hwtstamp_work(9),e1000_clean_tx_irq(9),e1000_clean_rx_irq_ps(9),e1000_clean_jumbo_rx_irq(9),e1000_clean_rx_ring(9) - interrupt squad β
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) - hw control + memory allocation β
e1000e_get_hw_control(9),e1000e_release_hw_control(9),e1000_alloc_ring_dma(9),e1000e_setup_rx_resources(9),e1000_clean_tx_ring(9),e1000e_free_tx_resources(9),e1000e_free_rx_resources(9) - itr + queues + poll β
e1000_update_itr(9),e1000e_write_itr(9),e1000_alloc_queues(9),e1000e_poll(9) - vlan girlies β
e1000e_vlan_filter_disable(9),e1000e_vlan_filter_enable(9),e1000e_vlan_strip_disable(9),e1000e_vlan_strip_enable(9) - configure the tx/rx situation β
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) - timinca + hwtstamp config β
e1000e_get_base_timinca(9),e1000e_config_hwtstamp(9),e1000_configure(9) - phy powers β
e1000e_power_up_phy(9),e1000_power_down_phy(9) - flush it out β
e1000_flush_tx_ring(9),e1000_flush_rx_ring(9),e1000_flush_desc_rings(9) - reset + systim β
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) - init, tests, open/close, mac β
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) - phy tasks + stats + watchdog β
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) - aspm + netpoll + io error handling β
__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) - module life cycle β
e1000_probe(9),e1000_remove(9),e1000_init_module(9),e1000_exit_module(9)
and if you want the source of truth, it's the kernel file ./drivers/net/ethernet/intel/e1000e/netdev.c. go read it, she's long but she's worth it π
mmm okay that's the whole page!! this lil' beauty shipped as part of the kernel docs from ./drivers/net/ethernet/intel/e... and she's dated October 2026 β page name e1000e_setup_tx_resources(9), going out to all the descriptor girlies πβ¨π
bye bestie, allocate responsibly π«Ά
π¦ 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