<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">

<OpenGLAPI>
<category name="GL_ARB_sync" number="61">
    <type name="int64"   size="8"                  glx_name="CARD64"/>
    <type name="uint64"  size="8"  unsigned="true" glx_name="CARD64"/>
    <type name="sync"    size="8"  unsigned="true" glx_name="CARD64"/>

    <enum name="MAX_SERVER_WAIT_TIMEOUT"       count="1"  value="0x9111">
        <size name="Get" mode="get"/>
    </enum>
    <enum name="OBJECT_TYPE"                   count="1"  value="0x9112">
        <size name="GetSynciv" mode="get"/>
    </enum>
    <enum name="SYNC_CONDITION"                count="1"  value="0x9113">
        <size name="GetSynciv" mode="get"/>
    </enum>
    <enum name="SYNC_STATUS"                   count="1"  value="0x9114">
        <size name="GetSynciv" mode="get"/>
    </enum>
    <enum name="SYNC_FLAGS"                    count="1"  value="0x9115">
        <size name="GetSynciv" mode="get"/>
    </enum>

    <enum name="SYNC_FENCE"                               value="0x9116"/>
    <enum name="SYNC_GPU_COMMANDS_COMPLETE"               value="0x9117"/>
    <enum name="UNSIGNALED"                               value="0x9118"/>
    <enum name="SIGNALED"                                 value="0x9119"/>
    <enum name="ALREADY_SIGNALED"                         value="0x911A"/>
    <enum name="TIMEOUT_EXPIRED"                          value="0x911B"/>
    <enum name="CONDITION_SATISFIED"                      value="0x911C"/>
    <enum name="WAIT_FAILED"                              value="0x911D"/>

    <enum name="SYNC_FLUSH_COMMANDS_BIT"                  value="0x00000001"/>

    <!-- Not really an enum:
    <enum name="TIMEOUT_IGNORED"                  value="0xFFFFFFFFFFFFFFFF"/>
    -->


    <function name="FenceSync" offset="assign">
        <param name="condition" type="GLenum"/>
        <param name="flags" type="GLbitfield"/>
        <return type="GLsync"/>
    </function>

    <function name="IsSync" offset="assign">
        <param name="sync" type="GLsync"/>
	<return type="GLboolean"/>
    </function>

    <function name="DeleteSync" offset="assign">
        <param name="sync" type="GLsync"/>
    </function>

    <function name="ClientWaitSync" offset="assign">
        <param name="sync" type="GLsync"/>
        <param name="flags" type="GLbitfield"/>
	<param name="timeout" type="GLuint64"/>
        <return type="GLenum"/>
    </function>

    <function name="WaitSync" offset="assign">
        <param name="sync" type="GLsync"/>
        <param name="flags" type="GLbitfield"/>
	<param name="timeout" type="GLuint64"/>
    </function>

    <function name="GetInteger64v" offset="assign">
        <param name="pname" type="GLenum"/>
        <param name="params" type="GLint64 *" output="true" variable_param="pname"/>
    </function>

    <function name="GetSynciv" offset="assign">
        <param name="sync" type="GLsync"/>
        <param name="pname" type="GLenum"/>
        <param name="bufSize" type="GLsizei"/>
        <param name="length" type="GLsizei *" output="true"/>
        <param name="values" type="GLint *" output="true" variable_param="pname"/>
    </function>
</category>

</OpenGLAPI>
