Rev 3448 | Rev 4341 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3448 | Rev 3674 | ||
---|---|---|---|
Line 110... | Line 110... | ||
110 | unative_t rc; |
110 | unative_t rc; |
111 | 111 | ||
112 | #ifdef CONFIG_UDEBUG |
112 | #ifdef CONFIG_UDEBUG |
113 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false); |
113 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false); |
114 | #endif |
114 | #endif |
115 | - | ||
116 | if (id < SYSCALL_END) { |
115 | if (id < SYSCALL_END) { |
117 | #ifdef CONFIG_UDEBUG |
- | |
118 | udebug_stoppable_begin(); |
- | |
119 | #endif |
- | |
120 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
116 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
121 | } else { |
117 | } else { |
122 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
118 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
123 | task_kill(TASK->taskid); |
119 | task_kill(TASK->taskid); |
124 | thread_exit(); |
120 | thread_exit(); |
Line 127... | Line 123... | ||
127 | if (THREAD->interrupted) |
123 | if (THREAD->interrupted) |
128 | thread_exit(); |
124 | thread_exit(); |
129 | 125 | ||
130 | #ifdef CONFIG_UDEBUG |
126 | #ifdef CONFIG_UDEBUG |
131 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true); |
127 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true); |
- | 128 | ||
- | 129 | /* |
|
- | 130 | * Stopping point needed for tasks that only invoke non-blocking |
|
- | 131 | * system calls. |
|
- | 132 | */ |
|
- | 133 | udebug_stoppable_begin(); |
|
132 | udebug_stoppable_end(); |
134 | udebug_stoppable_end(); |
133 | #endif |
135 | #endif |
134 | - | ||
135 | return rc; |
136 | return rc; |
136 | } |
137 | } |
137 | 138 | ||
138 | syshandler_t syscall_table[SYSCALL_END] = { |
139 | syshandler_t syscall_table[SYSCALL_END] = { |
139 | (syshandler_t) sys_klog, |
140 | (syshandler_t) sys_klog, |