Hello,

On 05.08.21 04:27, Dan Connolly wrote:
I'm trying to port this XS JavaScript engine to genode. It wants to know
the stack limit. Any suggestions on how to do this?


https://github.com/Moddable-OpenSource/moddable/blob/public/xs/sources/xsCommon.c#L518-L542

char* fxCStackLimit()
{
#if mxWindows
ULONG_PTR low, high;
GetCurrentThreadStackLimits(&low, &high);
return (char*)low + (32 * 1024);
#elif mxMacOSX
pthread_t self = pthread_self();
void* stackAddr = pthread_get_stackaddr_np(self);
size_t stackSize = pthread_get_stacksize_np(self);
return (char*)stackAddr - stackSize + (8 * 1024);
#elif mxLinux
pthread_attr_t attrs;
if (pthread_getattr_np(pthread_self(), &attrs) == 0) {
void* stackAddr;
size_t stackSize;
if (pthread_attr_getstack(&attrs, &stackAddr, &stackSize) == 0) {
return (char*)stackAddr + (4 * 1024);


pthread_attr_getstacksize and friends are supported on Genode, see [0].

Just try out.

Cheers,

Alex.

[0] repos/libports/src/lib/libc/pthread.cc

--
Alexander Boettcher
Genode Labs

https://www.genodians.org - https://www.genode.org

_______________________________________________
Genode users mailing list
users@lists.genode.org
https://lists.genode.org/listinfo/users

Reply via email to