diff options
Diffstat (limited to 'core/cortex-m/task.c')
-rw-r--r-- | core/cortex-m/task.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/core/cortex-m/task.c b/core/cortex-m/task.c index b88baf4511..e64063dc15 100644 --- a/core/cortex-m/task.c +++ b/core/cortex-m/task.c @@ -227,6 +227,16 @@ void interrupt_enable(void) asm("cpsie i"); } +inline int is_interrupt_enabled(void) +{ + int primask; + + /* Interrupts are enabled when PRIMASK bit is 0 */ + asm("mrs %0, primask":"=r"(primask)); + + return !(primask & 0x1); +} + inline int in_interrupt_context(void) { int ret; |