tls_tcb
sizeof(struct tls_tcb);
(uintptr_t)tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
(uintptr_t)tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
(uintptr_t)tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
(uintptr_t)tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
tcb = (struct tls_tcb *)p;
p += sizeof(struct tls_tcb);
tcb = (struct tls_tcb *)(p + tls_allocation);
_rtld_tls_free(struct tls_tcb *tcb)
struct tls_tcb *tcb;
struct tls_tcb *
struct tls_tcb *tcb;
struct tls_tcb *_PTHREAD_GETTCB_EXT(void);
struct tls_tcb * const tcb = _PTHREAD_GETTCB_EXT();
struct tls_tcb * const tcb = __lwp_gettcb_fast();
struct tls_tcb * const tcb = __lwp_getprivate_fast();
struct tls_tcb *pt_tls; /* Thread Local Storage area */
sizeof(struct tls_tcb);
rela->r_addend + sizeof(struct tls_tcb));
sizeof(struct tls_tcb) + defobj->tlsoffset +
tmp += (Elf_Addr)def->st_value + defobj->tlsoffset + sizeof(struct tls_tcb);
rela->r_addend + sizeof(struct tls_tcb));
struct tls_tcb *tcb = __lwp_getprivate_fast();
sizeof(struct tls_tcb);
#define _RTLD_TLS_INITIAL_OFFSET sizeof(struct tls_tcb)
struct tls_tcb *tcb = tls;
struct tls_tcb *tcb;
if (_rtld_tls_static_max_align > sizeof(struct tls_tcb))
_rtld_tls_static_max_align - sizeof(struct tls_tcb);
static struct tls_tcb *
struct tls_tcb *tcb;
p = xmalloc_aligned(_rtld_tls_static_space + sizeof(struct tls_tcb),
memset(p, 0, _rtld_tls_static_space + sizeof(struct tls_tcb));
if (_rtld_tls_static_max_align > sizeof(struct tls_tcb))
p += _rtld_tls_static_max_align - sizeof(struct tls_tcb);
tcb = (struct tls_tcb *)p;
p += sizeof(struct tls_tcb);
tcb = (struct tls_tcb *)p;
struct tls_tcb *
struct tls_tcb *tcb;
_rtld_tls_free(struct tls_tcb *tcb)
_rtld_tls_module_allocate(struct tls_tcb *tcb, size_t idx)
p = (uint8_t *)tcb + obj->tlsoffset + sizeof(struct tls_tcb);
offset -= sizeof(struct tls_tcb);
static struct tls_tcb *_rtld_tls_allocate_locked(void);
struct tls_tcb * const tcb = __lwp_gettcb_fast();
struct tls_tcb * const tcb = __lwp_getprivate_fast();
static void *_rtld_tls_module_allocate(struct tls_tcb *, size_t);
__CTASSERT(TLS_TP_OFFSET + sizeof(struct tls_tcb) < 0x8000);
__CTASSERT(TLS_TP_OFFSET % sizeof(struct tls_tcb) == 0);
static __inline struct tls_tcb *
return (struct tls_tcb *)(uintptr_t)
(__tcb - TLS_TP_OFFSET - sizeof(struct tls_tcb));
__lwp_settcb(struct tls_tcb *__tcb)
__CTASSERT(TLS_TP_OFFSET + sizeof(struct tls_tcb) < 0x8000);
__CTASSERT(TLS_TP_OFFSET % sizeof(struct tls_tcb) == 0);
static __inline struct tls_tcb *
struct tls_tcb *__tcb;
__lwp_settcb(struct tls_tcb *__tcb)
__CTASSERT(TLS_TP_OFFSET + sizeof(struct tls_tcb) < 0x8000);
: [__offset] "n" (-(TLS_TP_OFFSET + sizeof(struct tls_tcb))));
[__offset] "n" (TLS_TP_OFFSET + sizeof(struct tls_tcb)));
__CTASSERT(TLS_TP_OFFSET + sizeof(struct tls_tcb) < 0x8000);
: [__offset] "n" (-(TLS_TP_OFFSET + sizeof(struct tls_tcb))));
__tcb = (uint8_t *)__tcb + TLS_TP_OFFSET + sizeof(struct tls_tcb);
__CTASSERT(TLS_TP_OFFSET + sizeof(struct tls_tcb) < 0x800);
: [__offset] "n" (-(TLS_TP_OFFSET + sizeof(struct tls_tcb))));
[__offset] "n" (TLS_TP_OFFSET + sizeof(struct tls_tcb)));
struct tls_tcb *_rtld_tls_allocate(void);
void _rtld_tls_free(struct tls_tcb *);