libie_cp_map_dma_mem(9)
π libie_cp_map_dma_mem(9) π
okay bestie, welcome to the Kernel API Manual β yes that's the manual name, we're fancy here π β and today's main character is libie_cp_map_dma_mem, a little function that takes one (1) virtual address and maps it for DMA. That's it, that's the whole vibe. Lowkey iconic. β¨
πΈ NAME πΈ
libie_cp_map_dma_mem β map a given virtual address for DMA
Like, it literally does what it says on the tin, no cap. You hand it a virtual address, it does the DMA-mapping thing. Slay.
π¦ SYNOPSIS π¦
bool libie_cp_map_dma_mem (struct device *dev , void *va , size_t size ,
int direction , struct libie_cp_dma_mem *dma_mem );
She returns a bool, she takes five arguments, she's booked and busy. π
π ARGUMENTS π
devβ device information. The whole "who am I doing this for" of it all.vaβ virtual address to be mapped. This is THE address, the one that gets the glow-up.sizeβ size of the memory. Gotta know how much we're working with, obviously.directionβ DMA direction, either from/to device. Pick a lane, bestie π«Άdma_memβ memory for DMA information to be stored. This is where the DMA info goes to live afterwards β it's giving "I made you a little home" energy π
β RETURN β
true on success, false on DMA map failure. So basically a vibe check in boolean form β if it comes back false, the DMA map did NOT eat, and you should be like "π okay noted."
Heads up bestie: false means DMA map failure specifically, so don't go assuming it's something else. Fr fr.
π SEE ALSO π
First up, the kernel file itself is literally right there:
Kernel file ./drivers/net/ethernet/intel/libie/controlq.c
And now the full squad, in order, no one left behind π:
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_ctlq_xn_recv(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)
Note the double-underscore one, __libie_ctlq_xn_push_free(9) β she's special, don't @ me. And yes, that one entry is literally struct libie_ctlq_xn_rel_tx_ctx(9), struct and all. Keep it exactly like that, iykyk. π
okay that's the whole page, you ate that π
Sign-off time, bestie: this page lives at source path ./drivers/net/ethernet/intel/l... (it's truncated in the footer, that's just how she is π) and it's dated October 2026. 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