diff options
Diffstat (limited to 'arm9/lib/include/OS_interrupt.h')
-rw-r--r-- | arm9/lib/include/OS_interrupt.h | 24 |
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 |