Rev 664 | Rev 667 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 664 | Rev 666 | ||
---|---|---|---|
Line 32... | Line 32... | ||
32 | 32 | ||
33 | #ifndef __sparc64_INTERRUPT_H__ |
33 | #ifndef __sparc64_INTERRUPT_H__ |
34 | #define __sparc64_INTERRUPT_H__ |
34 | #define __sparc64_INTERRUPT_H__ |
35 | 35 | ||
36 | #include <arch/trap/trap_table.h> |
36 | #include <arch/trap/trap_table.h> |
- | 37 | #include <arch/stack.h> |
|
37 | 38 | ||
38 | #define TT_INTERRUPT_LEVEL_1 0x41 |
39 | #define TT_INTERRUPT_LEVEL_1 0x41 |
39 | #define TT_INTERRUPT_LEVEL_2 0x42 |
40 | #define TT_INTERRUPT_LEVEL_2 0x42 |
40 | #define TT_INTERRUPT_LEVEL_3 0x43 |
41 | #define TT_INTERRUPT_LEVEL_3 0x43 |
41 | #define TT_INTERRUPT_LEVEL_4 0x44 |
42 | #define TT_INTERRUPT_LEVEL_4 0x44 |
Line 56... | Line 57... | ||
56 | #define INTERRUPT_LEVEL_N_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
57 | #define INTERRUPT_LEVEL_N_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
57 | #define INTERRUPT_VECTOR_TRAP_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
58 | #define INTERRUPT_VECTOR_TRAP_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
58 | 59 | ||
59 | #ifdef __ASM__ |
60 | #ifdef __ASM__ |
60 | .macro INTERRUPT_LEVEL_N_HANDLER n |
61 | .macro INTERRUPT_LEVEL_N_HANDLER n |
61 | save %sp, -128, %sp |
62 | save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp |
62 | mov \n - 1, %o0 |
63 | mov \n - 1, %o0 |
63 | call exc_dispatch |
- | |
64 | mov %fp, %o1 |
64 | mov %fp, %o1 |
65 | restore |
65 | SAVING_HANDLER exc_dispatch |
66 | retry |
- | |
67 | .endm |
66 | .endm |
68 | 67 | ||
69 | .macro INTERRUPT_VECTOR_TRAP_HANDLER |
68 | .macro INTERRUPT_VECTOR_TRAP_HANDLER |
70 | retry |
69 | retry |
71 | .endm |
70 | .endm |