/*
 * Thread safe wrappers around Xlib calls.
 * This file was generated automatically by tools/make_X11wrappers
 * DO NOT EDIT!
 */

#include "config.h"

#ifndef X_DISPLAY_MISSING


#include <X11/Xlib.h>

#include "debugtools.h"
#include "ts_xlib.h"
#include "x11drv.h"

DEFAULT_DEBUG_CHANNEL(x11)

XFontStruct * TSXLoadQueryFont(Display* a0, const  char* a1)
{
  XFontStruct * r;
  TRACE("Call XLoadQueryFont\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XLoadQueryFont(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XLoadQueryFont\n");
  return r;
}

XModifierKeymap	* TSXGetModifierMapping(Display* a0)
{
  XModifierKeymap	* r;
  TRACE("Call XGetModifierMapping\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetModifierMapping(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetModifierMapping\n");
  return r;
}

XImage * TSXCreateImage(Display* a0, Visual* a1, unsigned int a2, int a3, int a4, char* a5, unsigned int a6, unsigned int a7, int a8, int a9)
{
  XImage * r;
  TRACE("Call XCreateImage\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateImage(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateImage\n");
  return r;
}

XImage * TSXGetImage(Display* a0, Drawable a1, int a2, int a3, unsigned int a4, unsigned int a5, unsigned long a6, int a7)
{
  XImage * r;
  TRACE("Call XGetImage\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetImage(a0, a1, a2, a3, a4, a5, a6, a7);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetImage\n");
  return r;
}

Display * TSXOpenDisplay(const  char* a0)
{
  Display * r;
  TRACE("Call XOpenDisplay\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XOpenDisplay(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XOpenDisplay\n");
  return r;
}

void  TSXrmInitialize(void)
{
  TRACE("Call XrmInitialize\n");
  EnterCriticalSection( &X11DRV_CritSection );
  XrmInitialize();
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XrmInitialize\n");
}

char * TSXGetAtomName(Display* a0, Atom a1)
{
  char * r;
  TRACE("Call XGetAtomName\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetAtomName(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetAtomName\n");
  return r;
}

char * TSXKeysymToString(KeySym a0)
{
  char * r;
  TRACE("Call XKeysymToString\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XKeysymToString(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XKeysymToString\n");
  return r;
}

Atom  TSXInternAtom(Display* a0, const  char* a1, int a2)
{
  Atom  r;
  TRACE("Call XInternAtom\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XInternAtom(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XInternAtom\n");
  return r;
}

Colormap  TSXCopyColormapAndFree(Display* a0, Colormap a1)
{
  Colormap  r;
  TRACE("Call XCopyColormapAndFree\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCopyColormapAndFree(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCopyColormapAndFree\n");
  return r;
}

Colormap  TSXCreateColormap(Display* a0, Window a1, Visual* a2, int a3)
{
  Colormap  r;
  TRACE("Call XCreateColormap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateColormap(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateColormap\n");
  return r;
}

Cursor  TSXCreatePixmapCursor(Display* a0, Pixmap a1, Pixmap a2, XColor* a3, XColor* a4, unsigned int a5, unsigned int a6)
{
  Cursor  r;
  TRACE("Call XCreatePixmapCursor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreatePixmapCursor(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreatePixmapCursor\n");
  return r;
}

Cursor  TSXCreateFontCursor(Display* a0, unsigned int a1)
{
  Cursor  r;
  TRACE("Call XCreateFontCursor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateFontCursor(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateFontCursor\n");
  return r;
}

GC  TSXCreateGC(Display* a0, Drawable a1, unsigned long a2, XGCValues* a3)
{
  GC  r;
  TRACE("Call XCreateGC\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateGC(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateGC\n");
  return r;
}

Pixmap  TSXCreatePixmap(Display* a0, Drawable a1, unsigned int a2, unsigned int a3, unsigned int a4)
{
  Pixmap  r;
  TRACE("Call XCreatePixmap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreatePixmap(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreatePixmap\n");
  return r;
}

