summaryrefslogtreecommitdiffhomepage
path: root/dev/boot/src/BootThread.cc
diff options
context:
space:
mode:
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]);