summaryrefslogtreecommitdiff
path: root/src/thread/pthread_attr_setstack.c
blob: c51ad34df9ba551a9be700a969e44d27cc2dda66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}