Subversion Repositories HelenOS

Rev

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

Rev 3055 Rev 3613
Line 84... Line 84...
84
 * CPU is interrupts_disable()'d.
84
 * CPU is interrupts_disable()'d.
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
 
-
 
90
#ifdef CONFIG_UDEBUG
-
 
91
    if (THREAD) THREAD->udebug.uspace_state = istate;
-
 
92
#endif
89
   
93
   
90
    exc_table[n].f(n + IVT_FIRST, istate);
94
    exc_table[n].f(n + IVT_FIRST, istate);
-
 
95
 
-
 
96
#ifdef CONFIG_UDEBUG
-
 
97
    if (THREAD) THREAD->udebug.uspace_state = NULL;
-
 
98
#endif
-
 
99
 
91
    /* This is a safe place to exit exiting thread */
100
    /* This is a safe place to exit exiting thread */
92
    if (THREAD && THREAD->interrupted && istate_from_uspace(istate))
101
    if (THREAD && THREAD->interrupted && istate_from_uspace(istate))
93
        thread_exit();
102
        thread_exit();
94
}
103
}
95
 
104