summaryrefslogtreecommitdiff
path: root/core/cortex-m/task.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/cortex-m/task.c')
-rw-r--r--core/cortex-m/task.c10
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;