summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit/ThreadLocalStorage.inl
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 13:49:50 +0100
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-02 13:49:50 +0100
commite559cf01834340d0a4dfcb45f7bdf081e8994032 (patch)
treeb7d1aa03111f83c0b7b058dca2786a6bd234a7e3 /Private/KernelKit/ThreadLocalStorage.inl
parent05eca8d3061b60eac0a652a4b1e39269a9af79e8 (diff)
Kernel: Port toolchain to mingw (PE/COFF)
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/KernelKit/ThreadLocalStorage.inl')
-rw-r--r--Private/KernelKit/ThreadLocalStorage.inl45
1 files changed, 22 insertions, 23 deletions
diff --git a/Private/KernelKit/ThreadLocalStorage.inl b/Private/KernelKit/ThreadLocalStorage.inl
index e73d8672..59d4c525 100644
--- a/Private/KernelKit/ThreadLocalStorage.inl
+++ b/Private/KernelKit/ThreadLocalStorage.inl
@@ -9,42 +9,41 @@
//! @brief Allocates a pointer from the process's tls.
+#ifndef __PROCESS_MANAGER__
+#include <KernelKit/ProcessManager.hpp>
+#endif
+
template <typename T>
-inline T* hcore_tls_new_ptr(void)
-{
- using namespace HCore;
+inline T* hcore_tls_new_ptr(void) {
+ using namespace HCore;
- auto ref_process = ProcessManager::Shared().Leak().GetCurrent();
+ auto ref_process = ProcessManager::Shared().Leak().GetCurrent();
- T* pointer = (T*)ref_process.Leak().New(sizeof(T));
- return pointer;
+ T* pointer = (T*)ref_process.Leak().New(sizeof(T));
+ return pointer;
}
//! @brief TLS delete implementation.
template <typename T>
-inline bool hcore_tls_delete_ptr(T* ptr)
-{
- if (!ptr)
- return false;
+inline bool hcore_tls_delete_ptr(T* ptr) {
+ if (!ptr) return false;
- using namespace HCore;
+ using namespace HCore;
- auto ref_process = ProcessManager::Shared().Leak().GetCurrent();
- ptr->~T();
+ auto ref_process = ProcessManager::Shared().Leak().GetCurrent();
+ ptr->~T();
- return ref_process.Leak().Delete(ptr, sizeof(T));
+ return ref_process.Leak().Delete(ptr, sizeof(T));
}
template <typename T, typename... Args>
-T* hcore_tls_new_class(Args&&... args)
-{
- T* ptr = hcore_tls_new_ptr<T>();
+T* hcore_tls_new_class(Args&&... args) {
+ T* ptr = hcore_tls_new_ptr<T>();
- if (ptr)
- {
- *ptr = T(HCore::forward(args)...);
- return ptr;
- }
+ if (ptr) {
+ *ptr = T(HCore::forward(args)...);
+ return ptr;
+ }
- return nullptr;
+ return nullptr;
}