From 9d0992d2a738016d38657ce4b5c463acba2fccf6 Mon Sep 17 00:00:00 2001 From: px4dev Date: Sat, 15 Sep 2012 17:21:26 -0700 Subject: Make irqsave/irqrestore (much) cheaper. --- nuttx/arch/arm/include/armv7-m/irq.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nuttx/arch/arm/include/armv7-m/irq.h b/nuttx/arch/arm/include/armv7-m/irq.h index 6cef85c02..e74e06be6 100644 --- a/nuttx/arch/arm/include/armv7-m/irq.h +++ b/nuttx/arch/arm/include/armv7-m/irq.h @@ -131,6 +131,8 @@ struct xcptcontext /* Disable IRQs */ +static inline void irqdisable(void) __attribute__((always_inline, no_instrument_function)); + static inline void irqdisable(void) { __asm__ __volatile__ ("\tcpsid i\n"); @@ -138,6 +140,8 @@ static inline void irqdisable(void) /* Save the current primask state & disable IRQs */ +static inline irqstate_t irqsave(void) __attribute__((always_inline, no_instrument_function)); + static inline irqstate_t irqsave(void) { unsigned short primask; @@ -158,6 +162,8 @@ static inline irqstate_t irqsave(void) /* Enable IRQs */ +static inline void irqenable(void) __attribute__((always_inline, no_instrument_function)); + static inline void irqenable(void) { __asm__ __volatile__ ("\tcpsie i\n"); @@ -165,6 +171,8 @@ static inline void irqenable(void) /* Restore saved primask state */ +static inline void irqrestore(irqstate_t primask) __attribute__((always_inline, no_instrument_function)); + static inline void irqrestore(irqstate_t primask) { /* If bit 0 of the primask is 0, then we need to restore -- cgit v1.2.3