• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/libexec/rtld-elf/

Lines Matching defs:dtv

289 Elf_Addr tls_dtv_generation = 1;	/* Used to detect when dtv size changes */
4872 Elf_Addr *newdtv, *dtv;
4876 dtv = *dtvp;
4877 /* Check dtv generation in case new modules have arrived */
4878 if (dtv[0] != tls_dtv_generation) {
4882 to_copy = dtv[1];
4885 memcpy(&newdtv[2], &dtv[2], to_copy * sizeof(Elf_Addr));
4888 free(dtv);
4891 dtv = *dtvp = newdtv;
4895 if (dtv[index + 1] == 0) {
4899 if (!dtv[index + 1])
4900 dtv[index + 1] = (Elf_Addr)allocate_module_tls(index);
4904 return ((void *)(dtv[index + 1] + offset));
4910 Elf_Addr *dtv;
4912 dtv = *dtvp;
4913 /* Check dtv generation in case new modules have arrived */
4914 if (__predict_true(dtv[0] == tls_dtv_generation &&
4915 dtv[index + 1] != 0))
4916 return ((void *)(dtv[index + 1] + offset));
4958 Elf_Addr *dtv, **tcb;
4988 dtv = tcb[0];
4989 for (i = 0; i < dtv[1]; i++) {
4990 if (dtv[i+2] >= (Elf_Addr)oldtcb &&
4991 dtv[i+2] < (Elf_Addr)oldtcb + tls_static_space) {
4992 dtv[i+2] = dtv[i+2] - (Elf_Addr)oldtcb + (Elf_Addr)tcb;
4996 dtv = xcalloc(tls_max_index + 2, sizeof(Elf_Addr));
4997 tcb[0] = dtv;
4998 dtv[0] = tls_dtv_generation;
4999 dtv[1] = tls_max_index;
5017 dtv[obj->tlsindex + 1] = addr;
5027 Elf_Addr *dtv;
5041 dtv = *(Elf_Addr **)tcb;
5042 dtvsize = dtv[1];
5044 if (dtv[i+2] && (dtv[i+2] < tlsstart || dtv[i+2] >= tlsend)) {
5045 free((void*)dtv[i+2]);
5048 free(dtv);
5065 Elf_Addr *dtv, *olddtv;
5076 dtv = xcalloc(tls_max_index + 2, sizeof(Elf_Addr));
5080 ((Elf_Addr*)segbase)[1] = (Elf_Addr) dtv;
5082 dtv[0] = tls_dtv_generation;
5083 dtv[1] = tls_max_index;
5101 dtv[i+2] = olddtv[i+2];
5122 dtv[obj->tlsindex + 1] = addr;
5132 Elf_Addr* dtv;
5146 dtv = ((Elf_Addr**)tls)[1];
5147 dtvsize = dtv[1];
5151 if (dtv[i + 2] != 0 && (dtv[i + 2] < tlsstart || dtv[i + 2] > tlsend)) {
5152 free_aligned((void *)dtv[i + 2]);
5157 free((void*) dtv);