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);
81 DTLS::DTV *DTLS_on_tls_get_addr(void *arg_void, void *res) {
85 if (dtls.dtv_size == kDestroyedThread) return 0;
87 if (dtls.dtv[dso_id].beg) return 0;
94 if (dtls.last_memalign_ptr == tls_beg) {
95 tls_size = dtls.last_memalign_size;
110 dtls.dtv[dso_id].beg = tls_beg;
111 dtls.dtv[dso_id].size = tls_size;
112 return dtls.dtv + dso_id;
118 dtls.last_memalign_ptr = reinterpret_cast<uptr>(ptr);
119 dtls.last_memalign_size = size;
122 DTLS *DTLS_Get() { return &dtls; }
126 DTLS::DTV *DTLS_on_tls_get_addr(void *arg, void *res) { return 0; }
127 DTLS *DTLS_Get() { return 0; }