diff --git a/src/arch/amd64/gdt.S b/src/arch/amd64/gdt.S index b47a9f0..d761035 100644 --- a/src/arch/amd64/gdt.S +++ b/src/arch/amd64/gdt.S @@ -26,11 +26,11 @@ __arch_setgdt: /* load the GDT */ lgdt (%rcx) + /* apply the GDT */ push $0x8 lea gdt_flush, %rax push %rax retf - gdt_flush: mov $0x10, %ax mov %ax, %ds diff --git a/src/arch/amd64/gdt.h b/src/arch/amd64/gdt.h index 7f176f7..b37efa7 100644 --- a/src/arch/amd64/gdt.h +++ b/src/arch/amd64/gdt.h @@ -9,9 +9,4 @@ # include "../i386/gdt.h" - -/* public */ -/* prototypes */ -int _arch_setgdt64(GDT const * gdt, size_t count); - -#endif /* !UKERNEL_ARCH_I386_GDT_H */ +#endif /* !UKERNEL_ARCH_AMD64_GDT_H */ diff --git a/src/arch/i386/gdt.S b/src/arch/i386/gdt.S index 18785f4..93574cf 100644 --- a/src/arch/i386/gdt.S +++ b/src/arch/i386/gdt.S @@ -24,6 +24,7 @@ __arch_setgdt: shl $0x3, %eax dec %eax mov %ax, (%ecx) + /* load the GDT */ lgdt (gdt_descriptor) @@ -34,7 +35,7 @@ __arch_setgdt: mov %ax, %fs mov %ax, %gs mov %ax, %ss - ljmp $0x08, $gdt_flush + ljmp $0x8, $gdt_flush gdt_flush: ret