summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/src/BootThread.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-18 00:19:48 +0200
committerGitHub <noreply@github.com>2025-04-18 00:19:48 +0200
commitee1edba85ea13627871e1ed005931bd502b86ab8 (patch)
tree8570cd210aaf11d8cd36aebf3b682e420a497bff /dev/boot/src/BootThread.cc
parent6b7403efd291f80a06267817afee4c0a4c8da56c (diff)
parent7bfa36c2215e13097bb5ddcb15d2a8a476102b55 (diff)
Merge pull request #23 from amlel-el-mahrouss/dev
dev, kernel: important patches.
Diffstat (limited to 'dev/boot/src/BootThread.cc')
-rw-r--r--dev/boot/src/BootThread.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/dev/boot/src/BootThread.cc b/dev/boot/src/BootThread.cc
index f1866a76..484c242d 100644
--- a/dev/boot/src/BootThread.cc
+++ b/dev/boot/src/BootThread.cc
@@ -80,6 +80,12 @@ namespace Boot
fStack = new UInt8[mib_cast(16)];
+ if (!fStack)
+ {
+ writer.Write("BootZ: Unable to allocate stack.\r");
+ return;
+ }
+
LDR_SECTION_HEADER_PTR sectPtr = (LDR_SECTION_HEADER_PTR)(((Char*)opt_header_ptr) + header_ptr->SizeOfOptionalHeader);
constexpr auto sectionForCode = ".text";
@@ -168,6 +174,21 @@ namespace Boot
{
fHandover = handover;
+ if (!fStartAddress)
+ {
+ return kEfiFail;
+ }
+
+ if (!fHandover)
+ {
+ return kEfiFail;
+ }
+
+ BootTextWriter writer;
+
+ writer.Write("BootZ: Starting: ").Write(fBlobName).Write("\r");
+ writer.Write("BootZ: Handover address: ").Write((UIntPtr)fHandover).Write("\r");
+
if (own_stack)
{
return rt_jump_to_address(fStartAddress, fHandover, &fStack[mib_cast(16) - 1]);