STRUCT DMA_ROUTER(9)
π¦ struct dma_router π¦
okay bestie, welcome to the Kernel API Manual β this one's a short lil baddie but she's important, trust. it's all about struct dma_router, and ngl she's giving "small but powerful" main character energy π
β¨ NAME β¨
struct dma_router β the DMA router structure π
like, that's literally her whole job description. iconic of her tbh.
πΈ SYNOPSIS πΈ
here's the whole vibe, bestie β look at her, so compact, so cute:
struct dma_router {
struct device *dev;
void (*route_free)(struct device *dev, void *route_data);
};
that's it. two members. she said "I don't need a thousand fields, I need two good ones." periodt π
π Members π
okay so let's go through her members one by one, because there's only two and honestly we love an efficient queen π
devβ a pointer to the DMA router device. this is literally thestruct device *that says "hi, this is the device we're talking about." no device, no router, y'know? π«Άroute_freeβ a function that gets called when the route can be disconnected. look at her signature fr fr:void (*route_free)(struct device *dev, void *route_data);β she takes thestruct device *devand avoid *route_data, and she's the one you call when it's time to tear that route down. clean up after yourself, bestie β¨
π₯ SEE ALSO π₯
bestie, buckle up, because this list is long β she's got a whole friend group and they all live in the kernel file ./include/linux/dmaengine.h π
dma_cookie_t(9)enum dma_status(9)enum dma_transaction_type(9)enum dma_transfer_direction(9)struct data_chunk(9)struct dma_interleaved_template(9)struct dma_vec(9)enum dma_ctrl_flags(9)enum sum_check_bits(9)enum sum_check_flags(9)enum dma_desc_metadata_mode(9)struct dma_chan_percpu(9)struct dma_chan(9)struct dma_chan_dev(9)enum dma_slave_buswidth(9)struct dma_slave_config(9)enum dma_residue_granularity(9)struct dma_slave_caps(9)dma_filter_fn(9)struct dma_async_tx_descriptor(9)struct dma_tx_state(9)enum dmaengine_alignment(9)struct dma_slave_map(9)struct dma_filter(9)struct dma_device(9)dmaengine_prep_peripheral_dma_vec(9)dmaengine_prep_config_sg_safe(9)dmaengine_prep_config_single_safe(9)dmaengine_prep_dma_memset(9)dmaengine_terminate_all(9)dmaengine_terminate_async(9)dmaengine_synchronize(9)dmaengine_terminate_sync(9)dma_async_issue_pending(9)dma_async_is_tx_complete(9)dma_async_is_complete(9)
like, thirty-six entries. thirty-six!! she knows everyone at the party ππ
lowkey a reminder bestie: this page is a struct reference, so the members above are the whole technical story β no hidden behavior, no extra defaults, nothing sneaky. what you see is what you get π§
and that's the whole page, bestie! this one came from the kernel source dir ./include/linux, dated October 2026, and it's filed as struct dma_router(9) in the Kernel API Manual π go forth and route some DMA, you absolute icon π¦β¨
π¦ 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