Pixmap  TSXCreateBitmapFromData(Display* a0, Drawable a1, const  char* a2, unsigned int a3, unsigned int a4)
{
  Pixmap  r;
  TRACE("Call XCreateBitmapFromData\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateBitmapFromData(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateBitmapFromData\n");
  return r;
}

Window  TSXGetSelectionOwner(Display* a0, Atom a1)
{
  Window  r;
  TRACE("Call XGetSelectionOwner\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetSelectionOwner(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetSelectionOwner\n");
  return r;
}

Window  TSXCreateWindow(Display* a0, Window a1, int a2, int a3, unsigned int a4, unsigned int a5, unsigned int a6, int a7, unsigned int a8, Visual* a9, unsigned long a10, XSetWindowAttributes* a11)
{
  Window  r;
  TRACE("Call XCreateWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCreateWindow(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCreateWindow\n");
  return r;
}

char ** TSXListFonts(Display* a0, const  char* a1, int a2, int* a3)
{
  char ** r;
  TRACE("Call XListFonts\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XListFonts(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XListFonts\n");
  return r;
}

KeySym  TSXKeycodeToKeysym(Display* a0, unsigned int a1, int a2)
{
  KeySym  r;
  TRACE("Call XKeycodeToKeysym\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XKeycodeToKeysym(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XKeycodeToKeysym\n");
  return r;
}

KeySym  TSXLookupKeysym(XKeyEvent* a0, int a1)
{
  KeySym  r;
  TRACE("Call XLookupKeysym\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XLookupKeysym(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XLookupKeysym\n");
  return r;
}

KeySym * TSXGetKeyboardMapping(Display* a0, unsigned int a1, int a2, int* a3)
{
  KeySym * r;
  TRACE("Call XGetKeyboardMapping\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetKeyboardMapping(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetKeyboardMapping\n");
  return r;
}

char * TSXResourceManagerString(Display* a0)
{
  char * r;
  TRACE("Call XResourceManagerString\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XResourceManagerString(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XResourceManagerString\n");
  return r;
}

