dmaengine_p..._single_safe(9)
π dmaengine_p..._single_safe(9) π
okay so bestie, welcome to the Kernel API Manual β yes that's the manual name, we're fancy here β and today's main character is a little function called dmaengine_prep_config_single_safe, and the way that name is SO long, it's giving "I have a lot of responsibilities" energy. slay. β¨
β¨ NAME β¨
dmaengine_prep_config_single_safe β prepare a single-buffer DMA transfer with atomic slave configuration update π
like, it sets up ONE buffer's worth of DMA transfer, and it updates the slave config atomically while doing it. no cap, that's the whole vibe.
πΈ SYNOPSIS πΈ
struct dma_async_tx_descriptor * dmaengine_prep_config_single_safe
(struct dma_chan *chan , dma_addr_t buf , size_t len , enum
dma_transfer_direction dir , unsigned long flags , struct
dma_slave_config *config );
six arguments, one descriptor back. she's thorough. π
π¦ ARGUMENTS π¦
chanβ the DMA channel π like, which channel are we doing this onbufβ the DMA buffer address π where the data liveslenβ length of the transfer in bytes π yes, in BYTES, don't get cute with itdirβ DMA transfer direction π§ which way the data's goingflagsβ transfer preparation flags π© the little knobs for prep timeconfigβ DMA slave configuration for this transfer βοΈ the slave config that gets applied atomically, that's the whole point bestie
π DESCRIPTION π
ngl, this section is short and it knows it. for the details, the manual literally just points you at dmaengine_prep_config_sg_safe. so likeβ¦ go read that one, she has the full story. π«Ά
fr fr though, "detail see dmaengine_prep_config_sg_safe" is the entire description, so don't come for me, I'm just the messenger π
π SEE ALSO π
the kernel file ./include/linux/dmaengine.h is where the magic lives, and then there's this absolute ICONIC list of friends β buckle up, we're going through all of them β¨:
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_router(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_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)
the way that list just KEEPS GOING π but every single one of them ate, periodt. π
and that's the page!! source is ./include/linux, dated October 2026, so mark your calendars bestie β this manual page is from the future and she's thriving. π stay hydrated, read dmaengine_prep_config_sg_safe for the real tea, and ily, bye!! πππ¦πΈβ
π¦ 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