Lines Matching refs:TLD
125 thread_local ThreadLocalData TLD; in getThreadLocalData() local
132 pthread_setspecific(PThreadKey, &TLD); in getThreadLocalData()
133 TLD.LogWriter = getGlobalLog(); in getThreadLocalData()
134 TLD.InMemoryBuffer = reinterpret_cast<XRayRecord *>( in getThreadLocalData()
137 TLD.BufferSize = GlobalOptions.ThreadBufferSize; in getThreadLocalData()
138 TLD.BufferOffset = 0; in getThreadLocalData()
142 TLD.StackSize = 0; in getThreadLocalData()
143 TLD.StackEntries = 0; in getThreadLocalData()
144 TLD.ShadowStack = nullptr; in getThreadLocalData()
147 TLD.ShadowStack = reinterpret_cast<StackEntry *>( in getThreadLocalData()
150 TLD.StackSize = GlobalOptions.MaxStackDepth; in getThreadLocalData()
151 TLD.StackEntries = 0; in getThreadLocalData()
154 return TLD; in getThreadLocalData()
160 auto &TLD = getThreadLocalData(); in InMemoryRawLog() local
179 if (TLD.StackEntries++ >= TLD.StackSize) in InMemoryRawLog()
189 auto StackEntryPtr = static_cast<char *>(TLD.ShadowStack) + in InMemoryRawLog()
190 (sizeof(StackEntry) * (TLD.StackEntries - 1)); in InMemoryRawLog()
196 if (TLD.StackEntries == 0) in InMemoryRawLog()
199 if (--TLD.StackEntries >= TLD.StackSize) in InMemoryRawLog()
213 auto StackEntryPtr = static_cast<char *>(TLD.ShadowStack) + in InMemoryRawLog()
214 (sizeof(StackEntry) * TLD.StackEntries); in InMemoryRawLog()
220 DCHECK(TLD.BufferOffset > 0); in InMemoryRawLog()
221 TLD.BufferOffset -= StackTop.Type == XRayEntryType::ENTRY ? 1 : 2; in InMemoryRawLog()
243 auto FirstEntry = reinterpret_cast<XRayRecord *>(TLD.InMemoryBuffer); in InMemoryRawLog()
244 internal_memcpy(FirstEntry + TLD.BufferOffset, &R, sizeof(R)); in InMemoryRawLog()
245 if (++TLD.BufferOffset == TLD.BufferSize) { in InMemoryRawLog()
248 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLog()
249 TLD.BufferOffset = 0; in InMemoryRawLog()
250 TLD.StackEntries = 0; in InMemoryRawLog()
257 auto &TLD = getThreadLocalData(); in InMemoryRawLogWithArg() local
259 reinterpret_cast<XRayArgPayload *>(TLD.InMemoryBuffer); in InMemoryRawLogWithArg()
260 const auto &BuffLen = TLD.BufferSize; in InMemoryRawLogWithArg()
268 if (TLD.BufferOffset + 2 > BuffLen) { in InMemoryRawLogWithArg()
271 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLogWithArg()
272 TLD.BufferOffset = 0; in InMemoryRawLogWithArg()
273 TLD.StackEntries = 0; in InMemoryRawLogWithArg()
290 internal_memcpy(FirstEntry + TLD.BufferOffset, &R, sizeof(R)); in InMemoryRawLogWithArg()
291 if (++TLD.BufferOffset == BuffLen) { in InMemoryRawLogWithArg()
294 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLogWithArg()
295 TLD.BufferOffset = 0; in InMemoryRawLogWithArg()
296 TLD.StackEntries = 0; in InMemoryRawLogWithArg()
340 ThreadLocalData &TLD = *reinterpret_cast<ThreadLocalData *>(P); in TLDDestructor() local
341 auto ExitGuard = at_scope_exit([&TLD] { in TLDDestructor()
343 if (TLD.InMemoryBuffer) in TLDDestructor()
344 InternalFree(TLD.InMemoryBuffer); in TLDDestructor()
345 if (TLD.ShadowStack) in TLDDestructor()
346 InternalFree(TLD.ShadowStack); in TLDDestructor()
351 if (TLD.LogWriter == nullptr || TLD.BufferOffset == 0) { in TLDDestructor()
354 TLD.BufferOffset); in TLDDestructor()
360 TLD.LogWriter->WriteAll(reinterpret_cast<char *>(TLD.InMemoryBuffer), in TLDDestructor()
361 reinterpret_cast<char *>(TLD.InMemoryBuffer) + in TLDDestructor()
362 (sizeof(XRayRecord) * TLD.BufferOffset)); in TLDDestructor()
369 TLD.LogWriter->Flush(); in TLDDestructor()