int   TSXInitThreads(void)
{
  int   r;
  TRACE("Call XInitThreads\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XInitThreads();
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XInitThreads\n");
  return r;
}

int * TSXListDepths(Display* a0, int a1, int* a2)
{
  int * r;
  TRACE("Call XListDepths\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XListDepths(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XListDepths\n");
  return r;
}

int   TSXReconfigureWMWindow(Display* a0, Window a1, int a2, unsigned int a3, XWindowChanges* a4)
{
  int   r;
  TRACE("Call XReconfigureWMWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XReconfigureWMWindow(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XReconfigureWMWindow\n");
  return r;
}

int   TSXSetWMProtocols(Display* a0, Window a1, Atom* a2, int a3)
{
  int   r;
  TRACE("Call XSetWMProtocols\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetWMProtocols(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetWMProtocols\n");
  return r;
}

int   TSXIconifyWindow(Display* a0, Window a1, int a2)
{
  int   r;
  TRACE("Call XIconifyWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XIconifyWindow(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XIconifyWindow\n");
  return r;
}

int  TSXSetTransientForHint(Display* a0, Window a1, Window a2)
{
  int  r;
  TRACE("Call XSetTransientForHint\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetTransientForHint(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetTransientForHint\n");
  return r;
}

int  TSXActivateScreenSaver(Display* a0)
{
  int  r;
  TRACE("Call XActivateScreenSaver\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XActivateScreenSaver(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XActivateScreenSaver\n");
  return r;
}

int   TSXAllocColor(Display* a0, Colormap a1, XColor* a2)
{
  int   r;
  TRACE("Call XAllocColor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XAllocColor(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XAllocColor\n");
  return r;
}

int   TSXAllocColorCells(Display* a0, Colormap a1, int a2, unsigned long* a3, unsigned int a4, unsigned long* a5, unsigned int a6)
{
  int   r;
  TRACE("Call XAllocColorCells\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XAllocColorCells(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XAllocColorCells\n");
  return r;
}

int  TSXBell(Display* a0, int a1)
{
  int  r;
  TRACE("Call XBell\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XBell(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XBell\n");
  return r;
}

int  TSXChangeGC(Display* a0, GC a1, unsigned long a2, XGCValues* a3)
{
  int  r;
  TRACE("Call XChangeGC\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XChangeGC(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XChangeGC\n");
  return r;
}

int  TSXChangeKeyboardControl(Display* a0, unsigned long a1, XKeyboardControl* a2)
{
  int  r;
  TRACE("Call XChangeKeyboardControl\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XChangeKeyboardControl(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XChangeKeyboardControl\n");
  return r;
}

int  TSXChangeProperty(Display* a0, Window a1, Atom a2, Atom a3, int a4, int a5, const  unsigned char* a6, int a7)
{
  int  r;
  TRACE("Call XChangeProperty\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XChangeProperty(a0, a1, a2, a3, a4, a5, a6, a7);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XChangeProperty\n");
  return r;
}

int  TSXChangeWindowAttributes(Display* a0, Window a1, unsigned long a2, XSetWindowAttributes* a3)
{
  int  r;
  TRACE("Call XChangeWindowAttributes\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XChangeWindowAttributes(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XChangeWindowAttributes\n");
  return r;
}

int   TSXCheckTypedWindowEvent(Display* a0, Window a1, int a2, XEvent* a3)
{
  int   r;
  TRACE("Call XCheckTypedWindowEvent\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCheckTypedWindowEvent(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCheckTypedWindowEvent\n");
  return r;
}

int   TSXCheckWindowEvent(Display* a0, Window a1, long a2, XEvent* a3)
{
  int   r;
  TRACE("Call XCheckWindowEvent\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCheckWindowEvent(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCheckWindowEvent\n");
  return r;
}

int  TSXConvertSelection(Display* a0, Atom a1, Atom a2, Atom a3, Window a4, Time a5)
{
  int  r;
  TRACE("Call XConvertSelection\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XConvertSelection(a0, a1, a2, a3, a4, a5);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XConvertSelection\n");
  return r;
}

int  TSXCopyArea(Display* a0, Drawable a1, Drawable a2, GC a3, int a4, int a5, unsigned int a6, unsigned int a7, int a8, int a9)
{
  int  r;
  TRACE("Call XCopyArea\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCopyArea(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCopyArea\n");
  return r;
}

int  TSXCopyPlane(Display* a0, Drawable a1, Drawable a2, GC a3, int a4, int a5, unsigned int a6, unsigned int a7, int a8, int a9, unsigned long a10)
{
  int  r;
  TRACE("Call XCopyPlane\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XCopyPlane(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XCopyPlane\n");
  return r;
}

int  TSXDefineCursor(Display* a0, Window a1, Cursor a2)
{
  int  r;
  TRACE("Call XDefineCursor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDefineCursor(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDefineCursor\n");
  return r;
}

int  TSXDestroyWindow(Display* a0, Window a1)
{
  int  r;
  TRACE("Call XDestroyWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDestroyWindow(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDestroyWindow\n");
  return r;
}

int  TSXDisplayKeycodes(Display* a0, int* a1, int* a2)
{
  int  r;
  TRACE("Call XDisplayKeycodes\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDisplayKeycodes(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDisplayKeycodes\n");
  return r;
}

int  TSXDrawArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8)
{
  int  r;
  TRACE("Call XDrawArc\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawArc(a0, a1, a2, a3, a4, a5, a6, a7, a8);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawArc\n");
  return r;
}

int  TSXDrawLine(Display* a0, Drawable a1, GC a2, int a3, int a4, int a5, int a6)
{
  int  r;
  TRACE("Call XDrawLine\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawLine(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawLine\n");
  return r;
}

int  TSXDrawLines(Display* a0, Drawable a1, GC a2, XPoint* a3, int a4, int a5)
{
  int  r;
  TRACE("Call XDrawLines\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawLines(a0, a1, a2, a3, a4, a5);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawLines\n");
  return r;
}

