From 1cae0d2cde6e775ecb1625aa93a5d65d996efad0 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 25 Apr 2024 09:38:24 +0200 Subject: MHR-16: Load NewLoader correctly. Signed-off-by: Amlal El Mahrouss --- Private/HALKit/AMD64/HalProcessor.cpp | 2 +- Private/HALKit/AMD64/Storage/AHCI.cxx | 8 ++++---- Private/NewBoot/Source/HEL/AMD64/BootMain.cxx | 16 ++++++++-------- ReadMe.md | 4 ++-- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Private/HALKit/AMD64/HalProcessor.cpp b/Private/HALKit/AMD64/HalProcessor.cpp index 4fea4e7e..61d98c8c 100644 --- a/Private/HALKit/AMD64/HalProcessor.cpp +++ b/Private/HALKit/AMD64/HalProcessor.cpp @@ -8,7 +8,7 @@ /** * @file Processor.cpp - * @brief This file is about processor specific functions (in/out...) + * @brief This file is about processor specific functions (in/out/cli/std...) */ namespace NewOS::HAL { diff --git a/Private/HALKit/AMD64/Storage/AHCI.cxx b/Private/HALKit/AMD64/Storage/AHCI.cxx index 5e6b3348..c9db540a 100644 --- a/Private/HALKit/AMD64/Storage/AHCI.cxx +++ b/Private/HALKit/AMD64/Storage/AHCI.cxx @@ -33,11 +33,11 @@ NewOS::Boolean drv_std_init(NewOS::UInt16& PortsImplemented) { for (SizeT devIndex = 0; devIndex < NEWOS_BUS_COUNT; ++devIndex) { if (iterator[devIndex].Leak().Subclass() == kSATASubClass && iterator[devIndex].Leak().ProgIf() == kSATAProgIfAHCI) { - iterator[devIndex].Leak().EnableMmio(); - kAhciDevice = iterator[devIndex].Leak(); + iterator[devIndex].Leak().EnableMmio(); /// enable the memory i/o for this ahci device. + kAhciDevice = iterator[devIndex].Leak(); /// and then leak the reference. kcout << "NewKernel: [PCI] Found AHCI controller.\r\n"; - + return true; } } @@ -54,4 +54,4 @@ NewOS::Void drv_std_read(NewOS::UInt64 Lba, NewOS::Char* Buf, NewOS::Void drv_std_write(NewOS::UInt64 Lba, NewOS::Char* Buf, NewOS::SizeT SectorSz, NewOS::SizeT Size) {} -#endif // __AHCI__ \ No newline at end of file +#endif // __AHCI__ diff --git a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx index 7120bcd9..cdbb2f36 100644 --- a/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx +++ b/Private/NewBoot/Source/HEL/AMD64/BootMain.cxx @@ -170,20 +170,20 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle, kernelFile.ReadAll(MIB(1), 4096); if (kernelFile.Blob()) { - PEFContainer* headerKind = + PEFContainer* containerKind = reinterpret_cast(kernelFile.Blob()); - if (headerKind->Magic[0] == kPefMagic[0] && - headerKind->Magic[1] == kPefMagic[1] && - headerKind->Magic[2] == kPefMagic[2] && - headerKind->Magic[3] == kPefMagic[3] && - headerKind->Magic[4] == kPefMagic[4]) { - if (headerKind->Abi != kPefAbi || headerKind->Cpu != kPefArchAMD64) { + if (containerKind->Magic[0] == kPefMagic[0] && + containerKind->Magic[1] == kPefMagic[1] && + containerKind->Magic[2] == kPefMagic[2] && + containerKind->Magic[3] == kPefMagic[3] && + containerKind->Magic[4] == kPefMagic[4]) { + if (containerKind->Abi != kPefAbi || containerKind->Cpu != kPefArchAMD64) { EFI::ThrowError(L"Bad-Architecture", L"New Boot can't run this architecture."); } - NewOS::HEL::BootMainKind main = (NewOS::HEL::BootMainKind) nullptr; + NewOS::HEL::BootMainKind main = reinterpret_cast(containerKind + containerKind->Start); if (!main) { EFI::ThrowError(L"Bad-Exec", diff --git a/ReadMe.md b/ReadMe.md index e3b6ff8c..c169c960 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,6 +1,6 @@
- -

NewKernel

+ +

NewOS


-- cgit v1.2.3