Rev 432 | Rev 434 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 432 | Rev 433 | ||
---|---|---|---|
Line 27... | Line 27... | ||
27 | * |
27 | * |
28 | */ |
28 | */ |
29 | 29 | ||
30 | #include <arch/interrupt.h> |
30 | #include <arch/interrupt.h> |
31 | #include <panic.h> |
31 | #include <panic.h> |
- | 32 | #include <print.h> |
|
32 | #include <arch/types.h> |
33 | #include <arch/types.h> |
33 | #include <arch/asm.h> |
34 | #include <arch/asm.h> |
34 | #include <arch/barrier.h> |
35 | #include <arch/barrier.h> |
35 | #include <arch/register.h> |
36 | #include <arch/register.h> |
- | 37 | #include <arch.h> |
|
36 | 38 | ||
37 | void external_interrupt(void) |
39 | void external_interrupt(void) |
38 | { |
40 | { |
39 | __u8 ivr; |
41 | cr_ivr_t ivr; |
40 | 42 | ||
41 | srlz_d(); |
- | |
42 | ivr = ivr_read() & CR_IVR_MASK; |
43 | ivr.value = ivr_read(); |
43 | srlz_d(); |
44 | srlz_d(); |
44 | 45 | ||
45 | switch(ivr) { |
46 | switch(ivr.value) { |
- | 47 | case INTERRUPT_TIMER: |
|
- | 48 | panic("cpu%d: timer interrupt\n", CPU->id); |
|
- | 49 | break; |
|
- | 50 | case INTERRUPT_SPURIOUS: |
|
- | 51 | printf("cpu%d: spurious interrupt\n", CPU->id); |
|
- | 52 | break; |
|
46 | default: |
53 | default: |
47 | panic("\nUnhandled External Interrupt Vector %d\n", ivr); |
54 | panic("\nUnhandled External Interrupt Vector %d\n", ivr.vector); |
- | 55 | break; |
|
48 | } |
56 | } |
49 | } |
57 | } |