summaryrefslogtreecommitdiffhomepage
path: root/dev/ZBAKit/src/HEL
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-21 08:50:57 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-11-21 08:51:40 +0100
commit6ed8a39c1bd3083297b41e981a2bf4bdbe2abd1f (patch)
tree183713eb331a92e4e1ce061263cf91a208c7c400 /dev/ZBAKit/src/HEL
parent50439432a85976605dbb18e3cd2161f888d2e17d (diff)
IMP: Add UserProcessImage structure to hold the code/entrypoint of the process.
IMP: Use IDLLObject instead of IPEFDLLObject. IMP: Refactor DeviceInterface to IDeviceObject. ADD: rt_jump_to_address when you want to use a custom stack. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
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();
}