diff --git a/babblesim/core/src/irq_handler.c b/babblesim/core/src/irq_handler.c index d29797500..05eb881a6 100644 --- a/babblesim/core/src/irq_handler.c +++ b/babblesim/core/src/irq_handler.c @@ -22,6 +22,12 @@ extern void (* const systemVectors[256])(void); * handler and therefore its priority handling */ +int +os_arch_in_isr(void) +{ + return currently_running_irq >= 0; +} + void posix_interrupt_raised(void) { uint64_t irq_lock; diff --git a/babblesim/hw/bsp/nrf52_bsim/include/os/os_arch.h b/babblesim/hw/bsp/nrf52_bsim/include/os/os_arch.h index 32bc97bcb..574f1e813 100644 --- a/babblesim/hw/bsp/nrf52_bsim/include/os/os_arch.h +++ b/babblesim/hw/bsp/nrf52_bsim/include/os/os_arch.h @@ -48,11 +48,8 @@ void os_arch_frame_init(struct stack_frame *sf); #define OS_IDLE_STACK_SIZE (4000) #endif -static inline int -os_arch_in_isr(void) -{ - return hw_irq_ctrl_get_irq_status(); -} +/* Implemented in irq_handler */ +int os_arch_in_isr(void); /* Include common arch definitions and APIs */ #include "os/arch/common.h"