int  TSXDrawPoint(Display* a0, Drawable a1, GC a2, int a3, int a4)
{
  int  r;
  TRACE("Call XDrawPoint\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawPoint(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawPoint\n");
  return r;
}

int  TSXDrawRectangle(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6)
{
  int  r;
  TRACE("Call XDrawRectangle\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawRectangle(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawRectangle\n");
  return r;
}

int  TSXDrawSegments(Display* a0, Drawable a1, GC a2, XSegment* a3, int a4)
{
  int  r;
  TRACE("Call XDrawSegments\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawSegments(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawSegments\n");
  return r;
}

int  TSXDrawString(Display* a0, Drawable a1, GC a2, int a3, int a4, const  char* a5, int a6)
{
  int  r;
  TRACE("Call XDrawString\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawString(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawString\n");
  return r;
}

int  TSXDrawText(Display* a0, Drawable a1, GC a2, int a3, int a4, XTextItem* a5, int a6)
{
  int  r;
  TRACE("Call XDrawText\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XDrawText(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XDrawText\n");
  return r;
}

int  TSXFillArc(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8)
{
  int  r;
  TRACE("Call XFillArc\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFillArc(a0, a1, a2, a3, a4, a5, a6, a7, a8);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFillArc\n");
  return r;
}

int  TSXFillPolygon(Display* a0, Drawable a1, GC a2, XPoint* a3, int a4, int a5, int a6)
{
  int  r;
  TRACE("Call XFillPolygon\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFillPolygon(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFillPolygon\n");
  return r;
}

int  TSXFillRectangle(Display* a0, Drawable a1, GC a2, int a3, int a4, unsigned int a5, unsigned int a6)
{
  int  r;
  TRACE("Call XFillRectangle\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFillRectangle(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFillRectangle\n");
  return r;
}

int  TSXFlush(Display* a0)
{
  int  r;
  TRACE("Call XFlush\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFlush(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFlush\n");
  return r;
}

int  TSXFree(void* a0)
{
  int  r;
  TRACE("Call XFree\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFree(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFree\n");
  return r;
}

int  TSXFreeColormap(Display* a0, Colormap a1)
{
  int  r;
  TRACE("Call XFreeColormap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeColormap(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeColormap\n");
  return r;
}

int  TSXFreeColors(Display* a0, Colormap a1, unsigned long* a2, int a3, unsigned long a4)
{
  int  r;
  TRACE("Call XFreeColors\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeColors(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeColors\n");
  return r;
}

int  TSXFreeCursor(Display* a0, Cursor a1)
{
  int  r;
  TRACE("Call XFreeCursor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeCursor(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeCursor\n");
  return r;
}

int  TSXFreeFont(Display* a0, XFontStruct* a1)
{
  int  r;
  TRACE("Call XFreeFont\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeFont(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeFont\n");
  return r;
}

int  TSXFreeFontNames(char** a0)
{
  int  r;
  TRACE("Call XFreeFontNames\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeFontNames(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeFontNames\n");
  return r;
}

int  TSXFreeGC(Display* a0, GC a1)
{
  int  r;
  TRACE("Call XFreeGC\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeGC(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeGC\n");
  return r;
}

int  TSXFreeModifiermap(XModifierKeymap* a0)
{
  int  r;
  TRACE("Call XFreeModifiermap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreeModifiermap(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreeModifiermap\n");
  return r;
}

int  TSXFreePixmap(Display* a0, Pixmap a1)
{
  int  r;
  TRACE("Call XFreePixmap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XFreePixmap(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XFreePixmap\n");
  return r;
}

int   TSXGetFontProperty(XFontStruct* a0, Atom a1, unsigned long* a2)
{
  int   r;
  TRACE("Call XGetFontProperty\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetFontProperty(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetFontProperty\n");
  return r;
}

