irq: Allow boards to define the return type of irq_save()

The AVR wants a uint8_t return type for irq_save(), but other
architectures will generally prefer int.  Allow the board to configure
the size of the flag by introducing an irqstatus_t typedef.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2016-06-08 21:13:53 -04:00
parent 9dd101c26f
commit fa85094cbb
8 changed files with 33 additions and 25 deletions

View file

@ -16,28 +16,32 @@
* Interrupts
****************************************************************/
uint8_t Interrupt_off;
irqstatus_t Interrupt_off;
void irq_disable(void)
void
irq_disable(void)
{
Interrupt_off = 1;
barrier();
}
void irq_enable(void)
void
irq_enable(void)
{
barrier();
Interrupt_off = 0;
}
uint8_t irq_save(void)
irqstatus_t
irq_save(void)
{
uint8_t flag = Interrupt_off;
irqstatus_t flag = Interrupt_off;
irq_disable();
return flag;
}
void irq_restore(uint8_t flag)
void
irq_restore(irqstatus_t flag)
{
barrier();
Interrupt_off = flag;