Subversion Repositories HelenOS

Rev

Rev 3492 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3492 Rev 3665
Line 103... Line 103...
103
    unative_t rc;
103
    unative_t rc;
104
 
104
 
105
#ifdef CONFIG_UDEBUG
105
#ifdef CONFIG_UDEBUG
106
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false);
106
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false);
107
#endif
107
#endif
108
 
-
 
109
    if (id < SYSCALL_END) {
108
    if (id < SYSCALL_END) {
110
#ifdef CONFIG_UDEBUG
-
 
111
        udebug_stoppable_begin();
-
 
112
#endif
-
 
113
        rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
109
        rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
114
    } else {
110
    } else {
115
        printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id);
111
        printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id);
116
        task_kill(TASK->taskid);
112
        task_kill(TASK->taskid);
117
        thread_exit();
113
        thread_exit();
Line 120... Line 116...
120
    if (THREAD->interrupted)
116
    if (THREAD->interrupted)
121
        thread_exit();
117
        thread_exit();
122
 
118
 
123
#ifdef CONFIG_UDEBUG
119
#ifdef CONFIG_UDEBUG
124
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true);
120
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true);
-
 
121
 
-
 
122
    /*
-
 
123
     * Stopping point needed for tasks that only invoke non-blocking
-
 
124
     * system calls.
-
 
125
     */
-
 
126
    udebug_stoppable_begin();
125
    udebug_stoppable_end();
127
    udebug_stoppable_end();
126
#endif
128
#endif  
127
   
-
 
128
    return rc;
129
    return rc;
129
}
130
}
130
 
131
 
131
syshandler_t syscall_table[SYSCALL_END] = {
132
syshandler_t syscall_table[SYSCALL_END] = {
132
    (syshandler_t) sys_klog,
133
    (syshandler_t) sys_klog,