diff options
Diffstat (limited to 'include/dma3.h')
-rw-r--r-- | include/dma3.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/include/dma3.h b/include/dma3.h index 381e1e322..266fa0716 100644 --- a/include/dma3.h +++ b/include/dma3.h @@ -6,6 +6,14 @@ // Maximum amount of data we will transfer in one operation #define MAX_DMA_BLOCK_SIZE 0x1000 +#define DMA_REQUEST_COPY32 1 +#define DMA_REQUEST_FILL32 2 +#define DMA_REQUEST_COPY16 3 +#define DMA_REQUEST_FILL16 4 + +#define DMA3_16BIT 0 +#define DMA3_32BIT 1 + #define Dma3CopyLarge_(src, dest, size, bit) \ { \ const void *_src = src; \ @@ -48,10 +56,26 @@ #define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16) #define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32) +// Cancel pending DMA3 requests void ClearDma3Requests(void); + +// Handle pending DMA3 requests void ProcessDma3Requests(void); + +// Copy size bytes from src to dest. +// mode takes a DMA3_*BIT macro +// Returns the request index s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode); + +// Fill size bytes at dest with value. +// mode takes a DMA3_*BIT macro +// Returns the request index s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode); -s16 CheckForSpaceForDma3Request(s16 index); + +// index is the return value from RequestDma3* +// if index = -1, will check if any request is pending +// otherwise, checks if the specified request is pending +// Returns -1 if pending, 0 otherwise +s16 WaitDma3Request(s16 index); #endif // GUARD_DMA3_H |