diff --git a/arch/arm/core/irq_manage.c b/arch/arm/core/irq_manage.c index c97e51dc361..39dd41464d6 100644 --- a/arch/arm/core/irq_manage.c +++ b/arch/arm/core/irq_manage.c @@ -63,6 +63,17 @@ void _arch_irq_disable(unsigned int irq) _NvicIrqDisable(irq); } +/** + * @brief Return IRQ enable state + * + * @param irq IRQ line + * @return interrupt enable state, true or false + */ +int _arch_irq_is_enabled(unsigned int irq) +{ + return _NvicIsIrqEnabled(irq); +} + /** * @internal * diff --git a/include/arch/arm/cortex_m/irq.h b/include/arch/arm/cortex_m/irq.h index b25d26d0806..6019bda238e 100644 --- a/include/arch/arm/cortex_m/irq.h +++ b/include/arch/arm/cortex_m/irq.h @@ -36,9 +36,11 @@ extern "C" { GTEXT(_IntExit); GTEXT(_arch_irq_enable) GTEXT(_arch_irq_disable) +GTEXT(_arch_irq_is_enabled) #else extern void _arch_irq_enable(unsigned int irq); extern void _arch_irq_disable(unsigned int irq); +extern int _arch_irq_is_enabled(unsigned int irq); extern void _IntExit(void);