Lines Matching full:tcb
144 * where TP points to start of TCB followed by aligned TLS segment.
145 * Both TCB and TLS must be aligned to alignment of TLS section. The TCB[0]
147 * Note: for Local Exec TLS Model, the offsets from TP (TCB in this case) to
151 * where TP points (with bias) to TLS and TCB immediately precedes TLS without
152 * any alignment gap[4]. Only TLS should be aligned. The TCB[0] points to DTV
169 * TCB as argument.
178 get_tls_block_ptr(void *tcb, size_t tcbsize) in get_tls_block_ptr() argument
193 return ((char *)tcb - pre_size - extra_size); in get_tls_block_ptr()
202 __libc_free_tls(void *tcb, size_t tcbsize, size_t tcbalign __unused) in __libc_free_tls() argument
207 tls = (Elf_Addr **)tcb; in __libc_free_tls()
210 libc_free_aligned(get_tls_block_ptr(tcb, tcbsize)); in __libc_free_tls()
221 * | pre gap | extended TCB | TCB | post gap | TLS segment |
227 * post_size is used to adjust TCB to TLS alignment for first version of TLS
229 * pre_size is used to adjust TCB alignment for first version and to adjust
236 Elf_Addr *dtv, **tcb; in __libc_allocate_tls() local
265 tcb = (Elf_Addr **)(tls_block + pre_size + extra_size); in __libc_allocate_tls()
266 tls = (char *)tcb + TLS_TCB_SIZE + post_size; in __libc_allocate_tls()
274 dtv = tcb[0]; in __libc_allocate_tls()
283 tcb[0] = dtv; in __libc_allocate_tls()
292 return (tcb); in __libc_allocate_tls()
303 __libc_free_tls(void *tcb, size_t tcbsize __unused, size_t tcbalign) in __libc_free_tls() argument
316 dtv = ((Elf_Addr**)tcb)[1]; in __libc_free_tls()
317 tlsend = (Elf_Addr) tcb; in __libc_free_tls()
396 __libc_free_tls(void *tcb __unused, size_t tcbsize __unused, in __libc_free_tls()