Comment dma3 methods and create DMA3_*BIT macros

This commit is contained in:
PikalaxALT
2020-04-10 15:57:08 -04:00
parent b22d3a821d
commit a205881ce2
18 changed files with 87 additions and 68 deletions
+25 -1
View File
@@ -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