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)
|}
|}