diff --git a/arch/arm/src/calypso/calypso_keypad.c b/arch/arm/src/calypso/calypso_keypad.c index aeb16eb4d99..d7f8ec780a9 100644 --- a/arch/arm/src/calypso/calypso_keypad.c +++ b/arch/arm/src/calypso/calypso_keypad.c @@ -203,6 +203,7 @@ static int keypad_open(file_t * filep) register uint16_t reg; /* Unmask keypad interrupt */ + reg = readw(ARMIO_REG(KBD_GPIO_MASKIT)); writew(reg & ~KBD_INT, ARMIO_REG(KBD_GPIO_MASKIT)); diff --git a/arch/z80/src/common/up_doirq.c b/arch/z80/src/common/up_doirq.c index fd871e24625..a4bb830fd37 100644 --- a/arch/z80/src/common/up_doirq.c +++ b/arch/z80/src/common/up_doirq.c @@ -84,7 +84,7 @@ FAR chipreg_t *up_doirq(uint8_t irq, FAR chipreg_t *regs) #else if (irq < NR_IRQS) { - FAR chipreg_t *savestate; + DECL_SAVESTATE(); /* Indicate that we have entered IRQ processing logic */ @@ -106,4 +106,3 @@ FAR chipreg_t *up_doirq(uint8_t irq, FAR chipreg_t *regs) return regs; #endif } - diff --git a/arch/z80/src/ez80/switch.h b/arch/z80/src/ez80/switch.h index de6506490c0..0bac6aed1ae 100644 --- a/arch/z80/src/ez80/switch.h +++ b/arch/z80/src/ez80/switch.h @@ -2,7 +2,7 @@ * arch/z80/src/ez80/switch.h * arch/z80/src/chip/switch.h * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -69,6 +69,9 @@ /* The following macro is used when the system enters interrupt handling logic */ +#define DECL_SAVESTATE() \ + FAR chipreg_t *savestate + #define IRQ_ENTER(irq, regs) \ do { \ savestate = (FAR chipreg_t *)current_regs; \ diff --git a/arch/z80/src/z8/switch.h b/arch/z80/src/z8/switch.h index 7738f24362b..45089947ca9 100644 --- a/arch/z80/src/z8/switch.h +++ b/arch/z80/src/z8/switch.h @@ -2,7 +2,7 @@ * arch/z80/src/z8/switch.h * arch/z80/src/chip/switch.h * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -114,10 +114,8 @@ /* The following macro is used when the system enters interrupt handling logic */ -#define IRQ_SAVE(irq, regs) savestate = (FAR chipreg_t *)current_regs; -#define IRQ_ENTER(irq, regs) current_regs = (regs) - -/* The following macro is used when the system exits interrupt handling logic */ +#define DECL_SAVESTATE() \ + struct z8_irqstate_s savestate #define IRQ_ENTER(irq, regs) \ do { \ diff --git a/arch/z80/src/z80/switch.h b/arch/z80/src/z80/switch.h index e7f705cfda2..3732a32a397 100644 --- a/arch/z80/src/z80/switch.h +++ b/arch/z80/src/z80/switch.h @@ -2,7 +2,7 @@ * arch/z80/src/z80/switch.h * arch/z80/src/chip/switch.h * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. + * Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -68,6 +68,9 @@ /* The following macro is used when the system enters interrupt handling logic */ +#define DECL_SAVESTATE() \ + FAR chipreg_t *savestate + #define IRQ_ENTER(irq, regs) \ do { \ savestate = (FAR chipreg_t *)current_regs; \