summaryrefslogtreecommitdiffhomepage
path: root/Boot/Sources/HEL
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-09 20:51:20 +0200
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-07-09 20:52:00 +0200
commitdfaf137915094e7ba72f7d7f1f57dc5158d1b6ab (patch)
tree802a5bf263d606b59bb52d5e7434a04c8644d07e /Boot/Sources/HEL
parent891245c6c9a78cea6074e336d1b04a2264b2fcce (diff)
MHR-36: A set of major fixes for bootloader and kernel alongside new
implementations. - Implement realloc for kernel scheduler improvements. - Fixed readAll on bootloader's BFileReader. - Add resources for zeta installation. - Add STB header. - Process Heap which replaced the previous User Heap. Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Boot/Sources/HEL')
-rw-r--r--Boot/Sources/HEL/AMD64/BootFileReader.cxx15
-rw-r--r--Boot/Sources/HEL/AMD64/BootMain.cxx16
2 files changed, 22 insertions, 9 deletions
diff --git a/Boot/Sources/HEL/AMD64/BootFileReader.cxx b/Boot/Sources/HEL/AMD64/BootFileReader.cxx
index d32f2a17..f5e0a55b 100644
--- a/Boot/Sources/HEL/AMD64/BootFileReader.cxx
+++ b/Boot/Sources/HEL/AMD64/BootFileReader.cxx
@@ -48,7 +48,7 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path,
EfiGUID guidEfp = EfiGUID(EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID);
- EfiSimpleFilesystemProtocol* efp = nullptr;
+ EfiSimpleFilesystemProtocol* efp = nullptr;
EfiLoadImageProtocol* img = nullptr;
EfiGUID guidImg = EfiGUID(EFI_LOADED_IMAGE_PROTOCOL_GUID);
@@ -84,7 +84,7 @@ BFileReader::BFileReader(const CharacterTypeUTF16* path,
.Write(mPath)
.Write(L"\r");
this->mErrorCode = kNotSupported;
-
+
mRootFs->Close(mRootFs);
return;
@@ -147,11 +147,18 @@ Void BFileReader::ReadAll(SizeT readUntil, SizeT chunkToRead)
szCnt += bufSize;
if (res == kBufferTooSmall)
- bufSize = chunkToRead;
+ {
+ mErrorCode = kTooSmall;
+ return;
+ }
else if (res == kEfiOk)
- bufSize = chunkToRead;
+ {
+ continue;
+ }
else
+ {
break;
+ }
}
mSizeFile = szCnt;
diff --git a/Boot/Sources/HEL/AMD64/BootMain.cxx b/Boot/Sources/HEL/AMD64/BootMain.cxx
index 9faeac7e..928bc5de 100644
--- a/Boot/Sources/HEL/AMD64/BootMain.cxx
+++ b/Boot/Sources/HEL/AMD64/BootMain.cxx
@@ -16,11 +16,15 @@
#include <NewKit/Macros.hpp>
#include <NewKit/Ref.hpp>
#include <BootKit/ProgramLoader.hxx>
+#include <KernelKit/KernelHeap.hpp>
#include <cstring>
+#include <BootKit/Vendor/Support.hxx>ke_realloc_ke_heap
+#include <BootKit/STB.hxx>
+
/// make the compiler shut up.
#ifndef kMachineModel
-#define kMachineModel "Zeta HD"
+#define kMachineModel "Zeta SSD"
#endif // !kMachineModel
#ifndef cExpectedWidth
@@ -152,13 +156,13 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
CGInit();
CGDrawInRegion(cCGClearClr, handoverHdrPtr->f_GOP.f_Height,
- handoverHdrPtr->f_GOP.f_Width, 0, 0);
+ handoverHdrPtr->f_GOP.f_Width, 0, 0);
CGFini();
CGDrawBitMapInRegion(NewBoot, NEWBOOT_HEIGHT, NEWBOOT_WIDTH,
- (handoverHdrPtr->f_GOP.f_Width - NEWBOOT_WIDTH) / 2,
- (handoverHdrPtr->f_GOP.f_Height - NEWBOOT_HEIGHT) / 2);
+ (handoverHdrPtr->f_GOP.f_Width - NEWBOOT_WIDTH) / 2,
+ (handoverHdrPtr->f_GOP.f_Height - NEWBOOT_HEIGHT) / 2);
CGFini();
@@ -229,7 +233,9 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
BFileReader readerKernel(L"newoskrnl.exe", ImageHandle);
- readerKernel.ReadAll(kib_cast(5), kib_cast(5));
+ /// TODO: BFileReader::GetSize(...);
+ constexpr auto cKernelSz = 275101;
+ readerKernel.ReadAll(cKernelSz, 4096);
Boot::ProgramLoader* loader = nullptr;