From e3ac9612c9ee1fa44e105c289d0ae29412a8225b Mon Sep 17 00:00:00 2001 From: Faynot Date: Fri, 26 Jun 2026 22:12:02 +0300 Subject: [PATCH] fix: idt --- kernel/src/cpu/idt.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/kernel/src/cpu/idt.rs b/kernel/src/cpu/idt.rs index 6cf9310..6a3c9c3 100644 --- a/kernel/src/cpu/idt.rs +++ b/kernel/src/cpu/idt.rs @@ -56,4 +56,14 @@ impl InterruptDescriptorTable { self.entries[vector as usize].set_handler(handler, 0x28, 0x8E); } + pub unsafe fn load(&'static self) { + let ptr = IdtPtr { + limit: (core::mem::size_of::() - 1) as u16, + base: self as *const _ as u64, + }; + unsafe { + asm!("lidt [{}]", in(reg) &ptr, options(readonly, nostack, preserves_flags)); + } + } + }