diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2024-03-11 21:30:31 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2024-03-11 21:30:31 -0400 |
commit | d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d (patch) | |
tree | 8f0b5cd8aad31089131785dc6e37b659490f9955 /arch/x86_64/loadgdt.S | |
download | jove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.tar.gz jove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.tar.bz2 jove-kernel-d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d.zip |
usermode capable kernel with logging syscall
Diffstat (limited to 'arch/x86_64/loadgdt.S')
-rw-r--r-- | arch/x86_64/loadgdt.S | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/arch/x86_64/loadgdt.S b/arch/x86_64/loadgdt.S new file mode 100644 index 0000000..e183850 --- /dev/null +++ b/arch/x86_64/loadgdt.S @@ -0,0 +1,24 @@ +.global x86_64_lgdt +.type x86_64_lgdt @function +x86_64_lgdt: + lgdt (%rdi) +.reload_segments: + pushq $0x8 + leaq .reload_cs, %rax + pushq %rax + retfq +.reload_cs: + movw $0x10, %ax + movw %ax, %ds + movw %ax, %es + movw %ax, %fs + movw %ax, %gs + movw %ax, %ss + retq + +.global x86_64_flush_tss +.type x86_64_flush_tss @function +x86_64_flush_tss: + movw $0x30, %ax + ltr %ax + retq |