Changeset 8fb1bf82 in mainline for kernel/arch/abs32le/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/abs32le/include
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/abs32le/include/interrupt.h
ra93d79a r8fb1bf82 37 37 38 38 #include <typedefs.h> 39 #include <verify.h> 40 #include <trace.h> 39 #include <arch/istate.h> 41 40 42 41 #define IVT_ITEMS 0 … … 45 44 #define VECTOR_TLB_SHOOTDOWN_IPI 0 46 45 47 /*48 * On real hardware this stores the registers which49 * need to be preserved during interupts.50 */51 typedef struct istate {52 uintptr_t ip;53 uintptr_t fp;54 uint32_t stack[];55 } istate_t;56 57 NO_TRACE static inline int istate_from_uspace(istate_t *istate)58 REQUIRES_EXTENT_MUTABLE(istate)59 {60 /* On real hardware this checks whether the interrupted61 context originated from user space. */62 63 return !(istate->ip & 0x80000000);64 }65 66 NO_TRACE static inline void istate_set_retaddr(istate_t *istate,67 uintptr_t retaddr)68 WRITES(&istate->ip)69 {70 /* On real hardware this sets the instruction pointer. */71 72 istate->ip = retaddr;73 }74 75 NO_TRACE static inline unative_t istate_get_pc(istate_t *istate)76 REQUIRES_EXTENT_MUTABLE(istate)77 {78 /* On real hardware this returns the instruction pointer. */79 80 return istate->ip;81 }82 83 NO_TRACE static inline unative_t istate_get_fp(istate_t *istate)84 REQUIRES_EXTENT_MUTABLE(istate)85 {86 /* On real hardware this returns the frame pointer. */87 88 return istate->fp;89 }90 91 46 #endif 92 47 -
kernel/arch/abs32le/include/mm/as.h
ra93d79a r8fb1bf82 38 38 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH 0 39 39 40 #define KERNEL_ADDRESS_SPACE_START_ARCH ((unsigned long)0x80000000)41 #define KERNEL_ADDRESS_SPACE_END_ARCH ((unsigned long)0xffffffff)42 #define USER_ADDRESS_SPACE_START_ARCH ((unsigned long)0x00000000)43 #define USER_ADDRESS_SPACE_END_ARCH ((unsigned long)0x7fffffff)40 #define KERNEL_ADDRESS_SPACE_START_ARCH UINT32_C(0x80000000) 41 #define KERNEL_ADDRESS_SPACE_END_ARCH UINT32_C(0xffffffff) 42 #define USER_ADDRESS_SPACE_START_ARCH UINT32_C(0x00000000) 43 #define USER_ADDRESS_SPACE_END_ARCH UINT32_C(0x7fffffff) 44 44 45 45 #define USTACK_ADDRESS_ARCH (USER_ADDRESS_SPACE_END_ARCH - (PAGE_SIZE - 1)) -
kernel/arch/abs32le/include/mm/page.h
ra93d79a r8fb1bf82 44 44 #ifdef KERNEL 45 45 46 #define KA2PA(x) (((uintptr_t) (x)) - 0x80000000)47 #define PA2KA(x) (((uintptr_t) (x)) + 0x80000000)46 #define KA2PA(x) (((uintptr_t) (x)) - UINT32_C(0x80000000)) 47 #define PA2KA(x) (((uintptr_t) (x)) + UINT32_C(0x80000000)) 48 48 49 49 /* … … 65 65 66 66 /* Macros calculating indices for each level. */ 67 #define PTL0_INDEX_ARCH(vaddr) (((vaddr) >> 22) & 0x3ff )67 #define PTL0_INDEX_ARCH(vaddr) (((vaddr) >> 22) & 0x3ffU) 68 68 #define PTL1_INDEX_ARCH(vaddr) 0 69 69 #define PTL2_INDEX_ARCH(vaddr) 0 70 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 12) & 0x3ff )70 #define PTL3_INDEX_ARCH(vaddr) (((vaddr) >> 12) & 0x3ffU) 71 71 72 72 /* Get PTE address accessors for each level. */ -
kernel/arch/abs32le/include/types.h
ra93d79a r8fb1bf82 53 53 } fncptr_t; 54 54 55 #define PRIp "x" /**< Format for uintptr_t. */ 56 #define PRIs "u" /**< Format for size_t. */ 57 58 #define PRId8 "d" /**< Format for int8_t. */ 59 #define PRId16 "d" /**< Format for int16_t. */ 60 #define PRId32 "d" /**< Format for int32_t. */ 61 #define PRId64 "lld" /**< Format for int64_t. */ 62 #define PRIdn "d" /**< Format for native_t. */ 63 64 #define PRIu8 "u" /**< Format for uint8_t. */ 65 #define PRIu16 "u" /**< Format for uint16_t. */ 66 #define PRIu32 "u" /**< Format for uint32_t. */ 67 #define PRIu64 "llu" /**< Format for uint64_t. */ 68 #define PRIun "u" /**< Format for unative_t. */ 69 70 #define PRIx8 "x" /**< Format for hexadecimal (u)int8_t. */ 71 #define PRIx16 "x" /**< Format for hexadecimal (u)int16_t. */ 72 #define PRIx32 "x" /**< Format for hexadecimal (u)uint32_t. */ 73 #define PRIx64 "llx" /**< Format for hexadecimal (u)int64_t. */ 74 #define PRIxn "x" /**< Format for hexadecimal (u)native_t. */ 55 #define PRIp PRIx32 /**< Format for uintptr_t. */ 56 #define PRIs PRIu32 /**< Format for size_t. */ 57 #define PRIdn PRId32 /**< Format for native_t. */ 58 #define PRIun PRIu32 /**< Format for unative_t. */ 59 #define PRIxn PRIx32 /**< Format for hexadecimal unative_t. */ 75 60 76 61 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
