diff options
Diffstat (limited to 'kernel/src/sys/userspace_asm.S')
| -rw-r--r-- | kernel/src/sys/userspace_asm.S | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/kernel/src/sys/userspace_asm.S b/kernel/src/sys/userspace_asm.S new file mode 100644 index 0000000..5838051 --- /dev/null +++ b/kernel/src/sys/userspace_asm.S @@ -0,0 +1,20 @@ +.text + +.extern begin_userspace + +.global jump_userspace +jump_userspace: + mov $0x23, %ax + mov %ax, %ds + mov %ax, %es + mov %ax, %fs + mov %ax, %gs + + mov %esp, %eax + push $0x23 + push %rax + pushf + push $0x1b + sub $8, %rsp + movabs $begin_userspace, %rsp + iretq |
