Rev 2619 | Rev 3096 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2619 | Rev 3064 | ||
---|---|---|---|
Line 49... | Line 49... | ||
49 | #include <ddi/ddi.h> |
49 | #include <ddi/ddi.h> |
50 | #include <security/cap.h> |
50 | #include <security/cap.h> |
51 | #include <syscall/copy.h> |
51 | #include <syscall/copy.h> |
52 | #include <sysinfo/sysinfo.h> |
52 | #include <sysinfo/sysinfo.h> |
53 | #include <console/console.h> |
53 | #include <console/console.h> |
54 | #include <console/klog.h> |
- | |
55 | 54 | ||
56 | /** Print using kernel facility |
55 | /** Print using kernel facility |
57 | * |
56 | * |
58 | * Some simulators can print only through kernel. Userspace can use |
- | |
59 | * this syscall to facilitate it. |
57 | * Print to kernel log. |
- | 58 | * |
|
60 | */ |
59 | */ |
61 | static unative_t sys_io(int fd, const void * buf, size_t count) |
60 | static unative_t sys_io(int fd, const void * buf, size_t count) |
62 | { |
61 | { |
63 | size_t i; |
62 | size_t i; |
64 | char *data; |
63 | char *data; |
Line 98... | Line 97... | ||
98 | unative_t rc; |
97 | unative_t rc; |
99 | 98 | ||
100 | if (id < SYSCALL_END) |
99 | if (id < SYSCALL_END) |
101 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
100 | rc = syscall_table[id](a1, a2, a3, a4, a5, a6); |
102 | else { |
101 | else { |
103 | klog_printf("TASK %llu: Unknown syscall id %llx", TASK->taskid, |
102 | printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id); |
104 | id); |
- | |
105 | task_kill(TASK->taskid); |
103 | task_kill(TASK->taskid); |
106 | thread_exit(); |
104 | thread_exit(); |
107 | } |
105 | } |
108 | 106 | ||
109 | if (THREAD->interrupted) |
107 | if (THREAD->interrupted) |
Line 118... | Line 116... | ||
118 | 116 | ||
119 | /* Thread and task related syscalls. */ |
117 | /* Thread and task related syscalls. */ |
120 | (syshandler_t) sys_thread_create, |
118 | (syshandler_t) sys_thread_create, |
121 | (syshandler_t) sys_thread_exit, |
119 | (syshandler_t) sys_thread_exit, |
122 | (syshandler_t) sys_thread_get_id, |
120 | (syshandler_t) sys_thread_get_id, |
- | 121 | ||
123 | (syshandler_t) sys_task_get_id, |
122 | (syshandler_t) sys_task_get_id, |
- | 123 | (syshandler_t) sys_task_spawn, |
|
124 | 124 | ||
125 | /* Synchronization related syscalls. */ |
125 | /* Synchronization related syscalls. */ |
126 | (syshandler_t) sys_futex_sleep_timeout, |
126 | (syshandler_t) sys_futex_sleep_timeout, |
127 | (syshandler_t) sys_futex_wakeup, |
127 | (syshandler_t) sys_futex_wakeup, |
128 | 128 |