projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix SPI1 activation bug. Now SPI1 on at91sam7x is fully functional.
[bertos.git]
/
bertos
/
kern
/
irq.c
diff --git
a/bertos/kern/irq.c
b/bertos/kern/irq.c
index c894631950c2ebfe44dcf6b81a30ac92201c48d1..479ad67bf2e134d8e268171927c7919b335f0bb9 100644
(file)
--- a/
bertos/kern/irq.c
+++ b/
bertos/kern/irq.c
@@
-31,8
+31,12
@@
*
* \brief Process scheduler (public interface).
*
*
* \brief Process scheduler (public interface).
*
- * \version $Id
: proc.h 1646 2008-08-17 13:49:48Z bernie
$
+ * \version $Id$
* \author Bernie Innocenti <bernie@codewiz.org>
* \author Bernie Innocenti <bernie@codewiz.org>
+ *
+ * Still in development, disable nightly test for now
+ * notest: avr
+ * notest: arm
*/
#include "irq.h"
*/
#include "irq.h"
@@
-40,7
+44,7
@@
#include <kern/proc_p.h>
#include <kern/proc.h>
#include <kern/proc_p.h>
#include <kern/proc.h>
-#include
<cfg/cfg_kern.h>
+#include
"cfg/cfg_proc.h"
#include <unistd.h> // FIXME: move POSIX stuff to irq_posix.h
#include <unistd.h> // FIXME: move POSIX stuff to irq_posix.h
@@
-53,7
+57,9
@@
static void (*irq_handlers[100])(void);
/* signal handler */
void irq_entry(int signum)
{
/* signal handler */
void irq_entry(int signum)
{
+#if CONFIG_KERN_PREEMPT
Process * const old_process = CurrentProcess;
Process * const old_process = CurrentProcess;
+#endif
irq_handlers[signum]();
irq_handlers[signum]();
@@
-87,6
+93,7
@@
void irq_register(int irq, void (*callback)(void))
void irq_init(void)
{
struct sigaction act;
void irq_init(void)
{
struct sigaction act;
+
act.sa_handler = irq_entry;
sigemptyset(&act.sa_mask);
//sigaddset(&act.sa_mask, irq);
act.sa_handler = irq_entry;
sigemptyset(&act.sa_mask);
//sigaddset(&act.sa_mask, irq);