ENUM DMA_TRANSFER_DIRECTION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum dma_transfer_direction(9) β€” Kernel API Manual, bestie edition ✨

okay so we're in the Kernel API Manual today and the main character is enum dma_transfer_direction πŸŽ€ β€” literally the vibe-check for which way your DMA data is gonna flow. no cap.


🌸 NAME 🌸

enum dma_transfer_direction β€” the dma transfer mode and direction indicator, aka "which way is the data going, bestie??" πŸ¦‹


✨ SYNOPSIS ✨

enum dma_transfer_direction {
    DMA_MEM_TO_MEM ,
    DMA_MEM_TO_DEV ,
    DMA_DEV_TO_MEM ,
    DMA_DEV_TO_DEV ,
    DMA_TRANS_NONE

};

like, there it is, the whole squad, one little enum πŸ‘‘


πŸ’– Constants πŸ’–

here's the rundown of every member, no skips:

  • DMA_MEM_TO_MEM β€” Async/Memcpy mode, the classic copy-paste energy πŸ’…
  • DMA_MEM_TO_DEV β€” Slave mode & From Memory to Device 🌈
  • DMA_DEV_TO_MEM β€” Slave mode & From Device to Memory πŸ¦‹
  • DMA_DEV_TO_DEV β€” Slave mode & From Device to Device πŸ”₯
  • DMA_TRANS_NONE β€” -- undescribed -- 🫀 yeah that's literally all the manpage says about it, not me being lazy, i promise 😭

πŸ‘€ SEE ALSO πŸ‘€

the whole extended friend group is listed here, and honestly it's giving group chat with 36 members 🧚 β€” go check out the Kernel file ./include/linux/dmaengine.h first, then:

dma_cookie_t(9), enum dma_status(9), enum dma_transaction_type(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_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)


bestie fr fr read these before you go poking at a dma_chan, iykyk 🫢

okay that's the whole page, mwah πŸ’‹

sign-off time: this little masterpiece lives in ./include/linux, it's the October 2026 version, and yes the page header said enum dma_transfer_direction(9) all three times because it's an icon and it knows it πŸ‘‘ periodt.

πŸ“¦ where this page comes from