Lines Matching refs:pTrigger

139 SyncDeleteTriggerFromSyncObject(SyncTrigger *pTrigger)
145 /* pSync needs to be stored in pTrigger before calling here. */
147 if (!pTrigger->pSync)
151 pCur = pTrigger->pSync->pTriglist;
155 if (pCur->pTrigger == pTrigger)
160 pTrigger->pSync->pTriglist = pCur->next;
170 if (SYNC_COUNTER == pTrigger->pSync->type)
172 pCounter = (SyncCounter *)pTrigger->pSync;
176 } else if (SYNC_FENCE == pTrigger->pSync->type) {
177 SyncFence* pFence = (SyncFence*) pTrigger->pSync;
178 pFence->funcs.DeleteTrigger(pTrigger);
184 SyncAddTriggerToSyncObject(SyncTrigger *pTrigger)
189 if (!pTrigger->pSync)
193 for (pCur = pTrigger->pSync->pTriglist; pCur; pCur = pCur->next)
195 if (pCur->pTrigger == pTrigger)
202 pCur->pTrigger = pTrigger;
203 pCur->next = pTrigger->pSync->pTriglist;
204 pTrigger->pSync->pTriglist = pCur;
206 if (SYNC_COUNTER == pTrigger->pSync->type)
208 pCounter = (SyncCounter *)pTrigger->pSync;
212 } else if (SYNC_FENCE == pTrigger->pSync->type) {
213 SyncFence* pFence = (SyncFence*) pTrigger->pSync;
214 pFence->funcs.AddTrigger(pTrigger);
222 * pTrigger->CheckTrigger for counter sync objects, corresponding to
224 * can be plugged into pTrigger->CheckTrigger for fence sync objects.
231 * All of them include the condition pTrigger->pSync == NULL.
237 SyncCheckTriggerPositiveComparison(SyncTrigger *pTrigger, CARD64 oldval)
243 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_COMPARE))
246 pCounter = (SyncCounter *)pTrigger->pSync;
249 XSyncValueGreaterOrEqual(pCounter->value, pTrigger->test_value));
253 SyncCheckTriggerNegativeComparison(SyncTrigger *pTrigger, CARD64 oldval)
259 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_COMPARE))
262 pCounter = (SyncCounter *)pTrigger->pSync;
265 XSyncValueLessOrEqual(pCounter->value, pTrigger->test_value));
269 SyncCheckTriggerPositiveTransition(SyncTrigger *pTrigger, CARD64 oldval)
275 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_COMPARE))
278 pCounter = (SyncCounter *)pTrigger->pSync;
281 (XSyncValueLessThan(oldval, pTrigger->test_value) &&
282 XSyncValueGreaterOrEqual(pCounter->value, pTrigger->test_value)));
286 SyncCheckTriggerNegativeTransition(SyncTrigger *pTrigger, CARD64 oldval)
292 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_COMPARE))
295 pCounter = (SyncCounter *)pTrigger->pSync;
298 (XSyncValueGreaterThan(oldval, pTrigger->test_value) &&
299 XSyncValueLessOrEqual(pCounter->value, pTrigger->test_value)));
303 SyncCheckTriggerFence(SyncTrigger *pTrigger, CARD64 unused)
305 SyncFence* pFence = (SyncFence*) pTrigger->pSync;
313 SyncInitTrigger(ClientPtr client, SyncTrigger *pTrigger, XID syncObject,
316 SyncObject *pSync = pTrigger->pSync;
331 if (pSync != pTrigger->pSync)
333 SyncDeleteTriggerFromSyncObject(pTrigger);
334 pTrigger->pSync = pSync;
354 if (pTrigger->value_type != XSyncRelative &&
355 pTrigger->value_type != XSyncAbsolute)
357 client->errorValue = pTrigger->value_type;
367 pTrigger->CheckTrigger = SyncCheckTriggerFence;
373 switch (pTrigger->test_type)
376 pTrigger->CheckTrigger = SyncCheckTriggerPositiveTransition;
379 pTrigger->CheckTrigger = SyncCheckTriggerNegativeTransition;
382 pTrigger->CheckTrigger = SyncCheckTriggerPositiveComparison;
385 pTrigger->CheckTrigger = SyncCheckTriggerNegativeComparison;
388 client->errorValue = pTrigger->test_type;
396 if (pTrigger->value_type == XSyncAbsolute)
397 pTrigger->test_value = pTrigger->wait_value;
404 XSyncValueAdd(&pTrigger->test_value, pCounter->value,
405 pTrigger->wait_value, &overflow);
408 client->errorValue = XSyncValueHigh32(pTrigger->wait_value);
419 if ((rc = SyncAddTriggerToSyncObject(pTrigger)) != Success)
439 SyncTrigger *pTrigger = &pAlarm->trigger;
442 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_ALARM))
445 pCounter = (SyncCounter *)pTrigger->pSync;
452 if (pTrigger->pSync && SYNC_COUNTER == pTrigger->pSync->type)
462 ane.alarm_value_hi = XSyncValueHigh32(pTrigger->test_value);
463 ane.alarm_value_lo = XSyncValueLow32(pTrigger->test_value);
495 SyncTrigger *pTrigger = &(*ppAwait)->trigger;
498 pev->counter = pTrigger->pSync->id;
499 pev->wait_value_lo = XSyncValueLow32(pTrigger->test_value);
500 pev->wait_value_hi = XSyncValueHigh32(pTrigger->test_value);
501 if (SYNC_COUNTER == pTrigger->pSync->type)
503 SyncCounter *pCounter = (SyncCounter *)pTrigger->pSync;
516 pev->destroyed = pTrigger->pSync->beingDestroyed;
525 * It is plugged into pTrigger->CounterDestroyed (for alarm triggers).
528 SyncAlarmCounterDestroyed(SyncTrigger *pTrigger)
530 SyncAlarm *pAlarm = (SyncAlarm *)pTrigger;
534 pTrigger->pSync = NULL;
539 * It is plugged into pTrigger->TriggerFired (for alarm triggers).
542 SyncAlarmTriggerFired(SyncTrigger *pTrigger)
544 SyncAlarm *pAlarm = (SyncAlarm *)pTrigger;
548 if (!SyncCheckWarnIsCounter(pTrigger->pSync, WARN_INVALID_COUNTER_ALARM))
551 pCounter = (SyncCounter *)pTrigger->pSync;
581 paCounter = (SyncCounter *)pTrigger->pSync;
620 pTrigger->test_value = new_test_value;
626 * It goes into pTrigger->TriggerFired AND pTrigger->CounterDestroyed
630 SyncAwaitTriggerFired(SyncTrigger *pTrigger)
632 SyncAwait *pAwait = (SyncAwait *)pTrigger;
740 if ((*ptl->pTrigger->CheckTrigger)(ptl->pTrigger, oldval))
741 (*ptl->pTrigger->TriggerFired)(ptl->pTrigger);
1040 SyncTrigger *pTrigger;
1059 pTrigger = pCur->pTrigger;
1061 if (pTrigger->test_type == XSyncPositiveComparison &&
1064 if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
1065 XSyncValueLessThan(pTrigger->test_value,
1068 psci->bracket_greater = pTrigger->test_value;
1072 else if (pTrigger->test_type == XSyncNegativeComparison &&
1075 if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
1076 XSyncValueGreaterThan(pTrigger->test_value,
1079 psci->bracket_less = pTrigger->test_value;
1083 else if (pTrigger->test_type == XSyncNegativeTransition &&
1086 if (XSyncValueGreaterThan(pCounter->value, pTrigger->test_value) &&
1087 XSyncValueGreaterThan(pTrigger->test_value, psci->bracket_less))
1089 psci->bracket_less = pTrigger->test_value;
1091 } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
1092 XSyncValueLessThan(pTrigger->test_value,
1100 psci->bracket_greater = pTrigger->test_value;
1104 else if (pTrigger->test_type == XSyncPositiveTransition &&
1107 if (XSyncValueLessThan(pCounter->value, pTrigger->test_value) &&
1108 XSyncValueLessThan(pTrigger->test_value, psci->bracket_greater))
1110 psci->bracket_greater = pTrigger->test_value;
1112 } else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
1113 XSyncValueGreaterThan(pTrigger->test_value,
1121 psci->bracket_less = pTrigger->test_value;
1173 (*ptl->pTrigger->CounterDestroyed)(ptl->pTrigger);
1756 SyncTrigger *pTrigger;
1775 pTrigger = &pAlarm->trigger;
1776 pTrigger->pSync = NULL;
1777 pTrigger->value_type = XSyncAbsolute;
1778 XSyncIntToValue(&pTrigger->wait_value, 0L);
1779 pTrigger->test_type = XSyncPositiveComparison;
1780 pTrigger->TriggerFired = SyncAlarmTriggerFired;
1781 pTrigger->CounterDestroyed = SyncAlarmCounterDestroyed;
1782 status = SyncInitTrigger(client, pTrigger, None, RTCounter,
1811 if (!pTrigger->pSync)
1819 if (!SyncCheckWarnIsCounter(pTrigger->pSync,
1826 pCounter = (SyncCounter *)pTrigger->pSync;
1828 if ((*pTrigger->CheckTrigger)(pTrigger, pCounter->value))
1829 (*pTrigger->TriggerFired)(pTrigger);
1886 SyncTrigger *pTrigger;
1900 pTrigger = &pAlarm->trigger;
1901 rep.counter = (pTrigger->pSync) ? pTrigger->pSync->id : None;
1907 rep.value_type = pTrigger->value_type;
1908 rep.wait_value_hi = XSyncValueHigh32(pTrigger->wait_value);
1909 rep.wait_value_lo = XSyncValueLow32(pTrigger->wait_value);
1912 rep.wait_value_hi = XSyncValueHigh32(pTrigger->test_value);
1913 rep.wait_value_lo = XSyncValueLow32(pTrigger->test_value);
1916 rep.test_type = pTrigger->test_type;
2820 trig = list->pTrigger;
2854 trig = list->pTrigger;