diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
| commit | ca675beb41dba8d7d16c5793b55d1672f38be3b4 (patch) | |
| tree | c995ada42729ac2059a0ed87a4539d1a7e10b14a /Private/KernelKit/ThreadLocalStorage.hxx | |
| parent | 2b4a4792abf51487ab4a16106f9376f43acf381a (diff) | |
| parent | bc57a29a24b98b00ba17710ba84ec2188ab73504 (diff) | |
Merged in MHR-23 (pull request #12)
MHR-23: Merge work.
Diffstat (limited to 'Private/KernelKit/ThreadLocalStorage.hxx')
| -rw-r--r-- | Private/KernelKit/ThreadLocalStorage.hxx | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/Private/KernelKit/ThreadLocalStorage.hxx b/Private/KernelKit/ThreadLocalStorage.hxx deleted file mode 100644 index bdf00a8a..00000000 --- a/Private/KernelKit/ThreadLocalStorage.hxx +++ /dev/null @@ -1,52 +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 */ |
