49typedef enum dma_channel {
68typedef enum dma_request {
94typedef enum dma_unitsize {
109typedef enum dma_addrmode {
125typedef enum dma_transmitmode {
135typedef struct dma_config {
218 size_t len,
void *cb_data);
dma_channel_t
DMA channel enum.
Definition dmac.h:49
int dma_transfer(const dma_config_t *cfg, dma_addr_t dst, dma_addr_t src, size_t len, void *cb_data)
Program a DMA transfer.
size_t dma_transfer_get_remaining(dma_channel_t channel)
Get the remaining size of a DMA transfer.
dma_addr_t hw_to_dma_addr(uintptr_t hw_addr)
Convert a hardware address to a DMA address.
dma_request_t
DMA request.
Definition dmac.h:68
uint32_t dma_addr_t
DMA address.
Definition dmac.h:150
void dma_wait_complete(dma_channel_t channel)
Wait for a DMA transfer to complete.
dma_addrmode_t
DMA address mode.
Definition dmac.h:109
dma_unitsize_t
DMA unit size.
Definition dmac.h:94
dma_addr_t dma_map_dst(void *ptr, size_t len)
Prepare a destination memory buffer for a DMA transfer.
dma_addr_t dma_map_src(const void *ptr, size_t len)
Prepare a source memory buffer for a DMA transfer.
void(* dma_callback_t)(void *data)
DMA callback type.
Definition dmac.h:42
dma_transmitmode_t
DMA transmit mode.
Definition dmac.h:125
@ DMA_CHANNEL_0
Channel #0: On Dreamcast, reserved for hardware.
Definition dmac.h:50
@ DMA_CHANNEL_1
Channel #1: External, hardware or mem-to-mem requests.
Definition dmac.h:51
@ DMA_CHANNEL_3
Channel #3: mem-to-mem requests only.
Definition dmac.h:53
@ DMA_CHANNEL_2
Channel #2: on Dreamcast, reserved for PVR use.
Definition dmac.h:52
@ DMA_REQUEST_AUTO_MEM_TO_MEM
Definition dmac.h:72
@ DMA_REQUEST_AUTO_DEV_TO_MEM
Definition dmac.h:74
@ DMA_REQUEST_SCI_RECEIVE
Definition dmac.h:77
@ DMA_REQUEST_AUTO_MEM_TO_DEV
Definition dmac.h:73
@ DMA_REQUEST_EXTERNAL_MEM_TO_MEM
Definition dmac.h:69
@ DMA_REQUEST_TMU2_MEM_TO_DEV
Definition dmac.h:81
@ DMA_REQUEST_TMU2_MEM_TO_MEM
Definition dmac.h:80
@ DMA_REQUEST_EXTERNAL_MEM_TO_DEV
Definition dmac.h:70
@ DMA_REQUEST_SCI_TRANSMIT
Definition dmac.h:76
@ DMA_REQUEST_TMU2_DEV_TO_MEM
Definition dmac.h:82
@ DMA_REQUEST_SCIF_RECEIVE
Definition dmac.h:79
@ DMA_REQUEST_SCIF_TRANSMIT
Definition dmac.h:78
@ DMA_REQUEST_EXTERNAL_DEV_TO_MEM
Definition dmac.h:71
@ DMA_ADDRMODE_DECREMENT
The source/destination address is decremented.
Definition dmac.h:112
@ DMA_ADDRMODE_INCREMENT
The source/destination address is incremented.
Definition dmac.h:111
@ DMA_ADDRMODE_FIXED
The source/destination address is not modified.
Definition dmac.h:110
@ DMA_UNITSIZE_32BYTE
Definition dmac.h:99
@ DMA_UNITSIZE_16BIT
Definition dmac.h:97
@ DMA_UNITSIZE_8BIT
Definition dmac.h:96
@ DMA_UNITSIZE_32BIT
Definition dmac.h:98
@ DMA_UNITSIZE_64BIT
Definition dmac.h:95
@ DMA_TRANSMITMODE_BURST
Definition dmac.h:127
@ DMA_TRANSMITMODE_CYCLE_STEAL
Definition dmac.h:126
DMA transfer configuration.
Definition dmac.h:135
dma_addrmode_t dst_mode
Source/destination address mode.
Definition dmac.h:139
dma_channel_t channel
DMA channel used for the transfer.
Definition dmac.h:136
dma_request_t request
DMA request type.
Definition dmac.h:137
dma_transmitmode_t transmit_mode
DMA Transfer transmit mode.
Definition dmac.h:140
dma_callback_t callback
Optional callback function for end-of-transfer notification.
Definition dmac.h:141
dma_unitsize_t unit_size
Unit size used for the DMA transfer.
Definition dmac.h:138