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