Subversion Repositories HelenOS

Rev

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

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