38,6 → 38,7 |
#define KERN_arm32_EXCEPTION_H_ |
|
#include <arch/types.h> |
#include <arch/regutils.h> |
|
#define HIGH_EXCEPTION_VECTORS |
|
91,18 → 92,17 |
|
static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr) |
{ |
istate->lr = retaddr; |
istate->pc = retaddr; |
} |
|
/** Return true if exception happened while in userspace */ |
static inline int istate_from_uspace(istate_t *istate) |
{ |
return !(istate->lr & 0x80000000); |
return 0; |
return (istate->spsr & STATUS_REG_MODE_MASK) == USER_MODE; |
} |
static inline unative_t istate_get_pc(istate_t *istate) |
{ |
return istate->lr; |
return istate->pc; |
} |
|
extern void setup_exception_stacks(void); |