|
KallistiOS git master
Independent SDK for the Sega Dreamcast
|
SH4 DMA Controller API. More...
#include <sys/cdefs.h>#include <stdint.h>#include <stdbool.h>Go to the source code of this file.
Data Structures | |
| struct | dma_config_t |
| DMA transfer configuration. More... | |
Typedefs | |
| typedef void(* | dma_callback_t) (void *data) |
| DMA callback type. | |
| typedef uint32_t | dma_addr_t |
| DMA address. | |
Enumerations | |
| enum | dma_channel_t { DMA_CHANNEL_0 , DMA_CHANNEL_1 , DMA_CHANNEL_2 , DMA_CHANNEL_3 } |
| DMA channel enum. More... | |
| enum | dma_request_t { DMA_REQUEST_EXTERNAL_MEM_TO_MEM = 0 , DMA_REQUEST_EXTERNAL_MEM_TO_DEV = 2 , DMA_REQUEST_EXTERNAL_DEV_TO_MEM = 3 , DMA_REQUEST_AUTO_MEM_TO_MEM = 4 , DMA_REQUEST_AUTO_MEM_TO_DEV = 5 , DMA_REQUEST_AUTO_DEV_TO_MEM = 6 , DMA_REQUEST_SCI_TRANSMIT = 8 , DMA_REQUEST_SCI_RECEIVE = 9 , DMA_REQUEST_SCIF_TRANSMIT = 10 , DMA_REQUEST_SCIF_RECEIVE = 11 , DMA_REQUEST_TMU2_MEM_TO_MEM = 12 , DMA_REQUEST_TMU2_MEM_TO_DEV = 13 , DMA_REQUEST_TMU2_DEV_TO_MEM = 14 } |
| DMA request. More... | |
| enum | dma_unitsize_t { DMA_UNITSIZE_64BIT , DMA_UNITSIZE_8BIT , DMA_UNITSIZE_16BIT , DMA_UNITSIZE_32BIT , DMA_UNITSIZE_32BYTE } |
| DMA unit size. More... | |
| enum | dma_addrmode_t { DMA_ADDRMODE_FIXED , DMA_ADDRMODE_INCREMENT , DMA_ADDRMODE_DECREMENT } |
| DMA address mode. More... | |
| enum | dma_transmitmode_t { DMA_TRANSMITMODE_CYCLE_STEAL , DMA_TRANSMITMODE_BURST } |
| DMA transmit mode. More... | |
Functions | |
| dma_addr_t | hw_to_dma_addr (uintptr_t hw_addr) |
| Convert a hardware address to a DMA address. | |
| dma_addr_t | dma_map_src (const void *ptr, size_t len) |
| Prepare a source memory buffer for a DMA transfer. | |
| dma_addr_t | dma_map_dst (void *ptr, size_t len) |
| Prepare a destination memory buffer for a DMA transfer. | |
| 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. | |
| void | dma_wait_complete (dma_channel_t channel) |
| Wait for a DMA transfer to complete. | |
| bool | dma_is_running (dma_channel_t channel) |
| Check if a DMA transfer is running. | |
| size_t | dma_transfer_get_remaining (dma_channel_t channel) |
| Get the remaining size of a DMA transfer. | |
| void | dma_transfer_abort (dma_channel_t channel) |
| Abort a DMA transfer. | |
SH4 DMA Controller API.
This header provies an API to use the DMA controller of the SH4.