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

@ -30,7 +30,7 @@ move_free(struct move *m)
struct move *
move_alloc(void)
{
uint8_t flag = irq_save();
irqstatus_t flag = irq_save();
struct move *m = move_free_list;
if (!m)
shutdown("Move queue empty");
@ -231,7 +231,7 @@ void
command_debug_read16(uint32_t *args)
{
uint16_t *ptr = (void*)(size_t)args[0];
uint8_t flag = irq_save();
irqstatus_t flag = irq_save();
uint16_t v = *ptr;
irq_restore(flag);
sendf("debug_result val=%hu", v);
@ -251,7 +251,7 @@ void
command_debug_write16(uint32_t *args)
{
uint16_t *ptr = (void*)(size_t)args[0];
uint8_t flag = irq_save();
irqstatus_t flag = irq_save();
*ptr = args[1];
irq_restore(flag);
}