mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
AK/StackInfo: Add support for OpenBSD pthreads
This commit is contained in:
parent
85287fcc1e
commit
c42e949f5b
Notes:
sideshowbarker
2024-07-19 16:56:54 +09:00
Author: https://github.com/ghost Commit: https://github.com/SerenityOS/serenity/commit/c42e949f5bc Pull-request: https://github.com/SerenityOS/serenity/pull/17535
1 changed files with 11 additions and 1 deletions
|
@ -14,7 +14,7 @@
|
|||
# include <serenity.h>
|
||||
#elif defined(AK_OS_LINUX) or defined(AK_OS_MACOS)
|
||||
# include <pthread.h>
|
||||
#elif defined(AK_OS_FREEBSD)
|
||||
#elif defined(AK_OS_FREEBSD) or defined(AK_OS_OPENBSD)
|
||||
# include <pthread.h>
|
||||
# include <pthread_np.h>
|
||||
#endif
|
||||
|
@ -67,6 +67,16 @@ StackInfo::StackInfo()
|
|||
m_size = eight_megabytes;
|
||||
}
|
||||
m_base = top_of_stack - m_size;
|
||||
#elif defined(AK_OS_OPENBSD)
|
||||
int rc;
|
||||
stack_t thread_stack;
|
||||
if ((rc = pthread_stackseg_np(pthread_self(), &thread_stack)) != 0) {
|
||||
fprintf(stderr, "pthread_stackseg_np: %s\n", strerror(rc));
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
FlatPtr top_of_stack = (FlatPtr)thread_stack.ss_sp;
|
||||
m_size = (size_t)thread_stack.ss_size;
|
||||
m_base = top_of_stack - m_size;
|
||||
#else
|
||||
# pragma message "StackInfo not supported on this platform! Recursion checks and stack scans may not work properly"
|
||||
m_size = (size_t)~0;
|
||||
|
|
Loading…
Reference in a new issue