Lines Matching refs:TLD

126   thread_local ThreadLocalData TLD;  in getThreadLocalData()  local
133 pthread_setspecific(PThreadKey, &TLD); in getThreadLocalData()
134 TLD.LogWriter = getGlobalLog(); in getThreadLocalData()
135 TLD.InMemoryBuffer = reinterpret_cast<XRayRecord *>( in getThreadLocalData()
138 TLD.BufferSize = GlobalOptions.ThreadBufferSize; in getThreadLocalData()
139 TLD.BufferOffset = 0; in getThreadLocalData()
143 TLD.StackSize = 0; in getThreadLocalData()
144 TLD.StackEntries = 0; in getThreadLocalData()
145 TLD.ShadowStack = nullptr; in getThreadLocalData()
148 TLD.ShadowStack = reinterpret_cast<StackEntry *>( in getThreadLocalData()
151 TLD.StackSize = GlobalOptions.MaxStackDepth; in getThreadLocalData()
152 TLD.StackEntries = 0; in getThreadLocalData()
155 return TLD; in getThreadLocalData()
161 auto &TLD = getThreadLocalData(); in InMemoryRawLog() local
180 if (TLD.StackEntries++ >= TLD.StackSize) in InMemoryRawLog()
190 auto StackEntryPtr = static_cast<char *>(TLD.ShadowStack) + in InMemoryRawLog()
191 (sizeof(StackEntry) * (TLD.StackEntries - 1)); in InMemoryRawLog()
197 if (TLD.StackEntries == 0) in InMemoryRawLog()
200 if (--TLD.StackEntries >= TLD.StackSize) in InMemoryRawLog()
214 auto StackEntryPtr = static_cast<char *>(TLD.ShadowStack) + in InMemoryRawLog()
215 (sizeof(StackEntry) * TLD.StackEntries); in InMemoryRawLog()
221 DCHECK(TLD.BufferOffset > 0); in InMemoryRawLog()
222 TLD.BufferOffset -= StackTop.Type == XRayEntryType::ENTRY ? 1 : 2; in InMemoryRawLog()
244 auto FirstEntry = reinterpret_cast<XRayRecord *>(TLD.InMemoryBuffer); in InMemoryRawLog()
245 internal_memcpy(FirstEntry + TLD.BufferOffset, &R, sizeof(R)); in InMemoryRawLog()
246 if (++TLD.BufferOffset == TLD.BufferSize) { in InMemoryRawLog()
249 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLog()
250 TLD.BufferOffset = 0; in InMemoryRawLog()
251 TLD.StackEntries = 0; in InMemoryRawLog()
258 auto &TLD = getThreadLocalData(); in InMemoryRawLogWithArg() local
260 reinterpret_cast<XRayArgPayload *>(TLD.InMemoryBuffer); in InMemoryRawLogWithArg()
261 const auto &BuffLen = TLD.BufferSize; in InMemoryRawLogWithArg()
269 if (TLD.BufferOffset + 2 > BuffLen) { in InMemoryRawLogWithArg()
272 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLogWithArg()
273 TLD.BufferOffset = 0; in InMemoryRawLogWithArg()
274 TLD.StackEntries = 0; in InMemoryRawLogWithArg()
291 internal_memcpy(FirstEntry + TLD.BufferOffset, &R, sizeof(R)); in InMemoryRawLogWithArg()
292 if (++TLD.BufferOffset == BuffLen) { in InMemoryRawLogWithArg()
295 reinterpret_cast<char *>(FirstEntry + TLD.BufferOffset)); in InMemoryRawLogWithArg()
296 TLD.BufferOffset = 0; in InMemoryRawLogWithArg()
297 TLD.StackEntries = 0; in InMemoryRawLogWithArg()
341 ThreadLocalData &TLD = *reinterpret_cast<ThreadLocalData *>(P); in TLDDestructor() local
342 auto ExitGuard = at_scope_exit([&TLD] { in TLDDestructor()
344 if (TLD.InMemoryBuffer) in TLDDestructor()
345 InternalFree(TLD.InMemoryBuffer); in TLDDestructor()
346 if (TLD.ShadowStack) in TLDDestructor()
347 InternalFree(TLD.ShadowStack); in TLDDestructor()
352 if (TLD.LogWriter == nullptr || TLD.BufferOffset == 0) { in TLDDestructor()
355 TLD.BufferOffset); in TLDDestructor()
361 TLD.LogWriter->WriteAll(reinterpret_cast<char *>(TLD.InMemoryBuffer), in TLDDestructor()
362 reinterpret_cast<char *>(TLD.InMemoryBuffer) + in TLDDestructor()
363 (sizeof(XRayRecord) * TLD.BufferOffset)); in TLDDestructor()
370 TLD.LogWriter->Flush(); in TLDDestructor()