summaryrefslogtreecommitdiffhomepage
path: root/Kernel
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-27 13:50:07 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-27 13:50:07 +0200
commitce84bea215424ff36a2c18cab67835edfa8f71b5 (patch)
treeef11d2595352666d67f4d5f79eee747a3cafda63 /Kernel
parent030a818fd31762b47c4fdf34c67c306ec069ad09 (diff)
MHR-23: :boom: Change ::Shared() to ::The().
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp32
-rw-r--r--Kernel/HALKit/AMD64/HalDebugOutput.cxx2
-rw-r--r--Kernel/KernelKit/DebugOutput.hpp18
-rw-r--r--Kernel/KernelKit/ProcessScheduler.hpp2
-rw-r--r--Kernel/KernelKit/SMPManager.hpp2
-rw-r--r--Kernel/KernelKit/ThreadLocalStorage.inl8
-rw-r--r--Kernel/Sources/AppMain.cxx4
-rw-r--r--Kernel/Sources/CodeManager.cxx2
-rw-r--r--Kernel/Sources/PEFCodeManager.cxx2
-rw-r--r--Kernel/Sources/PEFSharedObjectRT.cxx12
-rw-r--r--Kernel/Sources/ProcessScheduler.cxx34
-rw-r--r--Kernel/Sources/SMPManager.cxx2
-rw-r--r--Kernel/Sources/ThreadLocalStorage.cxx2
-rw-r--r--Kernel/Sources/UserHeap.cxx8
14 files changed, 67 insertions, 63 deletions
diff --git a/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp b/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
index 9477ecb7..0ac7a50e 100644
--- a/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
+++ b/Kernel/HALKit/AMD64/HalCoreInterruptHandlerAMD64.cpp
@@ -12,16 +12,16 @@
/// @param rsp
EXTERN_C void idt_handle_gpf(NewOS::UIntPtr rsp)
{
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(NewOS::ProcessScheduler::The().Leak().GetCurrent());
NewOS::kcout << "New OS: Stack Pointer: "
<< NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
<< "New OS: General Protection Fault, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle the scheduler interrupt, raised from the HPET timer.
@@ -32,7 +32,7 @@ EXTERN_C void idt_handle_scheduler(NewOS::UIntPtr rsp)
NewOS::kcout
<< "New OS: Will be scheduled back later "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName()
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName()
<< NewOS::end_line();
/// schedule another process.
@@ -46,56 +46,56 @@ EXTERN_C void idt_handle_scheduler(NewOS::UIntPtr rsp)
/// @param rsp
EXTERN_C void idt_handle_pf(NewOS::UIntPtr rsp)
{
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(NewOS::ProcessScheduler::The().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
<< "New OS: Segmentation Fault, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle math fault.
/// @param rsp
EXTERN_C void idt_handle_math(NewOS::UIntPtr rsp)
{
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(NewOS::ProcessScheduler::The().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
<< "New OS: Math error, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle any generic fault.
/// @param rsp
EXTERN_C void idt_handle_generic(NewOS::UIntPtr rsp)
{
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(NewOS::ProcessScheduler::The().Leak().GetCurrent());
NewOS::kcout << NewOS::StringBuilder::FromInt("sp{%}", rsp);
NewOS::kcout
<< "New OS: Execution error, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
/// @brief Handle #UD fault.
/// @param rsp
EXTERN_C void idt_handle_ud(NewOS::UIntPtr rsp)
{
- MUST_PASS(NewOS::ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(NewOS::ProcessScheduler::The().Leak().GetCurrent());
NewOS::kcout << "New OS: Stack Pointer: "
<< NewOS::StringBuilder::FromInt("rsp{%}", rsp);
NewOS::kcout
<< "New OS: Invalid interrupt, caused by "
- << NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().GetName();
+ << NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().GetName();
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
diff --git a/Kernel/HALKit/AMD64/HalDebugOutput.cxx b/Kernel/HALKit/AMD64/HalDebugOutput.cxx
index 3cec26df..22d5c072 100644
--- a/Kernel/HALKit/AMD64/HalDebugOutput.cxx
+++ b/Kernel/HALKit/AMD64/HalDebugOutput.cxx
@@ -132,7 +132,7 @@ namespace NewOS
#endif // __DEBUG__
}
- TerminalDevice& TerminalDevice::Shared() noexcept
+ TerminalDevice& TerminalDevice::The() noexcept
{
static TerminalDevice* out = nullptr;
diff --git a/Kernel/KernelKit/DebugOutput.hpp b/Kernel/KernelKit/DebugOutput.hpp
index 594ca701..3acee338 100644
--- a/Kernel/KernelKit/DebugOutput.hpp
+++ b/Kernel/KernelKit/DebugOutput.hpp
@@ -73,26 +73,26 @@ namespace NewOS
NEWOS_COPY_DEFAULT(TerminalDevice);
- static TerminalDevice& Shared() noexcept;
+ static TerminalDevice& The() noexcept;
};
inline TerminalDevice& end_line()
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm << "\r";
return selfTerm;
}
inline TerminalDevice& carriage_return()
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm << "\r";
return selfTerm;
}
inline TerminalDevice& tabulate()
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm << "\t";
return selfTerm;
}
@@ -100,7 +100,7 @@ namespace NewOS
/// @brief emulate a terminal bell, like the VT100 does.
inline TerminalDevice& bell()
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm << "\a";
return selfTerm;
}
@@ -166,7 +166,7 @@ namespace NewOS
inline TerminalDevice& hex_number(const Long& x)
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm << "0x";
Detail::_write_number_hex(x, selfTerm);
@@ -176,7 +176,7 @@ namespace NewOS
inline TerminalDevice& number(const Long& x)
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
Detail::_write_number(x, selfTerm);
@@ -185,7 +185,7 @@ namespace NewOS
inline TerminalDevice& get_console_in(Char* buf)
{
- TerminalDevice& selfTerm = TerminalDevice::Shared();
+ TerminalDevice& selfTerm = TerminalDevice::The();
selfTerm >> buf;
return selfTerm;
}
@@ -204,5 +204,5 @@ namespace NewOS
#undef kcout
#endif // ifdef kcout
-#define kcout TerminalDevice::Shared()
+#define kcout TerminalDevice::The()
#define endl end_line()
diff --git a/Kernel/KernelKit/ProcessScheduler.hpp b/Kernel/KernelKit/ProcessScheduler.hpp
index 8670691f..9adaac0d 100644
--- a/Kernel/KernelKit/ProcessScheduler.hpp
+++ b/Kernel/KernelKit/ProcessScheduler.hpp
@@ -270,7 +270,7 @@ namespace NewOS
SizeT Run() noexcept;
public:
- static Ref<ProcessScheduler&> Shared();
+ static Ref<ProcessScheduler&> The();
private:
ProcessTeam mTeam;
diff --git a/Kernel/KernelKit/SMPManager.hpp b/Kernel/KernelKit/SMPManager.hpp
index 12260a33..eb8c908a 100644
--- a/Kernel/KernelKit/SMPManager.hpp
+++ b/Kernel/KernelKit/SMPManager.hpp
@@ -105,7 +105,7 @@ namespace NewOS
public:
/// @brief Shared instance of the SMP Manager.
/// @return the reference to the smp manager.
- static Ref<SMPManager> Shared();
+ static Ref<SMPManager> The();
public:
/// @brief Returns the amount of threads present in the system.
diff --git a/Kernel/KernelKit/ThreadLocalStorage.inl b/Kernel/KernelKit/ThreadLocalStorage.inl
index 6407900f..e2137ed6 100644
--- a/Kernel/KernelKit/ThreadLocalStorage.inl
+++ b/Kernel/KernelKit/ThreadLocalStorage.inl
@@ -15,9 +15,9 @@ inline T* tls_new_ptr(void)
{
using namespace NewOS;
- MUST_PASS(ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(ProcessScheduler::The().Leak().GetCurrent());
- auto ref_process = ProcessScheduler::Shared().Leak().GetCurrent();
+ auto ref_process = ProcessScheduler::The().Leak().GetCurrent();
T* pointer = (T*)ref_process.Leak().New(sizeof(T));
return pointer;
@@ -32,9 +32,9 @@ inline bool tls_delete_ptr(T* ptr)
using namespace NewOS;
- MUST_PASS(ProcessScheduler::Shared().Leak().GetCurrent());
+ MUST_PASS(ProcessScheduler::The().Leak().GetCurrent());
- auto ref_process = ProcessScheduler::Shared().Leak().GetCurrent();
+ auto ref_process = ProcessScheduler::The().Leak().GetCurrent();
return ref_process.Leak().Delete(ptr, sizeof(T));
}
diff --git a/Kernel/Sources/AppMain.cxx b/Kernel/Sources/AppMain.cxx
index 9ca224c3..692d4376 100644
--- a/Kernel/Sources/AppMain.cxx
+++ b/Kernel/Sources/AppMain.cxx
@@ -206,7 +206,7 @@ namespace NewOS::Detail
NewOS::kcout << "SystemLoader: Exiting process, we're done initializing stuff...";
- NewOS::ProcessScheduler::Shared().Leak().GetCurrent().Leak().Exit(0);
+ NewOS::ProcessScheduler::The().Leak().GetCurrent().Leak().Exit(0);
}
} // namespace NewOS::Detail
@@ -221,5 +221,5 @@ EXTERN_C NewOS::Void AppMain(NewOS::Void)
auto cLoaderName = "SystemLoader";
NewOS::execute_from_image(NewOS::Detail::AppSystemLoader, cLoaderName);
- while (NewOS::ProcessScheduler::Shared().Leak().Run() > 0) {}
+ while (NewOS::ProcessScheduler::The().Leak().Run() > 0) {}
}
diff --git a/Kernel/Sources/CodeManager.cxx b/Kernel/Sources/CodeManager.cxx
index 358481f6..7483b32f 100644
--- a/Kernel/Sources/CodeManager.cxx
+++ b/Kernel/Sources/CodeManager.cxx
@@ -25,6 +25,6 @@ namespace NewOS
Ref<ProcessHeader> refProc = proc;
- return ProcessScheduler::Shared().Leak().Add(refProc);
+ return ProcessScheduler::The().Leak().Add(refProc);
}
} // namespace NewOS \ No newline at end of file
diff --git a/Kernel/Sources/PEFCodeManager.cxx b/Kernel/Sources/PEFCodeManager.cxx
index 6fa7e6a1..c0997dff 100644
--- a/Kernel/Sources/PEFCodeManager.cxx
+++ b/Kernel/Sources/PEFCodeManager.cxx
@@ -195,7 +195,7 @@ namespace NewOS
proc.Kind = procKind;
- return ProcessScheduler::Shared().Leak().Add(refProc);
+ return ProcessScheduler::The().Leak().Add(refProc);
}
} // namespace Utils
diff --git a/Kernel/Sources/PEFSharedObjectRT.cxx b/Kernel/Sources/PEFSharedObjectRT.cxx
index 20af1b98..33df8857 100644
--- a/Kernel/Sources/PEFSharedObjectRT.cxx
+++ b/Kernel/Sources/PEFSharedObjectRT.cxx
@@ -41,7 +41,7 @@ EXTERN_C SharedObjectPtr rt_library_init(void)
if (!library)
{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
return nullptr;
}
@@ -50,17 +50,17 @@ EXTERN_C SharedObjectPtr rt_library_init(void)
if (!library->Get())
{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
return nullptr;
}
library->Get()->fImageObject =
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Image;
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Image;
if (!library->Get()->fImageObject)
{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
return nullptr;
}
@@ -85,7 +85,7 @@ EXTERN_C Void rt_library_free(SharedObjectPtr lib, bool* successful)
if (lib == nullptr)
{
*successful = false;
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
delete lib->Get();
@@ -102,6 +102,6 @@ EXTERN_C Void rt_library_free(SharedObjectPtr lib, bool* successful)
/// @param
EXTERN_C void __mh_purecall(void)
{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
return;
}
diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx
index 1e4537f1..63d566b7 100644
--- a/Kernel/Sources/ProcessScheduler.cxx
+++ b/Kernel/Sources/ProcessScheduler.cxx
@@ -163,11 +163,11 @@ namespace NewOS
void ProcessHeader::Exit(Int32 exit_code)
{
if (this->ProcessId !=
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().ProcessId)
+ ProcessScheduler::The().Leak().GetCurrent().Leak().ProcessId)
ke_stop(RUNTIME_CHECK_PROCESS);
if (this->Ring == (Int32)ProcessSelector::kRingKernel &&
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Ring > 0)
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Ring > 0)
ke_stop(RUNTIME_CHECK_PROCESS);
kLastExitCode = exit_code;
@@ -193,7 +193,7 @@ namespace NewOS
this->Image = nullptr;
this->StackFrame = nullptr;
- ProcessScheduler::Shared().Leak().Remove(this->ProcessId);
+ ProcessScheduler::The().Leak().Remove(this->ProcessId);
}
/// @brief Add process to list.
@@ -301,7 +301,7 @@ namespace NewOS
/// @brief Shared instance of the process scheduler.
/// @return
- Ref<ProcessScheduler&> ProcessScheduler::Shared()
+ Ref<ProcessScheduler&> ProcessScheduler::The()
{
static ProcessScheduler ref;
return {ref};
@@ -319,7 +319,7 @@ namespace NewOS
PID& ProcessHelper::GetCurrentPID()
{
kcout << "ProcessHelper::GetCurrentPID: Leaking ProcessId...\r";
- return ProcessScheduler::Shared().Leak().GetCurrent().Leak().ProcessId;
+ return ProcessScheduler::The().Leak().GetCurrent().Leak().ProcessId;
}
/// @brief Check if process can be schedulded.
@@ -355,13 +355,13 @@ namespace NewOS
bool ProcessHelper::StartScheduling()
{
if (ProcessHelper::CanBeScheduled(
- ProcessScheduler::Shared().Leak().GetCurrent()))
+ ProcessScheduler::The().Leak().GetCurrent()))
{
- --ProcessScheduler::Shared().Leak().GetCurrent().Leak().PTime;
+ --ProcessScheduler::The().Leak().GetCurrent().Leak().PTime;
return false;
}
- auto processRef = ProcessScheduler::Shared().Leak();
+ auto processRef = ProcessScheduler::The().Leak();
if (!processRef)
return false; // we have nothing to schedule. simply return.
@@ -385,29 +385,29 @@ namespace NewOS
if (!the_stack || new_pid < 0)
return false;
- for (SizeT index = 0UL; index < SMPManager::Shared().Leak().Count(); ++index)
+ for (SizeT index = 0UL; index < SMPManager::The().Leak().Count(); ++index)
{
- if (SMPManager::Shared().Leak()[index].Leak().Kind() == kInvalidHart)
+ if (SMPManager::The().Leak()[index].Leak().Kind() == kInvalidHart)
continue;
- if (SMPManager::Shared().Leak()[index].Leak().StackFrame() == the_stack)
+ if (SMPManager::The().Leak()[index].Leak().StackFrame() == the_stack)
{
- SMPManager::Shared().Leak()[index].Leak().Busy(false);
+ SMPManager::The().Leak()[index].Leak().Busy(false);
continue;
}
- if (SMPManager::Shared().Leak()[index].Leak().IsBusy())
+ if (SMPManager::The().Leak()[index].Leak().IsBusy())
continue;
- if (SMPManager::Shared().Leak()[index].Leak().Kind() !=
+ if (SMPManager::The().Leak()[index].Leak().Kind() !=
ThreadKind::kHartBoot &&
- SMPManager::Shared().Leak()[index].Leak().Kind() !=
+ SMPManager::The().Leak()[index].Leak().Kind() !=
ThreadKind::kHartSystemReserved)
{
- SMPManager::Shared().Leak()[index].Leak().Busy(true);
+ SMPManager::The().Leak()[index].Leak().Busy(true);
ProcessHelper::GetCurrentPID() = new_pid;
- return SMPManager::Shared().Leak()[index].Leak().Switch(the_stack);
+ return SMPManager::The().Leak()[index].Leak().Switch(the_stack);
}
}
diff --git a/Kernel/Sources/SMPManager.cxx b/Kernel/Sources/SMPManager.cxx
index 90a9d440..b2f239e3 100644
--- a/Kernel/Sources/SMPManager.cxx
+++ b/Kernel/Sources/SMPManager.cxx
@@ -121,7 +121,7 @@ namespace NewOS
SMPManager::~SMPManager() = default;
/// @brief Shared singleton function
- Ref<SMPManager> SMPManager::Shared()
+ Ref<SMPManager> SMPManager::The()
{
static SMPManager manager;
return {manager};
diff --git a/Kernel/Sources/ThreadLocalStorage.cxx b/Kernel/Sources/ThreadLocalStorage.cxx
index c31ae1c2..2d7e61eb 100644
--- a/Kernel/Sources/ThreadLocalStorage.cxx
+++ b/Kernel/Sources/ThreadLocalStorage.cxx
@@ -51,7 +51,7 @@ EXTERN_C Void tls_check_syscall_impl(NewOS::HAL::StackFramePtr stackPtr) noexcep
if (!tls_check_tib(tib))
{
kcout << "New OS: Verification failed, Crashing...\r";
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
}
kcout << "New OS: Verification succeeded! Keeping on...\r";
diff --git a/Kernel/Sources/UserHeap.cxx b/Kernel/Sources/UserHeap.cxx
index 02c4c753..da5d7b5a 100644
--- a/Kernel/Sources/UserHeap.cxx
+++ b/Kernel/Sources/UserHeap.cxx
@@ -37,8 +37,9 @@ namespace NewOS
*/
class UserHeapManager final
{
- public:
UserHeapManager() = delete;
+
+ public:
~UserHeapManager() = default;
public:
@@ -46,14 +47,17 @@ namespace NewOS
{
return s_NumPools;
}
+
STATIC Ref<Pmm>& Leak()
{
return s_Pmm;
}
+
STATIC Boolean& IsEnabled()
{
return s_PoolsAreEnabled;
}
+
STATIC MutableArray<Ref<PTEWrapper>>& The()
{
return s_Pool;
@@ -146,7 +150,7 @@ namespace NewOS
{
if (!poolHdr->fFree)
{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
+ ProcessScheduler::The().Leak().GetCurrent().Leak().Crash();
return;
}