• Home
  • Raw
  • Download

Lines Matching refs:pc

26 void ReportDeadlock(ThreadState *thr, uptr pc, DDReport *r);
30 uptr pc; member
32 Callback(ThreadState *thr, uptr pc) in Callback()
34 , pc(pc) { in Callback()
39 u32 Unwind() override { return CurrentStackId(thr, pc); } in Unwind()
43 void DDMutexInit(ThreadState *thr, uptr pc, SyncVar *s) { in DDMutexInit() argument
44 Callback cb(thr, pc); in DDMutexInit()
49 static void ReportMutexMisuse(ThreadState *thr, uptr pc, ReportType typ, in ReportMutexMisuse() argument
59 ObtainCurrentStack(thr, pc, &trace); in ReportMutexMisuse()
65 void MutexCreate(ThreadState *thr, uptr pc, uptr addr, in MutexCreate() argument
72 MemoryWrite(thr, pc, addr, kSizeLog1); in MutexCreate()
75 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexCreate()
80 s->creation_stack_id = CurrentStackId(thr, pc); in MutexCreate()
84 void MutexDestroy(ThreadState *thr, uptr pc, uptr addr) { in MutexDestroy() argument
96 Callback cb(thr, pc); in MutexDestroy()
117 ObtainCurrentStack(thr, pc, &trace); in MutexDestroy()
138 MemoryWrite(thr, pc, addr, kSizeLog1); in MutexDestroy()
144 void MutexLock(ThreadState *thr, uptr pc, uptr addr, int rec, bool try_lock) { in MutexLock() argument
148 MemoryReadAtomic(thr, pc, addr, kSizeLog1); in MutexLock()
149 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexLock()
165 AcquireImpl(thr, pc, &s->clock); in MutexLock()
166 AcquireImpl(thr, pc, &s->read_clock); in MutexLock()
173 Callback cb(thr, pc); in MutexLock()
182 ReportMutexMisuse(thr, pc, ReportTypeMutexDoubleLock, addr, mid); in MutexLock()
184 Callback cb(thr, pc); in MutexLock()
185 ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); in MutexLock()
189 int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, bool all) { in MutexUnlock() argument
192 MemoryReadAtomic(thr, pc, addr, kSizeLog1); in MutexUnlock()
193 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexUnlock()
209 ReleaseStoreImpl(thr, pc, &s->clock); in MutexUnlock()
217 Callback cb(thr, pc); in MutexUnlock()
224 ReportMutexMisuse(thr, pc, ReportTypeMutexBadUnlock, addr, mid); in MutexUnlock()
226 Callback cb(thr, pc); in MutexUnlock()
227 ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); in MutexUnlock()
232 void MutexReadLock(ThreadState *thr, uptr pc, uptr addr, bool trylock) { in MutexReadLock() argument
236 MemoryReadAtomic(thr, pc, addr, kSizeLog1); in MutexReadLock()
237 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, false); in MutexReadLock()
247 AcquireImpl(thr, pc, &s->clock); in MutexReadLock()
251 Callback cb(thr, pc); in MutexReadLock()
260 ReportMutexMisuse(thr, pc, ReportTypeMutexBadReadLock, addr, mid); in MutexReadLock()
262 Callback cb(thr, pc); in MutexReadLock()
263 ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); in MutexReadLock()
267 void MutexReadUnlock(ThreadState *thr, uptr pc, uptr addr) { in MutexReadUnlock() argument
271 MemoryReadAtomic(thr, pc, addr, kSizeLog1); in MutexReadUnlock()
272 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexReadUnlock()
282 ReleaseImpl(thr, pc, &s->read_clock); in MutexReadUnlock()
284 Callback cb(thr, pc); in MutexReadUnlock()
292 ReportMutexMisuse(thr, pc, ReportTypeMutexBadReadUnlock, addr, mid); in MutexReadUnlock()
294 Callback cb(thr, pc); in MutexReadUnlock()
295 ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); in MutexReadUnlock()
299 void MutexReadOrWriteUnlock(ThreadState *thr, uptr pc, uptr addr) { in MutexReadOrWriteUnlock() argument
302 MemoryReadAtomic(thr, pc, addr, kSizeLog1); in MutexReadOrWriteUnlock()
303 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexReadOrWriteUnlock()
312 ReleaseImpl(thr, pc, &s->read_clock); in MutexReadOrWriteUnlock()
322 ReleaseImpl(thr, pc, &s->clock); in MutexReadOrWriteUnlock()
332 Callback cb(thr, pc); in MutexReadOrWriteUnlock()
339 ReportMutexMisuse(thr, pc, ReportTypeMutexBadUnlock, addr, mid); in MutexReadOrWriteUnlock()
341 Callback cb(thr, pc); in MutexReadOrWriteUnlock()
342 ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); in MutexReadOrWriteUnlock()
346 void MutexRepair(ThreadState *thr, uptr pc, uptr addr) { in MutexRepair() argument
348 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexRepair()
354 void MutexInvalidAccess(ThreadState *thr, uptr pc, uptr addr) { in MutexInvalidAccess() argument
356 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in MutexInvalidAccess()
359 ReportMutexMisuse(thr, pc, ReportTypeMutexInvalidAccess, addr, mid); in MutexInvalidAccess()
362 void Acquire(ThreadState *thr, uptr pc, uptr addr) { in Acquire() argument
369 AcquireImpl(thr, pc, &s->clock); in Acquire()
382 void AcquireGlobal(ThreadState *thr, uptr pc) { in AcquireGlobal() argument
391 void Release(ThreadState *thr, uptr pc, uptr addr) { in Release() argument
395 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in Release()
399 ReleaseImpl(thr, pc, &s->clock); in Release()
403 void ReleaseStore(ThreadState *thr, uptr pc, uptr addr) { in ReleaseStore() argument
407 SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); in ReleaseStore()
411 ReleaseStoreImpl(thr, pc, &s->clock); in ReleaseStore()
425 void AfterSleep(ThreadState *thr, uptr pc) { in AfterSleep() argument
429 thr->last_sleep_stack_id = CurrentStackId(thr, pc); in AfterSleep()
436 void AcquireImpl(ThreadState *thr, uptr pc, SyncClock *c) { in AcquireImpl() argument
444 void ReleaseImpl(ThreadState *thr, uptr pc, SyncClock *c) { in ReleaseImpl() argument
453 void ReleaseStoreImpl(ThreadState *thr, uptr pc, SyncClock *c) { in ReleaseStoreImpl() argument
462 void AcquireReleaseImpl(ThreadState *thr, uptr pc, SyncClock *c) { in AcquireReleaseImpl() argument
472 void ReportDeadlock(ThreadState *thr, uptr pc, DDReport *r) { in ReportDeadlock() argument