From 7bdacfbd7ae4a69183d6f4237d11372e76a75dd1 Mon Sep 17 00:00:00 2001 From: Matheus Date: Wed, 27 Jul 2022 22:08:16 -0300 Subject: [PATCH] add an ist to the bsp's gdt --- src/arch/x86_64/gdt.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/arch/x86_64/gdt.c b/src/arch/x86_64/gdt.c index 75fdf395..caaa2881 100644 --- a/src/arch/x86_64/gdt.c +++ b/src/arch/x86_64/gdt.c @@ -59,10 +59,8 @@ void gdt_bspinit(){ setseg(&gdt->ucode64, 0xFFFFF, 0, FLAGS_PAGE_GRANULARITY | FLAGS_LONG, ACCESS_PRESENT | ACCESS_SEGMENT | ACCESS_EXEC | ACCESS_CODE_READ | ACCESS_DPL3); setseg(&gdt->udata64, 0xFFFFF, 0, FLAGS_PAGE_GRANULARITY | FLAGS_LONG, ACCESS_PRESENT | ACCESS_SEGMENT | ACCESS_DATA_WRITE | ACCESS_DPL3); - - // TODO get this working right - //setsys64(&gdt->ist, sizeof(ist_t), (uint64_t)(arch_getcls()), FLAGS_LONG, SYSTEM_TYPE_IST | ACCESS_PRESENT); + setsys64(&gdt->ist, sizeof(ist_t), (uint64_t)(&arch_getcls()->ist), FLAGS_LONG, SYSTEM_TYPE_IST | ACCESS_PRESENT); reloadgdtr();