libie_ctlq_xn_recv(9)
π libie_ctlq_xn_recv β process control queue receive message π
okay so this page lives in the Kernel API Manual, section 9, and it's all about libie_ctlq_xn_recv β¨ stay with me bestie, it's actually not that deep π«Ά
πΈ SYNOPSIS πΈ
u32 libie_ctlq_xn_recv (struct libie_ctlq_xn_recv_params *params );
like, that's the whole signature. one param. slay π
π¦ ARGUMENTS π¦
paramsβ your Xn receive param information, aka the little bundle of info it needs to handle a receive message. it's the main character of this function ngl π
π DESCRIPTION π
okay so what does it do. it processes a receive message and updates the receive queue buffer β¨ simple, iconic, no notes.
it also terminates async transactions that failed to receive a response within a given timeframe π so like, if something's been ghosting the queue too long? this function says "bestie, we're done here" and terminates it π
ngl, important: the function is intended to be called periodically from a single task. one task. that's the vibe check. don't be out here calling it from everywhere π
β RETURN β
the remaining budget. that's it, that's the return value π°β¨
π§ SEE ALSO π§
the kernel file it lives in, fr fr:
./drivers/net/ethernet/intel/libie/controlq.c
and the whole friend group π:
libie_ctlq_free_fq(9)libie_ctlq_init_fq(9)libie_ctlq_prep_rx_desc(9)libie_ctlq_post_rx_buffs(9)libie_ctlq_free_tx_msgs(9)libie_ctlq_alloc_tx_msgs(9)libie_cp_free_desc_mem(9)libie_ctlq_dealloc_ring_res(9)libie_cp_alloc_desc_mem(9)libie_ctlq_alloc_queue_res(9)libie_ctlq_init_regs(9)libie_find_ctlq(9)libie_ctlq_add(9)libie_ctlq_remove(9)libie_ctlq_init(9)libie_ctlq_deinit(9)libie_ctlq_tx_desc_from_msg(9)libie_ctlq_send_desc_avail(9)libie_ctlq_send(9)libie_ctlq_send_clean(9)libie_ctlq_fill_rx_msg(9)libie_ctlq_recv(9)libie_ctlq_xn_pop_free(9)__libie_ctlq_xn_push_free(9)libie_ctlq_xn_push_free(9)libie_ctlq_xn_deinit_dma(9)libie_ctlq_xn_init_dma(9)libie_ctlq_xn_process_recv(9)libie_xn_check_async_timeout(9)libie_cp_map_dma_mem(9)libie_cp_unmap_dma_mem(9)libie_ctlq_xn_process_send(9)libie_ctlq_xn_send(9)struct libie_ctlq_xn_rel_tx_ctx(9)libie_ctlq_xn_rel_tx_buf(9)libie_ctlq_xn_send_clean(9)libie_ctlq_xn_shutdown(9)libie_ctlq_xn_deinit(9)libie_ctlq_xn_init(9)
and that's the whole page bestie, hope it ate π β¨
π cute little sign-off: this one's from./drivers/net/ethernet/intel/l...and it's dated October 2026, and yes we're still calling itlibie_ctlq_xn_recv(9)around here π«ΆπΈ
π¦ 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