Home | History | Annotate | Download | only in sanitizer_common

Lines Matching refs:dtls

38 static __thread DTLS dtls;
40 // Make sure we properly destroy the DTLS objects:
46 static inline void DTLS_Deallocate(DTLS::DTV *dtv, uptr size) {
49 UnmapOrDie(dtv, size * sizeof(DTLS::DTV));
54 if (dtls.dtv_size >= new_size) return;
56 new_size = Max(new_size, 4096UL / sizeof(DTLS::DTV));
57 DTLS::DTV *new_dtv =
58 (DTLS::DTV *)MmapOrDie(new_size * sizeof(DTLS::DTV), "DTLS_Resize");
61 VPrintf(2, "__tls_get_addr: DTLS_Resize %p %zd\n", &dtls, num_live_dtls);
63 uptr old_dtv_size = dtls.dtv_size;
64 DTLS::DTV *old_dtv = dtls.dtv;
66 internal_memcpy(new_dtv, dtls.dtv, dtls.dtv_size * sizeof(DTLS::DTV));
67 dtls.dtv = new_dtv;
68 dtls.dtv_size = new_size;
75 VPrintf(2, "__tls_get_addr: DTLS_Destroy %p %zd\n", &dtls, dtls.dtv_size);
76 uptr s = dtls.dtv_size;
77 dtls.dtv_size = kDestroyedThread; // Do this before unmap for AS-safety.
78 DTLS_Deallocate(dtls.dtv, s);
90 DTLS::DTV *DTLS_on_tls_get_addr(void *arg_void, void *res,
95 if (dtls.dtv_size == kDestroyedThread) return 0;
97 if (dtls.dtv[dso_id].beg) return 0;
104 if (dtls.last_memalign_ptr == tls_beg) {
105 tls_size = dtls.last_memalign_size;
125 dtls.dtv[dso_id].beg = tls_beg;
126 dtls.dtv[dso_id].size = tls_size;
127 return dtls.dtv + dso_id;
133 dtls.last_memalign_ptr = reinterpret_cast<uptr>(ptr);
134 dtls.last_memalign_size = size;
137 DTLS *DTLS_Get() { return &dtls; }
141 DTLS::DTV *DTLS_on_tls_get_addr(void *arg, void *res) { return 0; }
142 DTLS *DTLS_Get() { return 0; }