Rev 3222 | Rev 3614 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3222 | Rev 3438 | ||
---|---|---|---|
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 | */ |