summaryrefslogtreecommitdiffhomepage
path: root/Private/Source/ThreadLocalStorage.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Private/Source/ThreadLocalStorage.cxx')
-rw-r--r--Private/Source/ThreadLocalStorage.cxx13
1 files changed, 8 insertions, 5 deletions
diff --git a/Private/Source/ThreadLocalStorage.cxx b/Private/Source/ThreadLocalStorage.cxx
index 9a9c8477..60d02efd 100644
--- a/Private/Source/ThreadLocalStorage.cxx
+++ b/Private/Source/ThreadLocalStorage.cxx
@@ -24,12 +24,13 @@ using namespace HCore;
* @param ptr
* @return if the cookie is enabled.
*/
+
Boolean hcore_tls_check(VoidPtr ptr) {
if (!ptr) return false;
const char* _ptr = (const char*)ptr;
- kcout << "Krnl\\TLS: Checking for cookie...\n";
+ kcout << "HCoreKrnl\\TLS: Checking for cookie...\n";
return _ptr[0] == kCookieMag0 && _ptr[1] == kCookieMag1 &&
_ptr[2] == kCookieMag2;
@@ -40,11 +41,13 @@ Boolean hcore_tls_check(VoidPtr ptr) {
* @param ptr
* @return
*/
-Void hcore_tls_check_syscall_impl(ThreadInformationBlock ptr) noexcept {
- if (!hcore_tls_check(ptr.Cookie)) {
- kcout << "Krnl\\TLS: Verification failure, Crashing...\n";
+EXTERN_C Void hcore_tls_check_syscall_impl(HCore::HAL::StackFramePtr stackPtr) noexcept {
+ ThreadInformationBlock* tib = (ThreadInformationBlock*)stackPtr->Gs;
+
+ if (!hcore_tls_check(tib->Cookie)) {
+ kcout << "HCoreKrnl\\TLS: Verification failed, Crashing...\n";
ProcessManager::Shared().Leak().GetCurrent().Leak().Crash();
}
- kcout << "Krnl\\TLS: Verification succeeded! Keeping on...\n";
+ kcout << "HCoreKrnl\\TLS: Verification succeeded! Keeping on...\n";
}