diff options
Diffstat (limited to 'dev/ZBAKit/src/HEL')
| -rw-r--r-- | dev/ZBAKit/src/HEL/AMD64/BootAPI.S | 8 | ||||
| -rw-r--r-- | dev/ZBAKit/src/HEL/AMD64/BootMain.cc | 4 |
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(); } |
