Rev 958 | Rev 1096 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 958 | Rev 959 | ||
|---|---|---|---|
| Line 132... | Line 132... | ||
| 132 | #include <debug.h> |
132 | #include <debug.h> |
| 133 | /** Handle syscall userspace call */ |
133 | /** Handle syscall userspace call */ |
| 134 | static void syscall_exception(int n, istate_t *istate) |
134 | static void syscall_exception(int n, istate_t *istate) |
| 135 | { |
135 | { |
| 136 | interrupts_enable(); |
136 | interrupts_enable(); |
| 137 | if (istate->a3 < SYSCALL_END) |
137 | if (istate->t0 < SYSCALL_END) |
| 138 | istate->v0 = syscall_table[istate->a3](istate->a0, |
138 | istate->v0 = syscall_table[istate->t0](istate->a0, |
| 139 | istate->a1, |
139 | istate->a1, |
| - | 140 | istate->a2, |
|
| 140 | istate->a2); |
141 | istate->a3); |
| 141 | else |
142 | else |
| 142 | panic("Undefined syscall %d", istate->a3); |
143 | panic("Undefined syscall %d", istate->a3); |
| 143 | istate->epc += 4; |
144 | istate->epc += 4; |
| 144 | interrupts_disable(); |
145 | interrupts_disable(); |
| 145 | } |
146 | } |