dmae.rpl is the system library that provides DMA (Direct Memory Access) functions.
Functions
All uint64_t values returned from functions are timestamps that can be used with DMAEWaitDone.
Timing
Name
|
Prototype
|
Description
|
DMAEWaitDone
|
bool DMAEWaitDone(uint64_t ts);
|
Return true if all goes normally, return false if a time-out occurred. Usage: DMAEWaitDone(DMAECopyMem(mem_ptr, 0, 0x100, DMAE_ENDIAN_8IN32));
|
Semaphore
Name
|
Prototype
|
Description
|
DMAEInitSemaphore
|
uint64_t DMAEInitSemaphore(uint64_t *semaphoreAddr, uint64_t semaphoreCount)
|
Initialize a Semaphore to synchronize DMA Engine to the GPU (GPU7)
|
DMAESemaphore
|
uint64_t DMAESemaphore(u64 *semaphoreAddr, DMAESemaphoreAction semaphoreAction)
|
Create a Semaphore at the specified address
|
Memory
Name
|
Prototype
|
Description
|
DMAECopyMem
|
uint64_t DMAECopyMem(void *dst, const void *src, uint32_t size, DMAEEndian endian)
|
Copy src to dst (high-level memcpy)
|
DMAECopyMemWait
|
bool DMAECopyMemWait(void *dst, const void *src, uint32_t size, DMAEEndian endian)
|
Returns true when all goes normally, return false if a time-out occurred
|
DMAEFillMem
|
uint64_t DMAEFillMem(void *dst, uint32_t fillData, uint32_t size)
|
Fill a virtual memory range with "fillData" (also has DMAEFillMemWait version)
|
DMAEFillMemPhys
|
uint64_t DMAEFillMemPhys(uint32_t dst_pa, uint32_t fillData, uint32_t size)
|
Fill a physical memory range with "fillData" (also has DMAEFillMemPhysWait version)
|
Enumeration
Semaphore
Name
|
Prototype
|
DMAESemaphoreAction
|
typedef enum _DMAESemaphoreAction {
DMAE_SEMAPHORE_WAIT = 0x00000000, ///< Wait before processing next command
DMAE_SEMAPHORE_SIGNAL = 0x00000001, ///< Signal after all previous work is done
} DMAESemaphoreAction;
|
Endian
Name
|
Prototype
|
DMAEEndian
|
typedef enum DMAEEndian {
DMAE_ENDIAN_NONE = 0x00000000, ///< do-nothing
DMAE_ENDIAN_8IN16 = 0x00000001, ///< 8IN16 swapping mode. Endian swap in 16-bit int buffer.
DMAE_ENDIAN_8IN32 = 0x00000002, ///< 8IN32 swapping mode. Endian swap in 32-bit int buffer.
DMAE_ENDIAN_8IN64 = 0x00000003, ///< 8IN64 swapping mode. Endian swap in 64-bit int buffer. /// Directly from the SDK
} DMAEEndian;
|