diff options
Diffstat (limited to 'src/thread/pthread_attr_setstack.c')
-rw-r--r-- | src/thread/pthread_attr_setstack.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/thread/pthread_attr_setstack.c b/src/thread/pthread_attr_setstack.c new file mode 100644 index 00000000..c51ad34d --- /dev/null +++ b/src/thread/pthread_attr_setstack.c @@ -0,0 +1,14 @@ +#include "pthread_impl.h" + +/* pthread_key_create.c overrides this */ +static const size_t dummy = 0; +weak_alias(dummy, __pthread_tsd_size); + +int pthread_attr_setstack(pthread_attr_t *a, void *addr, size_t size) +{ + if (size-PTHREAD_STACK_MIN-__pthread_tsd_size > SIZE_MAX/4) + return EINVAL; + a->_a_stackaddr = (size_t)addr + size; + a->_a_stacksize = size - DEFAULT_STACK_SIZE; + return 0; +} |