diff options
Diffstat (limited to 'src/stm/ao_arch_funcs.h')
| -rw-r--r-- | src/stm/ao_arch_funcs.h | 8 | 
1 files changed, 8 insertions, 0 deletions
| diff --git a/src/stm/ao_arch_funcs.h b/src/stm/ao_arch_funcs.h index 2c017c79..33359857 100644 --- a/src/stm/ao_arch_funcs.h +++ b/src/stm/ao_arch_funcs.h @@ -343,6 +343,14 @@ ao_arch_memory_barrier() {  	asm volatile("" ::: "memory");  } +static inline void +ao_arch_irq_check(void) { +	uint32_t	primask; +	asm("mrs %0,primask" : "=&r" (primask)); +	if ((primask & 1) == 0) +		ao_panic(AO_PANIC_IRQ); +} +  #if HAS_TASK  static inline void  ao_arch_init_stack(struct ao_task *task, void *start) | 
