STRUCT DMA_INTERLEAVED_TEMPLATE(9)
π NAME π
okay so we're in the Kernel API Manual, and this is struct dma_interleaved_template β the Template to convey DMAC the transfer pattern and attributes. it's literally the little instruction card that tells the DMAC what the transfer is giving, bestie π
β¨
π¦ SYNOPSIS π¦
here's the struct in all its glory, no cap:
struct dma_interleaved_template {
dma_addr_t src_start;
dma_addr_t dst_start;
enum dma_transfer_direction dir;
bool src_inc;
bool dst_inc;
bool src_sgl;
bool dst_sgl;
size_t numf;
size_t frame_size;
struct data_chunk sgl[];
};
π Members π
every member matters, so let's do the full lineup π«Ά
src_startβ Bus address of source for the first chunk.dst_startβ Bus address of destination for the first chunk.dirβ Specifies the type of Source and Destination.src_incβ If the source address increments after reading from it.dst_incβ If the destination address increments after writing to it.src_sglβ If the'icg'ofsgl[]applies to Source (scattered read). Otherwise, source is read contiguously (icgignored). Ignored ifsrc_incis false. πdst_sglβ If the'icg'ofsgl[]applies to Destination (scattered write). Otherwise, destination is filled contiguously (icgignored). Ignored ifdst_incis false. πnumfβ Number of frames in this template.frame_sizeβ Number of chunks in a frame i.e, size ofsgl[].sglβ Array of{chunk,icg}pairs that make up a frame. π
π SEE ALSO π
Kernel file ./include/linux/dmaengine.h β that's the home base. and now the whole SEE ALSO squad, fr fr:
dma_cookie_t(9)enum dma_status(9)enum dma_transaction_type(9)enum dma_transfer_direction(9)struct data_chunk(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_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)
mwah π β this page is from the Kernel API Manual, the source/version spot says ./include/linux, the date is October 2026, and the page is signed struct dma_interleaved_template(9). byeeee π«Άβ¨
π¦ 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