summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm')
-rw-r--r--dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm34
1 files changed, 26 insertions, 8 deletions
diff --git a/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm b/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm
index 56853441..e2dec1f9 100644
--- a/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm
+++ b/dev/ZKA/HALKit/AMD64/HalInterruptAPI.asm
@@ -17,14 +17,14 @@
global __ZKA_INT_%1
__ZKA_INT_%1:
cld
- iretq
+ o64 iret
%endmacro
%macro IntNormal 1
global __ZKA_INT_%1
__ZKA_INT_%1:
cld
- iretq
+ o64 iret
%endmacro
; This file handles the core interrupt table
@@ -62,7 +62,7 @@ __ZKA_INT_6:
pop rax
sti
- iretq
+ o64 iret
IntNormal 7
@@ -78,7 +78,7 @@ __ZKA_INT_8:
pop rax
sti
- iretq
+ o64 iret
IntNormal 9
IntExp 10
@@ -97,7 +97,7 @@ __ZKA_INT_13:
pop rax
sti
- iretq
+ o64 iret
__ZKA_INT_14:
cli
@@ -110,7 +110,7 @@ __ZKA_INT_14:
pop rax
sti
- iretq
+ o64 iret
IntNormal 15
IntNormal 16
@@ -152,9 +152,27 @@ IntNormal 47
IntNormal 48
IntNormal 49
+[extern hal_system_call_enter]
[extern hal_kernel_call_enter]
-IntNormal 50
+__ZKA_INT_50:
+ cli
+
+ push r8
+ push r9
+ push r10
+ push rsp
+
+ jmp hal_system_call_enter
+
+ add rsp, 16
+ pop rsp
+ pop r10
+ pop r9
+ pop r8
+
+ sti
+ o64 iret
__ZKA_INT_51:
cli
@@ -174,7 +192,7 @@ __ZKA_INT_51:
pop rcx
sti
- iretq
+ o64 iret
[extern hal_on_ap_startup]