Subversion Repositories HelenOS

Rev

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

Rev 2817 Rev 3018
Line 85... Line 85...
85
 */
85
 */
86
void exc_dispatch(int n, istate_t *istate)
86
void exc_dispatch(int n, istate_t *istate)
87
{
87
{
88
    ASSERT(n < IVT_ITEMS);
88
    ASSERT(n < IVT_ITEMS);
89
 
89
 
90
    if (THREAD) THREAD->uspace_state = istate;
90
    if (THREAD) THREAD->udebug.uspace_state = istate;
91
   
91
   
92
    exc_table[n].f(n + IVT_FIRST, istate);
92
    exc_table[n].f(n + IVT_FIRST, istate);
93
 
93
 
94
    if (THREAD) THREAD->uspace_state = NULL;
94
    if (THREAD) THREAD->udebug.uspace_state = NULL;
95
 
95
 
96
    /* This is a safe place to exit exiting thread */
96
    /* This is a safe place to exit exiting thread */
97
    if (THREAD && THREAD->interrupted && istate_from_uspace(istate))
97
    if (THREAD && THREAD->interrupted && istate_from_uspace(istate))
98
        thread_exit();
98
        thread_exit();
99
}
99
}