diff options
| -rw-r--r-- | Kernel/HALKit/AMD64/HalDebugOutput.cxx | 9 | ||||
| -rw-r--r-- | Kernel/KernelKit/Heap.hxx | 4 | ||||
| -rw-r--r-- | Kernel/KernelKit/MP.hxx | 16 | ||||
| -rw-r--r-- | Kernel/Sources/Heap.cxx | 10 | ||||
| -rw-r--r-- | Kernel/Sources/KernelCheck.cxx | 4 | ||||
| -rw-r--r-- | Kernel/Sources/MP.cxx | 20 | ||||
| -rw-r--r-- | Kernel/Sources/ProcessScheduler.cxx | 18 |
7 files changed, 39 insertions, 42 deletions
diff --git a/Kernel/HALKit/AMD64/HalDebugOutput.cxx b/Kernel/HALKit/AMD64/HalDebugOutput.cxx index 60c4cd6b..b80ab761 100644 --- a/Kernel/HALKit/AMD64/HalDebugOutput.cxx +++ b/Kernel/HALKit/AMD64/HalDebugOutput.cxx @@ -8,6 +8,7 @@ #include <KernelKit/DebugOutput.hxx> #include <KernelKit/Framebuffer.hxx> #include <NewKit/Utils.hxx> +#include <NewKit/New.hxx> namespace Kernel { @@ -137,12 +138,8 @@ namespace Kernel TerminalDevice& TerminalDevice::The() noexcept { - static TerminalDevice* out = nullptr; - - if (!out) - out = new TerminalDevice(Kernel::ke_io_write, Kernel::ke_io_read); - - return *out; + STATIC TerminalDevice out(Kernel::ke_io_write, Kernel::ke_io_read); + return out; } } // namespace Kernel diff --git a/Kernel/KernelKit/Heap.hxx b/Kernel/KernelKit/Heap.hxx index ee176f3b..c24cf1df 100644 --- a/Kernel/KernelKit/Heap.hxx +++ b/Kernel/KernelKit/Heap.hxx @@ -28,13 +28,13 @@ namespace Kernel /// @brief Check if pointer is a valid kernel pointer. /// @param allocatedPtr the pointer /// @return if it exists. - Boolean ke_is_valid_heap(VoidPtr allocatedPtr); + Boolean mm_is_valid_heap(VoidPtr allocatedPtr); /// @brief allocate chunk of memory. /// @param sz size of pointer /// @param rw read write (true to enable it) /// @param user is it accesible by user processes? - /// @return the pointer + /// @return The newly allocated pointer. voidPtr mm_new_ke_heap(const SizeT sz, const Bool rw, const Bool user); /// @brief Protect the heap with a CRC value. diff --git a/Kernel/KernelKit/MP.hxx b/Kernel/KernelKit/MP.hxx index df34bed8..f7c3888a 100644 --- a/Kernel/KernelKit/MP.hxx +++ b/Kernel/KernelKit/MP.hxx @@ -19,7 +19,7 @@ namespace Kernel { class HardwareThread; - class MPCoreScheduler; + class HardwareThreadScheduler; using ThreadID = UInt32; @@ -77,22 +77,22 @@ namespace Kernel bool fBusy{false}; private: - friend class MPCoreScheduler; + friend class HardwareThreadScheduler; }; /// - /// \name MPCoreScheduler + /// \name HardwareThreadScheduler /// \brief Class to manage the thread scheduling. /// - class MPCoreScheduler final + class HardwareThreadScheduler final { private: - explicit MPCoreScheduler(); + explicit HardwareThreadScheduler(); public: - ~MPCoreScheduler(); - NEWOS_COPY_DEFAULT(MPCoreScheduler); + ~HardwareThreadScheduler(); + NEWOS_COPY_DEFAULT(HardwareThreadScheduler); public: bool Switch(HAL::StackFramePtr the); @@ -106,7 +106,7 @@ namespace Kernel public: /// @brief Shared instance of the MP Manager. /// @return the reference to the mp manager class. - static Ref<MPCoreScheduler> The(); + static Ref<HardwareThreadScheduler> The(); public: /// @brief Returns the amount of threads present in the system. diff --git a/Kernel/Sources/Heap.cxx b/Kernel/Sources/Heap.cxx index 75285cf8..72c0b77c 100644 --- a/Kernel/Sources/Heap.cxx +++ b/Kernel/Sources/Heap.cxx @@ -30,11 +30,11 @@ namespace Kernel /// | HIB | ADDRESS | struct PACKED HEAP_INFORMATION_BLOCK final { - ///! @brief 32-bit value which contains the magic number of the executable. + ///! @brief 32-bit value which contains the magic number of the heap. UInt32 fMagic; - ///! @brief Boolean value which tells if the pointer is allocated. + ///! @brief Boolean value which tells if the heap is allocated. Boolean fPresent; - ///! @brief 32-bit CRC checksum + ///! @brief 32-bit CRC checksum. UInt32 fCRC32; /// @brief 64-bit pointer size. SizeT fTargetPtrSize; @@ -95,7 +95,7 @@ namespace Kernel /// @param sz size of pointer /// @param rw read write (true to enable it) /// @param user is it accesible by user processes? - /// @return the pointer + /// @return The newly allocated pointer. VoidPtr mm_new_ke_heap(const SizeT sz, const bool rw, const bool user) { Detail::mm_alloc_init_timeout(); @@ -210,7 +210,7 @@ namespace Kernel /// @brief Check if pointer is a valid kernel pointer. /// @param heapPtr the pointer /// @return if it exists. - Boolean ke_is_valid_heap(VoidPtr heapPtr) + Boolean mm_is_valid_heap(VoidPtr heapPtr) { if (kHeapCount < 1) return false; diff --git a/Kernel/Sources/KernelCheck.cxx b/Kernel/Sources/KernelCheck.cxx index 0fcc742f..cd8e8ef9 100644 --- a/Kernel/Sources/KernelCheck.cxx +++ b/Kernel/Sources/KernelCheck.cxx @@ -19,13 +19,13 @@ #define CopyMem(dst, src, sz) Kernel::rt_copy_memory((Kernel::VoidPtr)src, (Kernel::VoidPtr)dst, sz) #define MoveMem(dst, src, sz) Kernel::rt_copy_memory((Kernel::VoidPtr)src, (Kernel::VoidPtr)dst, sz) +#define cWebsiteMacro "https://zka-tech.nl/hulp" + #include <BootKit/Vendor/Qr.hxx> /* Each error code is attributed with an ID, which will prompt a string onto the * screen. Wait for debugger... */ -#define cWebsiteMacro "https://zka-tech.nl/hulp" - namespace Kernel { void ke_stop(const Kernel::Int& id) diff --git a/Kernel/Sources/MP.cxx b/Kernel/Sources/MP.cxx index 265f622c..f4b7db41 100644 --- a/Kernel/Sources/MP.cxx +++ b/Kernel/Sources/MP.cxx @@ -120,7 +120,7 @@ namespace Kernel //! @brief Constructor and destructor ///! @brief Default constructor. - MPCoreScheduler::MPCoreScheduler() + HardwareThreadScheduler::HardwareThreadScheduler() { StringView strCoreName(512); strCoreName += "\\Class\\Smp\\MPClass"; @@ -132,17 +132,17 @@ namespace Kernel } ///! @brief Default destructor. - MPCoreScheduler::~MPCoreScheduler() = default; + HardwareThreadScheduler::~HardwareThreadScheduler() = default; /// @brief Shared singleton function - Ref<MPCoreScheduler> MPCoreScheduler::The() + Ref<HardwareThreadScheduler> HardwareThreadScheduler::The() { - static MPCoreScheduler manager; + static HardwareThreadScheduler manager; return {manager}; } /// @brief Get Stack Frame of Core - HAL::StackFramePtr MPCoreScheduler::Leak() noexcept + HAL::StackFramePtr HardwareThreadScheduler::Leak() noexcept { if (fThreadList[fCurrentThread].Leak() && ProcessHelper::TheCurrentPID() == @@ -153,7 +153,7 @@ namespace Kernel } /// @brief Finds and switch to a free core. - bool MPCoreScheduler::Switch(HAL::StackFramePtr stack) + bool HardwareThreadScheduler::Switch(HAL::StackFramePtr stack) { if (stack == nullptr) return false; @@ -203,7 +203,7 @@ namespace Kernel * @param idx the index * @return the reference to the hardware thread. */ - Ref<HardwareThread*> MPCoreScheduler::operator[](const SizeT& idx) + Ref<HardwareThread*> HardwareThreadScheduler::operator[](const SizeT& idx) { if (idx == 0) { @@ -233,7 +233,7 @@ namespace Kernel * Check if thread pool isn't empty. * @return */ - MPCoreScheduler::operator bool() noexcept + HardwareThreadScheduler::operator bool() noexcept { return !fThreadList.Empty(); } @@ -242,14 +242,14 @@ namespace Kernel * Reverse operator bool * @return */ - bool MPCoreScheduler::operator!() noexcept + bool HardwareThreadScheduler::operator!() noexcept { return fThreadList.Empty(); } /// @brief Returns the amount of core present. /// @return the number of cores. - SizeT MPCoreScheduler::Count() noexcept + SizeT HardwareThreadScheduler::Count() noexcept { return fThreadList.Count(); } diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx index 7c839a74..cacdd060 100644 --- a/Kernel/Sources/ProcessScheduler.cxx +++ b/Kernel/Sources/ProcessScheduler.cxx @@ -395,29 +395,29 @@ namespace Kernel if (!the_stack || new_pid < 0) return false; - for (SizeT index = 0UL; index < MPCoreScheduler::The().Leak().Count(); ++index) + for (SizeT index = 0UL; index < HardwareThreadScheduler::The().Leak().Count(); ++index) { - if (MPCoreScheduler::The().Leak()[index].Leak()->Kind() == kInvalidHart) + if (HardwareThreadScheduler::The().Leak()[index].Leak()->Kind() == kInvalidHart) continue; - if (MPCoreScheduler::The().Leak()[index].Leak()->StackFrame() == the_stack) + if (HardwareThreadScheduler::The().Leak()[index].Leak()->StackFrame() == the_stack) { - MPCoreScheduler::The().Leak()[index].Leak()->Busy(false); + HardwareThreadScheduler::The().Leak()[index].Leak()->Busy(false); continue; } - if (MPCoreScheduler::The().Leak()[index].Leak()->IsBusy()) + if (HardwareThreadScheduler::The().Leak()[index].Leak()->IsBusy()) continue; - if (MPCoreScheduler::The().Leak()[index].Leak()->Kind() != + if (HardwareThreadScheduler::The().Leak()[index].Leak()->Kind() != ThreadKind::kHartBoot && - MPCoreScheduler::The().Leak()[index].Leak()->Kind() != + HardwareThreadScheduler::The().Leak()[index].Leak()->Kind() != ThreadKind::kHartSystemReserved) { - MPCoreScheduler::The().Leak()[index].Leak()->Busy(true); + HardwareThreadScheduler::The().Leak()[index].Leak()->Busy(true); ProcessHelper::TheCurrentPID() = new_pid; - return MPCoreScheduler::The().Leak()[index].Leak()->Switch(the_stack); + return HardwareThreadScheduler::The().Leak()[index].Leak()->Switch(the_stack); } } |
