Rev 1096 | Rev 1119 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1096 | Rev 1100 | ||
|---|---|---|---|
| Line 38... | Line 38... | ||
| 38 | #include <print.h> |
38 | #include <print.h> |
| 39 | #include <interrupt.h> |
39 | #include <interrupt.h> |
| 40 | #include <func.h> |
40 | #include <func.h> |
| 41 | #include <console/kconsole.h> |
41 | #include <console/kconsole.h> |
| 42 | #include <arch/debugger.h> |
42 | #include <arch/debugger.h> |
| 43 | #include <syscall/syscall.h> |
- | |
| 44 | 43 | ||
| 45 | static char * exctable[] = { |
44 | static char * exctable[] = { |
| 46 | "Interrupt","TLB Modified","TLB Invalid","TLB Invalid Store", |
45 | "Interrupt","TLB Modified","TLB Invalid","TLB Invalid Store", |
| 47 | "Address Error - load/instr. fetch", |
46 | "Address Error - load/instr. fetch", |
| 48 | "Address Error - store", |
47 | "Address Error - store", |
| Line 127... | Line 126... | ||
| 127 | for (i = 0; i < 8; i++) |
126 | for (i = 0; i < 8; i++) |
| 128 | if (cause & (1 << i)) |
127 | if (cause & (1 << i)) |
| 129 | exc_dispatch(i+INT_OFFSET, istate); |
128 | exc_dispatch(i+INT_OFFSET, istate); |
| 130 | } |
129 | } |
| 131 | 130 | ||
| 132 | __native syscall_handler(__native a0, __native a1, __native a2, |
- | |
| 133 | __native a3, __native sysnum) |
- | |
| 134 | { |
- | |
| 135 | if (sysnum < SYSCALL_END) |
- | |
| 136 | return syscall_table[sysnum](a0,a1,a2,a3); |
- | |
| 137 | panic("Undefined syscall %d", sysnum); |
- | |
| 138 | } |
- | |
| 139 | - | ||
| 140 | /** Handle syscall userspace call */ |
131 | /** Handle syscall userspace call */ |
| 141 | static void syscall_exception(int n, istate_t *istate) |
132 | static void syscall_exception(int n, istate_t *istate) |
| 142 | { |
133 | { |
| 143 | panic("Syscall is handled through shortcut"); |
134 | panic("Syscall is handled through shortcut"); |
| 144 | } |
135 | } |