summaryrefslogtreecommitdiffhomepage
path: root/dev/Boot/src/BootFileReader.cc
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-06 20:11:53 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-01-06 20:11:53 +0100
commit98110adc9f47666696e18a6c7c97a3edc89c5d90 (patch)
treee39f76352995abfdcc154637b2dae00ed246d5c7 /dev/Boot/src/BootFileReader.cc
parent8c179d8801df7f5f77fe7ec65a0a98b7901dad09 (diff)
ADD: Fix kernel build and bootloader build on aarch64, add syschk for
aarch64. WIP: aarch64 on CoreBoot (EFI is unpractical) Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot/src/BootFileReader.cc')
-rw-r--r--dev/Boot/src/BootFileReader.cc31
1 files changed, 17 insertions, 14 deletions
diff --git a/dev/Boot/src/BootFileReader.cc b/dev/Boot/src/BootFileReader.cc
index eb5f80a2..e8f8772c 100644
--- a/dev/Boot/src/BootFileReader.cc
+++ b/dev/Boot/src/BootFileReader.cc
@@ -128,23 +128,26 @@ Boot::BFileReader::~BFileReader()
*/
Void Boot::BFileReader::ReadAll(SizeT readUntil, SizeT chunkToRead, UIntPtr out_address)
{
- if (mBlob == nullptr)
- {
- EfiFileInfo newPtrInfo{};
- UInt32 szInfo = 0U;
+ UInt32 szInfo = sizeof(EfiFileInfo);
- EfiGUID kFileInfoGUID = EFI_FILE_INFO_GUID;
+ EfiFileInfo newPtrInfo{};
- if (mFile->GetInfo(mFile, &kFileInfoGUID, &szInfo, &newPtrInfo) == kEfiOk)
- {
- if (newPtrInfo.FileSize < readUntil)
- readUntil = newPtrInfo.FileSize;
- else if (readUntil < 1)
- readUntil = newPtrInfo.FileSize;
+ EfiGUID kFileInfoGUID = EFI_FILE_INFO_GUID;
- mWriter.Write(L"BootZ: File size: ").Write(readUntil).Write("\r");
- }
+ if (mFile->GetInfo(mFile, &kFileInfoGUID, &szInfo, &newPtrInfo) == kEfiOk)
+ {
+ readUntil = newPtrInfo.FileSize;
+ mWriter.Write(L"BootZ: File size: ").Write(readUntil).Write("\r");
+ }
+ if (readUntil == 0)
+ {
+ mErrorCode = kNotSupported;
+ return;
+ }
+
+ if (mBlob == nullptr)
+ {
if (!out_address)
{
if (auto err = BS->AllocatePool(EfiLoaderCode, readUntil, (VoidPtr*)&mBlob) !=
@@ -160,7 +163,7 @@ Void Boot::BFileReader::ReadAll(SizeT readUntil, SizeT chunkToRead, UIntPtr out_
}
}
- mErrorCode = kNotSupported;
+ mWriter.Write(L"*** Bytes to read: ").Write(readUntil).Write(L" ***\r");
UInt64 bufSize = chunkToRead;
UInt64 szCnt = 0UL;