From 1ab61e6bb20dd39f85fca30c1d0a83db12fea9d6 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 28 Feb 2024 17:48:25 +0100 Subject: HCoreKrnl: Fix IDT, will get the rt_handle_interrupts right, and not corrupt the registers, see below. - New register layout in Stackframe. - Thinking about a way to wrap this handler into a valid win64 call. Signed-off-by: Amlal El Mahrouss --- Private/HALKit/AMD64/HalHardwareAPIC.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'Private/HALKit/AMD64/HalHardwareAPIC.cpp') diff --git a/Private/HALKit/AMD64/HalHardwareAPIC.cpp b/Private/HALKit/AMD64/HalHardwareAPIC.cpp index cae54658..d587975e 100644 --- a/Private/HALKit/AMD64/HalHardwareAPIC.cpp +++ b/Private/HALKit/AMD64/HalHardwareAPIC.cpp @@ -17,8 +17,7 @@ namespace HCore { void rt_wakeup_thread(HAL::StackFrame* stack) { HAL::rt_cli(); - stack->Rbp = stack->R15; - stack->Rsi = stack->Rbp; + // TODO HAL::rt_sti(); } @@ -33,9 +32,7 @@ static void __rt_hang_proc(void) { void rt_hang_thread(HAL::StackFrame* stack) { __asm__ volatile("cli"); - stack->R15 = stack->Rbp; - stack->Rbp = (HAL::Reg)&__rt_hang_proc; - stack->Rsp = stack->Rbp; + // TODO __asm__ volatile("sti"); } -- cgit v1.2.3