Changeset df3c6f02 in mainline for kernel/arch/ia64/include
- Timestamp:
- 2011-05-31T22:58:56Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d362410
- Parents:
- 82582e4 (diff), 4ce90544 (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/ia64/include
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/include/arch.h
r82582e4 rdf3c6f02 36 36 #define KERN_ia64_ARCH_H_ 37 37 38 #define LOADED_PROG_STACK_PAGES_NO 239 40 38 #include <arch/drivers/ski.h> 41 39 -
kernel/arch/ia64/include/asm.h
r82582e4 rdf3c6f02 122 122 } 123 123 124 /** Return base address of current stack 125 * 126 * Return the base address of the current stack. 127 * The stack is assumed to be STACK_SIZE long. 128 * The stack must start on page boundary. 129 * 124 /** Return base address of current memory stack. 125 * 126 * The memory stack is assumed to be STACK_SIZE / 2 long. Note that there is 127 * also the RSE stack, which takes up the upper half of STACK_SIZE. 128 * The memory stack must start on page boundary. 130 129 */ 131 130 NO_TRACE static inline uintptr_t get_stack_base(void) 132 131 { 133 uint64_t v; 134 135 /* 136 * I'm not sure why but this code inlines badly 137 * in scheduler, resulting in THE shifting about 138 * 16B and causing kernel panic. 139 * 140 * asm volatile ( 141 * "and %[value] = %[mask], r12" 142 * : [value] "=r" (v) 143 * : [mask] "r" (~(STACK_SIZE - 1)) 144 * ); 145 * return v; 146 * 147 * The following code has the same semantics but 148 * inlines correctly. 149 * 150 */ 132 uint64_t value; 151 133 152 134 asm volatile ( 153 135 "mov %[value] = r12" 154 : [value] "=r" (v )155 ); 156 157 return (v & (~(STACK_SIZE- 1)));136 : [value] "=r" (value) 137 ); 138 139 return (value & (~(STACK_SIZE / 2 - 1))); 158 140 } 159 141 -
kernel/arch/ia64/include/context.h
r82582e4 rdf3c6f02 49 49 #define SP_DELTA (0 + ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT)) 50 50 51 /* RSE stack starts at the bottom of memory stack . */51 /* RSE stack starts at the bottom of memory stack, hence the division by 2. */ 52 52 #define context_set(c, _pc, stack, size) \ 53 53 do { \ 54 54 (c)->pc = (uintptr_t) _pc; \ 55 (c)->bsp = ((uintptr_t) stack) + ALIGN_UP((size ), REGISTER_STACK_ALIGNMENT);\55 (c)->bsp = ((uintptr_t) stack) + ALIGN_UP((size / 2), REGISTER_STACK_ALIGNMENT); \ 56 56 (c)->ar_pfs &= PFM_MASK; \ 57 (c)->sp = ((uintptr_t) stack) + ALIGN_UP((size ), STACK_ALIGNMENT) - SP_DELTA;\57 (c)->sp = ((uintptr_t) stack) + ALIGN_UP((size / 2), STACK_ALIGNMENT) - SP_DELTA; \ 58 58 } while (0); 59 59 -
kernel/arch/ia64/include/mm/as.h
r82582e4 rdf3c6f02 38 38 #define KERNEL_ADDRESS_SPACE_SHADOWED_ARCH 0 39 39 40 #define KERNEL_ADDRESS_SPACE_START_ARCH ((unsigned long) 0xe000000000000000ULL)41 #define KERNEL_ADDRESS_SPACE_END_ARCH ((unsigned long) 0xffffffffffffffffULL)42 #define USER_ADDRESS_SPACE_START_ARCH ((unsigned long) 0x0000000000000000ULL)43 #define USER_ADDRESS_SPACE_END_ARCH ((unsigned long) 0xdfffffffffffffffULL)40 #define KERNEL_ADDRESS_SPACE_START_ARCH UINT64_C(0xe000000000000000) 41 #define KERNEL_ADDRESS_SPACE_END_ARCH UINT64_C(0xffffffffffffffff) 42 #define USER_ADDRESS_SPACE_START_ARCH UINT64_C(0x0000000000000000) 43 #define USER_ADDRESS_SPACE_END_ARCH UINT64_C(0xdfffffffffffffff) 44 44 45 #define USTACK_ADDRESS_ARCH 0x0000000ff0000000ULL45 #define USTACK_ADDRESS_ARCH UINT64_C(0x0000000ff0000000) 46 46 47 47 typedef struct { -
kernel/arch/ia64/include/mm/frame.h
r82582e4 rdf3c6f02 49 49 #define physmem_print() 50 50 51 #define ARCH_STACK_FRAMES TWO_FRAMES52 53 51 #endif /* __ASM__ */ 54 52 #endif /* KERNEL */ -
kernel/arch/ia64/include/register.h
r82582e4 rdf3c6f02 60 60 #define PSR_CPL_SHIFT 32 61 61 #define PSR_CPL_MASK_SHIFTED 3 62 63 #define PSR_RI_SHIFT 41 64 #define PSR_RI_LEN 2 62 65 63 66 #define PFM_MASK (~0x3fffffffff) -
kernel/arch/ia64/include/types.h
r82582e4 rdf3c6f02 37 37 38 38 typedef uint64_t size_t; 39 typedef int64_t ssize_t; 39 40 40 41 typedef uint64_t uintptr_t;
Note:
See TracChangeset
for help on using the changeset viewer.
