diff options
| -rw-r--r-- | Kernel/HALKit/AMD64/HalKernelMain.cxx | 4 | ||||
| -rw-r--r-- | Kernel/KernelKit/ProcessScheduler.hxx | 8 | ||||
| -rw-r--r-- | Kernel/Sources/CodeManager.cxx | 4 | ||||
| -rw-r--r-- | Kernel/Sources/KeMain.cxx | 7 | ||||
| -rw-r--r-- | Kernel/Sources/ProcessScheduler.cxx | 24 |
5 files changed, 7 insertions, 40 deletions
diff --git a/Kernel/HALKit/AMD64/HalKernelMain.cxx b/Kernel/HALKit/AMD64/HalKernelMain.cxx index 6f01734e..7064183b 100644 --- a/Kernel/HALKit/AMD64/HalKernelMain.cxx +++ b/Kernel/HALKit/AMD64/HalKernelMain.cxx @@ -87,13 +87,11 @@ EXTERN_C void hal_init_platform( NewOS::HAL::Detail::_ke_power_on_self_test(); - auto cLoaderName = "newoskrnl"; + auto cLoaderName = "LaunchDevil"; NewOS::execute_from_image(KeMain, cLoaderName); NewOS::HAL::hal_system_get_cores(kHandoverHeader->f_HardwareTables.f_RsdPtr); - NewOS::kcout << "newoskrnl: We're done here...\r"; - while (true) {} } diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx index 8c1971b0..1ac19053 100644 --- a/Kernel/KernelKit/ProcessScheduler.hxx +++ b/Kernel/KernelKit/ProcessScheduler.hxx @@ -164,19 +164,11 @@ namespace NewOS { kAppKind = 1, kShLibKind = 2, - kDriverKind = 3, kKindCount, }; - enum - { - kRingUserKind = 3, - kRingDriverKind = 0, - }; - ProcessTime PTime; PID ProcessId{kSchedInvalidPID}; - Int32 Ring{kRingDriverKind}; Int32 Kind{kAppKind}; public: diff --git a/Kernel/Sources/CodeManager.cxx b/Kernel/Sources/CodeManager.cxx index 33121edf..9f374c18 100644 --- a/Kernel/Sources/CodeManager.cxx +++ b/Kernel/Sources/CodeManager.cxx @@ -20,11 +20,11 @@ namespace NewOS return false; ProcessHeader proc((VoidPtr)main); - proc.Kind = ProcessHeader::kDriverKind; + proc.Kind = ProcessHeader::kAppKind; rt_copy_memory((VoidPtr)processName, proc.Name, rt_string_len(proc.Name)); Ref<ProcessHeader> refProc = proc; return ProcessScheduler::The().Leak().Add(refProc); } -} // namespace NewOS
\ No newline at end of file +} // namespace NewOS diff --git a/Kernel/Sources/KeMain.cxx b/Kernel/Sources/KeMain.cxx index 60494ee3..9be8a026 100644 --- a/Kernel/Sources/KeMain.cxx +++ b/Kernel/Sources/KeMain.cxx @@ -204,9 +204,7 @@ namespace NewOS::Detail NewOS::Utils::execute_from_image(stageBoard, NewOS::ProcessHeader::kAppKind); - NewOS::kcout << "SystemLauncher: done, sleeping..."; - - while (true) {} + /// TODO: now jump to user mode using the HAL. } } // namespace NewOS::Detail @@ -218,6 +216,5 @@ EXTERN_C NewOS::Void KeMain(NewOS::Void) /// Now run kernel loop, until no process are running. NewOS::Detail::FilesystemWizard wizard; // automatic. - auto cLoaderName = "SystemLauncher"; - NewOS::execute_from_image(NewOS::Detail::SystemLauncher_Main, cLoaderName); + NewOS::Detail::SystemLauncher_Main(); } diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx index 7008eafe..d9d013c6 100644 --- a/Kernel/Sources/ProcessScheduler.cxx +++ b/Kernel/Sources/ProcessScheduler.cxx @@ -46,11 +46,6 @@ namespace NewOS kcout.Number(kErrorProcessFault); kcout << ")\r"; - if (this->Ring != kRingUserKind) - { - MUST_PASS(ke_bug_check()); - } - this->Exit(kErrorProcessFault); } @@ -167,24 +162,8 @@ namespace NewOS ProcessScheduler::The().Leak().GetCurrent().Leak().ProcessId) ke_stop(RUNTIME_CHECK_PROCESS); - if (this->Ring == (Int32)ProcessSelector::kRingKernel && - ProcessScheduler::The().Leak().GetCurrent().Leak().Ring > 0) - ke_stop(RUNTIME_CHECK_PROCESS); - kLastExitCode = exit_code; - if (this->Ring != (Int32)ProcessSelector::kRingDriver) - { - if (this->HeapPtr) - rt_free_heap(this->HeapPtr); - - this->HeapPtr = nullptr; - this->HeapCursor = nullptr; - - this->FreeMemory = 0UL; - this->UsedMemory = 0UL; - } - //! Delete image if not done already. if (this->Image) ke_delete_ke_heap(this->Image); @@ -352,7 +331,8 @@ namespace NewOS auto& processRef = ProcessScheduler::The().Leak(); SizeT ret = processRef.Run(); - kcout << "newoskrnl: Iterated over: " << number(ret); + kcout << "newoskrnl: Iterated over: "; + kcout.Number(ret); kcout << " processes.\r"; return true; |
