diff options
| author | shaojinchun <[email protected]> | 2018-11-22 14:40:43 +0800 |
|---|---|---|
| committer | shaojinchun <[email protected]> | 2018-11-22 18:16:47 +0800 |
| commit | fc6bc1ad398d5fa2085320cab6cc33905f5f943d (patch) | |
| tree | a6a24a6e516add6fe47fa5a58f7307ee0cd3f6e8 /src/irq.c | |
| parent | 8ea5b770117cacea7f17b2b08305f360ed71bca7 (diff) | |
Add smp support to RT-Thread 4.0
Diffstat (limited to 'src/irq.c')
| -rw-r--r-- | src/irq.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -8,6 +8,7 @@ * 2006-02-24 Bernard first version * 2006-05-03 Bernard add IRQ_DEBUG * 2016-08-09 ArdaFu add interrupt enter and leave hook. + * 2018-11-22 Jesven rt_interrupt_get_nest function add disable irq */ #include <rthw.h> @@ -48,7 +49,11 @@ void rt_interrupt_leave_sethook(void (*hook)(void)) /**@{*/ +#ifdef RT_USING_SMP +#define rt_interrupt_nest rt_cpu_self()->irq_nest +#else volatile rt_uint8_t rt_interrupt_nest; +#endif /** * This function will be invoked by BSP, when enter interrupt service routine @@ -102,7 +107,13 @@ RTM_EXPORT(rt_interrupt_leave); */ rt_uint8_t rt_interrupt_get_nest(void) { - return rt_interrupt_nest; + rt_uint8_t ret; + rt_base_t level; + + level = rt_hw_interrupt_disable(); + ret = rt_interrupt_nest; + rt_hw_interrupt_enable(level); + return ret; } RTM_EXPORT(rt_interrupt_get_nest); |