int   TSXGetGeometry(Display* a0, Drawable a1, Window* a2, int* a3, int* a4, unsigned int* a5, unsigned int* a6, unsigned int* a7, unsigned int* a8)
{
  int   r;
  TRACE("Call XGetGeometry\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetGeometry(a0, a1, a2, a3, a4, a5, a6, a7, a8);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetGeometry\n");
  return r;
}

int  TSXGetInputFocus(Display* a0, Window* a1, int* a2)
{
  int  r;
  TRACE("Call XGetInputFocus\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetInputFocus(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetInputFocus\n");
  return r;
}

int  TSXGetKeyboardControl(Display* a0, XKeyboardState* a1)
{
  int  r;
  TRACE("Call XGetKeyboardControl\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetKeyboardControl(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetKeyboardControl\n");
  return r;
}

int  TSXGetScreenSaver(Display* a0, int* a1, int* a2, int* a3, int* a4)
{
  int  r;
  TRACE("Call XGetScreenSaver\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetScreenSaver(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetScreenSaver\n");
  return r;
}

int  TSXGetWindowProperty(Display* a0, Window a1, Atom a2, long a3, long a4, int a5, Atom a6, Atom* a7, int* a8, unsigned long* a9, unsigned long* a10, unsigned char** a11)
{
  int  r;
  TRACE("Call XGetWindowProperty\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetWindowProperty(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetWindowProperty\n");
  return r;
}

int   TSXGetWindowAttributes(Display* a0, Window a1, XWindowAttributes* a2)
{
  int   r;
  TRACE("Call XGetWindowAttributes\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGetWindowAttributes(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGetWindowAttributes\n");
  return r;
}

int  TSXGrabServer(Display* a0)
{
  int  r;
  TRACE("Call XGrabServer\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XGrabServer(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XGrabServer\n");
  return r;
}

int  TSXInstallColormap(Display* a0, Colormap a1)
{
  int  r;
  TRACE("Call XInstallColormap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XInstallColormap(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XInstallColormap\n");
  return r;
}

KeyCode  TSXKeysymToKeycode(Display* a0, KeySym a1)
{
  KeyCode  r;
  TRACE("Call XKeysymToKeycode\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XKeysymToKeycode(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XKeysymToKeycode\n");
  return r;
}

int  TSXMapWindow(Display* a0, Window a1)
{
  int  r;
  TRACE("Call XMapWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XMapWindow(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XMapWindow\n");
  return r;
}

int  TSXNextEvent(Display* a0, XEvent* a1)
{
  int  r;
  TRACE("Call XNextEvent\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XNextEvent(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XNextEvent\n");
  return r;
}

int  TSXParseGeometry(const  char* a0, int* a1, int* a2, unsigned int* a3, unsigned int* a4)
{
  int  r;
  TRACE("Call XParseGeometry\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XParseGeometry(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XParseGeometry\n");
  return r;
}

int  TSXPending(Display* a0)
{
  int  r;
  TRACE("Call XPending\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XPending(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XPending\n");
  return r;
}

int  TSXPutBackEvent(Display* a0, XEvent* a1)
{
  int  r;
  TRACE("Call XPutBackEvent\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XPutBackEvent(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XPutBackEvent\n");
  return r;
}

int  TSXPutImage(Display* a0, Drawable a1, GC a2, XImage* a3, int a4, int a5, int a6, int a7, unsigned int a8, unsigned int a9)
{
  int  r;
  TRACE("Call XPutImage\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XPutImage(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XPutImage\n");
  return r;
}

int  TSXQueryColor(Display* a0, Colormap a1, XColor* a2)
{
  int  r;
  TRACE("Call XQueryColor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XQueryColor(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XQueryColor\n");
  return r;
}

int  TSXQueryKeymap(Display* a0, char* a1)
{
  int  r;
  TRACE("Call XQueryKeymap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XQueryKeymap(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XQueryKeymap\n");
  return r;
}

