diff options
Diffstat (limited to 'Private/KernelKit/ThreadLocalStorage.hxx')
| -rw-r--r-- | Private/KernelKit/ThreadLocalStorage.hxx | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/Private/KernelKit/ThreadLocalStorage.hxx b/Private/KernelKit/ThreadLocalStorage.hxx deleted file mode 100644 index 8072b867..00000000 --- a/Private/KernelKit/ThreadLocalStorage.hxx +++ /dev/null @@ -1,53 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - -------------------------------------------- */ - -#ifndef _KERNELKIT_TLS_HPP -#define _KERNELKIT_TLS_HPP - -#include <NewKit/Defines.hpp> - -//! @brief TLS implementation in C++ - -#define kCookieMag0 'H' -#define kCookieMag1 'C' -#define kCookieMag2 'R' - -template <typename T> -T* tls_new_ptr(void); - -template <typename T> -bool tls_delete_ptr(T* ptr); - -template <typename T, typename... Args> -T* tls_new_class(Args&&... args); - -#define kTLSCookieLen 3 - -/// @brief Thread Information Block for Local Storage. -/// Located in GS on AMD64, Virtual Address 0x10000 (64x0, 32x0, ARM64) -struct PACKED ThreadInformationBlock final -{ - NewOS::Char Cookie[kTLSCookieLen]; - NewOS::UIntPtr StartCode; // Start Address - NewOS::UIntPtr StartData; // Allocation Heap - NewOS::UIntPtr StartStack; // Stack Pointer. - NewOS::Int32 ThreadID; // Thread execution ID. -}; - -/// @brief TLS install TIB and PIB. -EXTERN_C void rt_install_tib(ThreadInformationBlock* TIB, NewOS::VoidPtr PIB); - -///! @brief Cookie Sanity check. -NewOS::Boolean tls_check_tib(ThreadInformationBlock* Ptr); - -/// @brief TLS check system call -EXTERN_C NewOS::Void tls_check_syscall_impl(NewOS::HAL::StackFramePtr StackPtr) noexcept; - -#include <KernelKit/ThreadLocalStorage.inl> - -// last rev 1/29/24 - -#endif /* ifndef _KERNELKIT_TLS_HPP */ |
