diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-06 20:11:53 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-01-06 20:11:53 +0100 |
| commit | 98110adc9f47666696e18a6c7c97a3edc89c5d90 (patch) | |
| tree | e39f76352995abfdcc154637b2dae00ed246d5c7 /dev/Boot/src/BootFileReader.cc | |
| parent | 8c179d8801df7f5f77fe7ec65a0a98b7901dad09 (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.cc | 31 |
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; |
