diff options
Diffstat (limited to 'xorg-server/Xext/syncsrv.h')
-rw-r--r-- | xorg-server/Xext/syncsrv.h | 101 |
1 files changed, 48 insertions, 53 deletions
diff --git a/xorg-server/Xext/syncsrv.h b/xorg-server/Xext/syncsrv.h index 2b7077364..dbed476f2 100644 --- a/xorg-server/Xext/syncsrv.h +++ b/xorg-server/Xext/syncsrv.h @@ -51,6 +51,7 @@ PERFORMANCE OF THIS SOFTWARE. #ifndef _SYNCSRV_H_ #define _SYNCSRV_H_ +#include "list.h" #include "misync.h" #include "misyncstr.h" @@ -65,82 +66,76 @@ typedef enum { XSyncCounterUnrestricted } SyncCounterType; +typedef void (*SyncSystemCounterQueryValue)(pointer counter, + CARD64 *value_return + ); +typedef void (*SyncSystemCounterBracketValues)(pointer counter, + CARD64 *pbracket_less, + CARD64 *pbracket_greater + ); + typedef struct _SysCounterInfo { - const char *name; - CARD64 resolution; - CARD64 bracket_greater; - CARD64 bracket_less; - SyncCounterType counterType; /* how can this counter change */ - void (*QueryValue)( - pointer /*pCounter*/, - CARD64 * /*freshvalue*/ -); - void (*BracketValues)( - pointer /*pCounter*/, - CARD64 * /*lessthan*/, - CARD64 * /*greaterthan*/ -); + SyncCounter *pCounter; + char *name; + CARD64 resolution; + CARD64 bracket_greater; + CARD64 bracket_less; + SyncCounterType counterType; /* how can this counter change */ + SyncSystemCounterQueryValue QueryValue; + SyncSystemCounterBracketValues BracketValues; + void *private; + struct xorg_list entry; } SysCounterInfo; - - typedef struct _SyncAlarmClientList { - ClientPtr client; - XID delete_id; + ClientPtr client; + XID delete_id; struct _SyncAlarmClientList *next; } SyncAlarmClientList; typedef struct _SyncAlarm { SyncTrigger trigger; - ClientPtr client; - XSyncAlarm alarm_id; - CARD64 delta; - int events; - int state; + ClientPtr client; + XSyncAlarm alarm_id; + CARD64 delta; + int events; + int state; SyncAlarmClientList *pEventClients; } SyncAlarm; typedef struct { - ClientPtr client; - CARD32 delete_id; - int num_waitconditions; + ClientPtr client; + CARD32 delete_id; + int num_waitconditions; } SyncAwaitHeader; typedef struct { SyncTrigger trigger; - CARD64 event_threshold; + CARD64 event_threshold; SyncAwaitHeader *pHeader; } SyncAwait; typedef union { SyncAwaitHeader header; - SyncAwait await; + SyncAwait await; } SyncAwaitUnion; -extern pointer SyncCreateSystemCounter( - const char */* name */, - CARD64 /* inital_value */, - CARD64 /* resolution */, - SyncCounterType /* change characterization */, - void (* /*QueryValue*/ ) ( - pointer /* pCounter */, - CARD64 * /* pValue_return */), /* XXX prototype */ - void (* /*BracketValues*/) ( - pointer /* pCounter */, - CARD64 * /* pbracket_less */, - CARD64 * /* pbracket_greater */) -); - -extern void SyncChangeCounter( - SyncCounter * /* pCounter*/, - CARD64 /* new_value */ -); - -extern void SyncDestroySystemCounter( - pointer pCounter -); - -extern void InitServertime(void); +extern SyncCounter* SyncCreateSystemCounter(const char *name, + CARD64 initial_value, + CARD64 resolution, + SyncCounterType counterType, + SyncSystemCounterQueryValue QueryValue, + SyncSystemCounterBracketValues BracketValues + ); + +extern void SyncChangeCounter(SyncCounter *pCounter, + CARD64 new_value + ); + +extern void SyncDestroySystemCounter(pointer pCounter); extern void SyncExtensionInit(void); -#endif /* _SYNCSRV_H_ */ + +extern SyncCounter *SyncInitDeviceIdleTime(DeviceIntPtr dev); +extern void SyncRemoveDeviceIdleTime(SyncCounter *counter); +#endif /* _SYNCSRV_H_ */ |