libie_ctlq_xn_pop_free(9)
π
libie_ctlq_xn_pop_free β the kernel API manual, bestie edition β¨
okay so this is libie_ctlq_xn_pop_free(9), straight out of the Kernel API Manual, and it's lowkey one of the most useful little functions in the whole libie controlq saga. no cap. it's giving "grab a free thing off the free list" and honestly? iconic. π
β¨ NAME β¨
libie_ctlq_xn_pop_free β get a free Xn entry from the free list π«Ά
π¦ SYNOPSIS π¦
struct libie_ctlq_xn * libie_ctlq_xn_pop_free (struct
libie_ctlq_xn_manager *xnm );
like yes, that's the whole signature. she's short, she's sweet, she pops Xn entries. periodt. π
πΈ ARGUMENTS πΈ
xnmβ the Xn transaction manager π« (this is the one you're handing over so she knows which free list to raid)
π§ DESCRIPTION π§
Retrieve a free Xn entry from the free list.
that's it, that's the vibe. you call her, she reaches into the free list, she hands you an Xn entry. main character energy on both sides of the call ngl π
β RETURN β
a valid Xn entry pointer β or NULL if there are literally no free Xn entries left π (so like, check for NULL, bestie, fr fr. don't be out here dereferencing nothing π)
π SEE ALSO π
the kernel file herself lives at ./drivers/net/ethernet/intel/libie/controlq.c π β go read the source, iykyk.
and here's the whole friend group, in the order the page lists them π«Ά:
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_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_ctlq_xn_recv(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)
π cute little sign-off: this page comes from the source file at./drivers/net/ethernet/intel/l...and it's dated October 2026, all wrapped up under thelibie_ctlq_xn_pop_free(9)name. slay. go pop some free Xn entries responsibly, bestie π π₯
π¦ 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