/kernel/trunk/arch/mips32/include/asm.h |
---|
57,6 → 57,7 |
extern void cpu_halt(void); |
extern void asm_delay_loop(__u32 t); |
extern void userspace_asm(__address ustack, __address uspace_uarg); |
extern void userspace_asm(__address ustack, __address uspace_uarg, |
__address entry); |
#endif |
/kernel/trunk/arch/mips32/src/mips32.c |
---|
129,7 → 129,9 |
cp0_status_um_bit | |
cp0_status_ie_enabled_bit)); |
cp0_epc_write((__address) kernel_uarg->uspace_entry); |
userspace_asm(((__address) kernel_uarg->uspace_stack+PAGE_SIZE), (__address) kernel_uarg->uspace_uarg); |
userspace_asm(((__address) kernel_uarg->uspace_stack+PAGE_SIZE), |
(__address) kernel_uarg->uspace_uarg, |
(__address) kernel_uarg->uspace_entry); |
while (1) |
; |
} |
/kernel/trunk/arch/mips32/src/start.S |
---|
304,5 → 304,6 |
userspace_asm: |
add $sp, $a0, 0 |
add $v0, $a1, 0 |
add $t9, $a2, 0 # Set up correct entry into PIC code |
eret |