set_rx_sw_desc(9)
π set_rx_sw_desc(9) β a Kernel API Manual moment β¨
okay so bestie, welcome to the Kernel API Manual, page set_rx_sw_desc(9). yes she's a real one. pull up a chair, grab a strawberry π, and let's get into it.
πΈ NAME πΈ
set_rx_sw_desc β initializes a software RX buffer descriptor, and honestly? that's her whole job. iconic behavior, no notes. π
β¨ SYNOPSIS β¨
void set_rx_sw_desc (struct rx_sw_desc *sdesc , struct page *page ,
dma_addr_t dma_addr );
that's it. that's the whole call. it returns void, so likeβ¦ she gives you nothing back and expects you to be grateful. and you will be. π«Ά
π ARGUMENTS π
sdescβ pointer to the softwore RX buffer descriptor. (yes, "softwore," that's how it's spelled in the original and we do not gatekeep typos in this house π) this is the lil struct you're filling in, bestie, so treat it nice.pageβ pointer to thepagedata structure backing the RX buffer. this is the actual memory page doing the heavy lifting, main character energy fr fr.dma_addrβ the PCI DMA address, possibly with low-bit flags. π so like, it's not just an address, there might be flags tucked into the low bits. don't get caught lacking when you read it back.
π¦ SEE ALSO π¦
first up, the source file herself, in all her glory:
Kernel file ./drivers/net/ethernet/chelsio/cxgb4vf/sge.c
and then the whole entire friend group β like literally the full group chat, everybody showed up:
get_buf_addr(9)is_buf_mapped(9)need_skb_unmap(9)txq_avail(9)fl_cap(9)fl_starving(9)map_skb(9)free_tx_desc(9)reclaim_completed_tx(9)get_buf_size(9)free_rx_bufs(9)unmap_rx_buf(9)ring_fl_db(9)refill_fl(9)alloc_ring(9)sgl_len(9)flits_to_desc(9)is_eth_imm(9)calc_tx_flits(9)write_sgl(9)ring_tx_db(9)inline_tx_skb(9)t4vf_eth_xmit(9)copy_frags(9)t4vf_pktgl_to_skb(9)t4vf_pktgl_free(9)do_gro(9)t4vf_ethrx_handler(9)is_new_response(9)restore_rx_bufs(9)rspq_next(9)process_responses(9)napi_rx_handler(9)t4vf_intr_handler(9)sge_rx_timer_cb(9)sge_tx_timer_cb(9)bar2_address(9)t4vf_sge_alloc_rxq(9)t4vf_sge_alloc_eth_txq(9)t4vf_free_sge_resources(9)t4vf_sge_start(9)t4vf_sge_stop(9)t4vf_sge_init(9)
like, that's the whole roster. go read them if you want the full lore, iykyk ππ₯
real talk though: this page is short and sweet, so no scary warnings, no deprecated drama, no undefined behavior jumpscares. just a tidy lil initializer. π§
and that's the tea, bestie π΅ this page came from ./drivers/net/ethernet/chelsio... and it's dated October 2026, under the header set_rx_sw_desc(9) β so if you're citing her, cite her correctly. 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