diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-20 20:30:18 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2025-03-20 20:30:18 +0100 |
| commit | 1c43fb19cab6eb1121a6d41f4bbe180229a3ae9e (patch) | |
| tree | b69b6317a2e1ebeba7958024f9718e7ae705cee0 /dev/Boot/src/BootThread.cc | |
| parent | 1d07547776d6890c4b4115ddc265b35e68f87936 (diff) | |
Refactored BootKit and DiskImage framework, minor kernel fixes
- Refactored BootKit classes:
- Renamed `BTextWriter` → `BootTextWriter`
- Renamed `BFileReader` → `BootFileReader`
- Improved consistency across `BootKit.h`, `BootThread.cc`, and related files.
- Updated NetBoot module:
- Standardized text writer usage.
- Improved error handling for missing patches and EEPROM flash.
- DiskImage framework improvements:
- Introduced `DI_DISK_IMAGE` struct.
- Added new `DIFormatDisk()` and `DIFormatNeFS()` functions.
- Improved error handling and structure alignment.
- Kernel enhancements:
- Updated PE loader structures for better readability.
- Renamed PE header fields for consistency.
- Improved SwapDisk API structure (`SwapDiskHdr` → `SWAP_DISK_HEADER`).
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Boot/src/BootThread.cc')
| -rw-r--r-- | dev/Boot/src/BootThread.cc | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/dev/Boot/src/BootThread.cc b/dev/Boot/src/BootThread.cc index 8b136ba3..ff094f72 100644 --- a/dev/Boot/src/BootThread.cc +++ b/dev/Boot/src/BootThread.cc @@ -30,7 +30,7 @@ namespace Boot // detect the format. const Char* blob_bytes = reinterpret_cast<char*>(fBlob); - BTextWriter writer; + BootTextWriter writer; if (!blob_bytes) { @@ -48,15 +48,15 @@ namespace Boot return; #ifdef __NE_AMD64__ - if (header_ptr->mMachine != kPeMachineAMD64 || - header_ptr->mSignature != kPeSignature) + if (header_ptr->Machine != kPeMachineAMD64 || + header_ptr->Signature != kPeSignature) { writer.Write("BootZ: Not a PE32+ executable.\r"); return; } #elif defined(__NE_ARM64__) - if (header_ptr->mMachine != kPeMachineARM64 || - header_ptr->mSignature != kPeSignature) + if (header_ptr->Machine != kPeMachineARM64 || + header_ptr->Signature != kPeSignature) { writer.Write("BootZ: Not a PE32+ executable.\r"); return; @@ -65,25 +65,25 @@ namespace Boot writer.Write("BootZ: PE32+ executable detected (NeKernel Subsystem).\r"); - auto numSecs = header_ptr->mNumberOfSections; + auto numSecs = header_ptr->NumberOfSections; - writer.Write("BootZ: Major Linker Ver: ").Write(opt_header_ptr->mMajorLinkerVersion).Write("\r"); - writer.Write("BootZ: Minor Linker Ver: ").Write(opt_header_ptr->mMinorLinkerVersion).Write("\r"); - writer.Write("BootZ: Major Subsystem Ver: ").Write(opt_header_ptr->mMajorSubsystemVersion).Write("\r"); - writer.Write("BootZ: Minor Subsystem Ver: ").Write(opt_header_ptr->mMinorSubsystemVersion).Write("\r"); - writer.Write("BootZ: Magic: ").Write(header_ptr->mSignature).Write("\r"); + writer.Write("BootZ: Major Linker Ver: ").Write(opt_header_ptr->MajorLinkerVersion).Write("\r"); + writer.Write("BootZ: Minor Linker Ver: ").Write(opt_header_ptr->MinorLinkerVersion).Write("\r"); + writer.Write("BootZ: Major Subsystem Ver: ").Write(opt_header_ptr->MajorSubsystemVersion).Write("\r"); + writer.Write("BootZ: Minor Subsystem Ver: ").Write(opt_header_ptr->MinorSubsystemVersion).Write("\r"); + writer.Write("BootZ: Magic: ").Write(header_ptr->Signature).Write("\r"); constexpr auto cPageSize = 512; - EfiPhysicalAddress loadStartAddress = opt_header_ptr->mImageBase; - loadStartAddress += opt_header_ptr->mBaseOfData; + EfiPhysicalAddress loadStartAddress = opt_header_ptr->ImageBase; + loadStartAddress += opt_header_ptr->BaseOfData; writer.Write("BootZ: Image base: ").Write(loadStartAddress).Write("\r"); - auto numPages = opt_header_ptr->mSizeOfImage / cPageSize; + auto numPages = opt_header_ptr->SizeOfImage / cPageSize; BS->AllocatePages(AllocateAddress, EfiLoaderData, numPages, &loadStartAddress); - LDR_SECTION_HEADER_PTR sectPtr = (LDR_SECTION_HEADER_PTR)(((Char*)opt_header_ptr) + header_ptr->mSizeOfOptionalHeader); + LDR_SECTION_HEADER_PTR sectPtr = (LDR_SECTION_HEADER_PTR)(((Char*)opt_header_ptr) + header_ptr->SizeOfOptionalHeader); constexpr auto sectionForCode = ".text"; constexpr auto sectionForNewLdr = ".ldr"; @@ -93,14 +93,14 @@ namespace Boot { LDR_SECTION_HEADER_PTR sect = §Ptr[sectIndex]; - SetMem((VoidPtr)(loadStartAddress + sect->mVirtualAddress), 0, sect->mSizeOfRawData); + SetMem((VoidPtr)(loadStartAddress + sect->VirtualAddress), 0, sect->SizeOfRawData); - if (StrCmp(sectionForCode, sect->mName) == 0) + if (StrCmp(sectionForCode, sect->Name) == 0) { - fStartAddress = (VoidPtr)((UIntPtr)loadStartAddress + opt_header_ptr->mAddressOfEntryPoint); + fStartAddress = (VoidPtr)((UIntPtr)loadStartAddress + opt_header_ptr->AddressOfEntryPoint); writer.Write("BootZ: Executable entry address: ").Write((UIntPtr)fStartAddress).Write("\r"); } - else if (StrCmp(sectionForNewLdr, sect->mName) == 0) + else if (StrCmp(sectionForNewLdr, sect->Name) == 0) { struct HANDOVER_INFORMATION_STUB { @@ -108,7 +108,7 @@ namespace Boot UInt32 HandoverType; UInt32 HandoverPad; UInt32 HandoverArch; - }* handover_struc = (struct HANDOVER_INFORMATION_STUB*)((UIntPtr)fBlob + sect->mPointerToRawData); + }* handover_struc = (struct HANDOVER_INFORMATION_STUB*)((UIntPtr)fBlob + sect->PointerToRawData); if (handover_struc->HandoverMagic != kHandoverMagic && handover_struc->HandoverType != HEL::kTypeKernel) @@ -134,9 +134,9 @@ namespace Boot } } - writer.Write("BootZ: Raw offset: ").Write(sect->mPointerToRawData).Write(" of ").Write(sect->mName).Write("\r"); + writer.Write("BootZ: Raw offset: ").Write(sect->PointerToRawData).Write(" of ").Write(sect->Name).Write("\r"); - CopyMem((VoidPtr)(loadStartAddress + sect->mVirtualAddress), (VoidPtr)((UIntPtr)fBlob + sect->mPointerToRawData), sect->mSizeOfRawData); + CopyMem((VoidPtr)(loadStartAddress + sect->VirtualAddress), (VoidPtr)((UIntPtr)fBlob + sect->PointerToRawData), sect->SizeOfRawData); } } else if (blob_bytes[0] == kPefMagic[0] && |
