mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
Make irqsave/irqrestore (much) cheaper.
This commit is contained in:
parent
273b6cf085
commit
9d0992d2a7
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user