Rev 1019 | Rev 1196 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1019 | Rev 1100 | ||
---|---|---|---|
Line 62... | Line 62... | ||
62 | printf("----------------EXCEPTION OCCURED----------------\n"); |
62 | printf("----------------EXCEPTION OCCURED----------------\n"); |
63 | 63 | ||
64 | printf("%%eip: %X (%s)\n",istate->eip,symbol); |
64 | printf("%%eip: %X (%s)\n",istate->eip,symbol); |
65 | printf("ERROR_WORD=%X\n", istate->error_word); |
65 | printf("ERROR_WORD=%X\n", istate->error_word); |
66 | printf("%%cs=%X,flags=%X\n", istate->cs, istate->eflags); |
66 | printf("%%cs=%X,flags=%X\n", istate->cs, istate->eflags); |
67 | printf("%%eax=%X, %%ebx=%X, %%ecx=%X, %%edx=%X\n", istate->eax,istate->ebx,istate->ecx,istate->edx); |
67 | printf("%%eax=%X, %%ecx=%X, %%edx=%X, %%esp=%X\n", istate->eax,istate->ecx,istate->edx,&istate->stack[0]); |
- | 68 | #ifdef CONFIG_DEBUG_ALLREGS |
|
68 | printf("%%esi=%X, %%edi=%X, %%ebp=%X, %%esp=%X\n", istate->esi,istate->edi,istate->ebp,istate->esp); |
69 | printf("%%esi=%X, %%edi=%X, %%ebp=%X, %%ebx=%X\n", istate->esi,istate->edi,istate->ebp,istate->ebx); |
- | 70 | #endif |
|
69 | printf("stack: %X, %X, %X, %X\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]); |
71 | printf("stack: %X, %X, %X, %X\n", istate->stack[0], istate->stack[1], istate->stack[2], istate->stack[3]); |
70 | printf(" %X, %X, %X, %X\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]); |
72 | printf(" %X, %X, %X, %X\n", istate->stack[4], istate->stack[5], istate->stack[6], istate->stack[7]); |
71 | } |
73 | } |
72 | 74 | ||
73 | void null_interrupt(int n, istate_t *istate) |
75 | void null_interrupt(int n, istate_t *istate) |
Line 123... | Line 125... | ||
123 | } |
125 | } |
124 | } |
126 | } |
125 | 127 | ||
126 | void syscall(int n, istate_t *istate) |
128 | void syscall(int n, istate_t *istate) |
127 | { |
129 | { |
128 | interrupts_enable(); |
- | |
129 | if (istate->esi < SYSCALL_END) |
- | |
130 | istate->eax = syscall_table[istate->esi](istate->eax, istate->ebx, istate->ecx, istate->edx); |
- | |
131 | else |
- | |
132 | panic("Undefined syscall %d", istate->esi); |
130 | panic("Obsolete syscall handler."); |
133 | interrupts_disable(); |
- | |
134 | } |
131 | } |
135 | 132 | ||
136 | void tlb_shootdown_ipi(int n, istate_t *istate) |
133 | void tlb_shootdown_ipi(int n, istate_t *istate) |
137 | { |
134 | { |
138 | trap_virtual_eoi(); |
135 | trap_virtual_eoi(); |