add pthread_attr_setstack interface (and get)
[musl] / src / thread / pthread_attr_setstack.c
1 #include "pthread_impl.h"
2
3 /* pthread_key_create.c overrides this */
4 static const size_t dummy = 0;
5 weak_alias(dummy, __pthread_tsd_size);
6
7 int pthread_attr_setstack(pthread_attr_t *a, void *addr, size_t size)
8 {
9         if (size-PTHREAD_STACK_MIN-__pthread_tsd_size > SIZE_MAX/4)
10                 return EINVAL;
11         a->_a_stackaddr = (size_t)addr + size;
12         a->_a_stacksize = size - DEFAULT_STACK_SIZE;
13         return 0;
14 }