diff options
Diffstat (limited to 'Kernel')
| -rw-r--r-- | Kernel/Builtins/ReadMe.txt | 8 | ||||
| -rw-r--r-- | Kernel/HALKit/ARM64/Hart.hxx | 10 | ||||
| -rw-r--r-- | Kernel/Sources/KeMain.cxx | 42 |
3 files changed, 34 insertions, 26 deletions
diff --git a/Kernel/Builtins/ReadMe.txt b/Kernel/Builtins/ReadMe.txt index b0a5a327..df63e0be 100644 --- a/Kernel/Builtins/ReadMe.txt +++ b/Kernel/Builtins/ReadMe.txt @@ -6,14 +6,14 @@ NewOS Builtins What are these? =============== -These are NewOS builtins device drivers. +These are like modules for the kernel. =================== Maintainers/Authors =================== -ACPIFactoryInterface: Amlal EL Mahrouss. +ACPI: Amlal EL Mahrouss. AHCI: Amlal EL Mahrouss. GX: Amlal EL Mahrouss. -PS2: Amlal EL Mahrouss -ATA: Amlal EL Mahrouss
\ No newline at end of file +PS2: Amlal EL Mahrouss. +ATA: Amlal EL Mahrouss.
\ No newline at end of file diff --git a/Kernel/HALKit/ARM64/Hart.hxx b/Kernel/HALKit/ARM64/Hart.hxx index bc35c3f5..1b16a072 100644 --- a/Kernel/HALKit/ARM64/Hart.hxx +++ b/Kernel/HALKit/ARM64/Hart.hxx @@ -17,4 +17,12 @@ typedef NewOS::Int32 Arm64HartType; /// @param hart the hart
/// @param epc the pc.
/// @return
-EXTERN_C NewOS::Void hal_switch_to_hart(Arm64HartType hart, NewOS::VoidPtr epc);
\ No newline at end of file +EXTERN_C NewOS::Void hal_switch_to_hart(Arm64HartType hart, NewOS::VoidPtr epc);
+
+/// @brief Hart IPI enum
+enum {
+ cHartIpiTurnOn,
+ cHartIpiTurnOff,
+ cHartIpiStop,
+ cHartIpiResume,
+};
diff --git a/Kernel/Sources/KeMain.cxx b/Kernel/Sources/KeMain.cxx index e1b347b8..83702d77 100644 --- a/Kernel/Sources/KeMain.cxx +++ b/Kernel/Sources/KeMain.cxx @@ -33,6 +33,7 @@ namespace NewOS::Detail NewOS::NewFilesystemManager* fNewFS{nullptr}; public: + /// @brief wizard constructor. explicit FilesystemWizard() { if (NewOS::FilesystemManagerInterface::GetMounted()) @@ -54,7 +55,7 @@ namespace NewOS::Detail constexpr auto cFolderInfo = "META-INF"; const auto cDirCount = 8; const char* cDirStr[cDirCount] = { - "\\Boot\\", "\\System\\", "\\Support\\", "\\Applications\\", + "\\Boot\\", "\\System\\", "\\Support\\", "\\Packages\\", "\\Users\\", "\\Library\\", "\\Mount\\", "\\DCIM\\"}; for (NewOS::SizeT dirIndx = 0UL; dirIndx < cDirCount; ++dirIndx) @@ -92,9 +93,9 @@ namespace NewOS::Detail metadataFolder += "<p>Kind: folder</p>\r<p>Created by: system</p>\r<p>Edited by: " - "system</p>\r<p>Volume Type: New OS Standard</p>\r"; + "system</p>\r<p>Volume Type: s10 Filesystem</p>\r"; - metadataFolder += "<p>File name: "; + metadataFolder += "<p>Path: "; metadataFolder += cDirStr[dirIndx]; metadataFolder += "</p>\r"; @@ -113,7 +114,7 @@ namespace NewOS::Detail } NewCatalog* catalogDisk = - this->fNewFS->GetParser()->GetCatalog("\\Mount\\This Disk"); + this->fNewFS->GetParser()->GetCatalog("\\Mount\\C:\\"); const NewOS::Char* cSrcName = "DISK-INF"; @@ -128,16 +129,16 @@ namespace NewOS::Detail else { catalogDisk = - (NewCatalog*)this->Leak()->CreateAlias("\\Mount\\This Disk"); + (NewCatalog*)this->Leak()->CreateAlias("\\Mount\\C:\\"); NewOS::StringView diskFolder(kNewFSSectorSz); diskFolder += - "<p>Kind: alias to disk</p>\r<p>Created by: newoskrnl</p>\r<p>Edited " + "<p>Kind: alias to disk</p>\r<p>Created by: system</p>\r<p>Edited " "by: " - "N/A</p>\r<p>Volume Type: New OS Standard</p>\r"; + "system</p>\r<p>Volume Type: s10 Filesystem</p>\r"; - diskFolder += "<p>Original Path: "; + diskFolder += "<p>Root: "; diskFolder += NewOS::NewFilesystemHelper::Root(); diskFolder += "</p>\r"; @@ -165,43 +166,41 @@ namespace NewOS::Detail } } - ~FilesystemWizard() - { - delete fNewFS; - } + ~FilesystemWizard() = default; NEWOS_COPY_DEFAULT(FilesystemWizard); - /// Grab the disk's NewFS reference. + /// @brief Grab the disk's NewFS reference. + /// @return NewFilesystemManager the filesystem interface NewOS::NewFilesystemManager* Leak() { return fNewFS; } }; - /// @brief System loader entrypoint. + /// @brief Loads necessary servers for the OS to work. /// @param void no parameters. /// @return void no return value. STATIC NewOS::Void ke_launch_srv(NewOS::Void) { - NewOS::PEFLoader lockScreen("\\System\\securesrv.exe"); + NewOS::PEFLoader secureSrv("\\System\\securesrv.exe"); - if (!lockScreen.IsLoaded()) + if (!secureSrv.IsLoaded()) { NewOS::ke_stop(RUNTIME_CHECK_FAILED); } - NewOS::Utils::execute_from_image(lockScreen, + NewOS::Utils::execute_from_image(secureSrv, NewOS::ProcessHeader::kAppKind); - NewOS::PEFLoader stageBoard("\\System\\uisrv.exe"); + NewOS::PEFLoader uiSrv("\\System\\uisrv.exe"); - if (!stageBoard.IsLoaded()) + if (!uiSrv.IsLoaded()) { NewOS::ke_stop(RUNTIME_CHECK_FAILED); } - NewOS::Utils::execute_from_image(stageBoard, + NewOS::Utils::execute_from_image(uiSrv, NewOS::ProcessHeader::kAppKind); } } // namespace NewOS::Detail @@ -219,7 +218,8 @@ EXTERN_C NewOS::Void KeMain(NewOS::Void) // fetch system cores. NewOS::HAL::hal_system_get_cores(kHandoverHeader->f_HardwareTables.f_RsdPtr); - while (true) + // spin forever. + while (Yes) { // start scheduling. NewOS::ProcessHelper::StartScheduling(); |
