summaryrefslogtreecommitdiff
path: root/boot/fake_syscall_entry.S
diff options
context:
space:
mode:
Diffstat (limited to 'boot/fake_syscall_entry.S')
-rw-r--r--boot/fake_syscall_entry.S17
1 files changed, 13 insertions, 4 deletions
diff --git a/boot/fake_syscall_entry.S b/boot/fake_syscall_entry.S
index ff2428d..bc175c1 100644
--- a/boot/fake_syscall_entry.S
+++ b/boot/fake_syscall_entry.S
@@ -1,18 +1,27 @@
.section .text
+.global fake_syscall_entry
+.global fake_syscall_return
+
.extern fake_syscall_handler
-.global fake_syscall_entry
fake_syscall_entry:
- hlt
+ hlt;
-.global fake_syscall_return
fake_syscall_return:
cli
+fake_syscall_swap:
+ mov %cs, %rax
+ pushq %rax
+ pushq %rdx
+ mov %ds, %rax
+ pushq %rax
+ sub $16, %rsp
+ sgdt (%rsp)
+ mov %rsp, (%rsi)
mov %rdi, %rsp
lgdt (%rsp)
add $16, %rsp
-
movw (%rsp), %ds
movw (%rsp), %es
movw (%rsp), %fs