File indexing completed on 2025-03-13 09:29:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051 #ifndef _SYNC_H_
0052 #define _SYNC_H_
0053
0054 #include <X11/Xfuncproto.h>
0055 #include <X11/extensions/syncconst.h>
0056
0057 #ifdef _SYNC_SERVER
0058 #include <X11/extensions/syncproto.h>
0059 #else
0060
0061 _XFUNCPROTOBEGIN
0062
0063 #undef XSyncIntToValue
0064 #undef XSyncIntsToValue
0065 #undef XSyncValueGreaterThan
0066 #undef XSyncValueLessThan
0067 #undef XSyncValueGreaterOrEqual
0068 #undef XSyncValueLessOrEqual
0069 #undef XSyncValueEqual
0070 #undef XSyncValueIsNegative
0071 #undef XSyncValueIsZero
0072 #undef XSyncValueIsPositive
0073 #undef XSyncValueLow32
0074 #undef XSyncValueHigh32
0075 #undef XSyncValueAdd
0076 #undef XSyncValueSubtract
0077 #undef XSyncMaxValue
0078 #undef XSyncMinValue
0079
0080 extern void XSyncIntToValue(
0081 XSyncValue* ,
0082 int
0083 );
0084
0085 extern void XSyncIntsToValue(
0086 XSyncValue* ,
0087 unsigned int ,
0088 int
0089 );
0090
0091 extern Bool XSyncValueGreaterThan(
0092 XSyncValue ,
0093 XSyncValue
0094 );
0095
0096 extern Bool XSyncValueLessThan(
0097 XSyncValue ,
0098 XSyncValue
0099 );
0100
0101 extern Bool XSyncValueGreaterOrEqual(
0102 XSyncValue ,
0103 XSyncValue
0104 );
0105
0106 extern Bool XSyncValueLessOrEqual(
0107 XSyncValue ,
0108 XSyncValue
0109 );
0110
0111 extern Bool XSyncValueEqual(
0112 XSyncValue ,
0113 XSyncValue
0114 );
0115
0116 extern Bool XSyncValueIsNegative(
0117 XSyncValue
0118 );
0119
0120 extern Bool XSyncValueIsZero(
0121 XSyncValue
0122 );
0123
0124 extern Bool XSyncValueIsPositive(
0125 XSyncValue
0126 );
0127
0128 extern unsigned int XSyncValueLow32(
0129 XSyncValue
0130 );
0131
0132 extern int XSyncValueHigh32(
0133 XSyncValue
0134 );
0135
0136 extern void XSyncValueAdd(
0137 XSyncValue* ,
0138 XSyncValue ,
0139 XSyncValue ,
0140 int*
0141 );
0142
0143 extern void XSyncValueSubtract(
0144 XSyncValue* ,
0145 XSyncValue ,
0146 XSyncValue ,
0147 int*
0148 );
0149
0150 extern void XSyncMaxValue(
0151 XSyncValue*
0152 );
0153
0154 extern void XSyncMinValue(
0155 XSyncValue*
0156 );
0157
0158 _XFUNCPROTOEND
0159
0160
0161 typedef struct _XSyncSystemCounter {
0162 char *name;
0163 XSyncCounter counter;
0164 XSyncValue resolution;
0165 } XSyncSystemCounter;
0166
0167
0168 typedef struct {
0169 XSyncCounter counter;
0170 XSyncValueType value_type;
0171 XSyncValue wait_value;
0172 XSyncTestType test_type;
0173 } XSyncTrigger;
0174
0175 typedef struct {
0176 XSyncTrigger trigger;
0177 XSyncValue event_threshold;
0178 } XSyncWaitCondition;
0179
0180
0181 typedef struct {
0182 XSyncTrigger trigger;
0183 XSyncValue delta;
0184 Bool events;
0185 XSyncAlarmState state;
0186 } XSyncAlarmAttributes;
0187
0188
0189
0190
0191
0192 typedef struct {
0193 int type;
0194 unsigned long serial;
0195 Bool send_event;
0196 Display *display;
0197 XSyncCounter counter;
0198 XSyncValue wait_value;
0199 XSyncValue counter_value;
0200 Time time;
0201 int count;
0202 Bool destroyed;
0203 } XSyncCounterNotifyEvent;
0204
0205 typedef struct {
0206 int type;
0207 unsigned long serial;
0208 Bool send_event;
0209 Display *display;
0210 XSyncAlarm alarm;
0211 XSyncValue counter_value;
0212 XSyncValue alarm_value;
0213 Time time;
0214 XSyncAlarmState state;
0215 } XSyncAlarmNotifyEvent;
0216
0217
0218
0219
0220
0221 typedef struct {
0222 int type;
0223 Display *display;
0224 XSyncAlarm alarm;
0225 unsigned long serial;
0226 unsigned char error_code;
0227 unsigned char request_code;
0228 unsigned char minor_code;
0229 } XSyncAlarmError;
0230
0231 typedef struct {
0232 int type;
0233 Display *display;
0234 XSyncCounter counter;
0235 unsigned long serial;
0236 unsigned char error_code;
0237 unsigned char request_code;
0238 unsigned char minor_code;
0239 } XSyncCounterError;
0240
0241
0242
0243
0244
0245 _XFUNCPROTOBEGIN
0246
0247 extern Status XSyncQueryExtension(
0248 Display* ,
0249 int* ,
0250 int*
0251 );
0252
0253 extern Status XSyncInitialize(
0254 Display* ,
0255 int* ,
0256 int*
0257 );
0258
0259 extern XSyncSystemCounter *XSyncListSystemCounters(
0260 Display* ,
0261 int*
0262 );
0263
0264 extern void XSyncFreeSystemCounterList(
0265 XSyncSystemCounter*
0266 );
0267
0268 extern XSyncCounter XSyncCreateCounter(
0269 Display* ,
0270 XSyncValue
0271 );
0272
0273 extern Status XSyncSetCounter(
0274 Display* ,
0275 XSyncCounter ,
0276 XSyncValue
0277 );
0278
0279 extern Status XSyncChangeCounter(
0280 Display* ,
0281 XSyncCounter ,
0282 XSyncValue
0283 );
0284
0285 extern Status XSyncDestroyCounter(
0286 Display* ,
0287 XSyncCounter
0288 );
0289
0290 extern Status XSyncQueryCounter(
0291 Display* ,
0292 XSyncCounter ,
0293 XSyncValue*
0294 );
0295
0296 extern Status XSyncAwait(
0297 Display* ,
0298 XSyncWaitCondition* ,
0299 int
0300 );
0301
0302 extern XSyncAlarm XSyncCreateAlarm(
0303 Display* ,
0304 unsigned long ,
0305 XSyncAlarmAttributes*
0306 );
0307
0308 extern Status XSyncDestroyAlarm(
0309 Display* ,
0310 XSyncAlarm
0311 );
0312
0313 extern Status XSyncQueryAlarm(
0314 Display* ,
0315 XSyncAlarm ,
0316 XSyncAlarmAttributes*
0317 );
0318
0319 extern Status XSyncChangeAlarm(
0320 Display* ,
0321 XSyncAlarm ,
0322 unsigned long ,
0323 XSyncAlarmAttributes*
0324 );
0325
0326 extern Status XSyncSetPriority(
0327 Display* ,
0328 XID ,
0329 int
0330 );
0331
0332 extern Status XSyncGetPriority(
0333 Display* ,
0334 XID ,
0335 int*
0336 );
0337
0338 extern XSyncFence XSyncCreateFence(
0339 Display* ,
0340 Drawable ,
0341 Bool
0342 );
0343
0344 extern Bool XSyncTriggerFence(
0345 Display* ,
0346 XSyncFence
0347 );
0348
0349 extern Bool XSyncResetFence(
0350 Display* ,
0351 XSyncFence
0352 );
0353
0354 extern Bool XSyncDestroyFence(
0355 Display* ,
0356 XSyncFence
0357 );
0358
0359 extern Bool XSyncQueryFence(
0360 Display* ,
0361 XSyncFence ,
0362 Bool*
0363 );
0364
0365 extern Bool XSyncAwaitFence(
0366 Display* ,
0367 const XSyncFence* ,
0368 int
0369 );
0370
0371 _XFUNCPROTOEND
0372
0373 #endif
0374
0375 #endif