KallistiOS git master
Independent SDK for the Sega Dreamcast
Loading...
Searching...
No Matches
dmac.h File Reference

SH4 DMA Controller API. More...

#include <sys/cdefs.h>
#include <stdint.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.
 
size_t dma_transfer_get_remaining (dma_channel_t channel)
 Get the remaining size of a DMA transfer.
 

Detailed Description

SH4 DMA Controller API.

This header provies an API to use the DMA controller of the SH4.

Author
Paul Cercueil