[INT] fix the mask/unmask interrupt api to not take oldstate argument
diff --git a/include/platform/interrupts.h b/include/platform/interrupts.h
index 7f563a5..7ee25bc 100644
--- a/include/platform/interrupts.h
+++ b/include/platform/interrupts.h
@@ -25,8 +25,8 @@
#include <sys/types.h>
-status_t mask_interrupt(unsigned int vector, bool *oldstate);
-status_t unmask_interrupt(unsigned int vector, bool *oldstate);
+status_t mask_interrupt(unsigned int vector);
+status_t unmask_interrupt(unsigned int vector);
typedef enum handler_return (*int_handler)(void *arg);
diff --git a/platform/armemu/interrupts.c b/platform/armemu/interrupts.c
index 604d2dc..9b149a3 100644
--- a/platform/armemu/interrupts.c
+++ b/platform/armemu/interrupts.c
@@ -44,7 +44,7 @@
*REG32(PIC_MASK_LATCH) = 0xffffffff;
}
-status_t mask_interrupt(unsigned int vector, bool *oldstate)
+status_t mask_interrupt(unsigned int vector)
{
if (vector >= PIC_MAX_INT)
return ERR_INVALID_ARGS;
@@ -53,8 +53,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = *REG32(PIC_MASK) & (1<<vector);
*REG32(PIC_MASK_LATCH) = 1 << vector;
exit_critical_section();
@@ -62,7 +60,7 @@
return NO_ERROR;
}
-status_t unmask_interrupt(unsigned int vector, bool *oldstate)
+status_t unmask_interrupt(unsigned int vector)
{
if (vector >= PIC_MAX_INT)
return ERR_INVALID_ARGS;
@@ -71,8 +69,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = *REG32(PIC_MASK) & (1<<vector);
*REG32(PIC_UNMASK_LATCH) = 1 << vector;
exit_critical_section();
diff --git a/platform/armemu/timer.c b/platform/armemu/timer.c
index 770905b..4d209a4 100644
--- a/platform/armemu/timer.c
+++ b/platform/armemu/timer.c
@@ -41,7 +41,7 @@
*REG(PIT_INTERVAL) = interval;
*REG(PIT_START_PERIODIC) = 1;
- unmask_interrupt(INT_PIT, NULL);
+ unmask_interrupt(INT_PIT);
exit_critical_section();
diff --git a/platform/at91sam7/interrupts.c b/platform/at91sam7/interrupts.c
index 6c08ef9..1bfd277 100644
--- a/platform/at91sam7/interrupts.c
+++ b/platform/at91sam7/interrupts.c
@@ -45,37 +45,23 @@
}
-status_t mask_interrupt(unsigned int vector, bool *oldstate)
+status_t mask_interrupt(unsigned int vector)
{
AT91AIC *aic = AT91AIC_ADDR;
if(vector > 31) return ERR_INVALID_ARGS;
- if(oldstate) {
- enter_critical_section();
- *oldstate = aic->IMR & (1 << vector) ? 1 : 0;
- aic->IDCR = (1 << vector);
- exit_critical_section();
- } else {
- aic->IDCR = (1 << vector);
- }
+ aic->IDCR = (1 << vector);
return NO_ERROR;
}
-status_t unmask_interrupt(unsigned int vector, bool *oldstate)
+status_t unmask_interrupt(unsigned int vector)
{
AT91AIC *aic = AT91AIC_ADDR;
if(vector > 31) return ERR_INVALID_ARGS;
- if(oldstate) {
- enter_critical_section();
- *oldstate = aic->IMR & (1 << vector) ? 1 : 0;
- aic->IECR = (1 << vector);
- exit_critical_section();
- } else {
- aic->IECR = (1 << vector);
- }
+ aic->IECR = (1 << vector);
return NO_ERROR;
}
diff --git a/platform/at91sam7/timer.c b/platform/at91sam7/timer.c
index e4b6596..52224c5 100644
--- a/platform/at91sam7/timer.c
+++ b/platform/at91sam7/timer.c
@@ -93,7 +93,7 @@
pit->MR = PIT_PITEN | PIT_PITIEN | (n & 0xfffff);
register_int_handler(PID_SYSIRQ, pit_irq_handler, 0);
- unmask_interrupt(PID_SYSIRQ, 0);
+ unmask_interrupt(PID_SYSIRQ);
exit_critical_section();
diff --git a/platform/integrator/interrupts.c b/platform/integrator/interrupts.c
index ef5f221..7391eda 100644
--- a/platform/integrator/interrupts.c
+++ b/platform/integrator/interrupts.c
@@ -128,7 +128,7 @@
#endif
}
-status_t mask_interrupt(unsigned int vector, bool *oldstate)
+status_t mask_interrupt(unsigned int vector)
{
#if 0
if (vector >= INT_VECTORS)
@@ -150,7 +150,7 @@
return NO_ERROR;
}
-status_t unmask_interrupt(unsigned int vector, bool *oldstate)
+status_t unmask_interrupt(unsigned int vector)
{
#if 0
if (vector >= INT_VECTORS)
diff --git a/platform/omap3/interrupts.c b/platform/omap3/interrupts.c
index 225d810..77c632d 100644
--- a/platform/omap3/interrupts.c
+++ b/platform/omap3/interrupts.c
@@ -73,7 +73,7 @@
*REG32(INTC_CONTROL) = 3; // reset and enable the controller
}
-status_t mask_interrupt(unsigned int vector, bool *oldstate)
+status_t mask_interrupt(unsigned int vector)
{
if (vector >= INT_VECTORS)
return ERR_INVALID_ARGS;
@@ -82,9 +82,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = false;
-
*REG32(INTC_MIR_SET(vectorToController(vector))) = 1 << (vector % 32);
exit_critical_section();
@@ -97,10 +94,10 @@
{
int i;
for (i=0; i<INT_VECTORS; i++)
- mask_interrupt(i, NULL);
+ mask_interrupt(i);
}
-status_t unmask_interrupt(unsigned int vector, bool *oldstate)
+status_t unmask_interrupt(unsigned int vector)
{
if (vector >= INT_VECTORS)
return ERR_INVALID_ARGS;
@@ -109,9 +106,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = false;
-
*REG32(INTC_MIR_CLEAR(vectorToController(vector))) = 1 << (vector % 32);
exit_critical_section();
diff --git a/platform/omap3/timer.c b/platform/omap3/timer.c
index 7c2b1f3..c6df208 100644
--- a/platform/omap3/timer.c
+++ b/platform/omap3/timer.c
@@ -57,7 +57,7 @@
TIMER_REG(TIER) = 0x2;
TIMER_REG(TCLR) = 0x3; // autoreload, start
- unmask_interrupt(GPT2_IRQ, NULL);
+ unmask_interrupt(GPT2_IRQ);
exit_critical_section();
diff --git a/platform/omap5912/interrupts.c b/platform/omap5912/interrupts.c
index 5621561..730618f 100644
--- a/platform/omap5912/interrupts.c
+++ b/platform/omap5912/interrupts.c
@@ -99,7 +99,7 @@
*ICReg(0, INTCON_GMR) = 0;
}
-status_t mask_interrupt(unsigned int vector, bool *oldstate)
+status_t mask_interrupt(unsigned int vector)
{
if (vector >= INT_VECTORS)
return ERR_INVALID_ARGS;
@@ -108,9 +108,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = false;
-
volatile uint32_t *mir = ICReg(vectorToController(vector), INTCON_MIR);
*mir = *mir | (1<<(vector % 32));
@@ -119,7 +116,7 @@
return NO_ERROR;
}
-status_t unmask_interrupt(unsigned int vector, bool *oldstate)
+status_t unmask_interrupt(unsigned int vector)
{
if (vector >= INT_VECTORS)
return ERR_INVALID_ARGS;
@@ -128,9 +125,6 @@
enter_critical_section();
- if (oldstate)
- *oldstate = false;
-
volatile uint32_t *mir = ICReg(vectorToController(vector), INTCON_MIR);
*mir = *mir & ~(1<<(vector % 32));
diff --git a/platform/omap5912/timer.c b/platform/omap5912/timer.c
index 72659f1..2bc09ce 100644
--- a/platform/omap5912/timer.c
+++ b/platform/omap5912/timer.c
@@ -105,6 +105,6 @@
OS_TIMER_CTRL_REG = 0; // stop the timer if it's already running
register_int_handler(IRQ_OS_TIMER, &os_timer_tick, NULL);
- unmask_interrupt(IRQ_OS_TIMER, NULL);
+ unmask_interrupt(IRQ_OS_TIMER);
}