diff options
author | px4dev <px4@purgatory.org> | 2012-09-15 17:21:26 -0700 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2012-09-15 17:21:26 -0700 |
commit | 9d0992d2a738016d38657ce4b5c463acba2fccf6 (patch) | |
tree | 019346df0ee92743c5da6fe6cf697ffdddcf8f60 | |
parent | 273b6cf08593b23b101f0a98213a07de6c0a4ff7 (diff) | |
download | px4-firmware-9d0992d2a738016d38657ce4b5c463acba2fccf6.tar.gz px4-firmware-9d0992d2a738016d38657ce4b5c463acba2fccf6.tar.bz2 px4-firmware-9d0992d2a738016d38657ce4b5c463acba2fccf6.zip |
Make irqsave/irqrestore (much) cheaper.
-rw-r--r-- | nuttx/arch/arm/include/armv7-m/irq.h | 8 |
1 files changed, 8 insertions, 0 deletions
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 |