Changes in kernel/arch/arm64/src/arm64.c [db17889:84176f3] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/arm64/src/arm64.c
rdb17889 r84176f3 156 156 157 157 /* Set program entry. */ 158 ELR_EL1_write( kernel_uarg->uspace_entry);158 ELR_EL1_write((uint64_t) kernel_uarg->uspace_entry); 159 159 160 160 /* Set user stack. */ 161 SP_EL0_write( kernel_uarg->uspace_stack +162 kernel_uarg->uspace_stack_size) ;161 SP_EL0_write(((uint64_t) kernel_uarg->uspace_stack + 162 kernel_uarg->uspace_stack_size)); 163 163 164 164 /* Clear Thread ID register. */ … … 167 167 asm volatile ( 168 168 /* 169 * Reset the kernel stack to its base value. 170 * 171 * Clear all general-purpose registers, 172 * except x0 that holds an argument for 173 * the user space. 169 * Clear all general-purpose registers, except x0 that holds an 170 * argument for the user space. 174 171 */ 175 "mov sp, %[kstack]\n"176 172 "mov x0, %[uspace_uarg]\n" 177 173 "mov x1, #0\n" … … 206 202 "mov x30, #0\n" 207 203 "eret\n" 208 :: [uspace_uarg] "r" (kernel_uarg->uspace_uarg), 209 [kstack] "r" (((uint64_t) (THREAD->kstack)) + 210 MEM_STACK_SIZE - SP_DELTA) 204 :: [uspace_uarg] "r" (kernel_uarg->uspace_uarg) 211 205 ); 212 206
Note:
See TracChangeset
for help on using the changeset viewer.