int   TSXQueryPointer(Display* a0, Window a1, Window* a2, Window* a3, int* a4, int* a5, int* a6, int* a7, unsigned int* a8)
{
  int   r;
  TRACE("Call XQueryPointer\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XQueryPointer(a0, a1, a2, a3, a4, a5, a6, a7, a8);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XQueryPointer\n");
  return r;
}

int   TSXQueryTree(Display* a0, Window a1, Window* a2, Window* a3, Window** a4, unsigned int* a5)
{
  int   r;
  TRACE("Call XQueryTree\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XQueryTree(a0, a1, a2, a3, a4, a5);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XQueryTree\n");
  return r;
}

int  TSXResetScreenSaver(Display* a0)
{
  int  r;
  TRACE("Call XResetScreenSaver\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XResetScreenSaver(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XResetScreenSaver\n");
  return r;
}

int  TSXRestackWindows(Display* a0, Window* a1, int a2)
{
  int  r;
  TRACE("Call XRestackWindows\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XRestackWindows(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XRestackWindows\n");
  return r;
}

int   TSXSendEvent(Display* a0, Window a1, int a2, long a3, XEvent* a4)
{
  int   r;
  TRACE("Call XSendEvent\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSendEvent(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSendEvent\n");
  return r;
}

int  TSXSetArcMode(Display* a0, GC a1, int a2)
{
  int  r;
  TRACE("Call XSetArcMode\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetArcMode(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetArcMode\n");
  return r;
}

int  TSXSetBackground(Display* a0, GC a1, unsigned long a2)
{
  int  r;
  TRACE("Call XSetBackground\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetBackground(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetBackground\n");
  return r;
}

int  TSXSetClipMask(Display* a0, GC a1, Pixmap a2)
{
  int  r;
  TRACE("Call XSetClipMask\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetClipMask(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetClipMask\n");
  return r;
}

int  TSXSetClipOrigin(Display* a0, GC a1, int a2, int a3)
{
  int  r;
  TRACE("Call XSetClipOrigin\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetClipOrigin(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetClipOrigin\n");
  return r;
}

int  TSXSetClipRectangles(Display* a0, GC a1, int a2, int a3, XRectangle* a4, int a5, int a6)
{
  int  r;
  TRACE("Call XSetClipRectangles\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetClipRectangles(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetClipRectangles\n");
  return r;
}

int  TSXSetDashes(Display* a0, GC a1, int a2, const  char* a3, int a4)
{
  int  r;
  TRACE("Call XSetDashes\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetDashes(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetDashes\n");
  return r;
}

int  TSXSetFillStyle(Display* a0, GC a1, int a2)
{
  int  r;
  TRACE("Call XSetFillStyle\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetFillStyle(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetFillStyle\n");
  return r;
}

int  TSXSetForeground(Display* a0, GC a1, unsigned long a2)
{
  int  r;
  TRACE("Call XSetForeground\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetForeground(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetForeground\n");
  return r;
}

int  TSXSetFunction(Display* a0, GC a1, int a2)
{
  int  r;
  TRACE("Call XSetFunction\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetFunction(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetFunction\n");
  return r;
}

int  TSXSetGraphicsExposures(Display* a0, GC a1, int a2)
{
  int  r;
  TRACE("Call XSetGraphicsExposures\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetGraphicsExposures(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetGraphicsExposures\n");
  return r;
}

int  TSXSetIconName(Display* a0, Window a1, const  char* a2)
{
  int  r;
  TRACE("Call XSetIconName\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetIconName(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetIconName\n");
  return r;
}

int  TSXSetInputFocus(Display* a0, Window a1, int a2, Time a3)
{
  int  r;
  TRACE("Call XSetInputFocus\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetInputFocus(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetInputFocus\n");
  return r;
}

int  TSXSetLineAttributes(Display* a0, GC a1, unsigned int a2, int a3, int a4, int a5)
{
  int  r;
  TRACE("Call XSetLineAttributes\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetLineAttributes(a0, a1, a2, a3, a4, a5);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetLineAttributes\n");
  return r;
}

