aboutsummaryrefslogtreecommitdiff
path: root/zencore/zencore.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-09-15 19:49:20 +0200
committerStefan Boberg <[email protected]>2021-09-15 19:49:20 +0200
commit83ccd52321a23c8f1c8a3228cbbf34b8f199a22b (patch)
tree9cf1fb68651f616aef2fa28000e4f328ef9204d8 /zencore/zencore.cpp
parentAdded GetSize/GetData functions to reduce cognitive load and bridge the gap b... (diff)
parentTweaked logging to streamline access, and simplified setup code for new loggers (diff)
downloadzen-83ccd52321a23c8f1c8a3228cbbf34b8f199a22b.tar.xz
zen-83ccd52321a23c8f1c8a3228cbbf34b8f199a22b.zip
Merge branch 'main' into cbpackage-update
Diffstat (limited to 'zencore/zencore.cpp')
-rw-r--r--zencore/zencore.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/zencore/zencore.cpp b/zencore/zencore.cpp
index c2a57b653..c53fd218f 100644
--- a/zencore/zencore.cpp
+++ b/zencore/zencore.cpp
@@ -2,7 +2,13 @@
#include <zencore/zencore.h>
+#if ZEN_PLATFORM_WINDOWS
#include <zencore/windows.h>
+#endif
+
+#if ZEN_PLATFORM_LINUX
+#include <pthread.h>
+#endif
#include <zencore/blake3.h>
#include <zencore/compactbinary.h>
@@ -25,12 +31,26 @@
bool
IsPointerToStack(const void* ptr)
{
+#if ZEN_PLATFORM_WINDOWS
ULONG_PTR low, high;
GetCurrentThreadStackLimits(&low, &high);
const uintptr_t intPtr = reinterpret_cast<uintptr_t>(ptr);
return (intPtr - low) < (high - low);
+#elif ZEN_PLATFORM_LINUX
+ pthread_t self = pthread_self();
+
+ pthread_attr_t attr;
+ pthread_getattr_np(self, &attr);
+
+ void* low;
+ size_t size;
+ pthread_attr_getstack(&attr, &low, &size);
+
+ return (uintptr_t(ptr) - uintptr_t(low)) < uintptr_t(size);
+#elif 0
+#endif
}
zen::AssertException::AssertException(const char* Msg) : m_Msg(Msg)
@@ -65,6 +85,7 @@ zencore_forcelinktests()
zen::blake3_forcelink();
zen::compositebuffer_forcelink();
zen::compress_forcelink();
+ zen::intmath_forcelink();
zen::iobuffer_forcelink();
zen::memory_forcelink();
zen::refcount_forcelink();