projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix find name function. Pass as argument to cgi callback the rx buffer len.
[bertos.git]
/
bertos
/
cpu
/
arm
/
drv
/
sysirq_at91.c
diff --git
a/bertos/cpu/arm/drv/sysirq_at91.c
b/bertos/cpu/arm/drv/sysirq_at91.c
index 281c7963f8afdbee1fb0fc472ca961a3171cd921..23596e58980c252d3a3c3ba4c57fa8edfb86925e 100644
(file)
--- a/
bertos/cpu/arm/drv/sysirq_at91.c
+++ b/
bertos/cpu/arm/drv/sysirq_at91.c
@@
-30,7
+30,6
@@
*
* -->
*
*
* -->
*
- * \version $Id$
*
* \author Francesco Sacchi <batt@develer.com>
*
*
* \author Francesco Sacchi <batt@develer.com>
*
@@
-93,11
+92,17
@@
STATIC_ASSERT(countof(sysirq_tab) == SYSIRQ_CNT);
* This function checks for interrupt enable state of
* various sources (system timer, etc..) and calls
* the corresponding handler.
* This function checks for interrupt enable state of
* various sources (system timer, etc..) and calls
* the corresponding handler.
+ *
+ * \note On AT91SAM7, all system IRQs (timer included) are handled
+ * by the sysirq_dispatcher, so we can't differentiate between
+ * context-switch and non-context-switch ISR inside this
+ * class of IRQs.
*/
*/
-static void sysirq_dispatcher(void) __attribute__ ((interrupt));
-static void sysirq_dispatcher(void)
+static DECLARE_ISR_CONTEXT_SWITCH(sysirq_dispatcher)
{
{
- for (unsigned i = 0; i < countof(sysirq_tab); i++)
+ unsigned int i;
+
+ for (i = 0; i < countof(sysirq_tab); i++)
{
if (sysirq_tab[i].enabled
&& sysirq_tab[i].handler)
{
if (sysirq_tab[i].enabled
&& sysirq_tab[i].handler)
@@
-119,7
+124,7
@@
MOD_DEFINE(sysirq);
*/
void sysirq_init(void)
{
*/
void sysirq_init(void)
{
- cpuflags_t flags;
+ cpu
_
flags_t flags;
IRQ_SAVE_DISABLE(flags);
/* Disable all system interrupts */
IRQ_SAVE_DISABLE(flags);
/* Disable all system interrupts */