39__attribute__((always_inline))
static inline unsigned int irq_disable(
void)
43 "in %[dest], __SREG__" "\n\t"
55__attribute__((always_inline))
static inline unsigned int irq_enable(
void)
59 "in %[dest], __SREG__" "\n\t"
71__attribute__((always_inline))
static inline void irq_restore(
unsigned int _state)
73 uint8_t state = (uint8_t)_state;
86 "sbrc %[state], 7" "\n\t"
97__attribute__((always_inline))
static inline bool irq_is_in(
void)
101 __asm__
volatile (
"" : : :
"memory");
113 "in %[dest], __SREG__" "\n\t"
118 return mask & (1 << 7);
144#define AVR8_ISR(vector, function, ...) \
145 ISR(vector, ISR_BLOCK) \
148 function(__VA_ARGS__); \
Common implementations and headers for AVR-8 family based micro-controllers.
stdio wrapper to extend the C libs stdio
MAYBE_INLINE void irq_restore(unsigned state)
This function restores the IRQ disable bit in the status register to the value contained within passe...
MAYBE_INLINE unsigned irq_disable(void)
This function sets the IRQ disable bit in the status register.
MAYBE_INLINE bool irq_is_enabled(void)
Test if IRQs are currently enabled.
MAYBE_INLINE unsigned irq_enable(void)
This function clears the IRQ disable bit in the status register.
MAYBE_INLINE bool irq_is_in(void)
Check whether called from interrupt service routine.
#define avr8_state_irq_count
Definition for GPIOR1.