Line 1: |
Line 1: |
− | dmae.rpl is the system librairy that provides direct access to the memory. (DMA = Direct Memory Access) | + | dmae.rpl is the system library that provides DMA (Direct Memory Access) functions. |
− | | |
| | | |
| ==Functions== | | ==Functions== |
| | | |
− | Every non-bool functions returns a uint64_t timestamp that can be used with DMAEWaitDone | + | Every non-bool function returns a uint64_t timestamp that can be used with DMAEWaitDone |
| | | |
| ===Wait=== | | ===Wait=== |
Line 14: |
Line 13: |
| |DMAEWaitDone | | |DMAEWaitDone |
| |<code>bool DMAEWaitDone(uint64_t ts);</code> | | |<code>bool DMAEWaitDone(uint64_t ts);</code> |
− | |Return true if all goes normally, return false if a time-out occured E.g of usage: DMAEWaitDone(DMAECopyMem(mem_ptr, 0, 0x100, DMAE_ENDIAN_8IN32)); | + | |Return true if all goes normally, return false if a time-out occurred. Usage: DMAEWaitDone(DMAECopyMem(mem_ptr, 0, 0x100, DMAE_ENDIAN_8IN32)); |
| |} | | |} |
| ===Semaphore=== | | ===Semaphore=== |
Line 38: |
Line 37: |
| |DMAECopyMem | | |DMAECopyMem |
| |<code>void DMAECopyMem(void *dst, const void *src, uint32_t size, DMAEEndian endian)</code> | | |<code>void DMAECopyMem(void *dst, const void *src, uint32_t size, DMAEEndian endian)</code> |
− | |Copy src to dest (kinda high-level memcpy) | + | |Copy src to dst (high-level memcpy) |
| |- | | |- |
| |DMAECopyMemWait | | |DMAECopyMemWait |
| |<code>bool DMAECopyMemWait(void *dst, const void *src, uint32_t size, DMAEEndian endian)</code> | | |<code>bool DMAECopyMemWait(void *dst, const void *src, uint32_t size, DMAEEndian endian)</code> |
− | |Returns true when all goes normally, return false if a time-out occured | + | |Returns true when all goes normally, return false if a time-out occurred |
| |- | | |- |
| |DMAEFillMem | | |DMAEFillMem |
| |<code>void DMAEFillMem(void *dst, uint32_t fillData, uint32_t size)</code> | | |<code>void DMAEFillMem(void *dst, uint32_t fillData, uint32_t size)</code> |
− | |Fill a virtual memory range with "fillData" (exist in DMAEFillMemWait version) | + | |Fill a virtual memory range with "fillData" (also has DMAEFillMemWait version) |
| |- | | |- |
| |DMAEFillMemPhys | | |DMAEFillMemPhys |
| |<code>void DMAEFillMemPhys(uint32_t dst_pa, uint32_t fillData, uint32_t size</code> | | |<code>void DMAEFillMemPhys(uint32_t dst_pa, uint32_t fillData, uint32_t size</code> |
− | |Fill a physical memory range with "fillData" (exist in DMAEFillMemPhysWait version) | + | |Fill a physical memory range with "fillData" (also has DMAEFillMemPhysWait version) |
| |} | | |} |
| | | |