Rev 1288 | Rev 1702 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1288 | Rev 1595 | ||
---|---|---|---|
Line 84... | Line 84... | ||
84 | __u64 cs; |
84 | __u64 cs; |
85 | __u64 rflags; |
85 | __u64 rflags; |
86 | __u64 stack[]; /* Additional data on stack */ |
86 | __u64 stack[]; /* Additional data on stack */ |
87 | }; |
87 | }; |
88 | 88 | ||
- | 89 | /** Return true if exception happened while in userspace */ |
|
- | 90 | static inline int istate_from_uspace(istate_t *istate) |
|
- | 91 | { |
|
- | 92 | return !(istate->rip & 0x8000000000000000); |
|
- | 93 | } |
|
- | 94 | ||
89 | static inline void istate_set_retaddr(istate_t *istate, __address retaddr) |
95 | static inline void istate_set_retaddr(istate_t *istate, __address retaddr) |
90 | { |
96 | { |
91 | istate->rip = retaddr; |
97 | istate->rip = retaddr; |
92 | } |
98 | } |
- | 99 | static inline __native istate_get_pc(istate_t *istate) |
|
- | 100 | { |
|
- | 101 | return istate->rip; |
|
- | 102 | } |
|
93 | 103 | ||
94 | extern void (* disable_irqs_function)(__u16 irqmask); |
104 | extern void (* disable_irqs_function)(__u16 irqmask); |
95 | extern void (* enable_irqs_function)(__u16 irqmask); |
105 | extern void (* enable_irqs_function)(__u16 irqmask); |
96 | extern void (* eoi_function)(void); |
106 | extern void (* eoi_function)(void); |
97 | 107 |