Rev 2071 | Rev 2134 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2071 | Rev 2089 | ||
|---|---|---|---|
| Line 34... | Line 34... | ||
| 34 | */ |
34 | */ |
| 35 | 35 | ||
| 36 | #ifndef KERN_sparc64_INTERRUPT_H_ |
36 | #ifndef KERN_sparc64_INTERRUPT_H_ |
| 37 | #define KERN_sparc64_INTERRUPT_H_ |
37 | #define KERN_sparc64_INTERRUPT_H_ |
| 38 | 38 | ||
| 39 | #include <typedefs.h> |
- | |
| 40 | #include <arch/types.h> |
39 | #include <arch/types.h> |
| 41 | #include <arch/regdef.h> |
40 | #include <arch/regdef.h> |
| 42 | 41 | ||
| 43 | #define IVT_ITEMS 15 |
42 | #define IVT_ITEMS 15 |
| 44 | #define IVT_FIRST 1 |
43 | #define IVT_FIRST 1 |
| Line 48... | Line 47... | ||
| 48 | 47 | ||
| 49 | enum { |
48 | enum { |
| 50 | IPI_TLB_SHOOTDOWN = VECTOR_TLB_SHOOTDOWN_IPI |
49 | IPI_TLB_SHOOTDOWN = VECTOR_TLB_SHOOTDOWN_IPI |
| 51 | }; |
50 | }; |
| 52 | 51 | ||
| 53 | struct istate { |
52 | typedef struct { |
| 54 | uint64_t tnpc; |
53 | uint64_t tnpc; |
| 55 | uint64_t tpc; |
54 | uint64_t tpc; |
| 56 | uint64_t tstate; |
55 | uint64_t tstate; |
| 57 | }; |
56 | } istate_t; |
| 58 | 57 | ||
| 59 | static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr) |
58 | static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr) |
| 60 | { |
59 | { |
| 61 | istate->tpc = retaddr; |
60 | istate->tpc = retaddr; |
| 62 | } |
61 | } |
| Line 69... | Line 68... | ||
| 69 | static inline unative_t istate_get_pc(istate_t *istate) |
68 | static inline unative_t istate_get_pc(istate_t *istate) |
| 70 | { |
69 | { |
| 71 | return istate->tpc; |
70 | return istate->tpc; |
| 72 | } |
71 | } |
| 73 | 72 | ||
| 74 | - | ||
| 75 | extern void interrupt_register(int n, const char *name, iroutine f); |
- | |
| 76 | - | ||
| 77 | #endif |
73 | #endif |
| 78 | 74 | ||
| 79 | /** @} |
75 | /** @} |
| 80 | */ |
76 | */ |