summaryrefslogtreecommitdiff
path: root/kernel/src/sys/userspace_asm.S
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-25 02:24:36 +0100
committerAleksa Vuckovic <aleksa@vuckovic.cc>2023-02-25 02:25:19 +0100
commit4931f266a72dccfb439badfa1070563003c80ce3 (patch)
tree8ee554e9d4594fa4916f307dca7edff98137df18 /kernel/src/sys/userspace_asm.S
parentcaba4178bbfd7b3b1ff2e156e24b08015137d16a (diff)
define consts
Diffstat (limited to 'kernel/src/sys/userspace_asm.S')
-rw-r--r--kernel/src/sys/userspace_asm.S10
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/src/sys/userspace_asm.S b/kernel/src/sys/userspace_asm.S
index 4431a84..1bb19a3 100644
--- a/kernel/src/sys/userspace_asm.S
+++ b/kernel/src/sys/userspace_asm.S
@@ -3,6 +3,10 @@
.extern begin_userspace
.extern syscall_handler
+.set IA32_EFER, 0xc0000080
+.set STAR_MSR, 0xc0000081
+.set LSTAR_MSR, 0xc0000082
+
.global jump_userspace
jump_userspace:
mov $0x1b, %ax
@@ -11,17 +15,17 @@ jump_userspace:
mov %ax, %fs
mov %ax, %gs
- mov $0xc0000082, %rcx
+ mov $LSTAR_MSR, %rcx
movabs $__syscall, %rax
shr $32, %rax
mov %eax, %edx
movabs $__syscall, %rax
wrmsr
- mov $0xc0000080, %rcx
+ mov $IA32_EFER, %rcx
rdmsr
or $1, %eax
wrmsr
- mov $0xc0000081, %rcx
+ mov $STAR_MSR, %rcx
rdmsr
mov $0x00130008, %edx
wrmsr