Changeset 2902e1bb in mainline for kernel/arch
- Timestamp:
- 2012-06-13T13:17:46Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1d4024cf, 375e501
- Parents:
- faba839
- Location:
- kernel/arch
- Files:
-
- 9 edited
-
amd64/src/userspace.c (modified) (3 diffs)
-
arm32/src/userspace.c (modified) (1 diff)
-
ia32/src/userspace.c (modified) (2 diffs)
-
ia64/src/ia64.c (modified) (1 diff)
-
mips32/src/mips32.c (modified) (1 diff)
-
mips64/src/mips64.c (modified) (1 diff)
-
ppc32/src/ppc32.c (modified) (1 diff)
-
sparc64/src/sun4u/sparc64.c (modified) (1 diff)
-
sparc64/src/sun4v/sparc64.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/amd64/src/userspace.c
rfaba839 r2902e1bb 55 55 asm volatile ( 56 56 "pushq %[udata_des]\n" 57 "pushq %[stack_ size]\n"57 "pushq %[stack_top]\n" 58 58 "pushq %[ipl]\n" 59 59 "pushq %[utext_des]\n" … … 65 65 "iretq\n" 66 66 :: [udata_des] "i" (GDT_SELECTOR(UDATA_DES) | PL_USER), 67 [stack_size] "r" (kernel_uarg->uspace_stack + STACK_SIZE), 67 [stack_top] "r" ((uint8_t *) kernel_uarg->uspace_stack + 68 kernel_uarg->uspace_stack_size), 68 69 [ipl] "r" (ipl), 69 70 [utext_des] "i" (GDT_SELECTOR(UTEXT_DES) | PL_USER), … … 74 75 75 76 /* Unreachable */ 76 while (1) 77 ; 77 while (1); 78 78 } 79 79 -
kernel/arch/arm32/src/userspace.c
rfaba839 r2902e1bb 92 92 93 93 /* set user stack */ 94 ustate.sp = ((uint32_t)kernel_uarg->uspace_stack) + STACK_SIZE; 94 ustate.sp = ((uint32_t) kernel_uarg->uspace_stack) + 95 kernel_uarg->uspace_stack_size; 95 96 96 97 /* set where uspace execution starts */ -
kernel/arch/ia32/src/userspace.c
rfaba839 r2902e1bb 63 63 64 64 "pushl %[udata_des]\n" 65 "pushl %[stack_ size]\n"65 "pushl %[stack_top]\n" 66 66 "pushl %[ipl]\n" 67 67 "pushl %[utext_des]\n" … … 75 75 : 76 76 : [udata_des] "i" (GDT_SELECTOR(UDATA_DES) | PL_USER), 77 [stack_size] "r" ((uint8_t *) kernel_uarg->uspace_stack + STACK_SIZE), 77 [stack_top] "r" ((uint8_t *) kernel_uarg->uspace_stack + 78 kernel_uarg->uspace_stack_size), 78 79 [ipl] "r" (ipl), 79 80 [utext_des] "i" (GDT_SELECTOR(UTEXT_DES) | PL_USER), -
kernel/arch/ia64/src/ia64.c
rfaba839 r2902e1bb 232 232 * 233 233 * When calculating stack addresses, mind the stack split between the 234 * memory stack and the RSE stack. Each occuppies STACK_SIZE / 2 bytes. 234 * memory stack and the RSE stack. Each occuppies 235 * uspace_stack_size / 2 bytes. 235 236 */ 236 237 switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry, 237 ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE / 2 - 238 ((uintptr_t) kernel_uarg->uspace_stack) + 239 kernel_uarg->uspace_stack_size / 2 - 238 240 ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT), 239 ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE / 2, 241 ((uintptr_t) kernel_uarg->uspace_stack) + 242 kernel_uarg->uspace_stack_size / 2, 240 243 (uintptr_t) kernel_uarg->uspace_uarg, psr.value, rsc.value); 241 242 while (1) 243 ; 244 245 while (1); 244 246 } 245 247 -
kernel/arch/mips32/src/mips32.c
rfaba839 r2902e1bb 211 211 cp0_status_um_bit | cp0_status_ie_enabled_bit)); 212 212 cp0_epc_write((uintptr_t) kernel_uarg->uspace_entry); 213 userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + STACK_SIZE), 213 userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + 214 kernel_uarg->uspace_stack_size), 214 215 (uintptr_t) kernel_uarg->uspace_uarg, 215 216 (uintptr_t) kernel_uarg->uspace_entry); -
kernel/arch/mips64/src/mips64.c
rfaba839 r2902e1bb 188 188 cp0_status_um_bit | cp0_status_ie_enabled_bit)); 189 189 cp0_epc_write((uintptr_t) kernel_uarg->uspace_entry); 190 userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + STACK_SIZE), 190 userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + 191 kernel_uarg->uspace_stack_size), 191 192 (uintptr_t) kernel_uarg->uspace_uarg, 192 193 (uintptr_t) kernel_uarg->uspace_entry); -
kernel/arch/ppc32/src/ppc32.c
rfaba839 r2902e1bb 269 269 { 270 270 userspace_asm((uintptr_t) kernel_uarg->uspace_uarg, 271 (uintptr_t) kernel_uarg->uspace_stack + STACK_SIZE - SP_DELTA, 271 (uintptr_t) kernel_uarg->uspace_stack + 272 kernel_uarg->uspace_stack_size - SP_DELTA, 272 273 (uintptr_t) kernel_uarg->uspace_entry); 273 274 -
kernel/arch/sparc64/src/sun4u/sparc64.c
rfaba839 r2902e1bb 156 156 (void) interrupts_disable(); 157 157 switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry, 158 ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE 159 - (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), 158 ((uintptr_t) kernel_uarg->uspace_stack) + 159 kernel_uarg->uspace_stack_size - 160 (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), 160 161 (uintptr_t) kernel_uarg->uspace_uarg); 161 162 for (;;) 163 ; 164 /* not reached */ 162 163 /* Not reached */ 164 while (1); 165 165 } 166 166 -
kernel/arch/sparc64/src/sun4v/sparc64.c
rfaba839 r2902e1bb 154 154 (void) interrupts_disable(); 155 155 switch_to_userspace((uintptr_t) kernel_uarg->uspace_entry, 156 ((uintptr_t) kernel_uarg->uspace_stack) + STACK_SIZE 157 - (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), 156 ((uintptr_t) kernel_uarg->uspace_stack) + 157 kernel_uarg->uspace_stack_size - 158 (ALIGN_UP(STACK_ITEM_SIZE, STACK_ALIGNMENT) + STACK_BIAS), 158 159 (uintptr_t) kernel_uarg->uspace_uarg); 159 160 for (;;) 161 ; 162 /* not reached */ 160 161 /* Not reached */ 162 while (1); 163 163 } 164 164
Note:
See TracChangeset
for help on using the changeset viewer.
