Rev 666 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 666 | Rev 667 | ||
|---|---|---|---|
| Line 28... | Line 28... | ||
| 28 | 28 | ||
| 29 | /** |
29 | /** |
| 30 | * This file contains interrupt vector trap handler. |
30 | * This file contains interrupt vector trap handler. |
| 31 | */ |
31 | */ |
| 32 | 32 | ||
| 33 | #ifndef __sparc64_INTERRUPT_H__ |
33 | #ifndef __sparc64_TRAP_INTERRUPT_H__ |
| 34 | #define __sparc64_INTERRUPT_H__ |
34 | #define __sparc64_TRAP_INTERRUPT_H__ |
| 35 | 35 | ||
| 36 | #include <arch/trap/trap_table.h> |
36 | #include <arch/trap/trap_table.h> |
| 37 | #include <arch/stack.h> |
37 | #include <arch/stack.h> |
| 38 | 38 | ||
| 39 | #define TT_INTERRUPT_LEVEL_1 0x41 |
39 | #define TT_INTERRUPT_LEVEL_1 0x41 |
| Line 57... | Line 57... | ||
| 57 | #define INTERRUPT_LEVEL_N_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
57 | #define INTERRUPT_LEVEL_N_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
| 58 | #define INTERRUPT_VECTOR_TRAP_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
58 | #define INTERRUPT_VECTOR_TRAP_HANDLER_SIZE TRAP_TABLE_ENTRY_SIZE |
| 59 | 59 | ||
| 60 | #ifdef __ASM__ |
60 | #ifdef __ASM__ |
| 61 | .macro INTERRUPT_LEVEL_N_HANDLER n |
61 | .macro INTERRUPT_LEVEL_N_HANDLER n |
| 62 | save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp |
62 | save %sp, -PREEMPTIBLE_HANDLER_STACK_FRAME_SIZE, %sp |
| 63 | mov \n - 1, %o0 |
63 | mov \n - 1, %o0 |
| 64 | mov %fp, %o1 |
64 | mov %fp, %o1 |
| 65 | SAVING_HANDLER exc_dispatch |
65 | PREEMPTIBLE_HANDLER exc_dispatch |
| 66 | .endm |
66 | .endm |
| 67 | 67 | ||
| 68 | .macro INTERRUPT_VECTOR_TRAP_HANDLER |
68 | .macro INTERRUPT_VECTOR_TRAP_HANDLER |
| 69 | retry |
69 | retry |
| 70 | .endm |
70 | .endm |