Subversion Repositories HelenOS

Rev

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

Rev 3431 Rev 3606
Line 106... Line 106...
106
    istate_t fake_state;
106
    istate_t fake_state;
107
 
107
 
108
    THREAD->udebug.uspace_state = &fake_state;
108
    THREAD->udebug.uspace_state = &fake_state;
109
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false);
109
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, 0, false);
110
#endif
110
#endif
111
 
-
 
112
    if (id < SYSCALL_END) {
111
    if (id < SYSCALL_END) {
113
#ifdef CONFIG_UDEBUG
-
 
114
        udebug_stoppable_begin();
-
 
115
#endif
-
 
116
        rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
112
        rc = syscall_table[id](a1, a2, a3, a4, a5, a6);
117
    } else {
113
    } else {
118
        printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id);
114
        printf("Task %" PRIu64": Unknown syscall %#" PRIxn, TASK->taskid, id);
119
        task_kill(TASK->taskid);
115
        task_kill(TASK->taskid);
120
        thread_exit();
116
        thread_exit();
Line 123... Line 119...
123
    if (THREAD->interrupted)
119
    if (THREAD->interrupted)
124
        thread_exit();
120
        thread_exit();
125
 
121
 
126
#ifdef CONFIG_UDEBUG
122
#ifdef CONFIG_UDEBUG
127
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true);
123
    udebug_syscall_event(a1, a2, a3, a4, a5, a6, id, rc, true);
128
    udebug_stoppable_end();
-
 
129
    THREAD->udebug.uspace_state = NULL;
124
    THREAD->udebug.uspace_state = NULL;
130
#endif
125
#endif
131
   
126
 
132
    return rc;
127
    return rc;
133
}
128
}
134
 
129
 
135
syshandler_t syscall_table[SYSCALL_END] = {
130
syshandler_t syscall_table[SYSCALL_END] = {
136
    (syshandler_t) sys_klog,
131
    (syshandler_t) sys_klog,