From df1b19604b3fcb9508d27d1d7e41bd3616eb78e5 Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Sat, 8 Jun 2024 10:32:50 +0200 Subject: MHR-28: Implement SMP support. Now we need to feed the core code to finish our scheduler. Signed-off-by: Amlal EL Mahrouss --- Boot/Sources/BootloaderRsrc.rsrc | 2 +- Drv/Bonjour/DriverRsrc.rsrc | 2 +- Drv/SampleDriver/DriverRsrc.rsrc | 2 +- Icons/bonjour-logo.ico | Bin 0 -> 108478 bytes Icons/boot-logo.ico | Bin 0 -> 108478 bytes Icons/driver-logo.ico | Bin 0 -> 108478 bytes Icons/kernel-logo.ico | Bin 0 -> 108478 bytes Icons/settings-icon.ico | Bin 0 -> 108478 bytes Icons/update-logo.ico | Bin 0 -> 108478 bytes Kernel/FirmwareKit/EPM.hxx | 12 +++++--- Kernel/HALKit/ARM64/ACPI/.gitkeep | 0 Kernel/HALKit/ARM64/APM/.gitkeep | 0 Kernel/HALKit/ARM64/ReadMe.md | 5 ++-- Kernel/KernelKit/FileManager.hpp | 4 ++- Kernel/KernelRsrc.rsrc | 2 +- Kernel/Root/.gitkeep | 0 Kernel/Root/Applications/.gitkeep | 0 Kernel/Root/Assistants/.gitkeep | 0 Kernel/Root/Boot/.gitkeep | 0 Kernel/Root/Boot/Icons/bonjour-logo.ico | Bin 108478 -> 0 bytes Kernel/Root/Boot/Icons/boot-logo.ico | Bin 108478 -> 0 bytes Kernel/Root/Boot/Icons/driver-logo.ico | Bin 108478 -> 0 bytes Kernel/Root/Boot/Icons/kernel-logo.ico | Bin 108478 -> 0 bytes Kernel/Root/Boot/Icons/settings-icon.ico | Bin 108478 -> 0 bytes Kernel/Root/Boot/Icons/update-logo.ico | Bin 108478 -> 0 bytes Kernel/Root/Library/.gitkeep | 0 Kernel/Root/Mount/.gitkeep | 0 Kernel/Root/Support/.gitkeep | 0 Kernel/Root/System/.gitkeep | 0 Kernel/Root/System/FileExplorerHome.html | 34 ----------------------- Kernel/Root/System/SystemTheme.css | 46 ------------------------------- Kernel/Root/Users/.gitkeep | 0 Kernel/Root/Users/Shared/.gitkeep | 0 Kernel/Sources/AppMain.cxx | 20 +++++++------- Kernel/Sources/FileManager.cxx | 2 +- 35 files changed, 28 insertions(+), 103 deletions(-) create mode 100644 Icons/bonjour-logo.ico create mode 100644 Icons/boot-logo.ico create mode 100644 Icons/driver-logo.ico create mode 100644 Icons/kernel-logo.ico create mode 100644 Icons/settings-icon.ico create mode 100644 Icons/update-logo.ico delete mode 100644 Kernel/HALKit/ARM64/ACPI/.gitkeep create mode 100644 Kernel/HALKit/ARM64/APM/.gitkeep delete mode 100644 Kernel/Root/.gitkeep delete mode 100644 Kernel/Root/Applications/.gitkeep delete mode 100644 Kernel/Root/Assistants/.gitkeep delete mode 100644 Kernel/Root/Boot/.gitkeep delete mode 100644 Kernel/Root/Boot/Icons/bonjour-logo.ico delete mode 100644 Kernel/Root/Boot/Icons/boot-logo.ico delete mode 100644 Kernel/Root/Boot/Icons/driver-logo.ico delete mode 100644 Kernel/Root/Boot/Icons/kernel-logo.ico delete mode 100644 Kernel/Root/Boot/Icons/settings-icon.ico delete mode 100644 Kernel/Root/Boot/Icons/update-logo.ico delete mode 100644 Kernel/Root/Library/.gitkeep delete mode 100644 Kernel/Root/Mount/.gitkeep delete mode 100644 Kernel/Root/Support/.gitkeep delete mode 100644 Kernel/Root/System/.gitkeep delete mode 100644 Kernel/Root/System/FileExplorerHome.html delete mode 100644 Kernel/Root/System/SystemTheme.css delete mode 100644 Kernel/Root/Users/.gitkeep delete mode 100644 Kernel/Root/Users/Shared/.gitkeep diff --git a/Boot/Sources/BootloaderRsrc.rsrc b/Boot/Sources/BootloaderRsrc.rsrc index 857e08e4..5089e3fa 100644 --- a/Boot/Sources/BootloaderRsrc.rsrc +++ b/Boot/Sources/BootloaderRsrc.rsrc @@ -1,6 +1,6 @@ #include "../../Kernel/CompilerKit/Version.hxx" -1 ICON "../../Kernel/Root/Boot/Icons/boot-logo.ico" +1 ICON "../../Icons/boot-logo.ico" 1 VERSIONINFO FILEVERSION 1,0,0,0 diff --git a/Drv/Bonjour/DriverRsrc.rsrc b/Drv/Bonjour/DriverRsrc.rsrc index d2f15f1e..2ba7db11 100644 --- a/Drv/Bonjour/DriverRsrc.rsrc +++ b/Drv/Bonjour/DriverRsrc.rsrc @@ -1,4 +1,4 @@ -1 ICON "../../Kernel/Root/Boot/Icons/driver-logo.ico" +1 ICON "../../Boot/Icons/driver-logo.ico" 1 VERSIONINFO FILEVERSION 1,0,0,0 diff --git a/Drv/SampleDriver/DriverRsrc.rsrc b/Drv/SampleDriver/DriverRsrc.rsrc index dc819c7e..a7170b93 100644 --- a/Drv/SampleDriver/DriverRsrc.rsrc +++ b/Drv/SampleDriver/DriverRsrc.rsrc @@ -1,4 +1,4 @@ -1 ICON "../../Kernel/Root/Boot/Icons/driver-logo.ico" +1 ICON "../../Icons/driver-logo.ico" 1 VERSIONINFO FILEVERSION 1,0,0,0 diff --git a/Icons/bonjour-logo.ico b/Icons/bonjour-logo.ico new file mode 100644 index 00000000..568de302 Binary files /dev/null and b/Icons/bonjour-logo.ico differ diff --git a/Icons/boot-logo.ico b/Icons/boot-logo.ico new file mode 100644 index 00000000..a7edcfe8 Binary files /dev/null and b/Icons/boot-logo.ico differ diff --git a/Icons/driver-logo.ico b/Icons/driver-logo.ico new file mode 100644 index 00000000..dbdcdee1 Binary files /dev/null and b/Icons/driver-logo.ico differ diff --git a/Icons/kernel-logo.ico b/Icons/kernel-logo.ico new file mode 100644 index 00000000..00724f48 Binary files /dev/null and b/Icons/kernel-logo.ico differ diff --git a/Icons/settings-icon.ico b/Icons/settings-icon.ico new file mode 100644 index 00000000..4fd36645 Binary files /dev/null and b/Icons/settings-icon.ico differ diff --git a/Icons/update-logo.ico b/Icons/update-logo.ico new file mode 100644 index 00000000..3423d76a Binary files /dev/null and b/Icons/update-logo.ico differ diff --git a/Kernel/FirmwareKit/EPM.hxx b/Kernel/FirmwareKit/EPM.hxx index aa5dc92a..5d41e21a 100644 --- a/Kernel/FirmwareKit/EPM.hxx +++ b/Kernel/FirmwareKit/EPM.hxx @@ -83,6 +83,10 @@ struct PACKED PartitionBlock #define kEPMMagicUEFI "EPMUE" +/* @brief CoreBoot magic for EPM */ + +#define kEPMMagicCoreBoot "EPMCB" + /* @brief Invalid magic for EPM */ #define kEPMMagicError "EPM??" @@ -113,16 +117,16 @@ typedef struct PartitionBlock PartitionBlockType; ///! @brief partition must start at this address. ///! Anything below is reserved for Data backup by the Main OS. -#define kEPMStartPartitionBlk (sizeof(BootBlock)) +#define kEPMStartPartitionBlk (sizeof(BootBlock)) ///! @brief Current EPM revision (2) -#define kEPMRevision (2) +#define kEPMRevision (3) ///! @brief Current EPM revision (2) -#define kEPMRevisionUEFI (0xF) +#define kEPMRevisionUEFI (0xF) /* @brief Maximum block count. */ -#define kEPMMaxBlks 128 +#define kEPMMaxBlks (128) /// END OF SPECS diff --git a/Kernel/HALKit/ARM64/ACPI/.gitkeep b/Kernel/HALKit/ARM64/ACPI/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/HALKit/ARM64/APM/.gitkeep b/Kernel/HALKit/ARM64/APM/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/Kernel/HALKit/ARM64/ReadMe.md b/Kernel/HALKit/ARM64/ReadMe.md index 89679e18..d4d35a0b 100644 --- a/Kernel/HALKit/ARM64/ReadMe.md +++ b/Kernel/HALKit/ARM64/ReadMe.md @@ -1,4 +1,3 @@ -ARM64 Hardware Abstraction Layer +# ARM64 Hardware Abstraction Layer -- Supported CPU: Qualcomm CPU -- Supported Firmware: EDK 2 \ No newline at end of file +- Supported Firmware: CoreBoot \ No newline at end of file diff --git a/Kernel/KernelKit/FileManager.hpp b/Kernel/KernelKit/FileManager.hpp index 1f6fd774..19428f24 100644 --- a/Kernel/KernelKit/FileManager.hpp +++ b/Kernel/KernelKit/FileManager.hpp @@ -133,7 +133,9 @@ namespace NewOS void SetResourceFork(const char* forkName); void SetDataFork(const char* forkName); - NewFSParser* GetImpl() noexcept; + /// @brief Get internal parser. + /// @return + NewFSParser* GetParser() noexcept; private: NewFSParser* fImpl{nullptr}; diff --git a/Kernel/KernelRsrc.rsrc b/Kernel/KernelRsrc.rsrc index 56c94a06..7e224c62 100644 --- a/Kernel/KernelRsrc.rsrc +++ b/Kernel/KernelRsrc.rsrc @@ -1,4 +1,4 @@ -1 ICON "Root/Boot/Icons/kernel-logo.ico" +1 ICON "../Icons/kernel-logo.ico" #include "CompilerKit/Version.hxx" diff --git a/Kernel/Root/.gitkeep b/Kernel/Root/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Applications/.gitkeep b/Kernel/Root/Applications/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Assistants/.gitkeep b/Kernel/Root/Assistants/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Boot/.gitkeep b/Kernel/Root/Boot/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Boot/Icons/bonjour-logo.ico b/Kernel/Root/Boot/Icons/bonjour-logo.ico deleted file mode 100644 index 568de302..00000000 Binary files a/Kernel/Root/Boot/Icons/bonjour-logo.ico and /dev/null differ diff --git a/Kernel/Root/Boot/Icons/boot-logo.ico b/Kernel/Root/Boot/Icons/boot-logo.ico deleted file mode 100644 index a7edcfe8..00000000 Binary files a/Kernel/Root/Boot/Icons/boot-logo.ico and /dev/null differ diff --git a/Kernel/Root/Boot/Icons/driver-logo.ico b/Kernel/Root/Boot/Icons/driver-logo.ico deleted file mode 100644 index dbdcdee1..00000000 Binary files a/Kernel/Root/Boot/Icons/driver-logo.ico and /dev/null differ diff --git a/Kernel/Root/Boot/Icons/kernel-logo.ico b/Kernel/Root/Boot/Icons/kernel-logo.ico deleted file mode 100644 index 00724f48..00000000 Binary files a/Kernel/Root/Boot/Icons/kernel-logo.ico and /dev/null differ diff --git a/Kernel/Root/Boot/Icons/settings-icon.ico b/Kernel/Root/Boot/Icons/settings-icon.ico deleted file mode 100644 index 4fd36645..00000000 Binary files a/Kernel/Root/Boot/Icons/settings-icon.ico and /dev/null differ diff --git a/Kernel/Root/Boot/Icons/update-logo.ico b/Kernel/Root/Boot/Icons/update-logo.ico deleted file mode 100644 index 3423d76a..00000000 Binary files a/Kernel/Root/Boot/Icons/update-logo.ico and /dev/null differ diff --git a/Kernel/Root/Library/.gitkeep b/Kernel/Root/Library/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Mount/.gitkeep b/Kernel/Root/Mount/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Support/.gitkeep b/Kernel/Root/Support/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/System/.gitkeep b/Kernel/Root/System/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/System/FileExplorerHome.html b/Kernel/Root/System/FileExplorerHome.html deleted file mode 100644 index f37e6d64..00000000 --- a/Kernel/Root/System/FileExplorerHome.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - NewOS WebTraveler - - - - - - - - - - - -
-
- - - diff --git a/Kernel/Root/System/SystemTheme.css b/Kernel/Root/System/SystemTheme.css deleted file mode 100644 index 44e38465..00000000 --- a/Kernel/Root/System/SystemTheme.css +++ /dev/null @@ -1,46 +0,0 @@ -@layer base { - :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; - --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 5.9% 10%; - --radius: 0.5rem; - } - - .dark { - --background: 240 10% 3.9%; - --foreground: 0 0% 98%; - --card: 240 10% 3.9%; - --card-foreground: 0 0% 98%; - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; - --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 0 0% 98%; - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; - } -} diff --git a/Kernel/Root/Users/.gitkeep b/Kernel/Root/Users/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Root/Users/Shared/.gitkeep b/Kernel/Root/Users/Shared/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/Kernel/Sources/AppMain.cxx b/Kernel/Sources/AppMain.cxx index 62795893..41619673 100644 --- a/Kernel/Sources/AppMain.cxx +++ b/Kernel/Sources/AppMain.cxx @@ -49,7 +49,7 @@ namespace NewOS::Detail NewOS::FilesystemManagerInterface::Mount(fNewFS); - if (fNewFS->GetImpl()) + if (fNewFS->GetParser()) { constexpr auto cFolderInfo = "Metadata"; const auto cDirCount = 8; @@ -59,7 +59,7 @@ namespace NewOS::Detail for (NewOS::SizeT dirIndx = 0UL; dirIndx < cDirCount; ++dirIndx) { - auto catalogDir = fNewFS->GetImpl()->GetCatalog(cDirStr[dirIndx]); + auto catalogDir = fNewFS->GetParser()->GetCatalog(cDirStr[dirIndx]); if (catalogDir) { @@ -67,7 +67,7 @@ namespace NewOS::Detail continue; } - catalogDir = fNewFS->GetImpl()->CreateCatalog(cDirStr[dirIndx], 0, + catalogDir = fNewFS->GetParser()->CreateCatalog(cDirStr[dirIndx], 0, kNewFSCatalogKindDir); NewFork theFork{0}; @@ -100,11 +100,11 @@ namespace NewOS::Detail const NewOS::SizeT metadataSz = kNewFSSectorSz; - auto catalogSystem = fNewFS->GetImpl()->GetCatalog(cDirStr[dirIndx]); + auto catalogSystem = fNewFS->GetParser()->GetCatalog(cDirStr[dirIndx]); - fNewFS->GetImpl()->CreateFork(catalogSystem, theFork); + fNewFS->GetParser()->CreateFork(catalogSystem, theFork); - fNewFS->GetImpl()->WriteCatalog( + fNewFS->GetParser()->WriteCatalog( catalogSystem, (NewOS::VoidPtr)(metadataFolder.CData()), metadataSz, cFolderInfo); @@ -113,13 +113,13 @@ namespace NewOS::Detail } NewCatalog* catalogDisk = - this->fNewFS->GetImpl()->GetCatalog("/Mount/This Disk"); + this->fNewFS->GetParser()->GetCatalog("/Mount/This Disk"); const NewOS::Char* cSrcName = "DiskInfo"; if (catalogDisk) { - auto bufferInfoDisk = (NewOS::Char*)this->fNewFS->GetImpl()->ReadCatalog(catalogDisk, kNewFSSectorSz, cSrcName); + auto bufferInfoDisk = (NewOS::Char*)this->fNewFS->GetParser()->ReadCatalog(catalogDisk, kNewFSSectorSz, cSrcName); NewOS::kcout << bufferInfoDisk << NewOS::end_line(); delete bufferInfoDisk; @@ -155,8 +155,8 @@ namespace NewOS::Detail theDiskFork.ResourceKind = NewOS::kNewFSRsrcForkKind; theDiskFork.Kind = NewOS::kNewFSDataForkKind; - fNewFS->GetImpl()->CreateFork(catalogDisk, theDiskFork); - fNewFS->GetImpl()->WriteCatalog(catalogDisk, + fNewFS->GetParser()->CreateFork(catalogDisk, theDiskFork); + fNewFS->GetParser()->WriteCatalog(catalogDisk, (NewOS::VoidPtr)diskFolder.CData(), kNewFSSectorSz, cSrcName); diff --git a/Kernel/Sources/FileManager.cxx b/Kernel/Sources/FileManager.cxx index 1aeae426..0ea463ec 100644 --- a/Kernel/Sources/FileManager.cxx +++ b/Kernel/Sources/FileManager.cxx @@ -163,7 +163,7 @@ namespace NewOS /// @brief Returns the filesystem parser. /// @return the Filesystem parser class. - NewFSParser* NewFilesystemManager::GetImpl() noexcept + NewFSParser* NewFilesystemManager::GetParser() noexcept { return fImpl; } -- cgit v1.2.3