xref: /nrf52832-nimble/nordic/nrfx/templates/nrfx_glue.c (revision 150812a83cab50279bd772ef6db1bfaf255f2c5b)
1 /*
2  * Copyright (c) 2006-2018, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #include "nrf.h"
8 #include "nrfx_glue.h"
9 
10 #include <rtthread.h>
11 #include <rthw.h>
12 
13 #define NUM_IRQS_PER_REG 32
14 #define REG_FROM_IRQ(irq) (irq / NUM_IRQS_PER_REG)
15 #define BIT_FROM_IRQ(irq) (irq % NUM_IRQS_PER_REG)
16 
17 /**
18  * @brief Return IRQ enable state
19  *
20  * @param irq IRQ line
21  * @return interrupt enable state, true or false
22  */
NVIC_IRQ_IS_ENABLED(unsigned int irq)23 int NVIC_IRQ_IS_ENABLED(unsigned int irq)
24 {
25 	return NVIC->ISER[REG_FROM_IRQ(irq)] & (1 << BIT_FROM_IRQ(irq));
26 }
27 
nrfx_enter_critical(void)28 unsigned int nrfx_enter_critical(void)
29 {
30 	return rt_hw_interrupt_disable();
31 }
32 
nrfx_exit_critical(unsigned int ctx)33 void nrfx_exit_critical(unsigned int ctx)
34 {
35 	rt_hw_interrupt_enable(ctx);
36 }