From 066038cf66ada2b6087285f7f72263dd89c17aed Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Thu, 12 Dec 2013 22:57:35 +0100 Subject: [PATCH] Fix the size of gdt --- kernel/src/boot/boot_16.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/kernel/src/boot/boot_16.cpp b/kernel/src/boot/boot_16.cpp index 8a0f55f2..17d86e68 100644 --- a/kernel/src/boot/boot_16.cpp +++ b/kernel/src/boot/boot_16.cpp @@ -5,6 +5,8 @@ // http://www.boost.org/LICENSE_1_0.txt) //======================================================================= +#include "boot/code16gcc.h" + namespace { typedef unsigned int uint8_t __attribute__((__mode__(__QI__))); @@ -77,10 +79,10 @@ void setup_gdt(){ }; static gdt_ptr gdtr; - gdtr.length = sizeof(gdt); + gdtr.length = sizeof(gdt) - 1; gdtr.pointer = reinterpret_cast(&gdt); - asm volatile("lgdt %0" : : "m" (gdtr)); + asm volatile("lgdt [%0]" : : "m" (gdtr)); } } //end of anonymous namespace