|
|
|
@ -131,6 +131,8 @@ struct xcptcontext
@@ -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)
@@ -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)
@@ -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)
@@ -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
|
|
|
|
|