Xext: store the bracket values for idle counters in the private
And drop the three global variables, we have a reference to the counter everywhere now. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: James Jones <jajones@nvidia.com>
This commit is contained in:
parent
d9553b2bbe
commit
f1b28aea41
45
Xext/sync.c
45
Xext/sync.c
|
@ -2590,9 +2590,10 @@ SyncInitServerTime(void)
|
||||||
* IDLETIME implementation
|
* IDLETIME implementation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static SyncCounter *IdleTimeCounter;
|
typedef struct {
|
||||||
static XSyncValue *pIdleTimeValueLess;
|
XSyncValue *value_less;
|
||||||
static XSyncValue *pIdleTimeValueGreater;
|
XSyncValue *value_greater;
|
||||||
|
} IdleCounterPriv;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
IdleTimeQueryValue(pointer pCounter, CARD64 * pValue_return)
|
IdleTimeQueryValue(pointer pCounter, CARD64 * pValue_return)
|
||||||
|
@ -2605,9 +2606,10 @@ IdleTimeQueryValue(pointer pCounter, CARD64 * pValue_return)
|
||||||
static void
|
static void
|
||||||
IdleTimeBlockHandler(pointer pCounter, struct timeval **wt, pointer LastSelectMask)
|
IdleTimeBlockHandler(pointer pCounter, struct timeval **wt, pointer LastSelectMask)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = IdleTimeCounter;
|
SyncCounter *counter = pCounter;
|
||||||
XSyncValue *less = pIdleTimeValueLess,
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
*greater = pIdleTimeValueGreater;
|
XSyncValue *less = priv->value_less,
|
||||||
|
*greater = priv->value_greater;
|
||||||
XSyncValue idle, old_idle;
|
XSyncValue idle, old_idle;
|
||||||
SyncTriggerList *list = counter->sync.pTriglist;
|
SyncTriggerList *list = counter->sync.pTriglist;
|
||||||
SyncTrigger *trig;
|
SyncTrigger *trig;
|
||||||
|
@ -2680,10 +2682,11 @@ IdleTimeBlockHandler(pointer pCounter, struct timeval **wt, pointer LastSelectMa
|
||||||
static void
|
static void
|
||||||
IdleTimeWakeupHandler(pointer pCounter, int rc, pointer LastSelectMask)
|
IdleTimeWakeupHandler(pointer pCounter, int rc, pointer LastSelectMask)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = IdleTimeCounter;
|
SyncCounter *counter = pCounter;
|
||||||
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
XSyncValue *less = priv->value_less,
|
||||||
|
*greater = priv->value_greater;
|
||||||
XSyncValue idle;
|
XSyncValue idle;
|
||||||
XSyncValue *less = pIdleTimeValueLess,
|
|
||||||
*greater = pIdleTimeValueGreater;
|
|
||||||
|
|
||||||
if (!less && !greater)
|
if (!less && !greater)
|
||||||
return;
|
return;
|
||||||
|
@ -2700,8 +2703,10 @@ static void
|
||||||
IdleTimeBracketValues(pointer pCounter, CARD64 * pbracket_less,
|
IdleTimeBracketValues(pointer pCounter, CARD64 * pbracket_less,
|
||||||
CARD64 * pbracket_greater)
|
CARD64 * pbracket_greater)
|
||||||
{
|
{
|
||||||
XSyncValue *less = pIdleTimeValueLess,
|
SyncCounter *counter = pCounter;
|
||||||
*greater = pIdleTimeValueGreater;
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
XSyncValue *less = priv->value_less,
|
||||||
|
*greater = priv->value_greater;
|
||||||
Bool registered = (less || greater);
|
Bool registered = (less || greater);
|
||||||
|
|
||||||
if (registered && !pbracket_less && !pbracket_greater) {
|
if (registered && !pbracket_less && !pbracket_greater) {
|
||||||
|
@ -2713,8 +2718,8 @@ IdleTimeBracketValues(pointer pCounter, CARD64 * pbracket_less,
|
||||||
IdleTimeWakeupHandler, pCounter);
|
IdleTimeWakeupHandler, pCounter);
|
||||||
}
|
}
|
||||||
|
|
||||||
pIdleTimeValueGreater = pbracket_greater;
|
priv->value_greater = pbracket_greater;
|
||||||
pIdleTimeValueLess = pbracket_less;
|
priv->value_less = pbracket_less;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2722,14 +2727,18 @@ SyncInitIdleTime(void)
|
||||||
{
|
{
|
||||||
CARD64 resolution;
|
CARD64 resolution;
|
||||||
XSyncValue idle;
|
XSyncValue idle;
|
||||||
|
IdleCounterPriv *priv = malloc(sizeof(IdleCounterPriv));
|
||||||
|
SyncCounter *idle_time_counter;
|
||||||
|
|
||||||
IdleTimeQueryValue(NULL, &idle);
|
IdleTimeQueryValue(NULL, &idle);
|
||||||
XSyncIntToValue(&resolution, 4);
|
XSyncIntToValue(&resolution, 4);
|
||||||
|
|
||||||
IdleTimeCounter = SyncCreateSystemCounter("IDLETIME", idle, resolution,
|
idle_time_counter = SyncCreateSystemCounter("IDLETIME", idle, resolution,
|
||||||
XSyncCounterUnrestricted,
|
XSyncCounterUnrestricted,
|
||||||
IdleTimeQueryValue,
|
IdleTimeQueryValue,
|
||||||
IdleTimeBracketValues);
|
IdleTimeBracketValues);
|
||||||
|
|
||||||
pIdleTimeValueLess = pIdleTimeValueGreater = NULL;
|
priv->value_less = priv->value_greater = NULL;
|
||||||
|
|
||||||
|
idle_time_counter->pSysCounterInfo->private = priv;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue