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 | } |