summaryrefslogtreecommitdiff
path: root/include/gba/macro.h
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-10-14 10:41:27 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-10-14 10:46:04 -0400
commitb8fec3d9f617ec9a764bb56804c526ff7449631f (patch)
tree2e84d0bf6107a15ebcb94a23c3158e2bc6382f6f /include/gba/macro.h
parent9fe74ac590f75a0571de8ebcd499fdf892419328 (diff)
parent8efae5c807bf6b27f5c90bfb0c5887dbde24f10d (diff)
Merge branch 'master' into trade
Diffstat (limited to 'include/gba/macro.h')
-rw-r--r--include/gba/macro.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/include/gba/macro.h b/include/gba/macro.h
index c0a4e481b..01bb85b7a 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -121,10 +121,31 @@
} \
}
+#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \
+{ \
+ void *_dest = (void *)dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, (block)); \
+ _dest += (block); \
+ _size -= (block); \
+ if (_size <= (block)) \
+ { \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+ break; \
+ } \
+ } \
+}
+
#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16)
#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32)
+#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16)
+
+#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32)
+
#define DmaClearLarge16(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 16)
#define DmaClearLarge32(dmaNum, dest, size, block) DmaClearLarge(dmaNum, dest, size, block, 32)
@@ -139,4 +160,14 @@
#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16)
#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32)
+#define DmaFillDefvars(dmaNum, value, dest, size, bit) \
+{ \
+ void *_dest = (void *)dest; \
+ u32 _size = size; \
+ DmaFill##bit(dmaNum, value, _dest, _size); \
+}
+
+#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16)
+#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32)
+
#endif // GUARD_GBA_MACRO_H