Rev 3210 | Rev 3674 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3210 | Rev 3448 | ||
|---|---|---|---|
| Line 51... | Line 51... | ||
| 51 | #include <ddi/ddi.h> |
51 | #include <ddi/ddi.h> |
| 52 | #include <security/cap.h> |
52 | #include <security/cap.h> |
| 53 | #include <syscall/copy.h> |
53 | #include <syscall/copy.h> |
| 54 | #include <sysinfo/sysinfo.h> |
54 | #include <sysinfo/sysinfo.h> |
| 55 | #include <console/console.h> |
55 | #include <console/console.h> |
| - | 56 | #include <udebug/udebug.h> |
|
| 56 | 57 | ||
| 57 | /** Print using kernel facility |
58 | /** Print using kernel facility |
| 58 | * |
59 | * |
| 59 | * Print to kernel log. |
60 | * Print to kernel log. |
| 60 | * |
61 | * |
| Line 106... | Line 107... | ||
| 106 | unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, |
107 | unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, |
| 107 | unative_t a4, unative_t a5, unative_t a6, unative_t id) |
108 | unative_t a4, unative_t a5, unative_t a6, unative_t id) |
| 108 | { |
109 | { |
| 109 | unative_t rc; |
110 | unative_t rc; |
| 110 | 111 | ||
| - | 112 | #ifdef CONFIG_UDEBUG |
|
| - | 113 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false); |
|
| - | 114 | #endif |
|
| - | 115 | ||
| 111 | if (id < SYSCALL_END) |
116 | if (id < SYSCALL_END) { |
| - | 117 | #ifdef CONFIG_UDEBUG |
|
| - | 118 | udebug_stoppable_begin(); |
|
| - | 119 | #endif |
|
| 112 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
120 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
| 113 | else { |
121 | } else { |
| 114 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
122 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
| 115 | task_kill(TASK->taskid); |
123 | task_kill(TASK->taskid); |
| 116 | thread_exit(); |
124 | thread_exit(); |
| 117 | } |
125 | } |
| 118 | 126 | ||
| 119 | if (THREAD->interrupted) |
127 | if (THREAD->interrupted) |
| 120 | thread_exit(); |
128 | thread_exit(); |
| - | 129 | ||
| - | 130 | #ifdef CONFIG_UDEBUG |
|
| - | 131 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true); |
|
| - | 132 | udebug_stoppable_end(); |
|
| - | 133 | #endif |
|
| 121 | 134 | ||
| 122 | return rc; |
135 | return rc; |
| 123 | } |
136 | } |
| 124 | 137 | ||
| 125 | syshandler_t syscall_table[SYSCALL_END] = { |
138 | syshandler_t syscall_table[SYSCALL_END] = { |
| Line 171... | Line 184... | ||
| 171 | (syshandler_t) sys_sysinfo_valid, |
184 | (syshandler_t) sys_sysinfo_valid, |
| 172 | (syshandler_t) sys_sysinfo_value, |
185 | (syshandler_t) sys_sysinfo_value, |
| 173 | 186 | ||
| 174 | /* Debug calls */ |
187 | /* Debug calls */ |
| 175 | (syshandler_t) sys_debug_putint, |
188 | (syshandler_t) sys_debug_putint, |
| 176 | (syshandler_t) sys_debug_enable_console |
189 | (syshandler_t) sys_debug_enable_console, |
| - | 190 | ||
| - | 191 | (syshandler_t) sys_ipc_connect_kbox |
|
| 177 | }; |
192 | }; |
| 178 | 193 | ||
| 179 | /** @} |
194 | /** @} |
| 180 | */ |
195 | */ |