From 1003d7a20bab6885b4edde7d11103a199de30d21 Mon Sep 17 00:00:00 2001 From: Amlal Date: Sat, 7 Sep 2024 09:18:35 +0200 Subject: Daily bump. Signed-off-by: Amlal --- dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm | 46 ++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm') diff --git a/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm b/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm index 28f86b34..56853441 100644 --- a/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm +++ b/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm @@ -237,12 +237,58 @@ extern hal_real_init hal_reload_segments: sti + ;; Write address of syscall handler. + + mov rdx, [mp_system_call_handler] + shr rdx, 32 + mov rcx, 0xC0000082 + wrmsr + + ;; Set segments of syscall handler. + + xor rax, rax + mov rdx, 0x230008 + mov rcx, 0xC0000081 + wrmsr + + mov ecx, 0xC0000080 + rdmsr + or eax, 1 + wrmsr + jmp hal_real_init ret global hal_load_idt global hal_user_code_start +extern hal_system_call_enter +global mp_system_call_handler + +mp_system_call_handler: + + push r8 + push r9 + push r10 + push r11 + push r12 + push r13 + push r14 + push r15 + + jmp hal_system_call_enter + + pop r15 + pop r14 + pop r13 + pop r12 + pop r11 + pop r10 + pop r9 + pop r8 + + o64 sysret + hal_load_idt: cli lidt [rcx] -- cgit v1.2.3