Rev 1256 | Rev 1288 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1256 | Rev 1258 | ||
---|---|---|---|
Line 41... | Line 41... | ||
41 | #include <symtab.h> |
41 | #include <symtab.h> |
42 | #include <proc/thread.h> |
42 | #include <proc/thread.h> |
43 | #include <proc/task.h> |
43 | #include <proc/task.h> |
44 | #include <synch/spinlock.h> |
44 | #include <synch/spinlock.h> |
45 | #include <arch/ddi/ddi.h> |
45 | #include <arch/ddi/ddi.h> |
- | 46 | #include <ipc/sysipc.h> |
|
- | 47 | #include <interrupt.h> |
|
46 | 48 | ||
47 | /* |
49 | /* |
48 | * Interrupt and exception dispatching. |
50 | * Interrupt and exception dispatching. |
49 | */ |
51 | */ |
50 | 52 | ||
Line 182... | Line 184... | ||
182 | eoi_function(); |
184 | eoi_function(); |
183 | else |
185 | else |
184 | panic("no eoi_function\n"); |
186 | panic("no eoi_function\n"); |
185 | 187 | ||
186 | } |
188 | } |
- | 189 | ||
- | 190 | static void ipc_int(int n, istate_t *istate) |
|
- | 191 | { |
|
- | 192 | trap_virtual_eoi(); |
|
- | 193 | ipc_irq_send_notif(n-IVT_IRQBASE); |
|
- | 194 | } |
|
- | 195 | ||
- | 196 | ||
- | 197 | /* Reregister irq to be IPC-ready */ |
|
- | 198 | void irq_ipc_bind_arch(__native irq) |
|
- | 199 | { |
|
- | 200 | if (irq == IRQ_CLK) |
|
- | 201 | return; |
|
- | 202 | exc_register(IVT_IRQBASE+irq, "ipc_int", ipc_int); |
|
- | 203 | } |