Changes in kernel/arch/mips32/src/mips32.c [5a5269d:63a045c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/mips32/src/mips32.c
r5a5269d r63a045c 71 71 arch_ops_t *arch_ops = &mips32_ops; 72 72 73 /* 74 * Why the linker moves the variable 64K away in assembler 75 * when not in .text section? 76 */ 77 73 78 /* Stack pointer saved when entering user mode */ 74 // FIXME: This won't work with SMP unless thread creation is globally serialized. 75 uintptr_t supervisor_sp; 79 uintptr_t supervisor_sp __attribute__((section(".text"))); 76 80 77 81 size_t cpu_count = 0; … … 103 107 #endif 104 108 105 str_cpy(bargs, CONFIG_BOOT_ARGUMENTS_BUFLEN, bootinfo->bootargs);106 107 109 /* Initialize machine_ops pointer. */ 108 110 machine_ops_init(); … … 167 169 cp0_status_write(cp0_status_read() | (cp0_status_exl_exception_bit | 168 170 cp0_status_um_bit | cp0_status_ie_enabled_bit)); 169 cp0_epc_write( kernel_uarg->uspace_entry);170 userspace_asm( kernel_uarg->uspace_stack +171 kernel_uarg->uspace_stack_size ,172 kernel_uarg->uspace_uarg,173 kernel_uarg->uspace_entry);171 cp0_epc_write((uintptr_t) kernel_uarg->uspace_entry); 172 userspace_asm(((uintptr_t) kernel_uarg->uspace_stack + 173 kernel_uarg->uspace_stack_size), 174 (uintptr_t) kernel_uarg->uspace_uarg, 175 (uintptr_t) kernel_uarg->uspace_entry); 174 176 175 177 while (true)
Note:
See TracChangeset
for help on using the changeset viewer.