Changeset 89c57b6 in mainline for kernel/arch/mips32/include/exception.h
- Timestamp:
- 2011-04-13T14:45:41Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 88634420
- Parents:
- cefb126 (diff), 17279ead (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/include/exception.h
rcefb126 r89c57b6 27 27 */ 28 28 29 /** @addtogroup mips32 29 /** @addtogroup mips32 30 30 * @{ 31 31 */ … … 37 37 38 38 #include <typedefs.h> 39 #include <arch/ cp0.h>39 #include <arch/istate.h> 40 40 41 #define EXC_Int 0 42 #define EXC_Mod 1 43 #define EXC_TLBL 2 44 #define EXC_TLBS 3 45 #define EXC_AdEL 4 46 #define EXC_AdES 5 47 #define EXC_IBE 6 48 #define EXC_DBE 7 49 #define EXC_Sys 8 50 #define EXC_Bp 9 51 #define EXC_RI 10 52 #define EXC_CpU 11 53 #define EXC_Ov 12 54 #define EXC_Tr 13 55 #define EXC_VCEI 14 56 #define EXC_FPE 15 57 #define EXC_WATCH 23 58 #define EXC_VCED 31 59 60 typedef struct istate { 61 uint32_t at; 62 uint32_t v0; 63 uint32_t v1; 64 uint32_t a0; 65 uint32_t a1; 66 uint32_t a2; 67 uint32_t a3; 68 uint32_t t0; 69 uint32_t t1; 70 uint32_t t2; 71 uint32_t t3; 72 uint32_t t4; 73 uint32_t t5; 74 uint32_t t6; 75 uint32_t t7; 76 uint32_t t8; 77 uint32_t t9; 78 uint32_t gp; 79 uint32_t sp; 80 uint32_t ra; 81 82 uint32_t lo; 83 uint32_t hi; 84 85 uint32_t status; /* cp0_status */ 86 uint32_t epc; /* cp0_epc */ 87 uint32_t k1; /* We use it as thread-local pointer */ 88 } istate_t; 89 90 static inline void istate_set_retaddr(istate_t *istate, uintptr_t retaddr) 91 { 92 istate->epc = retaddr; 93 } 94 95 /** Return true if exception happened while in userspace */ 96 static inline int istate_from_uspace(istate_t *istate) 97 { 98 return istate->status & cp0_status_um_bit; 99 } 100 static inline unative_t istate_get_pc(istate_t *istate) 101 { 102 return istate->epc; 103 } 104 static inline unative_t istate_get_fp(istate_t *istate) 105 { 106 return 0; /* FIXME */ 107 } 41 #define EXC_Int 0 42 #define EXC_Mod 1 43 #define EXC_TLBL 2 44 #define EXC_TLBS 3 45 #define EXC_AdEL 4 46 #define EXC_AdES 5 47 #define EXC_IBE 6 48 #define EXC_DBE 7 49 #define EXC_Sys 8 50 #define EXC_Bp 9 51 #define EXC_RI 10 52 #define EXC_CpU 11 53 #define EXC_Ov 12 54 #define EXC_Tr 13 55 #define EXC_VCEI 14 56 #define EXC_FPE 15 57 #define EXC_WATCH 23 58 #define EXC_VCED 31 108 59 109 60 extern void exception(istate_t *istate);
Note:
See TracChangeset
for help on using the changeset viewer.