diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-09-03 19:55:57 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-09-03 19:55:57 +0200 |
| commit | afe7a2048513132f5ab28a8c5cdb6cbbc6e04993 (patch) | |
| tree | a4b9082672097c170479e92afb400e287b0a2b78 /dev/ZBA | |
| parent | a4114685aa464471bcc6d4df39e184d85dd991c7 (diff) | |
[ IMP ] Many improvements and kernel changes.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZBA')
| -rw-r--r-- | dev/ZBA/Sources/HEL/AMD64/BootJump.S | 6 | ||||
| -rw-r--r-- | dev/ZBA/Sources/Thread.cxx | 5 | ||||
| -rw-r--r-- | dev/ZBA/amd64-efi.make | 2 |
3 files changed, 5 insertions, 8 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() diff --git a/dev/ZBA/amd64-efi.make b/dev/ZBA/amd64-efi.make index 62147f7c..d75f2aaf 100644 --- a/dev/ZBA/amd64-efi.make +++ b/dev/ZBA/amd64-efi.make @@ -36,7 +36,7 @@ EMU_FLAGS=-net none -m 8G -M q35 -cpu qemu64 \ file=fat:rw:Sources/Root/,index=2,format=raw \ -drive id=disk_2,file=$(IMG_2),if=none \ -device ahci,id=ahci \ - -device ide-hd,drive=disk_2,bus=ahci.0 -d int -no-reboot + -device ide-hd,drive=disk_2,bus=ahci.0 -d int LD_FLAGS=-e Main --subsystem=10 |
