3b6c9b1b2a2b3f1e3f97f226d092be83f9fec24f
[musl] / src / thread / __tls_get_addr.c
1 #include <stddef.h>
2 #include "pthread_impl.h"
3 #include "libc.h"
4
5 __attribute__((__visibility__("hidden")))
6 void *__tls_get_new(tls_mod_off_t *);
7
8 void *__tls_get_addr(tls_mod_off_t *v)
9 {
10         pthread_t self = __pthread_self();
11         if (v[0]<=(size_t)self->dtv[0])
12                 return (char *)self->dtv[v[0]]+v[1]+DTP_OFFSET;
13         return __tls_get_new(v);
14 }
15
16 weak_alias(__tls_get_addr, __tls_get_new);