Changeset 8fb1bf82 in mainline for kernel/arch/arm32/include
- Timestamp:
- 2010-11-25T13:42:50Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8df8415
- Parents:
- a93d79a (diff), eb667613 (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. - Location:
- kernel/arch/arm32/include
- Files:
-
- 1 added
- 2 edited
-
exception.h (modified) (2 diffs)
-
istate.h (added)
-
types.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm32/include/exception.h
ra93d79a r8fb1bf82 39 39 40 40 #include <typedefs.h> 41 #include <arch/regutils.h> 42 #include <trace.h> 41 #include <arch/istate.h> 43 42 44 43 /** If defined, forces using of high exception vectors. */ … … 85 84 extern uintptr_t exc_stack; 86 85 87 /** Struct representing CPU state saved when an exception occurs. */88 typedef struct istate {89 uint32_t spsr;90 uint32_t sp;91 uint32_t lr;92 93 uint32_t r0;94 uint32_t r1;95 uint32_t r2;96 uint32_t r3;97 uint32_t r4;98 uint32_t r5;99 uint32_t r6;100 uint32_t r7;101 uint32_t r8;102 uint32_t r9;103 uint32_t r10;104 uint32_t fp;105 uint32_t r12;106 107 uint32_t pc;108 } istate_t;109 110 /** Set Program Counter member of given istate structure.111 *112 * @param istate istate structure113 * @param retaddr new value of istate's PC member114 *115 */116 NO_TRACE static inline void istate_set_retaddr(istate_t *istate,117 uintptr_t retaddr)118 {119 istate->pc = retaddr;120 }121 122 /** Return true if exception happened while in userspace. */123 NO_TRACE static inline int istate_from_uspace(istate_t *istate)124 {125 return (istate->spsr & STATUS_REG_MODE_MASK) == USER_MODE;126 }127 128 /** Return Program Counter member of given istate structure. */129 NO_TRACE static inline unative_t istate_get_pc(istate_t *istate)130 {131 return istate->pc;132 }133 134 NO_TRACE static inline unative_t istate_get_fp(istate_t *istate)135 {136 return istate->fp;137 }138 139 86 extern void install_exception_handlers(void); 140 87 extern void exception_init(void); -
kernel/arch/arm32/include/types.h
ra93d79a r8fb1bf82 57 57 } fncptr_t; 58 58 59 #define PRIp "x" /**< Format for uintptr_t. */ 60 #define PRIs "u" /**< Format for size_t. */ 61 62 #define PRId8 "d" /**< Format for int8_t. */ 63 #define PRId16 "d" /**< Format for int16_t. */ 64 #define PRId32 "d" /**< Format for int32_t. */ 65 #define PRId64 "lld" /**< Format for int64_t. */ 66 #define PRIdn "d" /**< Format for native_t. */ 67 68 #define PRIu8 "u" /**< Format for uint8_t. */ 69 #define PRIu16 "u" /**< Format for uint16_t. */ 70 #define PRIu32 "u" /**< Format for uint32_t. */ 71 #define PRIu64 "llu" /**< Format for uint64_t. */ 72 #define PRIun "u" /**< Format for unative_t. */ 73 74 #define PRIx8 "x" /**< Format for hexadecimal (u)int8_t. */ 75 #define PRIx16 "x" /**< Format for hexadecimal (u)int16_t. */ 76 #define PRIx32 "x" /**< Format for hexadecimal (u)uint32_t. */ 77 #define PRIx64 "llx" /**< Format for hexadecimal (u)int64_t. */ 78 #define PRIxn "x" /**< Format for hexadecimal (u)native_t. */ 59 #define PRIp PRIx32 /**< Format for uintptr_t. */ 60 #define PRIs PRIu32 /**< Format for size_t. */ 61 #define PRIdn PRId32 /**< Format for native_t. */ 62 #define PRIun PRIu32 /**< Format for unative_t. */ 63 #define PRIxn PRIx32 /**< Format for hexadecimal unative_t. */ 79 64 80 65 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
