summaryrefslogtreecommitdiffhomepage
path: root/dev/ZBAKit/src/HEL
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZBAKit/src/HEL')
-rw-r--r--dev/ZBAKit/src/HEL/AMD64/BootAPI.S8
-rw-r--r--dev/ZBAKit/src/HEL/AMD64/BootMain.cc4
2 files changed, 10 insertions, 2 deletions
diff --git a/dev/ZBAKit/src/HEL/AMD64/BootAPI.S b/dev/ZBAKit/src/HEL/AMD64/BootAPI.S
index 47f250f1..963ef46a 100644
--- a/dev/ZBAKit/src/HEL/AMD64/BootAPI.S
+++ b/dev/ZBAKit/src/HEL/AMD64/BootAPI.S
@@ -11,8 +11,16 @@
rt_jump_to_address:
mov rbx, rcx
mov rcx, rdx
+ push rbx
+ push rdx
+ mov rsp, r8
+ push rax
jmp rbx
+ pop rdx
+ pop rbx
+ pop rax
+
ret
rt_reset_hardware:
diff --git a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
index cfc02837..404d8e3b 100644
--- a/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
+++ b/dev/ZBAKit/src/HEL/AMD64/BootMain.cc
@@ -246,7 +246,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
syschk_thread->SetName("System Check (ZBA EFI Driver)");
}
- syschk_thread->Start(handover_hdr);
+ syschk_thread->Start(handover_hdr, NO);
// nullify these fields, to avoid being reused later.
@@ -324,7 +324,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr ImageHandle,
// Finally load the OS kernel.
// ---------------------------------------------------- //
- kernel_thread->Start(handover_hdr);
+ kernel_thread->Start(handover_hdr, YES);
CANT_REACH();
}