Rev 3788 | Rev 3880 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3788 | Rev 3790 | ||
---|---|---|---|
Line 184... | Line 184... | ||
184 | default: |
184 | default: |
185 | desc = "unknown"; |
185 | desc = "unknown"; |
186 | break; |
186 | break; |
187 | } |
187 | } |
188 | 188 | ||
189 | fault_if_from_uspace(istate, "General Exception (%s)", desc); |
189 | fault_if_from_uspace(istate, "General Exception (%s).", desc); |
190 | 190 | ||
191 | dump_interrupted_context(istate); |
191 | dump_interrupted_context(istate); |
192 | panic("General Exception (%s)\n", desc); |
192 | panic("General Exception (%s).", desc); |
193 | } |
193 | } |
194 | 194 | ||
195 | void disabled_fp_register(uint64_t vector, istate_t *istate) |
195 | void disabled_fp_register(uint64_t vector, istate_t *istate) |
196 | { |
196 | { |
197 | #ifdef CONFIG_FPU_LAZY |
197 | #ifdef CONFIG_FPU_LAZY |
198 | scheduler_fpu_lazy_request(); |
198 | scheduler_fpu_lazy_request(); |
199 | #else |
199 | #else |
200 | fault_if_from_uspace(istate, "Interruption: %#hx (%s)", |
200 | fault_if_from_uspace(istate, "Interruption: %#hx (%s).", |
201 | (uint16_t) vector, vector_to_string(vector)); |
201 | (uint16_t) vector, vector_to_string(vector)); |
202 | dump_interrupted_context(istate); |
202 | dump_interrupted_context(istate); |
203 | panic("Interruption: %#hx (%s)\n", (uint16_t) vector, |
203 | panic("Interruption: %#hx (%s).", (uint16_t) vector, |
204 | vector_to_string(vector)); |
204 | vector_to_string(vector)); |
205 | #endif |
205 | #endif |
206 | } |
206 | } |
207 | 207 | ||
208 | void nop_handler(uint64_t vector, istate_t *istate) |
208 | void nop_handler(uint64_t vector, istate_t *istate) |
Line 226... | Line 226... | ||
226 | istate->in3, istate->in4, istate->in5, istate->in6); |
226 | istate->in3, istate->in4, istate->in5, istate->in6); |
227 | } |
227 | } |
228 | 228 | ||
229 | void universal_handler(uint64_t vector, istate_t *istate) |
229 | void universal_handler(uint64_t vector, istate_t *istate) |
230 | { |
230 | { |
231 | fault_if_from_uspace(istate, "Interruption: %#hx (%s)", |
231 | fault_if_from_uspace(istate, "Interruption: %#hx (%s).", |
232 | (uint16_t) vector, vector_to_string(vector)); |
232 | (uint16_t) vector, vector_to_string(vector)); |
233 | dump_interrupted_context(istate); |
233 | dump_interrupted_context(istate); |
234 | panic("Interruption: %#hx (%s)\n", (uint16_t) vector, |
234 | panic("Interruption: %#hx (%s).", (uint16_t) vector, |
235 | vector_to_string(vector)); |
235 | vector_to_string(vector)); |
236 | } |
236 | } |
237 | 237 | ||
238 | static void end_of_local_irq(void) |
238 | static void end_of_local_irq(void) |
239 | { |
239 | { |
Line 267... | Line 267... | ||
267 | irq = irq_dispatch_and_lock(ivr.vector); |
267 | irq = irq_dispatch_and_lock(ivr.vector); |
268 | if (irq) { |
268 | if (irq) { |
269 | irq->handler(irq, irq->arg); |
269 | irq->handler(irq, irq->arg); |
270 | spinlock_unlock(&irq->lock); |
270 | spinlock_unlock(&irq->lock); |
271 | } else { |
271 | } else { |
272 | panic("\nUnhandled Internal Timer Interrupt (%d)\n", |
272 | panic("Unhandled Internal Timer Interrupt (%d).", |
273 | ivr.vector); |
273 | ivr.vector); |
274 | } |
274 | } |
275 | break; |
275 | break; |
276 | default: |
276 | default: |
277 | irq = irq_dispatch_and_lock(ivr.vector); |
277 | irq = irq_dispatch_and_lock(ivr.vector); |