STRUCT XILINX_DPDMA_SW_DESC(9)
π struct xilinx_dpdma_sw_desc(9) π
okay so welcome to the Kernel API Manual, bestie β this page is literally all about struct xilinx_dpdma_sw_desc, the DPDMA software descriptor. it's giving "small struct, big main character energy" and we're gonna go through it together, no cap π«Ά
β¨ NAME β¨
struct xilinx_dpdma_sw_desc β the DPDMA software descriptor. that's it, that's the vibe check πΈ
π¦ SYNOPSIS π¦
struct xilinx_dpdma_sw_desc {
struct xilinx_dpdma_hw_desc hw;
struct list_head node;
dma_addr_t dma_addr;
};
three whole members, all iconic in their own way, we love a compact struct π
π Members π
hwβ the DPDMA hardware descriptor. yes the hardware one. it's living inside the software one, we love a crossover episode π₯nodeβ the list node for software descriptors. it's how the descriptor links up with its little friends, literally a group chat in struct form πdma_addrβ the DMA address of the software descriptor. where it actually lives, address-wise, periodt π
π SEE ALSO π
first up, the kernel file where all of this actually lives: ./drivers/dma/xilinx/xilinx_dpdma.c β go read it, iykwim π
and now the full friend group, in the exact order the manual gives them (do not come for me, i'm just the messenger π):
struct xilinx_dpdma_hw_desc(9)struct xilinx_dpdma_tx_desc(9)struct xilinx_dpdma_chan(9)struct xilinx_dpdma_device(9)xilinx_dpdma_sw_desc_set_dma_addrs(9)xilinx_dpdma_chan_alloc_sw_desc(9)xilinx_dpdma_chan_free_sw_desc(9)xilinx_dpdma_chan_dump_tx_desc(9)xilinx_dpdma_chan_alloc_tx_desc(9)xilinx_dpdma_chan_free_tx_desc(9)xilinx_dpdma_chan_prep_cyclic(9)xilinx_dpdma_chan_prep_interleaved_dma(9)xilinx_dpdma_chan_enable(9)xilinx_dpdma_chan_disable(9)xilinx_dpdma_chan_pause(9)xilinx_dpdma_chan_unpause(9)xilinx_dpdma_chan_queue_transfer(9)xilinx_dpdma_chan_ostand(9)xilinx_dpdma_chan_notify_no_ostand(9)xilinx_dpdma_chan_wait_no_ostand(9)xilinx_dpdma_chan_poll_no_ostand(9)xilinx_dpdma_chan_stop(9)xilinx_dpdma_chan_done_irq(9)xilinx_dpdma_chan_vsync_irq(9)xilinx_dpdma_chan_err(9)xilinx_dpdma_chan_handle_err(9)xilinx_dpdma_alloc_chan_resources(9)xilinx_dpdma_free_chan_resources(9)xilinx_dpdma_terminate_all(9)xilinx_dpdma_synchronize(9)xilinx_dpdma_err(9)xilinx_dpdma_handle_err_irq(9)xilinx_dpdma_enable_irq(9)xilinx_dpdma_disable_irq(9)xilinx_dpdma_chan_err_task(9)
like, that is a lot of functions but every single one of them is doing its little job and honestly? obsessed π§
ngl bestie, just read the source file too β the manual can only hold so much and ./drivers/dma/xilinx/xilinx_dpdma.c is the whole story π
and that's the page!! source/version is ./drivers/dma/xilinx and it's dated October 2026, and the whole thing still signs off as struct xilinx_dpdma_sw_desc(9) β stay slay, stay DMA-safe, and go read those cross-references ππβ¨
π¦ 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