Home | History | Annotate | Download | only in drd

Lines Matching refs:cond

68 void DRD_(cond_initialize)(struct cond_info* const p, const Addr cond)
70 tl_assert(cond != 0);
71 tl_assert(p->a1 == cond);
125 static struct cond_info* cond_get_or_allocate(const Addr cond)
129 tl_assert(offsetof(DrdClientobj, cond) == 0);
130 p = &(DRD_(clientobj_get)(cond, ClientCondvar)->cond);
134 if (DRD_(clientobj_present)(cond, cond + 1))
136 wrong_type(cond);
140 p = &(DRD_(clientobj_add)(cond, ClientCondvar)->cond);
141 DRD_(cond_initialize)(p, cond);
145 struct cond_info* DRD_(cond_get)(const Addr cond)
147 tl_assert(offsetof(DrdClientobj, cond) == 0);
148 return &(DRD_(clientobj_get)(cond, ClientCondvar)->cond);
152 void DRD_(cond_pre_init)(const Addr cond)
159 "[%d] cond_init cond 0x%lx\n",
161 cond);
164 p = DRD_(cond_get)(cond);
168 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
176 p = cond_get_or_allocate(cond);
180 void DRD_(cond_post_destroy)(const Addr cond)
187 "[%d] cond_destroy cond 0x%lx\n",
189 cond);
192 p = DRD_(cond_get)(cond);
195 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
206 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
222 void DRD_(cond_pre_wait)(const Addr cond, const Addr mutex)
230 "[%d] cond_pre_wait cond 0x%lx\n",
232 cond);
235 p = cond_get_or_allocate(cond);
238 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
255 .cond = cond, .mutex1 = p->mutex, .mutex2 = mutex };
288 void DRD_(cond_post_wait)(const Addr cond)
295 "[%d] cond_post_wait cond 0x%lx\n",
297 cond);
300 p = DRD_(cond_get)(cond);
349 .cond = cond_p->a1,
368 static void not_initialized(Addr const cond)
370 CondErrInfo cei = { .tid = DRD_(thread_get_running_tid)(), .cond = cond };
379 void DRD_(cond_pre_signal)(Addr const cond)
383 p = DRD_(cond_get)(cond);
387 "[%d] cond_signal cond 0x%lx\n",
389 cond);
393 if (!p && VG_(memcmp)((void*)cond, (void*)DRD_(pthread_cond_initializer),
396 not_initialized(cond);
401 p = cond_get_or_allocate(cond);
407 void DRD_(cond_pre_broadcast)(Addr const cond)
414 "[%d] cond_broadcast cond 0x%lx\n",
416 cond);
419 p = DRD_(cond_get)(cond);
421 if (!p && VG_(memcmp)((void*)cond, (void*)DRD_(pthread_cond_initializer),
424 not_initialized(cond);
429 p = cond_get_or_allocate(cond);