projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove CVS logs.
[bertos.git]
/
cpu
/
arm
/
drv
/
sysirq_at91.c
diff --git
a/cpu/arm/drv/sysirq_at91.c
b/cpu/arm/drv/sysirq_at91.c
index e95d5a15dc49af4d01ab8b5a2ead2c0ac871f429..281c7963f8afdbee1fb0fc472ca961a3171cd921 100644
(file)
--- a/
cpu/arm/drv/sysirq_at91.c
+++ b/
cpu/arm/drv/sysirq_at91.c
@@
-54,7
+54,8
@@
#include "sysirq_at91.h"
#include <io/arm.h>
#include "sysirq_at91.h"
#include <io/arm.h>
-#include <cpu/cpu.h>
+#include <cpu/irq.h>
+#include <cpu/types.h>
#include <cfg/module.h>
#include <cfg/macros.h>
#include <cfg/module.h>
#include <cfg/macros.h>
@@
-93,10
+94,9
@@
STATIC_ASSERT(countof(sysirq_tab) == SYSIRQ_CNT);
* various sources (system timer, etc..) and calls
* the corresponding handler.
*/
* various sources (system timer, etc..) and calls
* the corresponding handler.
*/
-static void sysirq_dispatcher(void) __attribute__ ((
naked
));
+static void sysirq_dispatcher(void) __attribute__ ((
interrupt
));
static void sysirq_dispatcher(void)
{
static void sysirq_dispatcher(void)
{
- IRQ_ENTRY();
for (unsigned i = 0; i < countof(sysirq_tab); i++)
{
if (sysirq_tab[i].enabled
for (unsigned i = 0; i < countof(sysirq_tab); i++)
{
if (sysirq_tab[i].enabled
@@
-104,7
+104,8
@@
static void sysirq_dispatcher(void)
sysirq_tab[i].handler();
}
sysirq_tab[i].handler();
}
- IRQ_EXIT();
+ /* Inform hw that we have served the IRQ */
+ AIC_EOICR = 0;
}
#define SYSIRQ_PRIORITY 0 ///< default priority for system irqs.
}
#define SYSIRQ_PRIORITY 0 ///< default priority for system irqs.
@@
-144,7
+145,6
@@
void sysirq_init(void)
*/
void sysirq_setHandler(sysirq_t irq, sysirq_handler_t handler)
{
*/
void sysirq_setHandler(sysirq_t irq, sysirq_handler_t handler)
{
- ASSERT(irq >= 0);
ASSERT(irq < SYSIRQ_CNT);
sysirq_tab[irq].handler = handler;
}
ASSERT(irq < SYSIRQ_CNT);
sysirq_tab[irq].handler = handler;
}
@@
-154,7
+154,6
@@
void sysirq_setHandler(sysirq_t irq, sysirq_handler_t handler)
*/
void sysirq_setEnable(sysirq_t irq, bool enable)
{
*/
void sysirq_setEnable(sysirq_t irq, bool enable)
{
- ASSERT(irq >= 0);
ASSERT(irq < SYSIRQ_CNT);
sysirq_tab[irq].setEnable(enable);
ASSERT(irq < SYSIRQ_CNT);
sysirq_tab[irq].setEnable(enable);
@@
-166,7
+165,6
@@
void sysirq_setEnable(sysirq_t irq, bool enable)
*/
bool sysirq_enabled(sysirq_t irq)
{
*/
bool sysirq_enabled(sysirq_t irq)
{
- ASSERT(irq >= 0);
ASSERT(irq < SYSIRQ_CNT);
return sysirq_tab[irq].enabled;
ASSERT(irq < SYSIRQ_CNT);
return sysirq_tab[irq].enabled;