summaryrefslogtreecommitdiffhomepage
path: root/dev/ZBA/Sources
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-09-03 19:55:57 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-09-03 19:55:57 +0200
commitafe7a2048513132f5ab28a8c5cdb6cbbc6e04993 (patch)
treea4b9082672097c170479e92afb400e287b0a2b78 /dev/ZBA/Sources
parenta4114685aa464471bcc6d4df39e184d85dd991c7 (diff)
[ IMP ] Many improvements and kernel changes.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZBA/Sources')
-rw-r--r--dev/ZBA/Sources/HEL/AMD64/BootJump.S6
-rw-r--r--dev/ZBA/Sources/Thread.cxx5
2 files changed, 4 insertions, 7 deletions
diff --git a/dev/ZBA/Sources/HEL/AMD64/BootJump.S b/dev/ZBA/Sources/HEL/AMD64/BootJump.S
index f9943ecf..d8e09d4e 100644
--- a/dev/ZBA/Sources/HEL/AMD64/BootJump.S
+++ b/dev/ZBA/Sources/HEL/AMD64/BootJump.S
@@ -9,15 +9,9 @@
@brief this function setups a stack and then jumps to
a function */
rt_jump_to_address:
- mov rsp, r8
-
- push rax
- push rdx
mov rbx, rcx
mov rcx, rdx
jmp rbx
- pop rdx
- pop rax
ret
diff --git a/dev/ZBA/Sources/Thread.cxx b/dev/ZBA/Sources/Thread.cxx
index c7a62a04..1ea83618 100644
--- a/dev/ZBA/Sources/Thread.cxx
+++ b/dev/ZBA/Sources/Thread.cxx
@@ -22,6 +22,9 @@ EXTERN_C{
#include <string.h>
}
+EXTERN_C Void
+rt_jump_to_address(VoidPtr start, VoidPtr handover);
+
// External boot services symbol.
EXTERN EfiBootServices* BS;
@@ -162,7 +165,7 @@ namespace Boot
err_fn(handover);
}
- reinterpret_cast<HEL::HandoverProc>(fStartAddress)(handover);
+ rt_jump_to_address(fStartAddress, handover);
}
const Char* BThread::GetName()