Thunks: Use libclang-based code generation for libX11

This commit is contained in:
Tony Wasserka 2021-12-10 11:24:58 +01:00
parent 1b58ed9f57
commit 4a848d7202
6 changed files with 544 additions and 563 deletions

View File

@ -1,557 +0,0 @@
#!/usr/bin/python3
from ThunkHelpers import *
lib("libX11", "6")
# VArgs support needs manual work
# fn("char* XSetICValues(XIC, ...)") # TODO VARGS
# fn("void* XVaCreateNestedList(int, ...)") # TODO VARGS
# fn("char* XGetIMValues(XIM, ...)") # TODO VARGS
# fn("void* XVaCreateNestedList(int, ...)")
# fn("_XOC* XCreateOC(XOM, ...)")
# fn("char* XGetIMValues(XIM, ...)")
# fn("char* XGetOCValues(XOC, ...)")
# fn("char* XGetOMValues(XOM, ...)")
# fn("char* XSetICValues(XIC, ...)")
# fn("char* XSetIMValues(XIM, ...)")
# fn("char* XSetOCValues(XOC, ...)")
# fn("char* XSetOMValues(XOM, ...)")
# Needs function pointer
# fn("int XCheckIfEvent(Display*, XEvent*, int (*)(Display*, XEvent*, XPointer), XPointer)")
# fn("int XPeekIfEvent(Display*, XEvent*, int (*)(Display*, XEvent*, XPointer), XPointer)")
# fn("int (* XSetIOErrorHandler(XIOErrorHandler))(Display*)")
# fn("int (* XSynchronize(Display*, int))(Display*)")
# fn("int XrmEnumerateDatabase(XrmDatabase, XrmNameList, XrmClassList, int, int (*)(_XrmHashBucketRec**, XrmBindingList, XrmQuarkList, XrmRepresentation*, XrmValue*, XPointer), XPointer)")
# fn("int (* XESetCloseDisplay(Display*, int, int (*)()))()")
# fn("int XrmEnumerateDatabase(XrmDatabase, XrmNameList, XrmClassList, int, int (*)(_XrmHashBucketRec**, XrmBindingList, XrmQuarkList, XrmRepresentation*, XrmValue*, XPointer), XPointer)")
# fn("int (* XSetAfterFunction(Display*, int (*)(Display*)))(Display*)")
fn("char* XFetchBytes(Display*, int*)")
fn("char* XLocaleOfIM(XIM)")
fn("char* XLocaleOfOM(XOM)")
fn("char* XmbResetIC(XIC)")
fn("char* Xpermalloc(unsigned int)")
fn("char* Xutf8ResetIC(XIC)")
fn("const char* XrmLocaleOfDatabase(XrmDatabase)")
fn("Display* XDisplayOfOM(XOM)")
fn("int XChangeKeyboardMapping(Display*, int, int, KeySym*, int)")
fn("int XCloseOM(XOM)")
fn("int XDrawText16(Display*, Drawable, GC, int, int, XTextItem16*, int)")
fn("int XDrawText(Display*, Drawable, GC, int, int, XTextItem*, int)")
fn("int XInternalConnectionNumbers(Display*, int**, int*)")
fn("int XMaskEvent(Display*, long int, XEvent*)")
fn("int XmbTextExtents(XFontSet, const char*, int, XRectangle*, XRectangle*)")
fn("int XmbTextPerCharExtents(XFontSet, const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*)")
fn("int _Xmbtowc(wchar_t*, char*, int)")
fn("int XNoOp(Display*)")
fn("int XOffsetRegion(Region, int, int)")
# fn("int XPeekIfEvent(Display*, XEvent*, int (*)(Display*, XEvent*, XPointer), XPointer)")
fn("int XPointInRegion(Region, int, int)")
fn("int XQueryBestCursor(Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*)")
fn("int XQueryBestSize(Display*, int, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*)")
fn("int XQueryBestStipple(Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*)")
fn("int XQueryBestTile(Display*, Drawable, unsigned int, unsigned int, unsigned int*, unsigned int*)")
fn("int XQueryKeymap(Display*, char*)")
fn("int XQueryTextExtents16(Display*, XID, const XChar2b*, int, int*, int*, int*, XCharStruct*)")
fn("int XQueryTextExtents(Display*, XID, const char*, int, int*, int*, int*, XCharStruct*)")
fn("int XReadBitmapFile(Display*, Drawable, const char*, unsigned int*, unsigned int*, Pixmap*, int*, int*)")
fn("int XReconfigureWMWindow(Display*, Window, int, unsigned int, XWindowChanges*)")
fn("int XRegisterIMInstantiateCallback(Display*, _XrmHashBucketRec*, char*, char*, XIDProc, XPointer)")
fn("int XRestackWindows(Display*, Window*, int)")
fn("int XRotateWindowProperties(Display*, Window, Atom*, int, int)")
fn("int XSetClassHint(Display*, Window, XClassHint*)")
fn("int XSetFontPath(Display*, char**, int)")
fn("int XSetIconName(Display*, Window, const char*)")
fn("int XSetModifierMapping(Display*, XModifierKeymap*)")
fn("int XSetPointerMapping(Display*, const unsigned char*, int)")
fn("int XSetScreenSaver(Display*, int, int, int, int)")
fn("int XSetSizeHints(Display*, Window, XSizeHints*, Atom)")
fn("int XSetState(Display*, GC, long unsigned int, long unsigned int, int, long unsigned int)")
fn("int XSetWMColormapWindows(Display*, Window, Window*, int)")
fn("int XSetZoomHints(Display*, Window, XSizeHints*)")
fn("int XShrinkRegion(Region, int, int)")
fn("int XStoreBuffer(Display*, const char*, int, int)")
fn("int XStoreColor(Display*, Colormap, XColor*)")
fn("int XStoreNamedColor(Display*, Colormap, const char*, long unsigned int, int)")
fn("int XStringListToTextProperty(char**, int, XTextProperty*)")
fn("int XTextExtents(XFontStruct*, const char*, int, int*, int*, int*, XCharStruct*)")
fn("int XTextPropertyToStringList(XTextProperty*, char***, int*)")
fn("int XUninstallColormap(Display*, Colormap)")
fn("int XUnregisterIMInstantiateCallback(Display*, _XrmHashBucketRec*, char*, char*, XIDProc, XPointer)")
fn("int Xutf8TextEscapement(XFontSet, const char*, int)")
fn("int Xutf8TextExtents(XFontSet, const char*, int, XRectangle*, XRectangle*)")
fn("int Xutf8TextPerCharExtents(XFontSet, const char*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*)")
fn("int XwcTextExtents(XFontSet, const wchar_t*, int, XRectangle*, XRectangle*)")
fn("int XwcTextPerCharExtents(XFontSet, const wchar_t*, int, XRectangle*, XRectangle*, int, int*, XRectangle*, XRectangle*)")
fn("int _Xwctomb(char*, wchar_t)")
fn("int XWriteBitmapFile(Display*, const char*, Pixmap, unsigned int, unsigned int, int, int)")
fn("int XXorRegion(Region, Region, Region)")
fn("KeyCode XKeysymToKeycode(Display*, KeySym)")
fn("KeySym XKeycodeToKeysym(Display*, KeyCode, int)")
fn("long unsigned int XDisplayMotionBufferSize(Display*)")
fn("void XDestroyOC(XOC)")
fn("void XmbDrawText(Display*, Drawable, GC, int, int, XmbTextItem*, int)")
fn("void XmbSetWMProperties(Display*, Window, const char*, const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*)")
fn("void XRemoveConnectionWatch(Display*, XConnectionWatchProc, XPointer)")
fn("void XrmPutFileDatabase(XrmDatabase, const char*)")
fn("void XrmPutResource(_XrmHashBucketRec**, const char*, const char*, XrmValue*)")
fn("void XrmQPutStringResource(_XrmHashBucketRec**, XrmBindingList, XrmQuarkList, const char*)")
fn("void XrmStringToQuarkList(const char*, XrmQuarkList)")
fn("void XSetStandardColormap(Display*, Window, XStandardColormap*, Atom)")
fn("void XSetTextProperty(Display*, Window, XTextProperty*, Atom)")
fn("void XSetWMClientMachine(Display*, Window, XTextProperty*)")
fn("void XSetWMSizeHints(Display*, Window, XSizeHints*, Atom)")
fn("void Xutf8DrawImageString(Display*, Drawable, XFontSet, GC, int, int, const char*, int)")
fn("void Xutf8DrawString(Display*, Drawable, XFontSet, GC, int, int, const char*, int)")
fn("void Xutf8DrawText(Display*, Drawable, GC, int, int, XmbTextItem*, int)")
fn("void XwcDrawText(Display*, Drawable, GC, int, int, XwcTextItem*, int)")
fn("wchar_t* XwcResetIC(XIC)")
fn("_XIM* XIMOfIC(XIC)")
fn("XModifierKeymap* XDeleteModifiermapEntry(XModifierKeymap*, KeyCode, int)")
fn("XModifierKeymap* XInsertModifiermapEntry(XModifierKeymap*, KeyCode, int)")
fn("XModifierKeymap* XNewModifiermap(int)")
fn("_XOM* XOMOfOC(XOC)")
fn("_XOM* XOpenOM(Display*, _XrmHashBucketRec*, const char*, const char*)")
fn("_XRegion* XPolygonRegion(XPoint*, int, int)")
fn("const char* XDefaultString()")
fn("XClassHint* XAllocClassHint()")
fn("XWMHints* XAllocWMHints()")
fn("Atom* XListProperties(Display*, Window, int*)")
fn("char* XBaseFontNameListOfFontSet(XFontSet)")
fn("char** XGetFontPath(Display*, int*)")
fn("char** XListFontsWithInfo(Display*, const char*, int, int*, XFontStruct**)")
fn("char* XLocaleOfFontSet(XFontSet)")
fn("char* XServerVendor(Display*)")
fn("Colormap XCopyColormapAndFree(Display*, Colormap)")
fn("Colormap XDefaultColormapOfScreen(Screen*)")
fn("Colormap* XListInstalledColormaps(Display*, Window, int*)")
fn("int XActivateScreenSaver(Display*)")
fn("int XAddHosts(Display*, XHostAddress*, int)")
fn("int XAddToExtensionList(_XExtData**, XExtData*)")
fn("int XAddToSaveSet(Display*, Window)")
fn("int XAllocColorPlanes(Display*, Colormap, int, long unsigned int*, int, int, int, int, long unsigned int*, long unsigned int*, long unsigned int*)")
fn("int XAllowEvents(Display*, int, Time)")
fn("int XAutoRepeatOff(Display*)")
fn("int XAutoRepeatOn(Display*)")
fn("int XBitmapBitOrder(Display*)")
fn("int XBitmapPad(Display*)")
fn("int XBitmapUnit(Display*)")
fn("int XCellsOfScreen(Screen*)")
fn("int XChangeKeyboardControl(Display*, long unsigned int, XKeyboardControl*)")
fn("int XChangePointerControl(Display*, int, int, int, int, int)")
fn("int XChangeSaveSet(Display*, Window, int)")
fn("int XCheckMaskEvent(Display*, long int, XEvent*)")
fn("int XCheckTypedEvent(Display*, int, XEvent*)")
fn("int XCheckTypedWindowEvent(Display*, Window, int, XEvent*)")
fn("int XCirculateSubwindows(Display*, Window, int)")
fn("int XCirculateSubwindowsDown(Display*, Window)")
fn("int XCirculateSubwindowsUp(Display*, Window)")
fn("int XConnectionNumber(Display*)")
fn("int XContextDependentDrawing(XFontSet)")
fn("int XContextualDrawing(XFontSet)")
fn("int XCopyGC(Display*, GC, long unsigned int, GC)")
fn("int XDefaultDepthOfScreen(Screen*)")
fn("int XDestroySubwindows(Display*, Window)")
fn("int XDirectionalDependentDrawing(XFontSet)")
fn("int XDisplayCells(Display*, int)")
fn("int XDisplayHeightMM(Display*, int)")
fn("int XDisplayPlanes(Display*, int)")
fn("int XDisplayWidthMM(Display*, int)")
fn("int XDoesBackingStore(Screen*)")
fn("int XDoesSaveUnders(Screen*)")
fn("int XDrawImageString16(Display*, Drawable, GC, int, int, const XChar2b*, int)")
fn("int XDrawRectangles(Display*, Drawable, GC, XRectangle*, int)")
fn("int XForceScreenSaver(Display*, int)")
fn("int XFreeFontInfo(char**, XFontStruct*, int)")
fn("int XFreeFontNames(char**)")
fn("int XFreeFontPath(char**)")
fn("int XGeometry(Display*, int, const char*, const char*, unsigned int, unsigned int, unsigned int, int, int, int*, int*, int*, int*)")
fn("int XGetAtomNames(Display*, Atom*, int, char**)")
fn("int XGetCommand(Display*, Window, char***, int*)")
fn("int XGetIconName(Display*, Window, char**)")
fn("int XGetIconSizes(Display*, Window, XIconSize**, int*)")
fn("int XGetKeyboardControl(Display*, XKeyboardState*)")
fn("int XGetNormalHints(Display*, Window, XSizeHints*)")
fn("int XGetPointerControl(Display*, int*, int*, int*)")
fn("int XGetPointerMapping(Display*, unsigned char*, int)")
fn("int XGetScreenSaver(Display*, int*, int*, int*, int*)")
fn("int XGetSizeHints(Display*, Window, XSizeHints*, Atom)")
fn("int XGetStandardColormap(Display*, Window, XStandardColormap*, Atom)")
fn("int XGetTextProperty(Display*, Window, XTextProperty*, Atom)")
fn("int XGetTransientForHint(Display*, Window, Window*)")
fn("int XGetWMColormapWindows(Display*, Window, Window**, int*)")
fn("int XGetWMIconName(Display*, Window, XTextProperty*)")
fn("int XGetWMSizeHints(Display*, Window, XSizeHints*, long int*, Atom)")
fn("int XGetZoomHints(Display*, Window, XSizeHints*)")
fn("int XHeightMMOfScreen(Screen*)")
fn("int XHeightOfScreen(Screen*)")
fn("int XImageByteOrder(Display*)")
fn("int XInstallColormap(Display*, Colormap)")
fn("int XMaxCmapsOfScreen(Screen*)")
fn("int XMinCmapsOfScreen(Screen*)")
fn("int XPlanesOfScreen(Screen*)")
fn("int XProtocolRevision(Display*)")
fn("int XProtocolVersion(Display*)")
fn("int XQLength(Display*)")
fn("int XRebindKeysym(Display*, KeySym, KeySym*, int, const unsigned char*, int)")
fn("int XRemoveFromSaveSet(Display*, Window)")
fn("int XRemoveHosts(Display*, XHostAddress*, int)")
fn("int XScreenCount(Display*)")
fn("int XSetAccessControl(Display*, int)")
fn("int XSetWindowColormap(Display*, Window, Colormap)")
fn("int XVendorRelease(Display*)")
fn("int XWidthMMOfScreen(Screen*)")
fn("int XWidthOfScreen(Screen*)")
fn("long int XEventMaskOfScreen(Screen*)")
fn("long unsigned int XAllPlanes()")
fn("long unsigned int XBlackPixel(Display*, int)")
fn("long unsigned int XBlackPixelOfScreen(Screen*)")
fn("long unsigned int XLastKnownRequestProcessed(Display*)")
fn("long unsigned int XWhitePixel(Display*, int)")
fn("long unsigned int XWhitePixelOfScreen(Screen*)")
fn("Screen* XScreenOfDisplay(Display*, int)")
fn("Visual* XDefaultVisualOfScreen(Screen*)")
fn("void XFlushGC(Display*, GC)")
fn("Window XRootWindowOfScreen(Screen*)")
fn("XExtData** XEHeadOfExtensionList(XEDataObject)")
fn("XExtData* XFindOnExtensionList(XExtData**, int)")
fn("_XGC* XDefaultGC(Display*, int)")
fn("_XGC* XDefaultGCOfScreen(Screen*)")
fn("XImage* XGetSubImage(Display*, Drawable, int, int, unsigned int, unsigned int, long unsigned int, int, XImage*, int, int)")
fn("XTimeCoord* XGetMotionEvents(Display*, Window, Time, Time, int*)")
# these is internal? libcairo uses it
fn("void _XReadEvents(Display *)")
fn("int XInitImage(XImage*)")
fn("char* XrmQuarkToString(XrmQuark)")
fn("int XrmCombineFileDatabase(const char*, _XrmHashBucketRec**, int)")
fn("int XrmGetResource(XrmDatabase, const char*, const char*, char**, XrmValue*)")
fn("int XrmQGetResource(XrmDatabase, XrmNameList, XrmClassList, XrmRepresentation*, XrmValue*)")
fn("int XrmQGetSearchList(XrmDatabase, XrmNameList, XrmClassList, _XrmHashBucketRec***, int)")
fn("int XrmQGetSearchResource(_XrmHashBucketRec***, XrmName, XrmClass, XrmRepresentation*, XrmValue*)")
fn("void XrmCombineDatabase(XrmDatabase, _XrmHashBucketRec**, int)")
fn("void XrmDestroyDatabase(XrmDatabase)")
fn("void XrmMergeDatabases(XrmDatabase, _XrmHashBucketRec**)")
fn("void XrmParseCommand(_XrmHashBucketRec**, XrmOptionDescList, int, const char*, int*, char**)")
fn("void XrmPutLineResource(_XrmHashBucketRec**, const char*)")
fn("void XrmPutStringResource(_XrmHashBucketRec**, const char*, const char*)")
fn("void XrmQPutResource(_XrmHashBucketRec**, XrmBindingList, XrmQuarkList, XrmRepresentation, XrmValue*)")
fn("void XrmSetDatabase(Display*, XrmDatabase)")
fn("void XrmStringToBindingQuarkList(const char*, XrmBindingList, XrmQuarkList)")
fn("_XrmHashBucketRec* XrmGetDatabase(Display*)")
fn("_XrmHashBucketRec* XrmGetFileDatabase(const char*)")
fn("_XrmHashBucketRec* XrmGetStringDatabase(const char*)")
fn("XrmQuark XrmUniqueQuark()")
fn("XrmQuark XrmStringToQuark(const char*)")
fn("XrmQuark XrmPermStringToQuark(const char*)")
fn("char* XDisplayName(const char*)")
fn("char* XDisplayString(Display*)")
fn("char* XFetchBuffer(Display*, int*, int)")
fn("char* XGetAtomName(Display*, Atom)")
fn("char* XGetDefault(Display*, const char*, const char*)")
fn("char* XKeysymToString(KeySym)")
fn("char** XListFonts(Display*, const char*, int, int*)")
fn("char* XResourceManagerString(Display*)")
fn("char* XScreenResourceString(Screen*)")
fn("Colormap XDefaultColormap(Display*, int)")
fn("Cursor XCreateFontCursor(Display*, unsigned int)")
fn("Cursor XCreateGlyphCursor(Display*, Font, Font, unsigned int, unsigned int, const XColor*, const XColor*)")
fn("Display* XDisplayOfIM(XIM)")
fn("Display* XDisplayOfScreen(Screen*)")
fn("Font XLoadFont(Display*, const char*)")
fn("GContext XGContextFromGC(GC)")
fn("int XAddConnectionWatch(Display*, XConnectionWatchProc, XPointer)")
fn("int XAddHost(Display*, XHostAddress*)")
fn("int XAllocColorCells(Display*, Colormap, int, long unsigned int*, unsigned int, long unsigned int*, unsigned int)")
fn("int XAllocColor(Display*, Colormap, XColor*)")
fn("int XAllocNamedColor(Display*, Colormap, const char*, XColor*, XColor*)")
fn("int XBell(Display*, int)")
fn("int XChangeActivePointerGrab(Display*, unsigned int, Cursor, Time)")
fn("int XChangeGC(Display*, GC, long unsigned int, XGCValues*)")
fn("int XChangeWindowAttributes(Display*, Window, long unsigned int, XSetWindowAttributes*)")
fn("int XClearArea(Display*, Window, int, int, unsigned int, unsigned int, int)")
fn("int XClearWindow(Display*, Window)")
fn("int XClipBox(Region, XRectangle*)")
fn("int XConfigureWindow(Display*, Window, unsigned int, XWindowChanges*)")
fn("int XConvertSelection(Display*, Atom, Atom, Atom, Window, Time)")
fn("int XCopyArea(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int)")
fn("int XCopyPlane(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int, long unsigned int)")
fn("int XDefaultDepth(Display*, int)")
fn("int XDeleteContext(Display*, XID, XContext)")
fn("int XDeleteProperty(Display*, Window, Atom)")
fn("int XDestroyRegion(Region)")
fn("int XDisableAccessControl(Display*)")
fn("int XDisplayKeycodes(Display*, int*, int*)")
fn("int XDrawArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int)")
fn("int XDrawArcs(Display*, Drawable, GC, XArc*, int)")
fn("int XDrawImageString(Display*, Drawable, GC, int, int, const char*, int)")
fn("int XDrawLine(Display*, Drawable, GC, int, int, int, int)")
fn("int XDrawLines(Display*, Drawable, GC, XPoint*, int, int)")
fn("int XDrawPoint(Display*, Drawable, GC, int, int)")
fn("int XDrawPoints(Display*, Drawable, GC, XPoint*, int, int)")
fn("int XDrawRectangle(Display*, Drawable, GC, int, int, unsigned int, unsigned int)")
fn("int XDrawSegments(Display*, Drawable, GC, XSegment*, int)")
fn("int XDrawString(Display*, Drawable, GC, int, int, const char*, int)")
fn("int XEmptyRegion(Region)")
fn("int XEnableAccessControl(Display*)")
fn("int XEqualRegion(Region, Region)")
fn("int XFetchName(Display*, Window, char**)")
fn("int XFillArc(Display*, Drawable, GC, int, int, unsigned int, unsigned int, int, int)")
fn("int XFillArcs(Display*, Drawable, GC, XArc*, int)")
fn("int XFillPolygon(Display*, Drawable, GC, XPoint*, int, int, int)")
fn("int XFillRectangles(Display*, Drawable, GC, XRectangle*, int)")
fn("int XFindContext(Display*, XID, XContext, char**)")
fn("int XFontsOfFontSet(XFontSet, XFontStruct***, char***)")
fn("int XFreeColors(Display*, Colormap, long unsigned int*, int, long unsigned int)")
fn("int XFreeModifiermap(XModifierKeymap*)")
fn("int XGetClassHint(Display*, Window, XClassHint*)")
fn("int XGetFontProperty(XFontStruct*, Atom, long unsigned int*)")
fn("int XGetGCValues(Display*, GC, long unsigned int, XGCValues*)")
fn("int XGetGeometry(Display*, Drawable, Window*, int*, int*, unsigned int*, unsigned int*, unsigned int*, unsigned int*)")
fn("int XGetInputFocus(Display*, Window*, int*)")
fn("int XGetRGBColormaps(Display*, Window, XStandardColormap**, int*, Atom)")
fn("int XGetWindowAttributes(Display*, Window, XWindowAttributes*)")
fn("int XGetWMClientMachine(Display*, Window, XTextProperty*)")
fn("int XGetWMName(Display*, Window, XTextProperty*)")
fn("int XGetWMNormalHints(Display*, Window, XSizeHints*, long int*)")
fn("int XGetWMProtocols(Display*, Window, Atom**, int*)")
fn("int XGrabButton(Display*, unsigned int, unsigned int, Window, int, unsigned int, int, int, Window, Cursor)")
fn("int XGrabKeyboard(Display*, Window, int, int, int, Time)")
fn("int XGrabKey(Display*, int, unsigned int, Window, int, int, int)")
fn("int XInternAtoms(Display*, char**, int, int, Atom*)")
fn("int XIntersectRegion(Region, Region, Region)")
fn("int XKillClient(Display*, XID)")
fn("int* XListDepths(Display*, int, int*)")
fn("int XLookupColor(Display*, Colormap, const char*, XColor*, XColor*)")
fn("int XLowerWindow(Display*, Window)")
fn("int XMapSubwindows(Display*, Window)")
fn("int XmbLookupString(XIC, XKeyPressedEvent*, char*, int, KeySym*, int*)")
fn("int XmbTextEscapement(XFontSet, const char*, int)")
fn("int XmbTextListToTextProperty(Display*, char**, int, XICCEncodingStyle, XTextProperty*)")
fn("int XmbTextPropertyToTextList(Display*, const XTextProperty*, char***, int*)")
fn("int XParseColor(Display*, Colormap, const char*, XColor*)")
fn("int XPutBackEvent(Display*, XEvent*)")
fn("int XQueryColor(Display*, Colormap, XColor*)")
fn("int XQueryColors(Display*, Colormap, XColor*, int)")
fn("int XRaiseWindow(Display*, Window)")
fn("int XReadBitmapFileData(const char*, unsigned int*, unsigned int*, unsigned char**, int*, int*)")
fn("int XRecolorCursor(Display*, Cursor, XColor*, XColor*)")
fn("int XRectInRegion(Region, int, int, unsigned int, unsigned int)")
fn("int XRefreshKeyboardMapping(XMappingEvent*)")
fn("int XRemoveHost(Display*, XHostAddress*)")
fn("int XReparentWindow(Display*, Window, Window, int, int)")
fn("int XRotateBuffers(Display*, int)")
fn("int XSaveContext(Display*, XID, XContext, const char*)")
fn("int XScreenNumberOfScreen(Screen*)")
fn("int XSetArcMode(Display*, GC, int)")
fn("int XSetBackground(Display*, GC, long unsigned int)")
fn("int XSetClipMask(Display*, GC, Pixmap)")
fn("int XSetClipOrigin(Display*, GC, int, int)")
fn("int XSetClipRectangles(Display*, GC, int, int, XRectangle*, int, int)")
fn("int XSetCloseDownMode(Display*, int)")
fn("int XSetCommand(Display*, Window, char**, int)")
fn("int XSetDashes(Display*, GC, int, const char*, int)")
fn("int XSetFillRule(Display*, GC, int)")
fn("int XSetFillStyle(Display*, GC, int)")
fn("int XSetFont(Display*, GC, Font)")
fn("int XSetForeground(Display*, GC, long unsigned int)")
fn("int XSetFunction(Display*, GC, int)")
fn("int XSetGraphicsExposures(Display*, GC, int)")
fn("int XSetIconSizes(Display*, Window, XIconSize*, int)")
fn("int XSetInputFocus(Display*, Window, int, Time)")
fn("int XSetLineAttributes(Display*, GC, unsigned int, int, int, int)")
fn("int XSetPlaneMask(Display*, GC, long unsigned int)")
fn("int XSetRegion(Display*, GC, Region)")
fn("int XSetSelectionOwner(Display*, Atom, Window, Time)")
fn("int XSetStipple(Display*, GC, Pixmap)")
fn("int XSetSubwindowMode(Display*, GC, int)")
fn("int XSetTile(Display*, GC, Pixmap)")
fn("int XSetTSOrigin(Display*, GC, int, int)")
fn("int XSetWindowBackground(Display*, Window, long unsigned int)")
fn("int XSetWindowBackgroundPixmap(Display*, Window, Pixmap)")
fn("int XSetWindowBorder(Display*, Window, long unsigned int)")
fn("int XSetWindowBorderPixmap(Display*, Window, Pixmap)")
fn("int XSetWindowBorderWidth(Display*, Window, unsigned int)")
fn("int XSetWMHints(Display*, Window, XWMHints*)")
fn("int XStoreBytes(Display*, const char*, int)")
fn("int XStoreColors(Display*, Colormap, XColor*, int)")
fn("int XStoreName(Display*, Window, const char*)")
fn("int XSubtractRegion(Region, Region, Region)")
fn("int XSupportsLocale()")
fn("int XTextWidth16(XFontStruct*, const XChar2b*, int)")
fn("int XTextWidth(XFontStruct*, const char*, int)")
fn("int XUngrabButton(Display*, unsigned int, unsigned int, Window)")
fn("int XUngrabKeyboard(Display*, Time)")
fn("int XUngrabKey(Display*, int, unsigned int, Window)")
fn("int XUnionRectWithRegion(XRectangle*, Region, Region)")
fn("int XUnionRegion(Region, Region, Region)")
fn("int XUnloadFont(Display*, Font)")
fn("int XUnmapSubwindows(Display*, Window)")
fn("int Xutf8TextListToTextProperty(Display*, char**, int, XICCEncodingStyle, XTextProperty*)")
fn("int Xutf8TextPropertyToTextList(Display*, const XTextProperty*, char***, int*)")
fn("int XwcLookupString(XIC, XKeyPressedEvent*, wchar_t*, int, KeySym*, int*)")
fn("int XwcTextEscapement(XFontSet, const wchar_t*, int)")
fn("int XwcTextListToTextProperty(Display*, wchar_t**, int, XICCEncodingStyle, XTextProperty*)")
fn("int XwcTextPropertyToTextList(Display*, const XTextProperty*, wchar_t***, int*)")
fn("int XWithdrawWindow(Display*, Window, int)")
fn("int XWMGeometry(Display*, int, const char*, const char*, unsigned int, XSizeHints*, int*, int*, int*, int*, int*)")
fn("KeySym* XGetKeyboardMapping(Display*, KeyCode, int, int*)")
fn("KeySym XStringToKeysym(const char*)")
fn("long int XExtendedMaxRequestSize(Display*)")
fn("long int XMaxRequestSize(Display*)")
fn("long unsigned int XNextRequest(Display*)")
fn("Pixmap XCreatePixmapFromBitmapData(Display*, Drawable, char*, unsigned int, unsigned int, long unsigned int, long unsigned int, unsigned int)")
fn("VisualID XVisualIDFromVisual(Visual*)")
fn("Visual* XDefaultVisual(Display*, int)")
fn("void XConvertCase(KeySym, KeySym*, KeySym*)")
fn("void XFreeFontSet(Display*, XFontSet)")
fn("void XFreeStringList(char**)")
fn("void XmbDrawImageString(Display*, Drawable, XFontSet, GC, int, int, const char*, int)")
fn("void XmbDrawString(Display*, Drawable, XFontSet, GC, int, int, const char*, int)")
fn("void XProcessInternalConnection(Display*, int)")
fn("void XrmInitialize()")
fn("void XSetAuthorization(char*, int, char*, int)")
fn("void XSetRGBColormaps(Display*, Window, XStandardColormap*, int, Atom)")
fn("void XSetWMIconName(Display*, Window, XTextProperty*)")
fn("void XSetWMName(Display*, Window, XTextProperty*)")
fn("void XSetWMProperties(Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*)")
fn("void XUnsetICFocus(XIC)")
fn("void XwcDrawImageString(Display*, Drawable, XFontSet, GC, int, int, const wchar_t*, int)")
fn("void XwcDrawString(Display*, Drawable, XFontSet, GC, int, int, const wchar_t*, int)")
fn("void XwcFreeStringList(wchar_t**)")
fn("Window XCreateSimpleWindow(Display*, Window, int, int, unsigned int, unsigned int, unsigned int, long unsigned int, long unsigned int)")
fn("Window XDefaultRootWindow(Display*)")
fn("Window XGetSelectionOwner(Display*, Atom)")
fn("Window XRootWindow(Display*, int)")
fn("XExtCodes* XAddExtension(Display*)")
fn("XExtCodes* XInitExtension(Display*, const char*)")
fn("XFontSetExtents* XExtentsOfFontSet(XFontSet)")
fn("XFontStruct* XQueryFont(Display*, XID)")
fn("XHostAddress* XListHosts(Display*, int*, int*)")
fn("XIconSize* XAllocIconSize()")
fn("XModifierKeymap* XGetModifierMapping(Display*)")
fn("_XOC* XCreateFontSet(Display*, const char*, char***, int*, char**)")
fn("XPixmapFormatValues* XListPixmapFormats(Display*, int*)")
fn("_XRegion* XCreateRegion()")
fn("XSizeHints* XAllocSizeHints()")
fn("XStandardColormap* XAllocStandardColormap()")
fn("XVisualInfo* XGetVisualInfo(Display*, long int, XVisualInfo*, int*)")
fn("XWMHints* XGetWMHints(Display*, Window)")
fn("int XMapWindow(Display*, Window)")
fn("KeySym XLookupKeysym(XKeyEvent*, int)")
fn("int XParseGeometry(const char*, int*, int*, unsigned int*, unsigned int*)")
fn("int XSetNormalHints(Display*, Window, XSizeHints*)")
fn("int XSetStandardProperties(Display*,Window,const char*,const char*,Pixmap,char**,int,XSizeHints*)")
########
########
########
fn("char* XGetICValues(XIC, ...)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
fn("char* XGetICValues_internal(XIC, size_t, unsigned long*)"); no_ldr();
fn("_XIC* XCreateIC(XIM, ...)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
fn("_XIC* XCreateIC_internal(XIM, size_t, unsigned long*)"); no_ldr();
fn("int XIfEvent(Display*, XEvent*, XIfEventCBFN*, XPointer)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
fn("int XIfEvent_internal(Display*, XEvent*, XIfEventCBFN*, XPointer)"); no_ldr();
cb("int XIfEventCB(Display*, XEvent*, XPointer)")
fn("XSetErrorHandlerCBFN* XSetErrorHandler(XErrorHandler)"); no_thunk(); no_pack(); no_unpack(); no_tab_unpack()
fn("XSetErrorHandlerCBFN* XSetErrorHandler_internal(XErrorHandler)"); no_ldr();
cb("int XSetErrorHandlerCB(Display*, XErrorEvent*)")
fn("Atom XInternAtom(Display*, const char*, int)")
fn("char** XListExtensions(Display*, int*)")
fn("char* XSetLocaleModifiers(const char*)")
fn("Colormap XCreateColormap(Display*, Window, Visual*, int)")
fn("Cursor XCreatePixmapCursor(Display*, Pixmap, Pixmap, XColor*, XColor*, unsigned int, unsigned int)")
fn("Display* XOpenDisplay(const char*)")
fn("int XChangeProperty(Display*, Window, Atom, Atom, int, int, const unsigned char*, int)")
fn("int XCloseDisplay(Display*)")
fn("int XCloseIM(XIM)")
fn("int XDefineCursor(Display*, Window, Cursor)")
fn("int XDestroyWindow(Display*, Window)")
fn("int XDrawString16(Display*, Drawable, GC, int, int, const XChar2b*, int)")
fn("int XEventsQueued(Display*, int)")
fn("int XFillRectangle(Display*, Drawable, GC, int, int, unsigned int, unsigned int)")
fn("int XFilterEvent(XEvent*, Window)")
fn("int XFlush(Display*)")
fn("int XFreeColormap(Display*, Colormap)")
fn("int XFreeCursor(Display*, Cursor)")
fn("int XFreeExtensionList(char**)")
fn("int XFreeFont(Display*, XFontStruct*)")
fn("int XFreeGC(Display*, GC)")
fn("int XFreePixmap(Display*, Pixmap)")
fn("int XFree(void*)")
fn("int XGetErrorDatabaseText(Display*, const char*, const char*, const char*, char*, int)")
fn("int XGetErrorText(Display*, int, char*, int)")
fn("int XGetEventData(Display*, XGenericEventCookie*)")
fn("int XGetWindowProperty(Display*, Window, Atom, long int, long int, int, Atom, Atom*, int*, long unsigned int*, long unsigned int*, unsigned char**)")
fn("int XGrabPointer(Display*, Window, int, unsigned int, int, int, Window, Cursor, Time)")
fn("int XGrabServer(Display*)")
fn("int XIconifyWindow(Display*, Window, int)")
fn("int XInitThreads()")
fn("int XLookupString(XKeyEvent*, char*, int, KeySym*, XComposeStatus*)")
fn("int XMapRaised(Display*, Window)")
fn("int XMoveResizeWindow(Display*, Window, int, int, unsigned int, unsigned int)")
fn("int XMoveWindow(Display*, Window, int, int)")
fn("int XNextEvent(Display*, XEvent*)")
fn("int XPeekEvent(Display*, XEvent*)")
fn("int XPending(Display*)")
fn("int XQueryExtension(Display*, const char*, int*, int*, int*)")
fn("int XQueryPointer(Display*, Window, Window*, Window*, int*, int*, int*, int*, unsigned int*)")
fn("int XQueryTree(Display*, Window, Window*, Window*, Window**, unsigned int*)")
fn("int XResetScreenSaver(Display*)")
fn("int XResizeWindow(Display*, Window, unsigned int, unsigned int)")
fn("int XSelectInput(Display*, Window, long int)")
fn("int XSendEvent(Display*, Window, int, long int, XEvent*)")
fn("int XSetTransientForHint(Display*, Window, Window)")
fn("int XSetWMProtocols(Display*, Window, Atom*, int)")
fn("int XSync(Display*, int)")
fn("int XTextExtents16(XFontStruct*, const XChar2b*, int, int*, int*, int*, XCharStruct*)")
fn("int XTranslateCoordinates(Display*, Window, Window, int, int, int*, int*, Window*)")
fn("int XUngrabPointer(Display*, Time)")
fn("int XUngrabServer(Display*)")
fn("int XUnmapWindow(Display*, Window)")
fn("int Xutf8LookupString(XIC, XKeyPressedEvent*, char*, int, KeySym*, int*)")
fn("int XWarpPointer(Display*, Window, Window, int, int, unsigned int, unsigned int, int, int)")
fn("int XWindowEvent(Display*, Window, long int, XEvent*)")
fn("Pixmap XCreateBitmapFromData(Display*, Drawable, const char*, unsigned int, unsigned int)")
fn("Pixmap XCreatePixmap(Display*, Drawable, unsigned int, unsigned int, unsigned int)")
fn("void XDestroyIC(XIC)")
fn("void XFreeEventData(Display*, XGenericEventCookie*)")
fn("void XLockDisplay(Display*)")
fn("void XSetICFocus(XIC)")
fn("void XSetWMNormalHints(Display*, Window, XSizeHints*)")
fn("void XUnlockDisplay(Display*)")
fn("void Xutf8SetWMProperties(Display*, Window, const char*, const char*, char**, int, XSizeHints*, XWMHints*, XClassHint*)")
fn("Window XCreateWindow(Display*, Window, int, int, unsigned int, unsigned int, unsigned int, int, unsigned int, Visual*, long unsigned int, XSetWindowAttributes*)")
fn("XFontStruct* XLoadQueryFont(Display*, const char*)")
fn("_XGC* XCreateGC(Display*, Drawable, long unsigned int, XGCValues*)")
fn("XImage* XGetImage(Display*, Drawable, int, int, unsigned int, unsigned int, long unsigned int, int)")
fn("_XIM* XOpenIM(Display*, _XrmHashBucketRec*, char*, char*)")
fn("KeySym XkbKeycodeToKeysym(Display *, KeyCode, unsigned int, unsigned int)")
fn("Bool XCheckWindowEvent(Display *, Window, long, XEvent *)")
fn("int XDefineCursor(Display *, Window, Cursor)")
fn("int XUndefineCursor(Display *, Window)")
fn("Screen *XDefaultScreenOfDisplay( Display* )")
fn("int XDefaultScreen(Display*)")
fn("int XDisplayWidth(Display*, int)")
fn("int XMatchVisualInfo(Display*, int, int, int, XVisualInfo*)")
fn("int XPutImage(Display*, Drawable, GC, XImage*, int, int, int, int, unsigned int, unsigned int)")
fn("XImage* XCreateImage(Display*, Visual*, unsigned int, int, int, char*, unsigned int, unsigned int, int, int)")
fn("int XDisplayHeight(Display*, int)")
Generate()

View File

@ -136,7 +136,7 @@ add_guest_lib(GL)
# target_link_libraries(SDL2-guest PRIVATE GL)
# target_link_libraries(SDL2-guest PRIVATE dl)
generate(libX11 thunks function_packs function_packs_public callback_structs callback_unpacks_header callback_unpacks_header_init callback_unpacks callback_typedefs)
generate_new(libX11 ${CMAKE_CURRENT_SOURCE_DIR}/../libX11/libX11_interface.cpp thunks function_packs function_packs_public callback_structs callback_unpacks_header callback_unpacks_header_init callback_unpacks callback_typedefs)
add_guest_lib(X11)
generate_new(libXext ${CMAKE_CURRENT_SOURCE_DIR}/../libXext/libXext_interface.cpp thunks function_packs function_packs_public)

View File

@ -129,7 +129,7 @@ target_link_libraries(GL-host PRIVATE OpenGL::GL)
# add_host_lib(SDL2)
# target_include_directories(SDL2-host PRIVATE ${SDL2_INCLUDE_DIRS})
generate(libX11 function_unpacks tab_function_unpacks ldr ldr_ptrs callback_packs callback_structs callback_unpacks_header callback_typedefs)
generate_new(libX11 ${CMAKE_CURRENT_SOURCE_DIR}/../libX11/libX11_interface.cpp function_unpacks tab_function_unpacks ldr ldr_ptrs callback_structs callback_unpacks_header callback_typedefs)
add_host_lib(X11)
generate_new(libXext ${CMAKE_CURRENT_SOURCE_DIR}/../libXext/libXext_interface.cpp function_unpacks tab_function_unpacks ldr ldr_ptrs)

View File

@ -44,7 +44,7 @@ extern "C" {
}
va_end(ap);
auto rv = XGetICValues_internal(ic, args.size(), &args[0]);
auto rv = fexfn_pack_XGetICValues_internal(ic, args.size(), &args[0]);
fprintf(stderr, "RV: %p\n", rv);
return rv;
}
@ -63,17 +63,17 @@ extern "C" {
}
va_end(ap);
auto rv = XCreateIC_internal(im, args.size(), &args[0]);
auto rv = fexfn_pack_XCreateIC_internal(im, args.size(), &args[0]);
fprintf(stderr, "RV: %p\n", rv);
return rv;
}
int XIfEvent(Display* a0, XEvent* a1, XIfEventCBFN* a2, XPointer a3) {
return XIfEvent_internal(a0, a1, a2, a3);
return fexfn_pack_XIfEvent_internal(a0, a1, a2, a3);
}
XSetErrorHandlerCBFN* XSetErrorHandler(XErrorHandler a_0) {
return XSetErrorHandler_internal(a_0);
return fexfn_pack_XSetErrorHandler_internal(a_0);
}
int (*XESetCloseDisplay(Display *display, int extension, int (*proc)()))() {

View File

@ -5,6 +5,7 @@ desc: Handles callbacks and varargs
$end_info$
*/
#include <cstdlib>
#include <stdio.h>
#include <X11/Xlib.h>
@ -78,6 +79,17 @@ int fexfn_impl_libX11_XIfEvent_internal(Display* a0, XEvent* a1, XIfEventCBFN* a
return fexldr_ptr_libX11_XIfEvent(a0, a1, &XIfEventCB, (XPointer)&args);
}
Bool fexfn_impl_libX11_XUnregisterIMInstantiateCallback_internal(
Display*, struct _XrmHashBucketRec*,
char*, char*, XUnregisterIMInstantiateCallbackCBFN*, XPointer) {
fprintf(stderr, "XUnregisterIMInstantiateCallback: Stubbed");
return true;
}
void fexfn_impl_libX11_XRemoveConnectionWatch_internal(Display*, XRemoveConnectionWatchCBFN*, XPointer) {
fprintf(stderr, "XRemoveConnectionWatch: Stubbed");
}
XErrorHandler guest_handler;
int XSetErrorHandlerCB(Display* a_0, XErrorEvent* a_1) {

View File

@ -0,0 +1,526 @@
#include <common/GeneratorInterface.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xresource.h>
#include <X11/Xlibint.h>
#include <X11/XKBlib.h>
template<auto>
struct fex_gen_config {
unsigned version = 6;
};
template<> struct fex_gen_config<XFetchBytes> {};
template<> struct fex_gen_config<XLocaleOfIM> {};
template<> struct fex_gen_config<XLocaleOfOM> {};
template<> struct fex_gen_config<XmbResetIC> {};
template<> struct fex_gen_config<Xpermalloc> {};
template<> struct fex_gen_config<Xutf8ResetIC> {};
template<> struct fex_gen_config<XrmLocaleOfDatabase> {};
template<> struct fex_gen_config<XDisplayOfOM> {};
template<> struct fex_gen_config<XChangeKeyboardMapping> {};
template<> struct fex_gen_config<XCloseOM> {};
template<> struct fex_gen_config<XDrawText16> {};
template<> struct fex_gen_config<XDrawText> {};
template<> struct fex_gen_config<XInternalConnectionNumbers> {};
template<> struct fex_gen_config<XMaskEvent> {};
template<> struct fex_gen_config<XmbTextExtents> {};
template<> struct fex_gen_config<XmbTextPerCharExtents> {};
template<> struct fex_gen_config<_Xmbtowc> {};
template<> struct fex_gen_config<XNoOp> {};
template<> struct fex_gen_config<XOffsetRegion> {};
template<> struct fex_gen_config<XPointInRegion> {};
template<> struct fex_gen_config<XQueryBestCursor> {};
template<> struct fex_gen_config<XQueryBestSize> {};
template<> struct fex_gen_config<XQueryBestStipple> {};
template<> struct fex_gen_config<XQueryBestTile> {};
template<> struct fex_gen_config<XQueryKeymap> {};
template<> struct fex_gen_config<XQueryTextExtents16> {};
template<> struct fex_gen_config<XQueryTextExtents> {};
template<> struct fex_gen_config<XReadBitmapFile> {};
template<> struct fex_gen_config<XReconfigureWMWindow> {};
template<> struct fex_gen_config<XRegisterIMInstantiateCallback> : fexgen::callback_stub {};
template<> struct fex_gen_config<XRestackWindows> {};
template<> struct fex_gen_config<XRotateWindowProperties> {};
template<> struct fex_gen_config<XSetClassHint> {};
template<> struct fex_gen_config<XSetFontPath> {};
template<> struct fex_gen_config<XSetIconName> {};
template<> struct fex_gen_config<XSetModifierMapping> {};
template<> struct fex_gen_config<XSetPointerMapping> {};
template<> struct fex_gen_config<XSetScreenSaver> {};
template<> struct fex_gen_config<XSetSizeHints> {};
template<> struct fex_gen_config<XSetState> {};
template<> struct fex_gen_config<XSetWMColormapWindows> {};
template<> struct fex_gen_config<XSetZoomHints> {};
template<> struct fex_gen_config<XShrinkRegion> {};
template<> struct fex_gen_config<XStoreBuffer> {};
template<> struct fex_gen_config<XStoreColor> {};
template<> struct fex_gen_config<XStoreNamedColor> {};
template<> struct fex_gen_config<XStringListToTextProperty> {};
template<> struct fex_gen_config<XTextExtents> {};
template<> struct fex_gen_config<XTextPropertyToStringList> {};
template<> struct fex_gen_config<XUninstallColormap> {};
template<> struct fex_gen_config<XUnregisterIMInstantiateCallback> {};
template<> struct fex_gen_config<Xutf8TextEscapement> {};
template<> struct fex_gen_config<Xutf8TextExtents> {};
template<> struct fex_gen_config<Xutf8TextPerCharExtents> {};
template<> struct fex_gen_config<XwcTextExtents> {};
template<> struct fex_gen_config<XwcTextPerCharExtents> {};
template<> struct fex_gen_config<_Xwctomb> {};
template<> struct fex_gen_config<XWriteBitmapFile> {};
template<> struct fex_gen_config<XXorRegion> {};
template<> struct fex_gen_config<XKeysymToKeycode> {};
template<> struct fex_gen_config<XKeycodeToKeysym> {};
template<> struct fex_gen_config<XDisplayMotionBufferSize> {};
template<> struct fex_gen_config<XDestroyOC> {};
template<> struct fex_gen_config<XmbDrawText> {};
template<> struct fex_gen_config<XmbSetWMProperties> {};
template<> struct fex_gen_config<XRemoveConnectionWatch> {};
template<> struct fex_gen_config<XrmPutFileDatabase> {};
template<> struct fex_gen_config<XrmPutResource> {};
template<> struct fex_gen_config<XrmQPutStringResource> {};
template<> struct fex_gen_config<XrmStringToQuarkList> {};
template<> struct fex_gen_config<XSetStandardColormap> {};
template<> struct fex_gen_config<XSetTextProperty> {};
template<> struct fex_gen_config<XSetWMClientMachine> {};
template<> struct fex_gen_config<XSetWMSizeHints> {};
template<> struct fex_gen_config<Xutf8DrawImageString> {};
template<> struct fex_gen_config<Xutf8DrawString> {};
template<> struct fex_gen_config<Xutf8DrawText> {};
template<> struct fex_gen_config<XwcDrawText> {};
template<> struct fex_gen_config<XwcResetIC> {};
template<> struct fex_gen_config<XIMOfIC> {};
template<> struct fex_gen_config<XDeleteModifiermapEntry> {};
template<> struct fex_gen_config<XInsertModifiermapEntry> {};
template<> struct fex_gen_config<XNewModifiermap> {};
template<> struct fex_gen_config<XOMOfOC> {};
template<> struct fex_gen_config<XOpenOM> {};
template<> struct fex_gen_config<XPolygonRegion> {};
template<> struct fex_gen_config<XDefaultString> {};
template<> struct fex_gen_config<XAllocClassHint> {};
template<> struct fex_gen_config<XAllocWMHints> {};
template<> struct fex_gen_config<XListProperties> {};
template<> struct fex_gen_config<XBaseFontNameListOfFontSet> {};
template<> struct fex_gen_config<XGetFontPath> {};
template<> struct fex_gen_config<XListFontsWithInfo> {};
template<> struct fex_gen_config<XLocaleOfFontSet> {};
template<> struct fex_gen_config<XServerVendor> {};
template<> struct fex_gen_config<XCopyColormapAndFree> {};
template<> struct fex_gen_config<XDefaultColormapOfScreen> {};
template<> struct fex_gen_config<XListInstalledColormaps> {};
template<> struct fex_gen_config<XActivateScreenSaver> {};
template<> struct fex_gen_config<XAddHosts> {};
template<> struct fex_gen_config<XAddToExtensionList> {};
template<> struct fex_gen_config<XAddToSaveSet> {};
template<> struct fex_gen_config<XAllocColorPlanes> {};
template<> struct fex_gen_config<XAllowEvents> {};
template<> struct fex_gen_config<XAutoRepeatOff> {};
template<> struct fex_gen_config<XAutoRepeatOn> {};
template<> struct fex_gen_config<XBitmapBitOrder> {};
template<> struct fex_gen_config<XBitmapPad> {};
template<> struct fex_gen_config<XBitmapUnit> {};
template<> struct fex_gen_config<XCellsOfScreen> {};
template<> struct fex_gen_config<XChangeKeyboardControl> {};
template<> struct fex_gen_config<XChangePointerControl> {};
template<> struct fex_gen_config<XChangeSaveSet> {};
template<> struct fex_gen_config<XCheckMaskEvent> {};
template<> struct fex_gen_config<XCheckTypedEvent> {};
template<> struct fex_gen_config<XCheckTypedWindowEvent> {};
template<> struct fex_gen_config<XCirculateSubwindows> {};
template<> struct fex_gen_config<XCirculateSubwindowsDown> {};
template<> struct fex_gen_config<XCirculateSubwindowsUp> {};
template<> struct fex_gen_config<XConnectionNumber> {};
template<> struct fex_gen_config<XContextDependentDrawing> {};
template<> struct fex_gen_config<XContextualDrawing> {};
template<> struct fex_gen_config<XCopyGC> {};
template<> struct fex_gen_config<XDefaultDepthOfScreen> {};
template<> struct fex_gen_config<XDestroySubwindows> {};
template<> struct fex_gen_config<XDirectionalDependentDrawing> {};
template<> struct fex_gen_config<XDisplayCells> {};
template<> struct fex_gen_config<XDisplayHeightMM> {};
template<> struct fex_gen_config<XDisplayPlanes> {};
template<> struct fex_gen_config<XDisplayWidthMM> {};
template<> struct fex_gen_config<XDoesBackingStore> {};
template<> struct fex_gen_config<XDoesSaveUnders> {};
template<> struct fex_gen_config<XDrawImageString16> {};
template<> struct fex_gen_config<XDrawRectangles> {};
template<> struct fex_gen_config<XForceScreenSaver> {};
template<> struct fex_gen_config<XFreeFontInfo> {};
template<> struct fex_gen_config<XFreeFontNames> {};
template<> struct fex_gen_config<XFreeFontPath> {};
template<> struct fex_gen_config<XGeometry> {};
template<> struct fex_gen_config<XGetAtomNames> {};
template<> struct fex_gen_config<XGetCommand> {};
template<> struct fex_gen_config<XGetIconName> {};
template<> struct fex_gen_config<XGetIconSizes> {};
template<> struct fex_gen_config<XGetKeyboardControl> {};
template<> struct fex_gen_config<XGetNormalHints> {};
template<> struct fex_gen_config<XGetPointerControl> {};
template<> struct fex_gen_config<XGetPointerMapping> {};
template<> struct fex_gen_config<XGetScreenSaver> {};
template<> struct fex_gen_config<XGetSizeHints> {};
template<> struct fex_gen_config<XGetStandardColormap> {};
template<> struct fex_gen_config<XGetTextProperty> {};
template<> struct fex_gen_config<XGetTransientForHint> {};
template<> struct fex_gen_config<XGetWMColormapWindows> {};
template<> struct fex_gen_config<XGetWMIconName> {};
template<> struct fex_gen_config<XGetWMSizeHints> {};
template<> struct fex_gen_config<XGetZoomHints> {};
template<> struct fex_gen_config<XHeightMMOfScreen> {};
template<> struct fex_gen_config<XHeightOfScreen> {};
template<> struct fex_gen_config<XImageByteOrder> {};
template<> struct fex_gen_config<XInstallColormap> {};
template<> struct fex_gen_config<XMaxCmapsOfScreen> {};
template<> struct fex_gen_config<XMinCmapsOfScreen> {};
template<> struct fex_gen_config<XPlanesOfScreen> {};
template<> struct fex_gen_config<XProtocolRevision> {};
template<> struct fex_gen_config<XProtocolVersion> {};
template<> struct fex_gen_config<XQLength> {};
template<> struct fex_gen_config<XRebindKeysym> {};
template<> struct fex_gen_config<XRemoveFromSaveSet> {};
template<> struct fex_gen_config<XRemoveHosts> {};
template<> struct fex_gen_config<XScreenCount> {};
template<> struct fex_gen_config<XSetAccessControl> {};
template<> struct fex_gen_config<XSetWindowColormap> {};
template<> struct fex_gen_config<XVendorRelease> {};
template<> struct fex_gen_config<XWidthMMOfScreen> {};
template<> struct fex_gen_config<XWidthOfScreen> {};
template<> struct fex_gen_config<XEventMaskOfScreen> {};
template<> struct fex_gen_config<XAllPlanes> {};
template<> struct fex_gen_config<XBlackPixel> {};
template<> struct fex_gen_config<XBlackPixelOfScreen> {};
template<> struct fex_gen_config<XLastKnownRequestProcessed> {};
template<> struct fex_gen_config<XWhitePixel> {};
template<> struct fex_gen_config<XWhitePixelOfScreen> {};
template<> struct fex_gen_config<XScreenOfDisplay> {};
template<> struct fex_gen_config<XDefaultVisualOfScreen> {};
template<> struct fex_gen_config<XFlushGC> {};
template<> struct fex_gen_config<XRootWindowOfScreen> {};
template<> struct fex_gen_config<XEHeadOfExtensionList> {};
template<> struct fex_gen_config<XFindOnExtensionList> {};
template<> struct fex_gen_config<XDefaultGC> {};
template<> struct fex_gen_config<XDefaultGCOfScreen> {};
template<> struct fex_gen_config<XGetSubImage> {};
template<> struct fex_gen_config<XGetMotionEvents> {};
template<> struct fex_gen_config<_XReadEvents> {};
template<> struct fex_gen_config<XInitImage> {}; // TODO: Fixup vtable for guest use
template<> struct fex_gen_config<XrmQuarkToString> {};
template<> struct fex_gen_config<XrmCombineFileDatabase> {};
template<> struct fex_gen_config<XrmGetResource> {};
template<> struct fex_gen_config<XrmQGetResource> {};
template<> struct fex_gen_config<XrmQGetSearchList> {};
template<> struct fex_gen_config<XrmQGetSearchResource> {};
template<> struct fex_gen_config<XrmCombineDatabase> {};
template<> struct fex_gen_config<XrmDestroyDatabase> {};
template<> struct fex_gen_config<XrmMergeDatabases> {};
template<> struct fex_gen_config<XrmParseCommand> {};
template<> struct fex_gen_config<XrmPutLineResource> {};
template<> struct fex_gen_config<XrmPutStringResource> {};
template<> struct fex_gen_config<XrmQPutResource> {};
template<> struct fex_gen_config<XrmSetDatabase> {};
template<> struct fex_gen_config<XrmStringToBindingQuarkList> {};
template<> struct fex_gen_config<XrmGetDatabase> {};
template<> struct fex_gen_config<XrmGetFileDatabase> {};
template<> struct fex_gen_config<XrmGetStringDatabase> {};
template<> struct fex_gen_config<XrmUniqueQuark> {};
template<> struct fex_gen_config<XrmStringToQuark> {};
template<> struct fex_gen_config<XrmPermStringToQuark> {};
template<> struct fex_gen_config<XDisplayName> {};
template<> struct fex_gen_config<XDisplayString> {};
template<> struct fex_gen_config<XFetchBuffer> {};
template<> struct fex_gen_config<XGetAtomName> {};
template<> struct fex_gen_config<XGetDefault> {};
template<> struct fex_gen_config<XKeysymToString> {};
template<> struct fex_gen_config<XListFonts> {};
template<> struct fex_gen_config<XResourceManagerString> {};
template<> struct fex_gen_config<XScreenResourceString> {};
template<> struct fex_gen_config<XDefaultColormap> {};
template<> struct fex_gen_config<XCreateFontCursor> {};
template<> struct fex_gen_config<XCreateGlyphCursor> {};
template<> struct fex_gen_config<XDisplayOfIM> {};
template<> struct fex_gen_config<XDisplayOfScreen> {};
template<> struct fex_gen_config<XLoadFont> {};
template<> struct fex_gen_config<XGContextFromGC> {};
template<> struct fex_gen_config<XAddConnectionWatch> : fexgen::callback_stub {};
template<> struct fex_gen_config<XAddHost> {};
template<> struct fex_gen_config<XAllocColorCells> {};
template<> struct fex_gen_config<XAllocColor> {};
template<> struct fex_gen_config<XAllocNamedColor> {};
template<> struct fex_gen_config<XBell> {};
template<> struct fex_gen_config<XChangeActivePointerGrab> {};
template<> struct fex_gen_config<XChangeGC> {};
template<> struct fex_gen_config<XChangeWindowAttributes> {};
template<> struct fex_gen_config<XClearArea> {};
template<> struct fex_gen_config<XClearWindow> {};
template<> struct fex_gen_config<XClipBox> {};
template<> struct fex_gen_config<XConfigureWindow> {};
template<> struct fex_gen_config<XConvertSelection> {};
template<> struct fex_gen_config<XCopyArea> {};
template<> struct fex_gen_config<XCopyPlane> {};
template<> struct fex_gen_config<XDefaultDepth> {};
template<> struct fex_gen_config<XDeleteContext> {};
template<> struct fex_gen_config<XDeleteProperty> {};
template<> struct fex_gen_config<XDestroyRegion> {};
template<> struct fex_gen_config<XDisableAccessControl> {};
template<> struct fex_gen_config<XDisplayKeycodes> {};
template<> struct fex_gen_config<XDrawArc> {};
template<> struct fex_gen_config<XDrawArcs> {};
template<> struct fex_gen_config<XDrawImageString> {};
template<> struct fex_gen_config<XDrawLine> {};
template<> struct fex_gen_config<XDrawLines> {};
template<> struct fex_gen_config<XDrawPoint> {};
template<> struct fex_gen_config<XDrawPoints> {};
template<> struct fex_gen_config<XDrawRectangle> {};
template<> struct fex_gen_config<XDrawSegments> {};
template<> struct fex_gen_config<XDrawString> {};
template<> struct fex_gen_config<XEmptyRegion> {};
template<> struct fex_gen_config<XEnableAccessControl> {};
template<> struct fex_gen_config<XEqualRegion> {};
template<> struct fex_gen_config<XFetchName> {};
template<> struct fex_gen_config<XFillArc> {};
template<> struct fex_gen_config<XFillArcs> {};
template<> struct fex_gen_config<XFillPolygon> {};
template<> struct fex_gen_config<XFillRectangles> {};
template<> struct fex_gen_config<XFindContext> {};
template<> struct fex_gen_config<XFontsOfFontSet> {};
template<> struct fex_gen_config<XFreeColors> {};
template<> struct fex_gen_config<XFreeModifiermap> {};
template<> struct fex_gen_config<XGetClassHint> {};
template<> struct fex_gen_config<XGetFontProperty> {};
template<> struct fex_gen_config<XGetGCValues> {};
template<> struct fex_gen_config<XGetGeometry> {};
template<> struct fex_gen_config<XGetInputFocus> {};
template<> struct fex_gen_config<XGetRGBColormaps> {};
template<> struct fex_gen_config<XGetWindowAttributes> {};
template<> struct fex_gen_config<XGetWMClientMachine> {};
template<> struct fex_gen_config<XGetWMName> {};
template<> struct fex_gen_config<XGetWMNormalHints> {};
template<> struct fex_gen_config<XGetWMProtocols> {};
template<> struct fex_gen_config<XGrabButton> {};
template<> struct fex_gen_config<XGrabKeyboard> {};
template<> struct fex_gen_config<XGrabKey> {};
template<> struct fex_gen_config<XInternAtoms> {};
template<> struct fex_gen_config<XIntersectRegion> {};
template<> struct fex_gen_config<XKillClient> {};
template<> struct fex_gen_config<XListDepths> {};
template<> struct fex_gen_config<XLookupColor> {};
template<> struct fex_gen_config<XLowerWindow> {};
template<> struct fex_gen_config<XMapSubwindows> {};
template<> struct fex_gen_config<XmbLookupString> {};
template<> struct fex_gen_config<XmbTextEscapement> {};
template<> struct fex_gen_config<XmbTextListToTextProperty> {};
template<> struct fex_gen_config<XmbTextPropertyToTextList> {};
template<> struct fex_gen_config<XParseColor> {};
template<> struct fex_gen_config<XPutBackEvent> {};
template<> struct fex_gen_config<XQueryColor> {};
template<> struct fex_gen_config<XQueryColors> {};
template<> struct fex_gen_config<XRaiseWindow> {};
template<> struct fex_gen_config<XReadBitmapFileData> {};
template<> struct fex_gen_config<XRecolorCursor> {};
template<> struct fex_gen_config<XRectInRegion> {};
template<> struct fex_gen_config<XRefreshKeyboardMapping> {};
template<> struct fex_gen_config<XRemoveHost> {};
template<> struct fex_gen_config<XReparentWindow> {};
template<> struct fex_gen_config<XRotateBuffers> {};
template<> struct fex_gen_config<XSaveContext> {};
template<> struct fex_gen_config<XScreenNumberOfScreen> {};
template<> struct fex_gen_config<XSetArcMode> {};
template<> struct fex_gen_config<XSetBackground> {};
template<> struct fex_gen_config<XSetClipMask> {};
template<> struct fex_gen_config<XSetClipOrigin> {};
template<> struct fex_gen_config<XSetClipRectangles> {};
template<> struct fex_gen_config<XSetCloseDownMode> {};
template<> struct fex_gen_config<XSetCommand> {};
template<> struct fex_gen_config<XSetDashes> {};
template<> struct fex_gen_config<XSetFillRule> {};
template<> struct fex_gen_config<XSetFillStyle> {};
template<> struct fex_gen_config<XSetFont> {};
template<> struct fex_gen_config<XSetForeground> {};
template<> struct fex_gen_config<XSetFunction> {};
template<> struct fex_gen_config<XSetGraphicsExposures> {};
template<> struct fex_gen_config<XSetIconSizes> {};
template<> struct fex_gen_config<XSetInputFocus> {};
template<> struct fex_gen_config<XSetLineAttributes> {};
template<> struct fex_gen_config<XSetPlaneMask> {};
template<> struct fex_gen_config<XSetRegion> {};
template<> struct fex_gen_config<XSetSelectionOwner> {};
template<> struct fex_gen_config<XSetStipple> {};
template<> struct fex_gen_config<XSetSubwindowMode> {};
template<> struct fex_gen_config<XSetTile> {};
template<> struct fex_gen_config<XSetTSOrigin> {};
template<> struct fex_gen_config<XSetWindowBackground> {};
template<> struct fex_gen_config<XSetWindowBackgroundPixmap> {};
template<> struct fex_gen_config<XSetWindowBorder> {};
template<> struct fex_gen_config<XSetWindowBorderPixmap> {};
template<> struct fex_gen_config<XSetWindowBorderWidth> {};
template<> struct fex_gen_config<XSetWMHints> {};
template<> struct fex_gen_config<XStoreBytes> {};
template<> struct fex_gen_config<XStoreColors> {};
template<> struct fex_gen_config<XStoreName> {};
template<> struct fex_gen_config<XSubtractRegion> {};
template<> struct fex_gen_config<XSupportsLocale> {};
template<> struct fex_gen_config<XTextWidth16> {};
template<> struct fex_gen_config<XTextWidth> {};
template<> struct fex_gen_config<XUngrabButton> {};
template<> struct fex_gen_config<XUngrabKeyboard> {};
template<> struct fex_gen_config<XUngrabKey> {};
template<> struct fex_gen_config<XUnionRectWithRegion> {};
template<> struct fex_gen_config<XUnionRegion> {};
template<> struct fex_gen_config<XUnloadFont> {};
template<> struct fex_gen_config<XUnmapSubwindows> {};
template<> struct fex_gen_config<Xutf8TextListToTextProperty> {};
template<> struct fex_gen_config<Xutf8TextPropertyToTextList> {};
template<> struct fex_gen_config<XwcLookupString> {};
template<> struct fex_gen_config<XwcTextEscapement> {};
template<> struct fex_gen_config<XwcTextListToTextProperty> {};
template<> struct fex_gen_config<XwcTextPropertyToTextList> {};
template<> struct fex_gen_config<XWithdrawWindow> {};
template<> struct fex_gen_config<XWMGeometry> {};
template<> struct fex_gen_config<XGetKeyboardMapping> {};
template<> struct fex_gen_config<XStringToKeysym> {};
template<> struct fex_gen_config<XExtendedMaxRequestSize> {};
template<> struct fex_gen_config<XMaxRequestSize> {};
template<> struct fex_gen_config<XNextRequest> {};
template<> struct fex_gen_config<XCreatePixmapFromBitmapData> {};
template<> struct fex_gen_config<XVisualIDFromVisual> {};
template<> struct fex_gen_config<XDefaultVisual> {};
template<> struct fex_gen_config<XConvertCase> {};
template<> struct fex_gen_config<XFreeFontSet> {};
template<> struct fex_gen_config<XFreeStringList> {};
template<> struct fex_gen_config<XmbDrawImageString> {};
template<> struct fex_gen_config<XmbDrawString> {};
template<> struct fex_gen_config<XProcessInternalConnection> {};
template<> struct fex_gen_config<XrmInitialize> {};
template<> struct fex_gen_config<XSetAuthorization> {};
template<> struct fex_gen_config<XSetRGBColormaps> {};
template<> struct fex_gen_config<XSetWMIconName> {};
template<> struct fex_gen_config<XSetWMName> {};
template<> struct fex_gen_config<XSetWMProperties> {};
template<> struct fex_gen_config<XUnsetICFocus> {};
template<> struct fex_gen_config<XwcDrawImageString> {};
template<> struct fex_gen_config<XwcDrawString> {};
template<> struct fex_gen_config<XwcFreeStringList> {};
template<> struct fex_gen_config<XCreateSimpleWindow> {};
template<> struct fex_gen_config<XDefaultRootWindow> {};
template<> struct fex_gen_config<XGetSelectionOwner> {};
template<> struct fex_gen_config<XRootWindow> {};
template<> struct fex_gen_config<XAddExtension> {};
template<> struct fex_gen_config<XInitExtension> {};
template<> struct fex_gen_config<XExtentsOfFontSet> {};
template<> struct fex_gen_config<XQueryFont> {};
template<> struct fex_gen_config<XListHosts> {};
template<> struct fex_gen_config<XAllocIconSize> {};
template<> struct fex_gen_config<XGetModifierMapping> {};
template<> struct fex_gen_config<XCreateFontSet> {};
template<> struct fex_gen_config<XListPixmapFormats> {};
template<> struct fex_gen_config<XCreateRegion> {};
template<> struct fex_gen_config<XAllocSizeHints> {};
template<> struct fex_gen_config<XAllocStandardColormap> {};
template<> struct fex_gen_config<XGetVisualInfo> {};
template<> struct fex_gen_config<XGetWMHints> {};
template<> struct fex_gen_config<XMapWindow> {};
template<> struct fex_gen_config<XLookupKeysym> {};
template<> struct fex_gen_config<XParseGeometry> {};
template<> struct fex_gen_config<XSetNormalHints> {};
template<> struct fex_gen_config<XSetStandardProperties> {};
template<> struct fex_gen_config<XGetICValues> {
using uniform_va_type = unsigned long;
};
template<> struct fex_gen_config<XCreateIC> {
using uniform_va_type = unsigned long;
};
template<> struct fex_gen_config<XIfEvent> {};
template<> struct fex_gen_config<XSetErrorHandler> : fexgen::returns_guest_pointer {};
template<> struct fex_gen_config<XInternAtom> {};
template<> struct fex_gen_config<XListExtensions> {};
template<> struct fex_gen_config<XSetLocaleModifiers> {};
template<> struct fex_gen_config<XCreateColormap> {};
template<> struct fex_gen_config<XCreatePixmapCursor> {};
template<> struct fex_gen_config<XOpenDisplay> {};
template<> struct fex_gen_config<XChangeProperty> {};
template<> struct fex_gen_config<XCloseDisplay> {};
template<> struct fex_gen_config<XCloseIM> {};
template<> struct fex_gen_config<XDestroyWindow> {};
template<> struct fex_gen_config<XDrawString16> {};
template<> struct fex_gen_config<XEventsQueued> {};
template<> struct fex_gen_config<XFillRectangle> {};
template<> struct fex_gen_config<XFilterEvent> {};
template<> struct fex_gen_config<XFlush> {};
template<> struct fex_gen_config<XFreeColormap> {};
template<> struct fex_gen_config<XFreeCursor> {};
template<> struct fex_gen_config<XFreeExtensionList> {};
template<> struct fex_gen_config<XFreeFont> {};
template<> struct fex_gen_config<XFreeGC> {};
template<> struct fex_gen_config<XFreePixmap> {};
template<> struct fex_gen_config<XFree> {};
template<> struct fex_gen_config<XGetErrorDatabaseText> {};
template<> struct fex_gen_config<XGetErrorText> {};
template<> struct fex_gen_config<XGetEventData> {};
template<> struct fex_gen_config<XGetWindowProperty> {};
template<> struct fex_gen_config<XGrabPointer> {};
template<> struct fex_gen_config<XGrabServer> {};
template<> struct fex_gen_config<XIconifyWindow> {};
template<> struct fex_gen_config<XInitThreads> {};
template<> struct fex_gen_config<XLookupString> {};
template<> struct fex_gen_config<XMapRaised> {};
template<> struct fex_gen_config<XMoveResizeWindow> {};
template<> struct fex_gen_config<XMoveWindow> {};
template<> struct fex_gen_config<XNextEvent> {};
template<> struct fex_gen_config<XPeekEvent> {};
template<> struct fex_gen_config<XPending> {};
template<> struct fex_gen_config<XQueryExtension> {};
template<> struct fex_gen_config<XQueryPointer> {};
template<> struct fex_gen_config<XQueryTree> {};
template<> struct fex_gen_config<XResetScreenSaver> {};
template<> struct fex_gen_config<XResizeWindow> {};
template<> struct fex_gen_config<XSelectInput> {};
template<> struct fex_gen_config<XSendEvent> {};
template<> struct fex_gen_config<XSetTransientForHint> {};
template<> struct fex_gen_config<XSetWMProtocols> {};
template<> struct fex_gen_config<XSync> {};
template<> struct fex_gen_config<XTextExtents16> {};
template<> struct fex_gen_config<XTranslateCoordinates> {};
template<> struct fex_gen_config<XUngrabPointer> {};
template<> struct fex_gen_config<XUngrabServer> {};
template<> struct fex_gen_config<XUnmapWindow> {};
template<> struct fex_gen_config<Xutf8LookupString> {};
template<> struct fex_gen_config<XWarpPointer> {};
template<> struct fex_gen_config<XWindowEvent> {};
template<> struct fex_gen_config<XCreateBitmapFromData> {};
template<> struct fex_gen_config<XCreatePixmap> {};
template<> struct fex_gen_config<XDestroyIC> {};
template<> struct fex_gen_config<XFreeEventData> {};
template<> struct fex_gen_config<XLockDisplay> {};
template<> struct fex_gen_config<XSetICFocus> {};
template<> struct fex_gen_config<XSetWMNormalHints> {};
template<> struct fex_gen_config<XUnlockDisplay> {};
template<> struct fex_gen_config<Xutf8SetWMProperties> {};
template<> struct fex_gen_config<XCreateWindow> {};
template<> struct fex_gen_config<XLoadQueryFont> {};
template<> struct fex_gen_config<XCreateGC> {};
template<> struct fex_gen_config<XGetImage> {};
template<> struct fex_gen_config<XOpenIM> {};
template<> struct fex_gen_config<XkbKeycodeToKeysym> {};
template<> struct fex_gen_config<XCheckWindowEvent> {};
template<> struct fex_gen_config<XDefineCursor> {};
template<> struct fex_gen_config<XUndefineCursor> {};
template<> struct fex_gen_config<XDefaultScreenOfDisplay> {};
template<> struct fex_gen_config<XDefaultScreen> {};
template<> struct fex_gen_config<XDisplayWidth> {};
template<> struct fex_gen_config<XMatchVisualInfo> {};
template<> struct fex_gen_config<XPutImage> {};
template<> struct fex_gen_config<XCreateImage> {};
template<> struct fex_gen_config<XDisplayHeight> {};