1 /*
2  * ===========================================================================================
3  *
4  *       Filename:  interrupt.c
5  *
6  *    Description:  interrupt osal impl. for hal layer.
7  *
8  *        Version:  Melis3.0
9  *         Create:  2019-11-25 20:34:50
10  *       Revision:  none
11  *       Compiler:  GCC:version 7.2.1 20170904 (release),ARM/embedded-7-branch revision 255204
12  *
13  *         Author:  caozilong@allwinnertech.com
14  *   Organization:  BU1-PSW
15  *  Last Modified:  2020-07-28 08:48:39
16  *
17  * ===========================================================================================
18  */
19 
20 #include <interrupt.h>
21 #include <rtthread.h>
22 #include <kconfig.h>
23 #include <rthw.h>
24 
hal_interrupt_get_nest(void)25 uint32_t hal_interrupt_get_nest(void)
26 {
27     uint32_t nest = rt_interrupt_get_nest();
28     return nest;
29 }
30 
hal_interrupt_enable(void)31 void hal_interrupt_enable(void)
32 {
33     void local_irq_enable(void);
34     local_irq_enable();
35 }
36 
hal_interrupt_disable(void)37 void hal_interrupt_disable(void)
38 {
39     void local_irq_disable(void);
40     local_irq_disable();
41 }
42 
hal_interrupt_save(void)43 uint32_t hal_interrupt_save(void)
44 {
45     return rt_hw_interrupt_disable();
46 }
47 
hal_interrupt_restore(uint32_t flag)48 void hal_interrupt_restore(uint32_t flag)
49 {
50     return rt_hw_interrupt_enable(flag);
51 }
52