Rev 2439 | Rev 3790 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2439 | Rev 3788 | ||
|---|---|---|---|
| Line 93... | Line 93... | ||
| 93 | 93 | ||
| 94 | } |
94 | } |
| 95 | 95 | ||
| 96 | static void null_interrupt(int n, istate_t *istate) |
96 | static void null_interrupt(int n, istate_t *istate) |
| 97 | { |
97 | { |
| 98 | fault_if_from_uspace(istate, "unserviced interrupt: %d", n); |
98 | fault_if_from_uspace(istate, "Unserviced interrupt: %d", n); |
| 99 | 99 | ||
| 100 | decode_istate(istate); |
100 | decode_istate(istate); |
| 101 | panic("unserviced interrupt: %d\n", n); |
101 | panic("Unserviced interrupt: %d\n", n); |
| 102 | } |
102 | } |
| 103 | 103 | ||
| 104 | /** General Protection Fault. */ |
104 | /** General Protection Fault. */ |
| 105 | static void gp_fault(int n __attribute__((unused)), istate_t *istate) |
105 | static void gp_fault(int n __attribute__((unused)), istate_t *istate) |
| 106 | { |
106 | { |
| Line 120... | Line 120... | ||
| 120 | * the instruction. |
120 | * the instruction. |
| 121 | */ |
121 | */ |
| 122 | io_perm_bitmap_install(); |
122 | io_perm_bitmap_install(); |
| 123 | return; |
123 | return; |
| 124 | } |
124 | } |
| 125 | fault_if_from_uspace(istate, "general protection fault"); |
125 | fault_if_from_uspace(istate, "General protection fault"); |
| 126 | } |
126 | } |
| 127 | 127 | ||
| 128 | decode_istate(istate); |
128 | decode_istate(istate); |
| 129 | panic("general protection fault\n"); |
129 | panic("General protection fault\n"); |
| 130 | } |
130 | } |
| 131 | 131 | ||
| 132 | static void ss_fault(int n __attribute__((unused)), istate_t *istate) |
132 | static void ss_fault(int n __attribute__((unused)), istate_t *istate) |
| 133 | { |
133 | { |
| 134 | fault_if_from_uspace(istate, "stack fault"); |
134 | fault_if_from_uspace(istate, "Stack fault"); |
| 135 | 135 | ||
| 136 | decode_istate(istate); |
136 | decode_istate(istate); |
| 137 | panic("stack fault\n"); |
137 | panic("Stack fault\n"); |
| 138 | } |
138 | } |
| 139 | 139 | ||
| 140 | static void simd_fp_exception(int n __attribute__((unused)), istate_t *istate) |
140 | static void simd_fp_exception(int n __attribute__((unused)), istate_t *istate) |
| 141 | { |
141 | { |
| 142 | uint32_t mxcsr; |
142 | uint32_t mxcsr; |
| Line 155... | Line 155... | ||
| 155 | static void nm_fault(int n __attribute__((unused)), istate_t *istate __attribute__((unused))) |
155 | static void nm_fault(int n __attribute__((unused)), istate_t *istate __attribute__((unused))) |
| 156 | { |
156 | { |
| 157 | #ifdef CONFIG_FPU_LAZY |
157 | #ifdef CONFIG_FPU_LAZY |
| 158 | scheduler_fpu_lazy_request(); |
158 | scheduler_fpu_lazy_request(); |
| 159 | #else |
159 | #else |
| 160 | fault_if_from_uspace(istate, "fpu fault"); |
160 | fault_if_from_uspace(istate, "FPU fault"); |
| 161 | panic("fpu fault"); |
161 | panic("FPU fault"); |
| 162 | #endif |
162 | #endif |
| 163 | } |
163 | } |
| 164 | 164 | ||
| 165 | #ifdef CONFIG_SMP |
165 | #ifdef CONFIG_SMP |
| 166 | static void tlb_shootdown_ipi(int n __attribute__((unused)), istate_t *istate __attribute__((unused))) |
166 | static void tlb_shootdown_ipi(int n __attribute__((unused)), istate_t *istate __attribute__((unused))) |