Rev 3343 | Rev 3665 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3343 | Rev 3492 | ||
|---|---|---|---|
| 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 99... | Line 100... | ||
| 99 | unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, |
100 | unative_t syscall_handler(unative_t a1, unative_t a2, unative_t a3, |
| 100 | unative_t a4, unative_t a5, unative_t a6, unative_t id) |
101 | unative_t a4, unative_t a5, unative_t a6, unative_t id) |
| 101 | { |
102 | { |
| 102 | unative_t rc; |
103 | unative_t rc; |
| 103 | 104 | ||
| - | 105 | #ifdef CONFIG_UDEBUG |
|
| - | 106 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false); |
|
| - | 107 | #endif |
|
| - | 108 | ||
| 104 | if (id < SYSCALL_END) |
109 | if (id < SYSCALL_END) { |
| - | 110 | #ifdef CONFIG_UDEBUG |
|
| - | 111 | udebug_stoppable_begin(); |
|
| - | 112 | #endif |
|
| 105 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
113 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
| 106 | else { |
114 | } else { |
| 107 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
115 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
| 108 | task_kill(TASK->taskid); |
116 | task_kill(TASK->taskid); |
| 109 | thread_exit(); |
117 | thread_exit(); |
| 110 | } |
118 | } |
| 111 | 119 | ||
| 112 | if (THREAD->interrupted) |
120 | if (THREAD->interrupted) |
| 113 | thread_exit(); |
121 | thread_exit(); |
| - | 122 | ||
| - | 123 | #ifdef CONFIG_UDEBUG |
|
| - | 124 | udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true); |
|
| - | 125 | udebug_stoppable_end(); |
|
| - | 126 | #endif |
|
| 114 | 127 | ||
| 115 | return rc; |
128 | return rc; |
| 116 | } |
129 | } |
| 117 | 130 | ||
| 118 | syshandler_t syscall_table[SYSCALL_END] = { |
131 | syshandler_t syscall_table[SYSCALL_END] = { |
| Line 163... | Line 176... | ||
| 163 | /* Sysinfo syscalls */ |
176 | /* Sysinfo syscalls */ |
| 164 | (syshandler_t) sys_sysinfo_valid, |
177 | (syshandler_t) sys_sysinfo_valid, |
| 165 | (syshandler_t) sys_sysinfo_value, |
178 | (syshandler_t) sys_sysinfo_value, |
| 166 | 179 | ||
| 167 | /* Debug calls */ |
180 | /* Debug calls */ |
| 168 | (syshandler_t) sys_debug_enable_console |
181 | (syshandler_t) sys_debug_enable_console, |
| - | 182 | ||
| - | 183 | (syshandler_t) sys_ipc_connect_kbox |
|
| 169 | }; |
184 | }; |
| 170 | 185 | ||
| 171 | /** @} |
186 | /** @} |
| 172 | */ |
187 | */ |