STRUCT DMA_INTERLEAVED_TEMPLATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ 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' of sgl[] applies to Source (scattered read). Otherwise, source is read contiguously (icg ignored). Ignored if src_inc is false. πŸ‘€
  • dst_sgl β€” If the 'icg' of sgl[] applies to Destination (scattered write). Otherwise, destination is filled contiguously (icg ignored). Ignored if dst_inc is false. πŸ‘€
  • numf β€” Number of frames in this template.
  • frame_size β€” Number of chunks in a frame i.e, size of sgl[].
  • 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:


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