summaryrefslogtreecommitdiff
path: root/src/platform/sysenter.s
diff options
context:
space:
mode:
authordzwdz2021-07-10 17:41:32 +0200
committerdzwdz2021-07-10 17:41:32 +0200
commit1bf5e324005ce7122a195af106cec656960648dc (patch)
tree7a8394a5243ad50d1e8d5574d94908461fe96cc6 /src/platform/sysenter.s
parent6cbdc62b5cbe34d7355047722d6d483a4d25c7f3 (diff)
a sensible source structure
The idea is that src/kernel/ is only allowed to interface with the hardware using whatever's defined in src/arch/generic.h. I'll probably write a small script for checking this later on. This is a giant commit so I've probably fucked something up. It boots fine on Bochs and QEMU, so at least there's that.
Diffstat (limited to 'src/platform/sysenter.s')
-rw-r--r--src/platform/sysenter.s31
1 files changed, 0 insertions, 31 deletions
diff --git a/src/platform/sysenter.s b/src/platform/sysenter.s
deleted file mode 100644
index 270dc08..0000000
--- a/src/platform/sysenter.s
+++ /dev/null
@@ -1,31 +0,0 @@
-/* kernel/gdt.c */
-.set SEG_r0code, 1
-.set SEG_r3code, 3
-.set SEG_r3data, 4
-
-.set IA32_SYSENTER_CS, 0x174
-
-.section .text
-.global sysexit
-.type sysexit, @function
-sysexit:
- pop %ecx
- pop %edx
-
- mov $(SEG_r3data << 3 | 3), %ax
- mov %ax, %ds
- mov %ax, %es
- mov %ax, %fs
- mov %ax, %gs
-
- sysexit
-
-
-.global sysenter_setup
-.type sysenter_setup, @function
-sysenter_setup:
- xor %edx, %edx
- mov $(SEG_r0code << 3), %eax
- mov $IA32_SYSENTER_CS, %ecx
- wrmsr
- ret