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(); |