Lines Matching refs:dtv

5198 	Elf_Addr *newdtv, *dtv;  in tls_get_addr_slow()  local
5202 dtv = *dtvp; in tls_get_addr_slow()
5204 if (dtv[0] != tls_dtv_generation) { in tls_get_addr_slow()
5208 to_copy = dtv[1]; in tls_get_addr_slow()
5211 memcpy(&newdtv[2], &dtv[2], to_copy * sizeof(Elf_Addr)); in tls_get_addr_slow()
5214 free(dtv); in tls_get_addr_slow()
5217 dtv = *dtvp = newdtv; in tls_get_addr_slow()
5221 if (dtv[index + 1] == 0) { in tls_get_addr_slow()
5225 if (!dtv[index + 1]) in tls_get_addr_slow()
5226 dtv[index + 1] = (Elf_Addr)allocate_module_tls(index); in tls_get_addr_slow()
5230 return ((void *)(dtv[index + 1] + offset)); in tls_get_addr_slow()
5236 uintptr_t *dtv; in tls_get_addr_common() local
5238 dtv = *dtvp; in tls_get_addr_common()
5240 if (__predict_true(dtv[0] == tls_dtv_generation && in tls_get_addr_common()
5241 dtv[index + 1] != 0)) in tls_get_addr_common()
5242 return ((void *)(dtv[index + 1] + offset)); in tls_get_addr_common()
5283 Elf_Addr *dtv, **tcb; in allocate_tls() local
5313 dtv = tcb[0]; in allocate_tls()
5314 for (i = 0; i < dtv[1]; i++) { in allocate_tls()
5315 if (dtv[i+2] >= (Elf_Addr)oldtcb && in allocate_tls()
5316 dtv[i+2] < (Elf_Addr)oldtcb + tls_static_space) { in allocate_tls()
5317 dtv[i+2] = dtv[i+2] - (Elf_Addr)oldtcb + (Elf_Addr)tcb; in allocate_tls()
5321 dtv = xcalloc(tls_max_index + 2, sizeof(Elf_Addr)); in allocate_tls()
5322 tcb[0] = dtv; in allocate_tls()
5323 dtv[0] = tls_dtv_generation; in allocate_tls()
5324 dtv[1] = tls_max_index; in allocate_tls()
5342 dtv[obj->tlsindex + 1] = addr; in allocate_tls()
5352 Elf_Addr *dtv; in free_tls() local
5366 dtv = *(Elf_Addr **)tcb; in free_tls()
5367 dtvsize = dtv[1]; in free_tls()
5369 if (dtv[i+2] && (dtv[i+2] < tlsstart || dtv[i+2] >= tlsend)) { in free_tls()
5370 free((void*)dtv[i+2]); in free_tls()
5373 free(dtv); in free_tls()
5390 Elf_Addr *dtv, *olddtv; in allocate_tls() local
5401 dtv = xcalloc(tls_max_index + 2, sizeof(Elf_Addr)); in allocate_tls()
5405 ((Elf_Addr *)segbase)[1] = (Elf_Addr) dtv; in allocate_tls()
5407 dtv[0] = tls_dtv_generation; in allocate_tls()
5408 dtv[1] = tls_max_index; in allocate_tls()
5427 dtv[i + 2] = olddtv[i + 2]; in allocate_tls()
5448 dtv[obj->tlsindex + 1] = addr; in allocate_tls()
5458 Elf_Addr* dtv; in free_tls() local
5472 dtv = ((Elf_Addr **)tls)[1]; in free_tls()
5473 dtvsize = dtv[1]; in free_tls()
5477 if (dtv[i + 2] != 0 && (dtv[i + 2] < tlsstart || in free_tls()
5478 dtv[i + 2] > tlsend)) { in free_tls()
5479 free((void *)dtv[i + 2]); in free_tls()
5484 free((void *)dtv); in free_tls()