\_SB_.CPUS.C002
  $   li~d
j"Tr@ţi[s ?     /*
 * This file generated automatically from sync.xml by c_client.py.
 * Edit at your peril.
 */

/**
 * @defgroup XCB_Sync_API XCB Sync API
 * @brief Sync XCB Protocol Implementation.
 * @{
 **/

#ifndef __SYNC_H
#define __SYNC_H

#include "xcb.h"
#include "xproto.h"

#ifdef __cplusplus
extern "C" {
#endif

#define XCB_SYNC_MAJOR_VERSION 3
#define XCB_SYNC_MINOR_VERSION 1

extern xcb_extension_t xcb_sync_id;

typedef uint32_t xcb_sync_alarm_t;

/**
 * @brief xcb_sync_alarm_iterator_t
 **/
typedef struct xcb_sync_alarm_iterator_t {
    xcb_sync_alarm_t *data;
    int               rem;
    int               index;
} xcb_sync_alarm_iterator_t;

typedef enum xcb_sync_alarmstate_t {
    XCB_SYNC_ALARMSTATE_ACTIVE = 0,
    XCB_SYNC_ALARMSTATE_INACTIVE = 1,
    XCB_SYNC_ALARMSTATE_DESTROYED = 2
} xcb_sync_alarmstate_t;

typedef uint32_t xcb_sync_counter_t;

/**
 * @brief xcb_sync_counter_iterator_t
 **/
typedef struct xcb_sync_counter_iterator_t {
    xcb_sync_counter_t *data;
    int                 rem;
    int                 index;
} xcb_sync_counter_iterator_t;

typedef uint32_t xcb_sync_fence_t;

/**
 * @brief xcb_sync_fence_iterator_t
 **/
typedef struct xcb_sync_fence_iterator_t {
    xcb_sync_fence_t *data;
    int               rem;
    int               index;
} xcb_sync_fence_iterator_t;

typedef enum xcb_sync_testtype_t {
    XCB_SYNC_TESTTYPE_POSITIVE_TRANSITION = 0,
    XCB_SYNC_TESTTYPE_NEGATIVE_TRANSITION = 1,
    XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON = 2,
    XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON = 3
} xcb_sync_testtype_t;

typedef enum xcb_sync_valuetype_t {
    XCB_SYNC_VALUETYPE_ABSOLUTE = 0,
    XCB_SYNC_VALUETYPE_RELATIVE = 1
} xcb_sync_valuetype_t;

typedef enum xcb_sync_ca_t {
    XCB_SYNC_CA_COUNTER = 1,
    XCB_SYNC_CA_VALUE_TYPE = 2,
    XCB_SYNC_CA_VALUE = 4,
    XCB_SYNC_CA_TEST_TYPE = 8,
    XCB_SYNC_CA_DELTA = 16,
    XCB_SYNC_CA_EVENTS = 32
} xcb_sync_ca_t;

/**
 * @brief xcb_sync_int64_t
 **/
typedef struct xcb_sync_int64_t {
    int32_t  hi;
    uint32_t lo;
} xcb_sync_int64_t;

/**
 * @brief xcb_sync_int64_iterator_t
 **/
typedef struct xcb_sync_int64_iterator_t {
    xcb_sync_int64_t *data;
    int               rem;
    int               index;
} xcb_sync_int64_iterator_t;

/**
 * @brief xcb_sync_systemcounter_t
 **/
typedef struct xcb_sync_systemcounter_t {
    xcb_sync_counter_t counter;
    xcb_sync_int64_t   resolution;
    uint16_t           name_len;
} xcb_sync_systemcounter_t;

/**
 * @brief xcb_sync_systemcounter_iterator_t
 **/
typedef struct xcb_sync_systemcounter_iterator_t {
    xcb_sync_systemcounter_t *data;
    int                       rem;
    int                       index;
} xcb_sync_systemcounter_iterator_t;

/**
 * @brief xcb_sync_trigger_t
 **/
typedef struct xcb_sync_trigger_t {
    xcb_sync_counter_t counter;
    uint32_t           wait_type;
    xcb_sync_int64_t   wait_value;
    uint32_t           test_type;
} xcb_sync_trigger_t;

/**
 * @brief xcb_sync_trigger_iterator_t
 **/
typedef struct xcb_sync_trigger_iterator_t {
    xcb_sync_trigger_t *data;
    int                 rem;
    int                 index;
} xcb_sync_trigger_iterator_t;

/**
 * @brief xcb_sync_waitcondition_t
 **/
typedef struct xcb_sync_waitcondition_t {
    xcb_sync_trigger_t trigger;
    xcb_sync_int64_t   event_threshold;
} xcb_sync_waitcondition_t;

/**
 * @brief xcb_sync_waitcondition_iterator_t
 **/
typedef struct xcb_sync_waitcondition_iterator_t {
    xcb_sync_waitcondition_t *data;
    int                       rem;
    int                       index;
} xcb_sync_waitcondition_iterator_t;

/** Opcode for xcb_sync_counter. */
#define XCB_SYNC_COUNTER 0

/**
 * @brief xcb_sync_counter_error_t
 **/
typedef struct xcb_sync_counter_error_t {
    uint8_t  response_type;
    uint8_t  error_code;
    uint16_t sequence;
    uint32_t bad_counter;
    uint16_t minor_opcode;
    uint8_t  major_opcode;
} xcb_sync_counter_error_t;

/** Opcode for xcb_sync_alarm. */
#define XCB_SYNC_ALARM 1

/**
 * @brief xcb_sync_alarm_error_t
