summaryrefslogtreecommitdiff
path: root/arm9/lib/include/OS_interrupt.h
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/lib/include/OS_interrupt.h')
-rw-r--r--arm9/lib/include/OS_interrupt.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h
index 893e6d65..08417872 100644
--- a/arm9/lib/include/OS_interrupt.h
+++ b/arm9/lib/include/OS_interrupt.h
@@ -4,6 +4,11 @@
#include "consts.h"
#include "nitro/OS_interrupt_shared.h"
+#define REG_OS_IME_IME_SHIFT 0
+
+#define OS_IME_DISABLE (0UL << REG_OS_IME_IME_SHIFT)
+#define OS_IME_ENABLE (1UL << REG_OS_IME_IME_SHIFT)
+
#define OS_IE_V_COUNT (1UL << REG_OS_IE_VE_SHIFT)
#define OS_IE_TIMER0 (1UL << REG_OS_IE_T0_SHIFT)
#define OS_IE_TIMER1 (1UL << REG_OS_IE_T1_SHIFT)
@@ -22,4 +27,23 @@ OSIrqMask OS_DisableIrqMask(OSIrqMask mask);
OSIrqMask OS_ResetRequestIrqMask(OSIrqMask mask);
void OS_SetIrqStackChecker(void);
+static inline BOOL OS_DisableIrq(void)
+{
+ u16 prep = reg_OS_IME;
+ reg_OS_IME = OS_IME_DISABLE;
+ return (BOOL)prep;
+}
+
+static inline BOOL OS_EnableIrq(void)
+{
+ u16 prep = reg_OS_IME;
+ reg_OS_IME = OS_IME_ENABLE;
+ return (BOOL)prep;
+}
+
+static inline OSIrqMask OS_GetIrqMask(void)
+{
+ return reg_OS_IE;
+}
+
#endif //POKEDIAMOND_ARM9_OS_INTERRUPT_H