int  TSXSetScreenSaver(Display* a0, int a1, int a2, int a3, int a4)
{
  int  r;
  TRACE("Call XSetScreenSaver\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetScreenSaver(a0, a1, a2, a3, a4);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetScreenSaver\n");
  return r;
}

int  TSXSetSelectionOwner(Display* a0, Atom a1, Window a2, Time a3)
{
  int  r;
  TRACE("Call XSetSelectionOwner\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetSelectionOwner(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetSelectionOwner\n");
  return r;
}

int  TSXSetSubwindowMode(Display* a0, GC a1, int a2)
{
  int  r;
  TRACE("Call XSetSubwindowMode\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetSubwindowMode(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetSubwindowMode\n");
  return r;
}

int  TSXSetWindowColormap(Display* a0, Window a1, Colormap a2)
{
  int  r;
  TRACE("Call XSetWindowColormap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSetWindowColormap(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSetWindowColormap\n");
  return r;
}

int  TSXStoreColor(Display* a0, Colormap a1, XColor* a2)
{
  int  r;
  TRACE("Call XStoreColor\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XStoreColor(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XStoreColor\n");
  return r;
}

int  TSXStoreName(Display* a0, Window a1, const  char* a2)
{
  int  r;
  TRACE("Call XStoreName\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XStoreName(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XStoreName\n");
  return r;
}

int  TSXSync(Display* a0, int a1)
{
  int  r;
  TRACE("Call XSync\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSync(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSync\n");
  return r;
}

int  TSXTextExtents(XFontStruct* a0, const  char* a1, int a2, int* a3, int* a4, int* a5, XCharStruct* a6)
{
  int  r;
  TRACE("Call XTextExtents\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XTextExtents(a0, a1, a2, a3, a4, a5, a6);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XTextExtents\n");
  return r;
}

int  TSXTextWidth(XFontStruct* a0, const  char* a1, int a2)
{
  int  r;
  TRACE("Call XTextWidth\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XTextWidth(a0, a1, a2);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XTextWidth\n");
  return r;
}

int  TSXUngrabServer(Display* a0)
{
  int  r;
  TRACE("Call XUngrabServer\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XUngrabServer(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XUngrabServer\n");
  return r;
}

int  TSXUninstallColormap(Display* a0, Colormap a1)
{
  int  r;
  TRACE("Call XUninstallColormap\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XUninstallColormap(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XUninstallColormap\n");
  return r;
}

int  TSXUnmapWindow(Display* a0, Window a1)
{
  int  r;
  TRACE("Call XUnmapWindow\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XUnmapWindow(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XUnmapWindow\n");
  return r;
}

int  TSXWarpPointer(Display* a0, Window a1, Window a2, int a3, int a4, unsigned int a5, unsigned int a6, int a7, int a8)
{
  int  r;
  TRACE("Call XWarpPointer\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XWarpPointer(a0, a1, a2, a3, a4, a5, a6, a7, a8);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XWarpPointer\n");
  return r;
}

XIM  TSXOpenIM(Display* a0, struct _XrmHashBucketRec* a1, char* a2, char* a3)
{
  XIM  r;
  TRACE("Call XOpenIM\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XOpenIM(a0, a1, a2, a3);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XOpenIM\n");
  return r;
}

int (*TSXSynchronize(Display *a0, Bool a1))(Display *)
{
  int (*r)(Display *);
  TRACE("Call XSynchronize\n");
  EnterCriticalSection( &X11DRV_CritSection );
  r = XSynchronize(a0, a1);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret XSynchronize\n");
  return r;
}

extern void _XInitImageFuncPtrs(XImage *);

void TS_XInitImageFuncPtrs(XImage *a0)
{
  TRACE("Call _XInitImageFuncPtrs\n");
  EnterCriticalSection( &X11DRV_CritSection );
  _XInitImageFuncPtrs(a0);
  LeaveCriticalSection( &X11DRV_CritSection );
  TRACE("Ret _XInitImageFuncPtrs\n");
}


#endif /* !defined(X_DISPLAY_MISSING) */
