Rev 2131 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2131 | Rev 2456 | ||
---|---|---|---|
Line 36... | Line 36... | ||
36 | #include <arch/cp0.h> |
36 | #include <arch/cp0.h> |
37 | #include <ipc/irq.h> |
37 | #include <ipc/irq.h> |
38 | #include <arch/drivers/serial.h> |
38 | #include <arch/drivers/serial.h> |
39 | #include <console/chardev.h> |
39 | #include <console/chardev.h> |
40 | #include <console/console.h> |
40 | #include <console/console.h> |
- | 41 | #include <synch/rcu.h> |
|
41 | 42 | ||
42 | #define SERIAL_IRQ 2 |
43 | #define SERIAL_IRQ 2 |
43 | 44 | ||
44 | static irq_t serial_irq; |
45 | static irq_t serial_irq; |
45 | static chardev_t console; |
46 | static chardev_t console; |
Line 110... | Line 111... | ||
110 | } |
111 | } |
111 | 112 | ||
112 | /** Process keyboard interrupt. Does not work in simics? */ |
113 | /** Process keyboard interrupt. Does not work in simics? */ |
113 | static void serial_irq_handler(irq_t *irq, void *arg, ...) |
114 | static void serial_irq_handler(irq_t *irq, void *arg, ...) |
114 | { |
115 | { |
115 | if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox)) |
116 | if ((rcu_dereference_pointer(irq->notif_cfg).notify) && (rcu_dereference_pointer(irq->notif_cfg).answerbox)) |
116 | ipc_irq_send_notif(irq); |
117 | ipc_irq_send_notif(irq); |
117 | else |
118 | else |
118 | serial_handler(); |
119 | serial_handler(); |
119 | } |
120 | } |
120 | 121 |