summaryrefslogtreecommitdiff
path: root/include/gba/macro.h
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2018-02-05 17:38:23 -0600
committercamthesaxman <cameronghall@cox.net>2018-02-05 17:38:23 -0600
commit607cba8c2e5253874f378cd6280fd066b0c9fa3d (patch)
tree8894b0b686adc29286d078500932306fabbc2973 /include/gba/macro.h
parent663ecd00145da49fda7d2509d629d737ea633cd8 (diff)
parenteb6aed50e56f36ce416f7ecc8edfacea1da61bf1 (diff)
Merge branch 'master' into battle_refactor
Diffstat (limited to 'include/gba/macro.h')
-rw-r--r--include/gba/macro.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/gba/macro.h b/include/gba/macro.h
index ad4820bcf..3b35a1946 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -122,6 +122,27 @@
#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
+#define DmaClearLarge(dmaNum, dest, size, block, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, 0, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
+#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
+
+#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
+
#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \
{ \
const void *_src = src; \