Linux Standard Base Graphics Module Specification 3.1

Linux Standard Base Graphics Module Specification 3.1
LSB Graphics Specification 
Copyright © 2004, 2005, 2006 Free Standards Group
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Portions of the text are copyrighted by the following parties:
•	The Regents of the University of California
•	Free Software Foundation
•	Ian F. Darwin
•	Paul Vixie
•	BSDI (now Wind River)
•	Andrew G Morgan
•	Jean-loup Gailly and Mark Adler
•	Massachusetts Institute of Technology
These excerpts are being used in accordance with their respective licenses.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
UNIX is a registered trademark of The Open Group.
LSB is a trademark of the Free Standards Group in the United States and other countries.
AMD is a trademark of Advanced Micro Devices, Inc.
Intel and Itanium are registered trademarks and Intel386 is a trademark of Intel Corporation.
PowerPC is a registered trademark and PowerPC Architecture is a trademark of the IBM Corporation.
S/390 is a registered trademark of the IBM Corporation.
OpenGL is a registered trademark of Silicon Graphics, Inc.

Contents
I Introductory Elements	000
1 Scope	000
2 Normative References	000
3 Requirements	000
3.1 Relevant Libraries	000
4 Definitions	000
5 Terminology	000
II Graphic Libraries	000
6 Libraries	000
6.1 Interfaces for libX11	000
6.2 Data Definitions for libX11	000
6.3 Interface Definitions for libX11	000
6.4 Interfaces for libSM	000
6.5 Data Definitions for libSM	000
6.6 Interfaces for libICE	000
6.7 Data Definitions for libICE	000
6.8 Interfaces for libXt	000
6.9 Data Definitions for libXt	000
6.10 Interface Definitions for libXt	000
6.11 Interfaces for libXext	000
6.12 Data Definitions for libXext	000
6.13 Interfaces for libXi	000
III OpenGL Libraries	000
7 Libraries	000
7.1 Interfaces for libGL	000
7.2 Data Definitions for libGL	000
A GNU Free Documentation License (Informative)	000
A.1 PREAMBLE	000
A.2 APPLICABILITY AND DEFINITIONS	000
A.3 VERBATIM COPYING	000
A.4 COPYING IN QUANTITY	000
A.5 MODIFICATIONS	000
A.6 COMBINING DOCUMENTS	000
A.7 COLLECTIONS OF DOCUMENTS	000
A.8 AGGREGATION WITH INDEPENDENT WORKS	000
A.9 TRANSLATION	000
A.10 TERMINATION	000
A.11 FUTURE REVISIONS OF THIS LICENSE	000
A.12 How to use this License for your documents	000

List of Tables
2-1 Normative References	000
3-1 Standard Library Names	000
6-1 libX11 Definition	000
6-2 libX11 - X Windows System Interface Function Interfaces	000
6-3 libSM Definition	000
6-4 libSM - Session Management Functions Function Interfaces	000
6-5 libICE Definition	000
6-6 libICE - ICE Functions Function Interfaces	000
6-7 libXt Definition	000
6-8 libXt - X Toolkit Function Interfaces	000
6-9 libXt - X Toolkit Data Interfaces	000
6-10 libXext Definition	000
6-11 libXext - X Shape Extension Function Interfaces	000
6-12 libXext - X Display Power Management Signaling Extension Function Interfaces	000
6-13 libXext - X Shared Memory Extensions Function Interfaces	000
6-14 libXext - X Synchronization Extension Function Interfaces	000
6-15 libXext - X Security Extension Function Interfaces	000
6-16 libXext - X Double Buffer Extension Function Interfaces	000
6-17 libXext - X Extended Visual Interface Extension Function Interfaces	000
6-18 libXi Definition	000
6-19 libXi - XInput Function Interfaces	000
7-1 libGL Definition	000
7-2 libGL - GL X interface Function Interfaces	000
7-3 libGL - OpenGL Function Interfaces	000

Foreword
This is version 3.1 of the LSB-Graphics Module Specification. This version is a preliminary version for review only. Conclusion of work on this version will result in version 3.1 of the LSB-Graphics Moudle Specification.
Implmentations may not claim conformance to this version.

Introduction
The LSB-Graphics Module defines the graphics components that are required to be present on a conforming system.
This document should be used in conjunction with the documents it references. Information referenced in this way is as much a part of this document as is the information explicitly included here.

I Introductory Elements

1 Scope
The LSB Graphics defines the graphical interface found on an LSB conforming system.

2 Normative References
The specifications listed below are referenced in whole or in part by the LSB-Graphics Module Standard. Such references may be normative or informative; a reference to specification shall only be considered normative if it is explicitly cited as such. The LSB-Graphics Module may make normative references to a portion of these specifications (that is, to define a specific function or group of functions); in such cases, only the explicitly referenced portion of the specification is to be considered normative.
Table 2-1 Normative References
Name	Title	URL	
Double Buffer Extension Library	Double Buffer Extension Library - Protocol Version 1.0	http://refspecs.freestandards.org/X11/dbelib.pdf	
ISO C (1999)	ISO/IEC 9899: 1999, Programming Languages --C		
OpenGL	OpenGL Application Binary Interface for Linux	http://oss.sgi.com/projects/ogl-sample/ABI/	
The MIT Shared Memory Extension	MIT-SHM - The MIT Shared Memory Extension - X version 11, Release 5	http://refspecs.freestandards.org/X11/mit-shm.pdf	
X Display Power Management Signaling	X Display Power Management Signaling (DPMS) Extension - Library Specificationi - Version 1.0	http://refspecs.freestandards.org/X11/DPMSlib.pdf	
X Extended Visual Interface Extension	Extended Visual Information Extension - Version 1.0	http://refspecs.freestandards.org/X11/evi.pdf	
X Nonrectangular Window Shape Extension Library	X Nonrectangular Window Shape Extension Library - Version 1.0	http://refspecs.freestandards.org/X11/shapelib.pdf	
X Record Extension Library	X Record Extension Library - Version 1.13	http://refspecs.freestandards.org/X11/recordlib.pdf	
X Security Extension Specification	Security Extension Specification - Version 7.1	http://refspecs.freestandards.org/X11/security.pdf	
X Synchronization Extension Library	X Synchronization Extension Library - Version 3.0	http://refspecs.freestandards.org/X11/synclib.pdf	
X11 C Library	Xlib - C Language X Interface - X Version 11 Release 6.4	http://refspecs.freestandards.org/X11/xlib.pdf	
X11 Input Library	X Input Device Extension Library - X Version 11, Release 6.4	http://refspecs.freestandards.org/X11/Xinput.pdf	
X11 Inter-Client Exchange	Inter-Client Exchange Library - Version 1.0	http://refspecs.freestandards.org/X11/ICElib.pdf	
X11 Session Management	X Session Management Library - Version 1.0	http://refspecs.freestandards.org/X11/SMlib.pdf	
X11 Toolkit Intrinsics	X Toolkit Intrinsics - C Language Interface - X Version 11, Release 6.4	http://refspecs.freestandards.org/X11/intrinsics.pdf	

3 Requirements
3.1 Relevant Libraries
The libraries listed in Table 3-1 shall be available on a Linux Standard Base system, with the specified runtime names. This list may be supplemented or amended by the architecture-specific specification.
Table 3-1 Standard Library Names
Library	Runtime Name	
libX11	libX11.so.6	
libXt	libXt.so.6	
libGL	libGL.so.1	
libXext	libXext.so.6	
libICE	libICE.so.6	
libSM	libSM.so.6	
libXi	libXi.so.6	

These libraries will be in an implementation-defined directory which the dynamic linker shall search by default.

4 Definitions
For the purposes of this document, the following definitions, as specified in the ISO/IEC Directives, Part 2, 2001, 4th Edition, apply:
can
 	be able to; there is a possibility of; it is possible to
cannot
 	be unable to; there is no possibilty of; it is not possible to
may
 	is permitted; is allowed; is permissible
need not
 	it is not required that; no...is required
shall
 	is to; is required to; it is required that; has to; only...is permitted; it is necessary
shall not
 	is not allowed [permitted] [acceptable] [permissible]; is required to be not; is required that...be not; is not to be
should
 	it is recommended that; ought to
should not
 	it is not recommended that; ought not to

5 Terminology
For the purposes of this document, the following terms apply:
implementation-defined
 	Describes a value or behavior that is not defined by this document but is selected by an implementor. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence of the value or behavior. An application that relies on such a value or behavior cannot be assured to be portable across conforming implementations. The implementor shall document such a value or behavior so that it can be used correctly by an application.
Shell Script
 	A file that is read by an interpreter (e.g., awk). The first line of the shell script includes a reference to its interpreter binary.
undefined
 	Describes the nature of a value or behavior not defined by this document which results from use of an invalid program construct or invalid data input. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence or validity of the value or behavior. An application that relies on any particular value or behavior cannot be assured to be portable across conforming implementations.
unspecified
 	Describes the nature of a value or behavior not specified by this document which results from use of a valid program construct or valid data input. The value or behavior may vary among implementations that conform to this document. An application should not rely on the existence or validity of the value or behavior. An application that relies on any particular value or behavior cannot be assured to be portable across conforming implementations.

II Graphic Libraries

6 Libraries
The X Libraries should be built thread-safe.
6.1 Interfaces for libX11
Table 6-1 defines the library name and shared object name for the libX11 library
Table 6-1 libX11 Definition
Library:	libX11	
SONAME:	libX11.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[LSB] This Specification	
[Xlib] X11 C Library	

6.1.1 X Windows System Interface
6.1.1.1 Interfaces for X Windows System Interface
An LSB conforming implementation shall provide the generic functions for X Windows System Interface specified in Table 6-2, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-2 libX11 - X Windows System Interface Function Interfaces
XActivateScreenSaver [Xlib]	XAddConnectionWatch [Xlib]	XAddExtension [Xlib]	XAddHost [Xlib]	
XAddHosts [Xlib]	XAddPixel [Xlib]	XAddToExtensionList [Xlib]	XAddToSaveSet [Xlib]	
XAllPlanes [Xlib]	XAllocClassHint [Xlib]	XAllocColor [Xlib]	XAllocColorCells [Xlib]	
XAllocColorPlanes [Xlib]	XAllocIconSize [Xlib]	XAllocNamedColor [Xlib]	XAllocSizeHints [Xlib]	
XAllocStandardColormap [Xlib]	XAllocWMHints [Xlib]	XAllowEvents [Xlib]	XAutoRepeatOff [Xlib]	
XAutoRepeatOn [Xlib]	XBaseFontNameListOfFontSet [Xlib]	XBell [Xlib]	XBitmapBitOrder [Xlib]	
XBitmapPad [Xlib]	XBitmapUnit [Xlib]	XBlackPixel [Xlib]	XBlackPixelOfScreen [Xlib]	
XCellsOfScreen [Xlib]	XChangeActivePointerGrab [Xlib]	XChangeGC [Xlib]	XChangeKeyboardControl [Xlib]	
XChangeKeyboardMapping [Xlib]	XChangePointerControl [Xlib]	XChangeProperty [Xlib]	XChangeSaveSet [Xlib]	
XChangeWindowAttributes [Xlib]	XCheckIfEvent [Xlib]	XCheckMaskEvent [Xlib]	XCheckTypedEvent [Xlib]	
XCheckTypedWindowEvent [Xlib]	XCheckWindowEvent [Xlib]	XCirculateSubwindows [Xlib]	XCirculateSubwindowsDown [Xlib]	
XCirculateSubwindowsUp [Xlib]	XClearArea [Xlib]	XClearWindow [Xlib]	XClipBox [Xlib]	
XCloseDisplay [Xlib]	XCloseIM [Xlib]	XCloseOM [Xlib]	XConfigureWindow [Xlib]	
XConnectionNumber [Xlib]	XContextDependentDrawing [Xlib]	XContextualDrawing [Xlib]	XConvertCase [Xlib]	
XConvertSelection [Xlib]	XCopyArea [Xlib]	XCopyColormapAndFree [Xlib]	XCopyGC [Xlib]	
XCopyPlane [Xlib]	XCreateBitmapFromData [Xlib]	XCreateColormap [Xlib]	XCreateFontCursor [Xlib]	
XCreateFontSet [Xlib]	XCreateGC [Xlib]	XCreateGlyphCursor [Xlib]	XCreateIC [Xlib]	
XCreateImage [Xlib]	XCreateOC [Xlib]	XCreatePixmap [Xlib]	XCreatePixmapCursor [Xlib]	
XCreatePixmapFromBitmapData [Xlib]	XCreateRegion [Xlib]	XCreateSimpleWindow [Xlib]	XCreateWindow [Xlib]	
XDefaultColormap [Xlib]	XDefaultColormapOfScreen [Xlib]	XDefaultDepth [Xlib]	XDefaultDepthOfScreen [Xlib]	
XDefaultGC [Xlib]	XDefaultGCOfScreen [Xlib]	XDefaultRootWindow [Xlib]	XDefaultScreen [Xlib]	
XDefaultScreenOfDisplay [Xlib]	XDefaultString [Xlib]	XDefaultVisual [Xlib]	XDefaultVisualOfScreen [Xlib]	
XDefineCursor [Xlib]	XDeleteContext [Xlib]	XDeleteModifiermapEntry [Xlib]	XDeleteProperty [Xlib]	
XDestroyIC [Xlib]	XDestroyImage [Xlib]	XDestroyOC [Xlib]	XDestroyRegion [Xlib]	
XDestroySubwindows [Xlib]	XDestroyWindow [Xlib]	XDirectionalDependentDrawing [Xlib]	XDisableAccessControl [Xlib]	
XDisplayCells [Xlib]	XDisplayHeight [Xlib]	XDisplayHeightMM [Xlib]	XDisplayKeycodes [Xlib]	
XDisplayMotionBufferSize [Xlib]	XDisplayName [Xlib]	XDisplayOfIM [Xlib]	XDisplayOfOM [Xlib]	
XDisplayOfScreen [Xlib]	XDisplayPlanes [Xlib]	XDisplayString [Xlib]	XDisplayWidth [Xlib]	
XDisplayWidthMM [Xlib]	XDoesBackingStore [Xlib]	XDoesSaveUnders [Xlib]	XDrawArc [Xlib]	
XDrawArcs [Xlib]	XDrawImageString [Xlib]	XDrawImageString16 [Xlib]	XDrawLine [Xlib]	
XDrawLines [Xlib]	XDrawPoint [Xlib]	XDrawPoints [Xlib]	XDrawRectangle [Xlib]	
XDrawRectangles [Xlib]	XDrawSegments [Xlib]	XDrawString [Xlib]	XDrawString16 [Xlib]	
XDrawText [Xlib]	XDrawText16 [Xlib]	XEHeadOfExtensionList [Xlib]	XESetBeforeFlush [Xlib]	
XESetCloseDisplay [Xlib]	XESetCopyGC [Xlib]	XESetCreateFont [Xlib]	XESetCreateGC [Xlib]	
XESetError [Xlib]	XESetErrorString [Xlib]	XESetEventToWire [Xlib]	XESetFlushGC [Xlib]	
XESetFreeFont [Xlib]	XESetFreeGC [Xlib]	XESetPrintErrorValues [Xlib]	XESetWireToError [Xlib]	
XESetWireToEvent [Xlib]	XEmptyRegion [Xlib]	XEnableAccessControl [Xlib]	XEqualRegion [Xlib]	
XEventMaskOfScreen [Xlib]	XEventsQueued [Xlib]	XExtendedMaxRequestSize [Xlib]	XExtentsOfFontSet [Xlib]	
XFetchBuffer [Xlib]	XFetchBytes [Xlib]	XFetchName [Xlib]	XFillArc [Xlib]	
XFillArcs [Xlib]	XFillPolygon [Xlib]	XFillRectangle [Xlib]	XFillRectangles [Xlib]	
XFilterEvent [Xlib]	XFindContext [Xlib]	XFindOnExtensionList [Xlib]	XFlush [Xlib]	
XFlushGC [Xlib]	XFontsOfFontSet [Xlib]	XForceScreenSaver [Xlib]	XFree [Xlib]	
XFreeColormap [Xlib]	XFreeColors [Xlib]	XFreeCursor [Xlib]	XFreeExtensionList [Xlib]	
XFreeFont [Xlib]	XFreeFontInfo [Xlib]	XFreeFontNames [Xlib]	XFreeFontPath [Xlib]	
XFreeFontSet [Xlib]	XFreeGC [Xlib]	XFreeModifiermap [Xlib]	XFreePixmap [Xlib]	
XFreeStringList [Xlib]	XGContextFromGC [Xlib]	XGeometry [Xlib]	XGetAtomName [Xlib]	
XGetAtomNames [Xlib]	XGetClassHint [Xlib]	XGetCommand [Xlib]	XGetDefault [Xlib]	
XGetErrorDatabaseText [Xlib]	XGetErrorText [Xlib]	XGetFontPath [Xlib]	XGetFontProperty [Xlib]	
XGetGCValues [Xlib]	XGetGeometry [Xlib]	XGetICValues [Xlib]	XGetIMValues [Xlib]	
XGetIconName [Xlib]	XGetIconSizes [Xlib]	XGetImage [Xlib]	XGetInputFocus [Xlib]	
XGetKeyboardControl [Xlib]	XGetKeyboardMapping [Xlib]	XGetModifierMapping [Xlib]	XGetMotionEvents [Xlib]	
XGetNormalHints [Xlib]	XGetOCValues [Xlib]	XGetOMValues [Xlib]	XGetPixel [Xlib]	
XGetPointerControl [Xlib]	XGetPointerMapping [Xlib]	XGetRGBColormaps [Xlib]	XGetScreenSaver [Xlib]	
XGetSelectionOwner [Xlib]	XGetSizeHints [Xlib]	XGetStandardColormap [Xlib]	XGetSubImage [Xlib]	
XGetTextProperty [Xlib]	XGetTransientForHint [Xlib]	XGetVisualInfo [Xlib]	XGetWMClientMachine [Xlib]	
XGetWMColormapWindows [Xlib]	XGetWMHints [Xlib]	XGetWMIconName [Xlib]	XGetWMName [Xlib]	
XGetWMNormalHints [Xlib]	XGetWMProtocols [Xlib]	XGetWMSizeHints [Xlib]	XGetWindowAttributes [Xlib]	
XGetWindowProperty [Xlib]	XGetZoomHints [Xlib]	XGrabButton [Xlib]	XGrabKey [Xlib]	
XGrabKeyboard [Xlib]	XGrabPointer [Xlib]	XGrabServer [Xlib]	XHeightMMOfScreen [Xlib]	
XHeightOfScreen [Xlib]	XIMOfIC [Xlib]	XIconifyWindow [Xlib]	XIfEvent [Xlib]	
XImageByteOrder [Xlib]	XInitExtension [Xlib]	XInitImage [Xlib]	XInitThreads [Xlib]	
XInsertModifiermapEntry [Xlib]	XInstallColormap [Xlib]	XInternAtom [Xlib]	XInternAtoms [Xlib]	
XInternalConnectionNumbers [Xlib]	XIntersectRegion [Xlib]	XKeycodeToKeysym [Xlib]	XKeysymToKeycode [Xlib]	
XKeysymToString [Xlib]	XKillClient [Xlib]	XLastKnownRequestProcessed [Xlib]	XListDepths [Xlib]	
XListExtensions [Xlib]	XListFonts [Xlib]	XListFontsWithInfo [Xlib]	XListHosts [Xlib]	
XListInstalledColormaps [Xlib]	XListPixmapFormats [Xlib]	XListProperties [Xlib]	XLoadFont [Xlib]	
XLoadQueryFont [Xlib]	XLocaleOfFontSet [Xlib]	XLocaleOfIM [Xlib]	XLocaleOfOM [Xlib]	
XLockDisplay [Xlib]	XLookupColor [Xlib]	XLookupKeysym [Xlib]	XLookupString [Xlib]	
XLowerWindow [Xlib]	XMapRaised [Xlib]	XMapSubwindows [Xlib]	XMapWindow [Xlib]	
XMaskEvent [Xlib]	XMatchVisualInfo [Xlib]	XMaxCmapsOfScreen [Xlib]	XMaxRequestSize [Xlib]	
XMinCmapsOfScreen [Xlib]	XMoveResizeWindow [Xlib]	XMoveWindow [Xlib]	XNewModifiermap [Xlib]	
XNextEvent [Xlib]	XNextRequest [Xlib]	XNoOp [Xlib]	XOMOfOC [Xlib]	
XOffsetRegion [Xlib]	XOpenDisplay [Xlib]	XOpenIM [Xlib]	XOpenOM [Xlib]	
XParseColor [Xlib]	XParseGeometry [Xlib]	XPeekEvent [Xlib]	XPeekIfEvent [Xlib]	
XPending [Xlib]	XPlanesOfScreen [Xlib]	XPointInRegion [Xlib]	XPolygonRegion [Xlib]	
XProcessInternalConnection [Xlib]	XProtocolRevision [Xlib]	XProtocolVersion [Xlib]	XPutBackEvent [Xlib]	
XPutImage [Xlib]	XPutPixel [Xlib]	XQLength [Xlib]	XQueryBestCursor [Xlib]	
XQueryBestSize [Xlib]	XQueryBestStipple [Xlib]	XQueryBestTile [Xlib]	XQueryColor [Xlib]	
XQueryColors [Xlib]	XQueryExtension [Xlib]	XQueryFont [Xlib]	XQueryKeymap [Xlib]	
XQueryPointer [Xlib]	XQueryTextExtents [Xlib]	XQueryTextExtents16 [Xlib]	XQueryTree [Xlib]	
XRaiseWindow [Xlib]	XReadBitmapFile [Xlib]	XReadBitmapFileData [Xlib]	XRebindKeysym [Xlib]	
XRecolorCursor [Xlib]	XReconfigureWMWindow [Xlib]	XRectInRegion [Xlib]	XRefreshKeyboardMapping [Xlib]	
XRegisterIMInstantiateCallback [Xlib]	XRemoveConnectionWatch [Xlib]	XRemoveFromSaveSet [Xlib]	XRemoveHost [Xlib]	
XRemoveHosts [Xlib]	XReparentWindow [Xlib]	XResetScreenSaver [Xlib]	XResizeWindow [Xlib]	
XResourceManagerString [Xlib]	XRestackWindows [Xlib]	XRootWindow [Xlib]	XRootWindowOfScreen [Xlib]	
XRotateBuffers [Xlib]	XRotateWindowProperties [Xlib]	XSaveContext [Xlib]	XScreenCount [Xlib]	
XScreenNumberOfScreen [Xlib]	XScreenOfDisplay [Xlib]	XScreenResourceString [Xlib]	XSelectInput [Xlib]	
XSendEvent [Xlib]	XServerVendor [Xlib]	XSetAccessControl [Xlib]	XSetAfterFunction [Xlib]	
XSetArcMode [Xlib]	XSetAuthorization [Xlib]	XSetBackground [Xlib]	XSetClassHint [Xlib]	
XSetClipMask [Xlib]	XSetClipOrigin [Xlib]	XSetClipRectangles [Xlib]	XSetCloseDownMode [Xlib]	
XSetCommand [Xlib]	XSetDashes [Xlib]	XSetErrorHandler [Xlib]	XSetFillRule [Xlib]	
XSetFillStyle [Xlib]	XSetFont [Xlib]	XSetFontPath [Xlib]	XSetForeground [Xlib]	
XSetFunction [Xlib]	XSetGraphicsExposures [Xlib]	XSetICFocus [Xlib]	XSetICValues [Xlib]	
XSetIMValues [Xlib]	XSetIOErrorHandler [Xlib]	XSetIconName [Xlib]	XSetIconSizes [Xlib]	
XSetInputFocus [Xlib]	XSetLineAttributes [Xlib]	XSetLocaleModifiers [Xlib]	XSetModifierMapping [Xlib]	
XSetNormalHints [Xlib]	XSetOCValues [Xlib]	XSetOMValues [Xlib]	XSetPlaneMask [Xlib]	
XSetPointerMapping [Xlib]	XSetRGBColormaps [Xlib]	XSetRegion [Xlib]	XSetScreenSaver [Xlib]	
XSetSelectionOwner [Xlib]	XSetSizeHints [Xlib]	XSetStandardColormap [Xlib]	XSetStandardProperties [Xlib]	
XSetState [Xlib]	XSetStipple [Xlib]	XSetSubwindowMode [Xlib]	XSetTSOrigin [Xlib]	
XSetTextProperty [Xlib]	XSetTile [Xlib]	XSetTransientForHint [Xlib]	XSetWMClientMachine [Xlib]	
XSetWMColormapWindows [Xlib]	XSetWMHints [Xlib]	XSetWMIconName [Xlib]	XSetWMName [Xlib]	
XSetWMNormalHints [Xlib]	XSetWMProperties [Xlib]	XSetWMProtocols [Xlib]	XSetWMSizeHints [Xlib]	
XSetWindowBackground [Xlib]	XSetWindowBackgroundPixmap [Xlib]	XSetWindowBorder [Xlib]	XSetWindowBorderPixmap [Xlib]	
XSetWindowBorderWidth [Xlib]	XSetWindowColormap [Xlib]	XSetZoomHints [Xlib]	XShrinkRegion [Xlib]	
XStoreBuffer [Xlib]	XStoreBytes [Xlib]	XStoreColor [Xlib]	XStoreColors [Xlib]	
XStoreName [Xlib]	XStoreNamedColor [Xlib]	XStringListToTextProperty [Xlib]	XStringToKeysym [Xlib]	
XSubImage [Xlib]	XSubtractRegion [Xlib]	XSupportsLocale [Xlib]	XSync [Xlib]	
XSynchronize [Xlib]	XTextExtents [Xlib]	XTextExtents16 [Xlib]	XTextPropertyToStringList [Xlib]	
XTextWidth [Xlib]	XTextWidth16 [Xlib]	XTranslateCoordinates [Xlib]	XUndefineCursor [Xlib]	
XUngrabButton [Xlib]	XUngrabKey [Xlib]	XUngrabKeyboard [Xlib]	XUngrabPointer [Xlib]	
XUngrabServer [Xlib]	XUninstallColormap [Xlib]	XUnionRectWithRegion [Xlib]	XUnionRegion [Xlib]	
XUnloadFont [Xlib]	XUnlockDisplay [Xlib]	XUnmapSubwindows [Xlib]	XUnmapWindow [Xlib]	
XUnregisterIMInstantiateCallback [Xlib]	XUnsetICFocus [Xlib]	XVaCreateNestedList [Xlib]	XVendorRelease [Xlib]	
XVisualIDFromVisual [Xlib]	XWMGeometry [Xlib]	XWarpPointer [Xlib]	XWhitePixel [Xlib]	
XWhitePixelOfScreen [Xlib]	XWidthMMOfScreen [Xlib]	XWidthOfScreen [Xlib]	XWindowEvent [Xlib]	
XWithdrawWindow [Xlib]	XWriteBitmapFile [Xlib]	XXorRegion [Xlib]	XauDisposeAuth [Xlib]	
XauFileName [Xlib]	XauGetBestAuthByAddr [Xlib]	XauReadAuth [Xlib]	XcmsAddColorSpace [Xlib]	
XcmsAddFunctionSet [Xlib]	XcmsAllocColor [Xlib]	XcmsAllocNamedColor [Xlib]	XcmsCCCOfColormap [Xlib]	
XcmsCIELabClipL [Xlib]	XcmsCIELabClipLab [Xlib]	XcmsCIELabClipab [Xlib]	XcmsCIELabQueryMaxC [Xlib]	
XcmsCIELabQueryMaxL [Xlib]	XcmsCIELabQueryMaxLC [Xlib]	XcmsCIELabQueryMinL [Xlib]	XcmsCIELabToCIEXYZ [Xlib]	
XcmsCIELabWhiteShiftColors [Xlib]	XcmsCIELuvClipL [Xlib]	XcmsCIELuvClipLuv [Xlib]	XcmsCIELuvClipuv [Xlib]	
XcmsCIELuvQueryMaxC [Xlib]	XcmsCIELuvQueryMaxL [Xlib]	XcmsCIELuvQueryMaxLC [Xlib]	XcmsCIELuvQueryMinL [Xlib]	
XcmsCIELuvToCIEuvY [Xlib]	XcmsCIELuvWhiteShiftColors [Xlib]	XcmsCIEXYZToCIELab [Xlib]	XcmsCIEXYZToCIEuvY [Xlib]	
XcmsCIEXYZToCIExyY [Xlib]	XcmsCIEXYZToRGBi [Xlib]	XcmsCIEuvYToCIELuv [Xlib]	XcmsCIEuvYToCIEXYZ [Xlib]	
XcmsCIEuvYToTekHVC [Xlib]	XcmsCIExyYToCIEXYZ [Xlib]	XcmsClientWhitePointOfCCC [Xlib]	XcmsConvertColors [Xlib]	
XcmsCreateCCC [Xlib]	XcmsDefaultCCC [Xlib]	XcmsDisplayOfCCC [Xlib]	XcmsFormatOfPrefix [Xlib]	
XcmsFreeCCC [Xlib]	XcmsLookupColor [Xlib]	XcmsPrefixOfFormat [Xlib]	XcmsQueryBlack [Xlib]	
XcmsQueryBlue [Xlib]	XcmsQueryColor [Xlib]	XcmsQueryColors [Xlib]	XcmsQueryGreen [Xlib]	
XcmsQueryRed [Xlib]	XcmsQueryWhite [Xlib]	XcmsRGBToRGBi [Xlib]	XcmsRGBiToCIEXYZ [Xlib]	
XcmsRGBiToRGB [Xlib]	XcmsScreenNumberOfCCC [Xlib]	XcmsScreenWhitePointOfCCC [Xlib]	XcmsSetCCCOfColormap [Xlib]	
XcmsSetCompressionProc [Xlib]	XcmsSetWhiteAdjustProc [Xlib]	XcmsSetWhitePoint [Xlib]	XcmsStoreColor [Xlib]	
XcmsStoreColors [Xlib]	XcmsTekHVCClipC [Xlib]	XcmsTekHVCClipV [Xlib]	XcmsTekHVCClipVC [Xlib]	
XcmsTekHVCQueryMaxC [Xlib]	XcmsTekHVCQueryMaxV [Xlib]	XcmsTekHVCQueryMaxVC [Xlib]	XcmsTekHVCQueryMaxVSamples [Xlib]	
XcmsTekHVCQueryMinV [Xlib]	XcmsTekHVCToCIEuvY [Xlib]	XcmsTekHVCWhiteShiftColors [Xlib]	XcmsVisualOfCCC [Xlib]	
XkbAllocClientMap [Xlib]	XkbAllocCompatMap [Xlib]	XkbAllocControls [Xlib]	XkbAllocGeomColors [Xlib]	
XkbAllocGeomDoodads [Xlib]	XkbAllocGeomKeyAliases [Xlib]	XkbAllocGeomKeys [Xlib]	XkbAllocGeomOutlines [Xlib]	
XkbAllocGeomOverlayKeys [Xlib]	XkbAllocGeomOverlayRows [Xlib]	XkbAllocGeomOverlays [Xlib]	XkbAllocGeomPoints [Xlib]	
XkbAllocGeomProps [Xlib]	XkbAllocGeomRows [Xlib]	XkbAllocGeomSectionDoodads [Xlib]	XkbAllocGeomSections [Xlib]	
XkbAllocGeomShapes [Xlib]	XkbAllocGeometry [Xlib]	XkbAllocIndicatorMaps [Xlib]	XkbAllocKeyboard [Xlib]	
XkbAllocNames [Xlib]	XkbAllocServerMap [Xlib]	XkbApplyCompatMapToKey [Xlib]	XkbBell [Xlib]	
XkbBellEvent [Xlib]	XkbChangeEnabledControls [Xlib]	XkbChangeMap [Xlib]	XkbChangeNames [Xlib]	
XkbChangeTypesOfKey [Xlib]	XkbComputeEffectiveMap [Xlib]	XkbComputeRowBounds [Xlib]	XkbComputeSectionBounds [Xlib]	
XkbComputeShapeBounds [Xlib]	XkbComputeShapeTop [Xlib]	XkbCopyKeyType [Xlib]	XkbCopyKeyTypes [Xlib]	
XkbFindOverlayForKey [Xlib]	XkbForceBell [Xlib]	XkbFreeClientMap [Xlib]	XkbFreeCompatMap [Xlib]	
XkbFreeComponentList [Xlib]	XkbFreeControls [Xlib]	XkbFreeGeomColors [Xlib]	XkbFreeGeomDoodads [Xlib]	
XkbFreeGeomKeyAliases [Xlib]	XkbFreeGeomKeys [Xlib]	XkbFreeGeomOutlines [Xlib]	XkbFreeGeomOverlayKeys [Xlib]	
XkbFreeGeomOverlayRows [Xlib]	XkbFreeGeomOverlays [Xlib]	XkbFreeGeomPoints [Xlib]	XkbFreeGeomProperties [Xlib]	
XkbFreeGeomRows [Xlib]	XkbFreeGeomSections [Xlib]	XkbFreeGeomShapes [Xlib]	XkbFreeGeometry [Xlib]	
XkbFreeIndicatorMaps [Xlib]	XkbFreeKeyboard [Xlib]	XkbFreeNames [Xlib]	XkbFreeServerMap [Xlib]	
XkbGetAutoRepeatRate [Xlib]	XkbGetCompatMap [Xlib]	XkbGetControls [Xlib]	XkbGetGeometry [Xlib]	
XkbGetIndicatorMap [Xlib]	XkbGetIndicatorState [Xlib]	XkbGetKeyActions [Xlib]	XkbGetKeyBehaviors [Xlib]	
XkbGetKeyExplicitComponents [Xlib]	XkbGetKeyModifierMap [Xlib]	XkbGetKeySyms [Xlib]	XkbGetKeyTypes [Xlib]	
XkbGetKeyboard [Xlib]	XkbGetKeyboardByName [Xlib]	XkbGetMap [Xlib]	XkbGetMapChanges [Xlib]	
XkbGetNamedGeometry [Xlib]	XkbGetNamedIndicator [Xlib]	XkbGetNames [Xlib]	XkbGetState [Xlib]	
XkbGetUpdatedMap [Xlib]	XkbGetVirtualMods [Xlib]	XkbGetXlibControls [Xlib]	XkbIgnoreExtension [Xlib]	
XkbInitCanonicalKeyTypes [Xlib]	XkbKeyTypesForCoreSymbols [Xlib]	XkbKeycodeToKeysym [Xlib]	XkbKeysymToModifiers [Xlib]	
XkbLatchGroup [Xlib]	XkbLatchModifiers [Xlib]	XkbLibraryVersion [Xlib]	XkbListComponents [Xlib]	
XkbLockGroup [Xlib]	XkbLockModifiers [Xlib]	XkbLookupKeyBinding [Xlib]	XkbLookupKeySym [Xlib]	
XkbNoteControlsChanges [Xlib]	XkbNoteMapChanges [Xlib]	XkbNoteNameChanges [Xlib]	XkbOpenDisplay [Xlib]	
XkbQueryExtension [Xlib]	XkbRefreshKeyboardMapping [Xlib]	XkbResizeKeyActions [Xlib]	XkbResizeKeySyms [Xlib]	
XkbResizeKeyType [Xlib]	XkbSelectEventDetails [Xlib]	XkbSelectEvents [Xlib]	XkbSetAtomFuncs [Xlib]	
XkbSetAutoRepeatRate [Xlib]	XkbSetAutoResetControls [Xlib]	XkbSetCompatMap [Xlib]	XkbSetControls [Xlib]	
XkbSetDebuggingFlags [Xlib]	XkbSetDetectableAutoRepeat [Xlib]	XkbSetGeometry [Xlib]	XkbSetIgnoreLockMods [Xlib]	
XkbSetIndicatorMap [Xlib]	XkbSetMap [Xlib]	XkbSetNamedIndicator [Xlib]	XkbSetNames [Xlib]	
XkbSetServerInternalMods [Xlib]	XkbSetXlibControls [Xlib]	XkbToControl [Xlib]	XkbTranslateKeyCode [Xlib]	
XkbTranslateKeySym [Xlib]	XkbUpdateMapFromCore [Xlib]	XkbUseExtension [Xlib]	XkbVirtualModsToReal [Xlib]	
XmbDrawImageString [Xlib]	XmbDrawString [Xlib]	XmbDrawText [Xlib]	XmbLookupString [Xlib]	
XmbResetIC [Xlib]	XmbSetWMProperties [Xlib]	XmbTextEscapement [Xlib]	XmbTextExtents [Xlib]	
XmbTextListToTextProperty [Xlib]	XmbTextPerCharExtents [Xlib]	XmbTextPropertyToTextList [Xlib]	XrmCombineDatabase [Xlib]	
XrmCombineFileDatabase [Xlib]	XrmDestroyDatabase [Xlib]	XrmEnumerateDatabase [Xlib]	XrmGetDatabase [Xlib]	
XrmGetFileDatabase [Xlib]	XrmGetResource [Xlib]	XrmGetStringDatabase [Xlib]	XrmInitialize [Xlib]	
XrmLocaleOfDatabase [Xlib]	XrmMergeDatabases [Xlib]	XrmParseCommand [Xlib]	XrmPermStringToQuark [Xlib]	
XrmPutFileDatabase [Xlib]	XrmPutLineResource [Xlib]	XrmPutResource [Xlib]	XrmPutStringResource [Xlib]	
XrmQGetResource [Xlib]	XrmQGetSearchList [Xlib]	XrmQGetSearchResource [Xlib]	XrmQPutResource [Xlib]	
XrmQPutStringResource [Xlib]	XrmQuarkToString [Xlib]	XrmSetDatabase [Xlib]	XrmStringToBindingQuarkList [Xlib]	
XrmStringToQuark [Xlib]	XrmStringToQuarkList [Xlib]	XrmUniqueQuark [Xlib]	Xutf8TextListToTextProperty [LSB]	
Xutf8TextPropertyToTextList [LSB]	XwcDrawImageString [Xlib]	XwcDrawString [Xlib]	XwcDrawText [Xlib]	
XwcFreeStringList [Xlib]	XwcLookupString [Xlib]	XwcResetIC [Xlib]	XwcTextEscapement [Xlib]	
XwcTextExtents [Xlib]	XwcTextListToTextProperty [Xlib]	XwcTextPerCharExtents [Xlib]	XwcTextPropertyToTextList [Xlib]	

6.2 Data Definitions for libX11
This section defines global identifiers and their values that are associated with interfaces contained in libX11. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
6.2.1 X11/X.h

typedef unsigned long int XID;
typedef unsigned long int Atom;
typedef unsigned long int VisualID;
typedef unsigned long int Time;
typedef XID Window;
typedef XID Font;
typedef XID Pixmap;
typedef unsigned char KeyCode;
typedef XID Drawable;
typedef XID Cursor;
typedef XID Colormap;
typedef XID GContext;
typedef XID KeySym;

#define AllTemporary    0L
#define AnyButton       0L
#define AnyKey  0L
#define AnyPropertyType 0L
#define CopyFromParent  0L
#define CurrentTime     0L
#define NoSymbol        0L
#define None    0L
#define PointerWindow   0L
#define InputFocus      1L
#define ParentRelative  1L
#define PointerRoot     1L

#define KeyPressMask    (1L<<0)
#define KeyReleaseMask  (1L<<1)
#define Button3MotionMask       (1L<<10)
#define Button4MotionMask       (1L<<11)
#define Button5MotionMask       (1L<<12)
#define ButtonMotionMask        (1L<<13)
#define KeymapStateMask (1L<<14)
#define ExposureMask    (1L<<15)
#define VisibilityChangeMask    (1L<<16)
#define StructureNotifyMask     (1L<<17)
#define ResizeRedirectMask      (1L<<18)
#define SubstructureNotifyMask  (1L<<19)
#define ButtonPressMask (1L<<2)
#define SubstructureRedirectMask        (1L<<20)
#define FocusChangeMask (1L<<21)
#define PropertyChangeMask      (1L<<22)
#define ColormapChangeMask      (1L<<23)
#define OwnerGrabButtonMask     (1L<<24)
#define ButtonReleaseMask       (1L<<3)
#define EnterWindowMask (1L<<4)
#define LeaveWindowMask (1L<<5)
#define PointerMotionMask       (1L<<6)
#define PointerMotionHintMask   (1L<<7)
#define Button1MotionMask       (1L<<8)
#define Button2MotionMask       (1L<<9)

#define NoEventMask     0L
#define FocusOut        10
#define KeymapNotify    11
#define Expose  12
#define GraphicsExpose  13
#define NoExpose        14
#define VisibilityNotify        15
#define CreateNotify    16
#define DestroyNotify   17
#define UnmapNotify     18
#define MapNotify       19
#define KeyPress        2
#define MapRequest      20
#define ReparentNotify  21
#define ConfigureNotify 22
#define ConfigureRequest        23
#define GravityNotify   24
#define ResizeRequest   25
#define CirculateNotify 26
#define CirculateRequest        27
#define PropertyNotify  28
#define SelectionClear  29
#define KeyRelease      3
#define SelectionRequest        30
#define SelectionNotify 31
#define ColormapNotify  32
#define ClientMessage   33
#define MappingNotify   34
#define LASTEvent       35
#define ButtonPress     4
#define ButtonRelease   5
#define MotionNotify    6
#define EnterNotify     7
#define LeaveNotify     8
#define FocusIn 9

#define ShiftMask       (1<<0)
#define LockMask        (1<<1)
#define ControlMask     (1<<2)
#define Mod1Mask        (1<<3)
#define Mod2Mask        (1<<4)
#define Mod3Mask        (1<<5)
#define Mod4Mask        (1<<6)
#define Mod5Mask        (1<<7)

#define ShiftMapIndex   0
#define LockMapIndex    1
#define ControlMapIndex 2
#define Mod1MapIndex    3
#define Mod2MapIndex    4
#define Mod3MapIndex    5
#define Mod4MapIndex    6
#define Mod5MapIndex    7

#define Button3Mask     (1<<10)
#define Button4Mask     (1<<11)
#define Button5Mask     (1<<12)
#define AnyModifier     (1<<15)
#define Button1Mask     (1<<8)
#define Button2Mask     (1<<9)

#define Button1 1
#define Button2 2
#define Button3 3
#define Button4 4
#define Button5 5

#define NotifyNormal    0
#define NotifyGrab      1
#define NotifyHint      1
#define NotifyUngrab    2
#define NotifyWhileGrabbed      3

#define NotifyAncestor  0
#define NotifyVirtual   1
#define NotifyInferior  2
#define NotifyNonlinear 3
#define NotifyNonlinearVirtual  4
#define NotifyPointer   5
#define NotifyPointerRoot       6
#define NotifyDetailNone        7

#define VisibilityUnobscured    0
#define VisibilityPartiallyObscured     1
#define VisibilityFullyObscured 2

#define PlaceOnTop      0
#define PlaceOnBottom   1

#define FamilyInternet  0
#define FamilyDECnet    1
#define FamilyChaos     2

#define PropModeReplace 0
#define PropertyNewValue        0
#define PropertyDelete  1

#define ColormapUninstalled     0
#define ColormapInstalled       1

#define GrabModeSync    0
#define GrabModeAsync   1

#define GrabSuccess     0
#define AlreadyGrabbed  1
#define GrabInvalidTime 2
#define GrabNotViewable 3
#define GrabFrozen      4

#define AsyncPointer    0
#define SyncPointer     1
#define ReplayPointer   2
#define AsyncKeyboard   3
#define SyncKeyboard    4
#define ReplayKeyboard  5
#define AsyncBoth       6
#define SyncBoth        7

#define RevertToNone    (int)None
#define RevertToPointerRoot     (int)PointerRoot
#define RevertToParent  2

#define Success 0
#define BadRequest      1
#define BadAccess       10
#define BadAlloc        11
#define BadColor        12
#define FirstExtensionError     128
#define BadGC   13
#define BadIDChoice     14
#define BadName 15
#define BadLength       16
#define BadImplementation       17
#define BadValue        2
#define LastExtensionError      255
#define BadWindow       3
#define BadPixmap       4
#define BadAtom 5
#define BadCursor       6
#define BadFont 7
#define BadMatch        8
#define BadDrawable     9

#define CWX     (1<<0)
#define InputOutput     1
#define InputOnly       2

#define CWBackPixmap    (1L<<0)
#define CWBackPixel     (1L<<1)
#define CWSaveUnder     (1L<<10)
#define CWEventMask     (1L<<11)
#define CWDontPropagate (1L<<12)
#define CWColormap      (1L<<13)
#define CWCursor        (1L<<14)
#define CWBorderPixmap  (1L<<2)
#define CWBorderPixel   (1L<<3)
#define CWBitGravity    (1L<<4)
#define CWWinGravity    (1L<<5)
#define CWBackingStore  (1L<<6)
#define CWBackingPlanes (1L<<7)
#define CWBackingPixel  (1L<<8)
#define CWOverrideRedirect      (1L<<9)

#define CWY     (1<<1)
#define CWWidth (1<<2)
#define CWHeight        (1<<3)
#define CWBorderWidth   (1<<4)
#define CWSibling       (1<<5)
#define CWStackMode     (1<<6)

#define ForgetGravity   0
#define UnmapGravity    0
#define NorthWestGravity        1
#define StaticGravity   10
#define NorthGravity    2
#define NorthEastGravity        3
#define WestGravity     4
#define CenterGravity   5
#define EastGravity     6
#define SouthWestGravity        7
#define SouthGravity    8
#define SouthEastGravity        9

#define NotUseful       0
#define WhenMapped      1
#define Always  2

#define IsUnmapped      0
#define IsUnviewable    1
#define IsViewable      2

#define SetModeInsert   0
#define SetModeDelete   1

#define DestroyAll      0
#define RetainPermanent 1
#define RetainTemporary 2

#define Above   0
#define Below   1
#define TopIf   2
#define BottomIf        3
#define Opposite        4

#define RaiseLowest     0
#define LowerHighest    1

#define PropModePrepend 1
#define PropModeAppend  2

#define GXclear 0x0
#define GXand   0x1
#define GXandReverse    0x2
#define GXcopy  0x3
#define GXandInverted   0x4
#define GXnoop  0x5
#define GXxor   0x6
#define GXor    0x7
#define GXnor   0x8
#define GXequiv 0x9
#define GXinvert        0xa
#define GXorReverse     0xb
#define GXcopyInverted  0xc
#define GXorInverted    0xd
#define GXnand  0xe
#define GXset   0xf

#define LineSolid       0
#define LineOnOffDash   1
#define LineDoubleDash  2

#define CapNotLast      0
#define CapButt 1
#define CapRound        2
#define CapProjecting   3

#define JoinMiter       0
#define JoinRound       1
#define JoinBevel       2

#define FillSolid       0
#define FillTiled       1
#define FillStippled    2
#define FillOpaqueStippled      3

#define EvenOddRule     0
#define WindingRule     1

#define ClipByChildren  0
#define IncludeInferiors        1

#define Unsorted        0
#define XYBitmap        0
#define YSorted 1
#define YXSorted        2
#define YXBanded        3

#define CoordModeOrigin 0
#define CoordModePrevious       1

#define Complex 0
#define Nonconvex       1
#define Convex  2

#define ArcChord        0
#define ArcPieSlice     1

#define GCFunction      (1L<<0)
#define GCPlaneMask     (1L<<1)
#define GCTile  (1L<<10)
#define GCStipple       (1L<<11)
#define GCTileStipXOrigin       (1L<<12)
#define GCTileStipYOrigin       (1L<<13)
#define GCFont  (1L<<14)
#define GCSubwindowMode (1L<<15)
#define GCGraphicsExposures     (1L<<16)
#define GCClipXOrigin   (1L<<17)
#define GCClipYOrigin   (1L<<18)
#define GCClipMask      (1L<<19)
#define GCForeground    (1L<<2)
#define GCDashOffset    (1L<<20)
#define GCDashList      (1L<<21)
#define GCArcMode       (1L<<22)
#define GCBackground    (1L<<3)
#define GCLineWidth     (1L<<4)
#define GCLineStyle     (1L<<5)
#define GCCapStyle      (1L<<6)
#define GCJoinStyle     (1L<<7)
#define GCFillStyle     (1L<<8)
#define GCFillRule      (1L<<9)
#define GCLastBit       22
#define FontChange      255

#define FontLeftToRight 0
#define FontRightToLeft 1

#define XYPixmap        1
#define ZPixmap 2

#define AllocNone       0
#define AllocAll        1

#define DoRed   (1<<0)
#define DoGreen (1<<1)
#define DoBlue  (1<<2)

#define CursorShape     0
#define TileShape       1
#define StippleShape    2

#define AutoRepeatModeOff       0
#define LedModeOff      0
#define AutoRepeatModeOn        1
#define LedModeOn       1
#define AutoRepeatModeDefault   2

#define KBKeyClickPercent       (1L<<0)
#define KBBellPercent   (1L<<1)
#define KBBellPitch     (1L<<2)
#define KBBellDuration  (1L<<3)
#define KBLed   (1L<<4)
#define KBLedMode       (1L<<5)
#define KBKey   (1L<<6)
#define KBAutoRepeatMode        (1L<<7)
#define MappingModifier 0
#define MappingSuccess  0
#define MappingBusy     1
#define MappingKeyboard 1
#define MappingFailed   2
#define MappingPointer  2

#define DisableScreenInterval   0
#define DisableScreenSaver      0
#define DontAllowExposures      0
#define DontPreferBlanking      0
#define AllowExposures  1
#define PreferBlanking  1
#define DefaultBlanking 2
#define DefaultExposures        2

#define ScreenSaverReset        0
#define ScreenSaverActive       1

#define HostInsert      0
#define HostDelete      1

#define DisableAccess   0
#define EnableAccess    1

#define StaticGray      0
#define GrayScale       1
#define StaticColor     2
#define PseudoColor     3
#define TrueColor       4
#define DirectColor     5

#define LSBFirst        0
#define MSBFirst        1
6.2.2 X11/XKBlib.h

extern int XkbAllocClientMap(XkbDescPtr, unsigned int, unsigned int);
extern int XkbAllocCompatMap(XkbDescPtr, unsigned int, unsigned int);
extern int XkbAllocControls(XkbDescPtr, unsigned int);
extern int XkbAllocIndicatorMaps(XkbDescPtr);
extern XkbDescPtrXkbAllocKeyboard(void);
extern int XkbAllocNames(XkbDescPtr, unsigned int, int, int);
extern int XkbAllocServerMap(XkbDescPtr, unsigned int, unsigned int);
extern int XkbApplyCompatMapToKey(XkbDescPtr, KeyCode, XkbChangesPtr);
extern int XkbBell(Display *, Window, int, Atom);
extern int XkbBellEvent(Display *, Window, int, Atom);
extern int XkbChangeEnabledControls(Display *, unsigned int, unsigned int,
                                    unsigned int);
extern int XkbChangeMap(Display *, XkbDescPtr, XkbMapChangesPtr);
extern int XkbChangeNames(Display *, XkbDescPtr, XkbNameChangesPtr);
extern int XkbChangeTypesOfKey(XkbDescPtr, int, int, unsigned int, int *,
                               XkbMapChangesPtr);
extern int XkbComputeEffectiveMap(XkbDescPtr, XkbKeyTypePtr,
                                  unsigned char *);
extern int XkbCopyKeyType(XkbKeyTypePtr, XkbKeyTypePtr);
extern int XkbCopyKeyTypes(XkbKeyTypePtr, XkbKeyTypePtr, int);
extern int XkbForceBell(Display *, int);
extern void XkbFreeClientMap(XkbDescPtr, unsigned int, int);
extern void XkbFreeCompatMap(XkbDescPtr, unsigned int, int);
extern void XkbFreeComponentList(XkbComponentListPtr);
extern void XkbFreeControls(XkbDescPtr, unsigned int, int);
extern void XkbFreeIndicatorMaps(XkbDescPtr);
extern void XkbFreeKeyboard(XkbDescPtr, unsigned int, int);
extern void XkbFreeNames(XkbDescPtr, unsigned int, int);
extern void XkbFreeServerMap(XkbDescPtr, unsigned int, int);
extern int XkbGetAutoRepeatRate(Display *, unsigned int, unsigned int *,
                                unsigned int *);
extern int XkbGetCompatMap(Display *, unsigned int, XkbDescPtr);
extern int XkbGetControls(Display *, unsigned long int, XkbDescPtr);
extern int XkbGetIndicatorMap(Display *, unsigned long int, XkbDescPtr);
extern int XkbGetIndicatorState(Display *, unsigned int, unsigned int *);
extern int XkbGetKeyActions(Display *, unsigned int, unsigned int,
                            XkbDescPtr);
extern int XkbGetKeyBehaviors(Display *, unsigned int, unsigned int,
                              XkbDescPtr);
extern int XkbGetKeyExplicitComponents(Display *, unsigned int,
                                       unsigned int, XkbDescPtr);
extern int XkbGetKeyModifierMap(Display *, unsigned int, unsigned int,
                                XkbDescPtr);
extern int XkbGetKeySyms(Display *, unsigned int, unsigned int,
                         XkbDescPtr);
extern int XkbGetKeyTypes(Display *, unsigned int, unsigned int,
                          XkbDescPtr);
extern XkbDescPtrXkbGetKeyboard(Display *, unsigned int, unsigned int);
extern XkbDescPtrXkbGetKeyboardByName(Display *, unsigned int,
                                      XkbComponentNamesPtr, unsigned int,
                                      unsigned int, int);
extern XkbDescPtrXkbGetMap(Display *, unsigned int, unsigned int);
extern int XkbGetMapChanges(Display *, XkbDescPtr, XkbMapChangesPtr);
extern int XkbGetNamedIndicator(Display *, Atom, int *, int *,
                                XkbIndicatorMapPtr, int *);
extern int XkbGetNames(Display *, unsigned int, XkbDescPtr);
extern int XkbGetState(Display *, unsigned int, XkbStatePtr);
extern int XkbGetUpdatedMap(Display *, unsigned int, XkbDescPtr);
extern int XkbGetVirtualMods(Display *, unsigned int, XkbDescPtr);
extern unsigned int XkbGetXlibControls(Display *);
extern int XkbIgnoreExtension(int);
extern int XkbInitCanonicalKeyTypes(XkbDescPtr, unsigned int, int);
extern int XkbKeyTypesForCoreSymbols(XkbDescPtr, int, KeySym *,
                                     unsigned int, int *, KeySym *);
extern KeySym XkbKeycodeToKeysym(Display *, unsigned int, int, int);
extern unsigned int XkbKeysymToModifiers(Display *, KeySym);
extern int XkbLatchGroup(Display *, unsigned int, unsigned int);
extern int XkbLatchModifiers(Display *, unsigned int, unsigned int,
                             unsigned int);
extern int XkbLibraryVersion(int *, int *);
extern XkbComponentListPtrXkbListComponents(Display *, unsigned int,
                                            XkbComponentNamesPtr, int *);
extern int XkbLockGroup(Display *, unsigned int, unsigned int);
extern int XkbLockModifiers(Display *, unsigned int, unsigned int,
                            unsigned int);
extern int XkbLookupKeyBinding(Display *, KeySym, unsigned int, char *,
                               int, int *);
extern int XkbLookupKeySym(Display *, KeyCode, unsigned int,
                           unsigned int *, KeySym *);
extern void XkbNoteControlsChanges(XkbControlsChangesPtr,
                                   XkbControlsNotifyEvent *, unsigned int);
extern void XkbNoteMapChanges(XkbMapChangesPtr, XkbMapNotifyEvent *,
                              unsigned int);
extern void XkbNoteNameChanges(XkbNameChangesPtr, XkbNamesNotifyEvent *,
                               unsigned int);
extern Display *XkbOpenDisplay(char *, int *, int *, int *, int *, int *);
extern int XkbQueryExtension(Display *, int *, int *, int *, int *, int *);
extern int XkbRefreshKeyboardMapping(XkbMapNotifyEvent *);
extern XkbAction *XkbResizeKeyActions(XkbDescPtr, int, int);
extern KeySym *XkbResizeKeySyms(XkbDescPtr, int, int);
extern int XkbResizeKeyType(XkbDescPtr, int, int, int, int);
extern int XkbSelectEventDetails(Display *, unsigned int, unsigned int,
                                 unsigned long int, unsigned long int);
extern int XkbSelectEvents(Display *, unsigned int, unsigned int,
                           unsigned int);
extern void XkbSetAtomFuncs(XkbInternAtomFunc, XkbGetAtomNameFunc);
extern int XkbSetAutoRepeatRate(Display *, unsigned int, unsigned int,
                                unsigned int);
extern int XkbSetAutoResetControls(Display *, unsigned int, unsigned int *,
                                   unsigned int *);
extern int XkbSetCompatMap(Display *, unsigned int, XkbDescPtr, int);
extern int XkbSetControls(Display *, unsigned long int, XkbDescPtr);
extern int XkbSetDebuggingFlags(Display *, unsigned int, unsigned int,
                                char *, unsigned int, unsigned int,
                                unsigned int *, unsigned int *);
extern int XkbSetDetectableAutoRepeat(Display *, int, int *);
extern int XkbSetIgnoreLockMods(Display *, unsigned int, unsigned int,
                                unsigned int, unsigned int, unsigned int);
extern int XkbSetIndicatorMap(Display *, unsigned long int, XkbDescPtr);
extern int XkbSetMap(Display *, unsigned int, XkbDescPtr);
extern int XkbSetNamedIndicator(Display *, Atom, int, int, int,
                                XkbIndicatorMapPtr);
extern int XkbSetNames(Display *, unsigned int, unsigned int, unsigned int,
                       XkbDescPtr);
extern int XkbSetServerInternalMods(Display *, unsigned int, unsigned int,
                                    unsigned int, unsigned int,
                                    unsigned int);
extern unsigned int XkbSetXlibControls(Display *, unsigned int,
                                       unsigned int);
extern char XkbToControl(char);
extern int XkbTranslateKeyCode(XkbDescPtr, KeyCode, unsigned int,
                               unsigned int *, KeySym *);
extern int XkbTranslateKeySym(Display *, KeySym *, unsigned int, char *,
                              int, int *);
extern int XkbUpdateMapFromCore(XkbDescPtr, KeyCode, int, int, KeySym *,
                                XkbChangesPtr);
extern int XkbUseExtension(Display *, int *, int *);
extern int XkbVirtualModsToReal(XkbDescPtr, unsigned int, unsigned int *);
6.2.3 X11/Xauth.h

typedef struct xauth {
    unsigned short family;
    unsigned short address_length;
    char *address;
    unsigned short number_length;
    char *number;
    unsigned short name_length;
    char *name;
    unsigned short data_length;
    char *data;
} Xauth;
extern void XauDisposeAuth(Xauth *);
extern char *XauFileName(void);
extern Xauth *XauGetBestAuthByAddr(unsigned int, unsigned int,
                                   const char *, unsigned int, char *, int,
                                   char **, int *);
extern Xauth *XauReadAuth(FILE *);
6.2.4 X11/Xcms.h

typedef struct _XcmsFunctionSet {
    XcmsColorSpace **DDColorSpaces;
    XcmsScreenInitProc screenInitProc;
    XcmsScreenFreeProc screenFreeProc;
} XcmsFunctionSet;

typedef unsigned long int XcmsColorFormat;
typedef double XcmsFloat;
typedef struct {
    unsigned short red;
    unsigned short green;
    unsigned short blue;
} XcmsRGB;
typedef struct {
    XcmsFloat red;
    XcmsFloat green;
    XcmsFloat blue;
} XcmsRGBi;
typedef struct {
    XcmsFloat X;
    XcmsFloat Y;
    XcmsFloat Z;
} XcmsCIEXYZ;
typedef struct {
    XcmsFloat u_prime;
    XcmsFloat v_prime;
    XcmsFloat Y;
} XcmsCIEuvY;
typedef struct {
    XcmsFloat x;
    XcmsFloat y;
    XcmsFloat Y;
} XcmsCIExyY;
typedef struct {
    XcmsFloat L_star;
    XcmsFloat a_star;
    XcmsFloat b_star;
} XcmsCIELab;
typedef struct {
    XcmsFloat L_star;
    XcmsFloat u_star;
    XcmsFloat v_star;
} XcmsCIELuv;
typedef struct {
    XcmsFloat H;
    XcmsFloat V;
    XcmsFloat C;
} XcmsTekHVC;
typedef struct {
    XcmsFloat pad0;
    XcmsFloat pad1;
    XcmsFloat pad2;
    XcmsFloat pad3;
} XcmsPad;

typedef union {
    XcmsRGB RGB;
    XcmsRGBi RGBi;
    XcmsCIEXYZ CIEXYZ;
    XcmsCIEuvY CIEuvY;
    XcmsCIExyY CIExyY;
    XcmsCIELab CIELab;
    XcmsCIELuv CIELuv;
    XcmsTekHVC TekHVC;
    XcmsPad Pad;
} XcmsColor;

typedef struct _XcmsPerScrnInfo {
    XcmsColor screenWhitePt;
    XPointer functionSet;
    XPointer screenData;
    unsigned char state;
    char pad[1];
} XcmsPerScrnInfo;

typedef int (*XcmsCompressionProc) (void);
typedef int (*XcmsWhiteAdjustProc) (void);
typedef int (*XcmsScreenInitProc) (void);
typedef void (*XcmsScreenFreeProc) (void);
typedef int (*XcmsConversionProc) (void);
typedef int (*XcmsParseStringProc) (void);

typedef struct _XcmsCCC *XcmsCCC;

typedef XcmsConversionProc *XcmsFuncListPtr;

typedef struct _XcmsColorSpace {
    char *prefix;
    XcmsColorFormat id;
    XcmsParseStringProc parseString;
    XcmsFuncListPtr to_CIEXYZ;
    XcmsFuncListPtr from_CIEXYZ;
    int inverse_flag;
} XcmsColorSpace;
extern int XcmsAddColorSpace(XcmsColorSpace *);
extern int XcmsAddFunctionSet(XcmsFunctionSet *);
extern int XcmsAllocColor(Display *, Colormap, XcmsColor *,
                          XcmsColorFormat);
extern int XcmsAllocNamedColor(Display *, Colormap, const char *,
                               XcmsColor *, XcmsColor *, XcmsColorFormat);
extern XcmsCCC XcmsCCCOfColormap(Display *, Colormap);
extern int XcmsCIELabClipL(XcmsCCC, XcmsColor *, unsigned int,
                           unsigned int, int *);
extern int XcmsCIELabClipLab(XcmsCCC, XcmsColor *, unsigned int,
                             unsigned int, int *);
extern int XcmsCIELabClipab(XcmsCCC, XcmsColor *, unsigned int,
                            unsigned int, int *);
extern int XcmsCIELabQueryMaxC(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELabQueryMaxL(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELabQueryMaxLC(XcmsCCC, XcmsFloat, XcmsColor *);
extern int XcmsCIELabQueryMinL(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELabToCIEXYZ(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIELabWhiteShiftColors(XcmsCCC, XcmsColor *, XcmsColor *,
                                      XcmsColorFormat, XcmsColor *,
                                      unsigned int, int *);
extern int XcmsCIELuvClipL(XcmsCCC, XcmsColor *, unsigned int,
                           unsigned int, int *);
extern int XcmsCIELuvClipLuv(XcmsCCC, XcmsColor *, unsigned int,
                             unsigned int, int *);
extern int XcmsCIELuvClipuv(XcmsCCC, XcmsColor *, unsigned int,
                            unsigned int, int *);
extern int XcmsCIELuvQueryMaxC(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELuvQueryMaxL(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELuvQueryMaxLC(XcmsCCC, XcmsFloat, XcmsColor *);
extern int XcmsCIELuvQueryMinL(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsCIELuvToCIEuvY(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIELuvWhiteShiftColors(XcmsCCC, XcmsColor *, XcmsColor *,
                                      XcmsColorFormat, XcmsColor *,
                                      unsigned int, int *);
extern int XcmsCIEXYZToCIELab(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIEXYZToCIEuvY(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIEXYZToCIExyY(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIEXYZToRGBi(XcmsCCC, XcmsColor *, unsigned int, int *);
extern int XcmsCIEuvYToCIELuv(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIEuvYToCIEXYZ(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIEuvYToTekHVC(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsCIExyYToCIEXYZ(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern XcmsColor *XcmsClientWhitePointOfCCC(XcmsCCC);
extern int XcmsConvertColors(XcmsCCC, XcmsColor *, unsigned int,
                             XcmsColorFormat, int *);
extern XcmsCCC XcmsCreateCCC(Display *, int, Visual *, XcmsColor *,
                             XcmsCompressionProc, XPointer,
                             XcmsWhiteAdjustProc, XPointer);
extern XcmsCCC XcmsDefaultCCC(Display *, int);
extern Display *XcmsDisplayOfCCC(XcmsCCC);
extern XcmsColorFormat XcmsFormatOfPrefix(char *);
extern void XcmsFreeCCC(XcmsCCC);
extern int XcmsLookupColor(Display *, Colormap, const char *, XcmsColor *,
                           XcmsColor *, XcmsColorFormat);
extern char *XcmsPrefixOfFormat(XcmsColorFormat);
extern int XcmsQueryBlack(XcmsCCC, XcmsColorFormat, XcmsColor *);
extern int XcmsQueryBlue(XcmsCCC, XcmsColorFormat, XcmsColor *);
extern int XcmsQueryColor(Display *, Colormap, XcmsColor *,
                          XcmsColorFormat);
extern int XcmsQueryColors(Display *, Colormap, XcmsColor *, unsigned int,
                           XcmsColorFormat);
extern int XcmsQueryGreen(XcmsCCC, XcmsColorFormat, XcmsColor *);
extern int XcmsQueryRed(XcmsCCC, XcmsColorFormat, XcmsColor *);
extern int XcmsQueryWhite(XcmsCCC, XcmsColorFormat, XcmsColor *);
extern int XcmsRGBToRGBi(XcmsCCC, XcmsColor *, unsigned int, int *);
extern int XcmsRGBiToCIEXYZ(XcmsCCC, XcmsColor *, unsigned int, int *);
extern int XcmsRGBiToRGB(XcmsCCC, XcmsColor *, unsigned int, int *);
extern int XcmsScreenNumberOfCCC(XcmsCCC);
extern XcmsColor *XcmsScreenWhitePointOfCCC(XcmsCCC);
extern XcmsCCC XcmsSetCCCOfColormap(Display *, Colormap, XcmsCCC);
extern XcmsCompressionProc XcmsSetCompressionProc(XcmsCCC,
                                                  XcmsCompressionProc,
                                                  XPointer);
extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc(XcmsCCC,
                                                  XcmsWhiteAdjustProc,
                                                  XPointer);
extern int XcmsSetWhitePoint(XcmsCCC, XcmsColor *);
extern int XcmsStoreColor(Display *, Colormap, XcmsColor *);
extern int XcmsStoreColors(Display *, Colormap, XcmsColor *, unsigned int,
                           int *);
extern int XcmsTekHVCClipC(XcmsCCC, XcmsColor *, unsigned int,
                           unsigned int, int *);
extern int XcmsTekHVCClipV(XcmsCCC, XcmsColor *, unsigned int,
                           unsigned int, int *);
extern int XcmsTekHVCClipVC(XcmsCCC, XcmsColor *, unsigned int,
                            unsigned int, int *);
extern int XcmsTekHVCQueryMaxC(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsTekHVCQueryMaxV(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsTekHVCQueryMaxVC(XcmsCCC, XcmsFloat, XcmsColor *);
extern int XcmsTekHVCQueryMaxVSamples(XcmsCCC, XcmsFloat, XcmsColor *,
                                      unsigned int);
extern int XcmsTekHVCQueryMinV(XcmsCCC, XcmsFloat, XcmsFloat, XcmsColor *);
extern int XcmsTekHVCToCIEuvY(XcmsCCC, XcmsColor *, XcmsColor *,
                              unsigned int);
extern int XcmsTekHVCWhiteShiftColors(XcmsCCC, XcmsColor *, XcmsColor *,
                                      XcmsColorFormat, XcmsColor *,
                                      unsigned int, int *);
extern Visual *XcmsVisualOfCCC(XcmsCCC);
6.2.5 X11/Xlib.h

struct _XDisplay;
typedef struct
    XColor;
typedef void *XVaNestedList;
typedef int (*XErrorHandler) (void);
typedef int (*XIOErrorHandler) (void);
typedef void (*XConnectionWatchProc) (void);

typedef char *XPointer;

typedef struct _XExtData {
    int number;
    struct _XExtData *next;
    int (*free_private) (struct _XExtData * extension);
    XPointer private_data;
} XExtData;
typedef struct
    XExtCodes;

typedef struct
    XPixmapFormatValues;

typedef struct
    XGCValues;

typedef struct _XGC *GC;

typedef struct
    Visual;

typedef struct
    Depth;

typedef struct
    Screen;

typedef struct
    ScreenFormat;

typedef struct
    XSetWindowAttributes;
typedef struct
    XWindowAttributes;

typedef struct
    XHostAddress;

typedef struct _XImage {
    int width;
    int height;
    int xoffset;
    int format;
    char *data;
    int byte_order;
    int bitmap_unit;
    int bitmap_bit_order;
    int bitmap_pad;
    int depth;
    int bytes_per_line;
    int bits_per_pixel;
    unsigned long int red_mask;
    unsigned long int green_mask;
    unsigned long int blue_mask;
    XPointer obdata;
    struct funcs f;
} XImage;

typedef struct
    XWindowChanges;

typedef struct
    XSegment;
typedef struct
    XPoint;
typedef struct
    XRectangle;
typedef struct
    XArc;

typedef struct
    XKeyboardControl;

typedef struct
    XKeyboardState;

typedef struct
    XTimeCoord;

typedef struct
    XModifierKeymap;

typedef struct _XDisplay Display;

typedef struct
    XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;
typedef struct
    XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;
typedef struct
    XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;
typedef struct
    XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;
typedef struct
    XFocusChangeEvent;
typedef XFocusChangeEvent XFocusInEvent;
typedef XFocusChangeEvent XFocusOutEvent;
typedef struct
    XKeymapEvent;
typedef struct
    XExposeEvent;
typedef struct
    XGraphicsExposeEvent;
typedef struct
    XNoExposeEvent;
typedef struct
    XVisibilityEvent;
typedef struct
    XCreateWindowEvent;
typedef struct
    XDestroyWindowEvent;
typedef struct
    XUnmapEvent;
typedef struct
    XMapEvent;
typedef struct
    XMapRequestEvent;
typedef struct
    XReparentEvent;
typedef struct
    XConfigureEvent;
typedef struct
    XGravityEvent;
typedef struct
    XResizeRequestEvent;
typedef struct
    XConfigureRequestEvent;
typedef struct
    XCirculateEvent;
typedef struct
    XCirculateRequestEvent;
typedef struct
    XPropertyEvent;
typedef struct
    XSelectionClearEvent;
typedef struct
    XSelectionRequestEvent;
typedef struct
    XSelectionEvent;
typedef struct
    XColormapEvent;
typedef union XClientMessageEvent;
typedef struct
    XMappingEvent;
typedef struct
    XErrorEvent;
typedef struct
    XAnyEvent;

typedef union _XEvent {
    int type;
    XAnyEvent xany;
    XKeyEvent xkey;
    XButtonEvent xbutton;
    XMotionEvent xmotion;
    XCrossingEvent xcrossing;
    XFocusChangeEvent xfocus;
    XExposeEvent xexpose;
    XGraphicsExposeEvent xgraphicsexpose;
    XNoExposeEvent xnoexpose;
    XVisibilityEvent xvisibility;
    XCreateWindowEvent xcreatewindow;
    XDestroyWindowEvent xdestroywindow;
    XUnmapEvent xunmap;
    XMapEvent xmap;
    XMapRequestEvent xmaprequest;
    XReparentEvent xreparent;
    XConfigureEvent xconfigure;
    XGravityEvent xgravity;
    XResizeRequestEvent xresizerequest;
    XConfigureRequestEvent xconfigurerequest;
    XCirculateEvent xcirculate;
    XCirculateRequestEvent xcirculaterequest;
    XPropertyEvent xproperty;
    XSelectionClearEvent xselectionclear;
    XSelectionRequestEvent xselectionrequest;
    XSelectionEvent xselection;
    XColormapEvent xcolormap;
    XClientMessageEvent xclient;
    XMappingEvent xmapping;
    XErrorEvent xerror;
    XKeymapEvent xkeymap;
    long int pad[1];
} XEvent;

typedef struct
    XCharStruct;

typedef struct
    XFontProp;
typedef struct
    XFontStruct;
typedef struct
    XFontSetExtents;

typedef struct
    XTextItem;
typedef struct
    XChar2b;
typedef struct
    XTextItem16;

typedef union XEDataObject;

typedef struct _XOM *XOM;
typedef struct _XOC *XOC;
typedef struct _XOC *XFontSet;

typedef struct
    XmbTextItem;
typedef struct
    XwcTextItem;

typedef struct _XIM *XIM;
typedef struct _XIC *XIC;
typedef void (*XIDProc) (void);
extern int XActivateScreenSaver(Display *);
extern int XAddConnectionWatch(Display *, XConnectionWatchProc, XPointer);
extern XExtCodes *XAddExtension(Display *);
extern int XAddHost(Display *, XHostAddress *);
extern int XAddHosts(Display *, XHostAddress *, int);
extern int XAddToExtensionList(struct _XExtData **, XExtData *);
extern int XAddToSaveSet(Display *, Window);
extern unsigned long int XAllPlanes(void);
extern int XAllocColor(Display *, Colormap, XColor *);
extern int XAllocColorCells(Display *, Colormap, int, unsigned long int *,
                            unsigned int, unsigned long int *,
                            unsigned int);
extern int XAllocColorPlanes(Display *, Colormap, int, unsigned long int *,
                             int, int, int, int, unsigned long int *,
                             unsigned long int *, unsigned long int *);
extern int XAllocNamedColor(Display *, Colormap, const char *, XColor *,
                            XColor *);
extern int XAllowEvents(Display *, int, Time);
extern int XAutoRepeatOff(Display *);
extern int XAutoRepeatOn(Display *);
extern char *XBaseFontNameListOfFontSet(XFontSet);
extern int XBell(Display *, int);
extern int XBitmapBitOrder(Display *);
extern int XBitmapPad(Display *);
extern int XBitmapUnit(Display *);
extern unsigned long int XBlackPixel(Display *, int);
extern unsigned long int XBlackPixelOfScreen(Screen *);
extern int XCellsOfScreen(Screen *);
extern int XChangeActivePointerGrab(Display *, unsigned int, Cursor, Time);
extern int XChangeGC(Display *, GC, unsigned long int, XGCValues *);
extern int XChangeKeyboardControl(Display *, unsigned long int,
                                  XKeyboardControl *);
extern int XChangeKeyboardMapping(Display *, int, int, KeySym *, int);
extern int XChangePointerControl(Display *, int, int, int, int, int);
extern int XChangeProperty(Display *, Window, Atom, Atom, int, int,
                           const unsigned char *, int);
extern int XChangeSaveSet(Display *, Window, int);
extern int XChangeWindowAttributes(Display *, Window, unsigned long int,
                                   XSetWindowAttributes *);
extern int XCheckIfEvent(Display *, XEvent *, struct
                         , XPointer);
extern int XCheckMaskEvent(Display *, long int, XEvent *);
extern int XCheckTypedEvent(Display *, int, XEvent *);
extern int XCheckTypedWindowEvent(Display *, Window, int, XEvent *);
extern int XCheckWindowEvent(Display *, Window, long int, XEvent *);
extern int XCirculateSubwindows(Display *, Window, int);
extern int XCirculateSubwindowsDown(Display *, Window);
extern int XCirculateSubwindowsUp(Display *, Window);
extern int XClearArea(Display *, Window, int, int, unsigned int,
                      unsigned int, int);
extern int XClearWindow(Display *, Window);
extern int XCloseDisplay(Display *);
extern int XCloseIM(XIM);
extern int XCloseOM(XOM);
extern int XConfigureWindow(Display *, Window, unsigned int,
                            XWindowChanges *);
extern int XConnectionNumber(Display *);
extern int XContextDependentDrawing(XFontSet);
extern int XContextualDrawing(XFontSet);
extern int XConvertSelection(Display *, Atom, Atom, Atom, Window, Time);
extern int XCopyArea(Display *, Drawable, Drawable, GC, int, int,
                     unsigned int, unsigned int, int, int);
extern Colormap XCopyColormapAndFree(Display *, Colormap);
extern int XCopyGC(Display *, GC, unsigned long int, GC);
extern int XCopyPlane(Display *, Drawable, Drawable, GC, int, int,
                      unsigned int, unsigned int, int, int,
                      unsigned long int);
extern Pixmap XCreateBitmapFromData(Display *, Drawable, const char *,
                                    unsigned int, unsigned int);
extern Colormap XCreateColormap(Display *, Window, Visual *, int);
extern Cursor XCreateFontCursor(Display *, unsigned int);
extern XFontSet XCreateFontSet(Display *, const char *, char ***, int *,
                               char **);
extern GC XCreateGC(Display *, Drawable, unsigned long int, XGCValues *);
extern Cursor XCreateGlyphCursor(Display *, Font, Font, unsigned int,
                                 unsigned int, XColor *, XColor *);
extern XIC XCreateIC(XIM, ...);
extern XImage *XCreateImage(Display *, Visual *, unsigned int, int, int,
                            char *, unsigned int, unsigned int, int, int);
extern XOC XCreateOC(XOM, ...);
extern Pixmap XCreatePixmap(Display *, Drawable, unsigned int,
                            unsigned int, unsigned int);
extern Cursor XCreatePixmapCursor(Display *, Pixmap, Pixmap, XColor *,
                                  XColor *, unsigned int, unsigned int);
extern Pixmap XCreatePixmapFromBitmapData(Display *, Drawable, char *,
                                          unsigned int, unsigned int,
                                          unsigned long int,
                                          unsigned long int, unsigned int);
extern Window XCreateSimpleWindow(Display *, Window, int, int,
                                  unsigned int, unsigned int, unsigned int,
                                  unsigned long int, unsigned long int);
extern Window XCreateWindow(Display *, Window, int, int, unsigned int,
                            unsigned int, unsigned int, int, unsigned int,
                            Visual *, unsigned long int,
                            XSetWindowAttributes *);
extern Colormap XDefaultColormap(Display *, int);
extern Colormap XDefaultColormapOfScreen(Screen *);
extern int XDefaultDepth(Display *, int);
extern int XDefaultDepthOfScreen(Screen *);
extern GC XDefaultGC(Display *, int);
extern GC XDefaultGCOfScreen(Screen *);
extern Window XDefaultRootWindow(Display *);
extern int XDefaultScreen(Display *);
extern Screen *XDefaultScreenOfDisplay(Display *);
extern Visual *XDefaultVisual(Display *, int);
extern Visual *XDefaultVisualOfScreen(Screen *);
extern int XDefineCursor(Display *, Window, Cursor);
extern XModifierKeymap *XDeleteModifiermapEntry(XModifierKeymap *,
                                                unsigned int, int);
extern int XDeleteProperty(Display *, Window, Atom);
extern void XDestroyIC(XIC);
extern void XDestroyOC(XOC);
extern int XDestroySubwindows(Display *, Window);
extern int XDestroyWindow(Display *, Window);
extern int XDirectionalDependentDrawing(XFontSet);
extern int XDisableAccessControl(Display *);
extern int XDisplayCells(Display *, int);
extern int XDisplayHeight(Display *, int);
extern int XDisplayHeightMM(Display *, int);
extern int XDisplayKeycodes(Display *, int *, int *);
extern unsigned long int XDisplayMotionBufferSize(Display *);
extern char *XDisplayName(const char *);
extern Display *XDisplayOfIM(XIM);
extern Display *XDisplayOfOM(XOM);
extern Display *XDisplayOfScreen(Screen *);
extern int XDisplayPlanes(Display *, int);
extern char *XDisplayString(Display *);
extern int XDisplayWidth(Display *, int);
extern int XDisplayWidthMM(Display *, int);
extern int XDoesBackingStore(Screen *);
extern int XDoesSaveUnders(Screen *);
extern int XDrawArc(Display *, Drawable, GC, int, int, unsigned int,
                    unsigned int, int, int);
extern int XDrawArcs(Display *, Drawable, GC, XArc *, int);
extern int XDrawImageString(Display *, Drawable, GC, int, int,
                            const char *, int);
extern int XDrawImageString16(Display *, Drawable, GC, int, int, XChar2b *,
                              int);
extern int XDrawLine(Display *, Drawable, GC, int, int, int, int);
extern int XDrawLines(Display *, Drawable, GC, XPoint *, int, int);
extern int XDrawPoint(Display *, Drawable, GC, int, int);
extern int XDrawPoints(Display *, Drawable, GC, XPoint *, int, int);
extern int XDrawRectangle(Display *, Drawable, GC, int, int, unsigned int,
                          unsigned int);
extern int XDrawRectangles(Display *, Drawable, GC, XRectangle *, int);
extern int XDrawSegments(Display *, Drawable, GC, XSegment *, int);
extern int XDrawString(Display *, Drawable, GC, int, int, const char *,
                       int);
extern int XDrawString16(Display *, Drawable, GC, int, int, XChar2b *,
                         int);
extern int XDrawText(Display *, Drawable, GC, int, int, XTextItem *, int);
extern int XDrawText16(Display *, Drawable, GC, int, int, XTextItem16 *,
                       int);
extern XExtData **XEHeadOfExtensionList(XEDataObject);
extern int XESetBeforeFlush(void);
extern int *XESetCloseDisplay(void);
extern int XESetCopyGC(void);
extern int XESetCreateFont(void);
extern int XESetCreateGC(void);
extern int XESetError(void);
extern int XESetErrorString(void);
extern int XESetEventToWire(void);
extern int XESetFlushGC(void);
extern int XESetFreeFont(void);
extern int XESetFreeGC(void);
extern int XESetPrintErrorValues(void);
extern int XESetWireToError(void);
extern int XESetWireToEvent(void);
extern int XEnableAccessControl(Display *);
extern long int XEventMaskOfScreen(Screen *);
extern int XEventsQueued(Display *, int);
extern long int XExtendedMaxRequestSize(Display *);
extern XFontSetExtents *XExtentsOfFontSet(XFontSet);
extern char *XFetchBuffer(Display *, int *, int);
extern char *XFetchBytes(Display *, int *);
extern int XFetchName(Display *, Window, char **);
extern int XFillArc(Display *, Drawable, GC, int, int, unsigned int,
                    unsigned int, int, int);
extern int XFillArcs(Display *, Drawable, GC, XArc *, int);
extern int XFillPolygon(Display *, Drawable, GC, XPoint *, int, int, int);
extern int XFillRectangle(Display *, Drawable, GC, int, int, unsigned int,
                          unsigned int);
extern int XFillRectangles(Display *, Drawable, GC, XRectangle *, int);
extern int XFilterEvent(XEvent *, Window);
extern XExtData *XFindOnExtensionList(XExtData * *, int);
extern int XFlush(Display *);
extern void XFlushGC(Display *, GC);
extern int XFontsOfFontSet(XFontSet, XFontStruct * **, char ***);
extern int XForceScreenSaver(Display *, int);
extern int XFree(void *);
extern int XFreeColormap(Display *, Colormap);
extern int XFreeColors(Display *, Colormap, unsigned long int *, int,
                       unsigned long int);
extern int XFreeCursor(Display *, Cursor);
extern int XFreeExtensionList(char **);
extern int XFreeFont(Display *, XFontStruct *);
extern int XFreeFontInfo(char **, XFontStruct *, int);
extern int XFreeFontNames(char **);
extern int XFreeFontPath(char **);
extern void XFreeFontSet(Display *, XFontSet);
extern int XFreeGC(Display *, GC);
extern int XFreeModifiermap(XModifierKeymap *);
extern int XFreePixmap(Display *, Pixmap);
extern void XFreeStringList(char **);
extern GContext XGContextFromGC(GC);
extern int XGeometry(Display *, int, const char *, const char *,
                     unsigned int, unsigned int, unsigned int, int, int,
                     int *, int *, int *, int *);
extern char *XGetAtomName(Display *, Atom);
extern int XGetAtomNames(Display *, Atom *, int, char **);
extern int XGetCommand(Display *, Window, char ***, int *);
extern char *XGetDefault(Display *, const char *, const char *);
extern int XGetErrorDatabaseText(Display *, const char *, const char *,
                                 const char *, char *, int);
extern int XGetErrorText(Display *, int, char *, int);
extern char **XGetFontPath(Display *, int *);
extern int XGetFontProperty(XFontStruct *, Atom, unsigned long int *);
extern int XGetGCValues(Display *, GC, unsigned long int, XGCValues *);
extern int XGetGeometry(Display *, Drawable, Window *, int *, int *,
                        unsigned int *, unsigned int *, unsigned int *,
                        unsigned int *);
extern char *XGetICValues(XIC, ...);
extern char *XGetIMValues(XIM, ...);
extern int XGetIconName(Display *, Window, char **);
extern XImage *XGetImage(Display *, Drawable, int, int, unsigned int,
                         unsigned int, unsigned long int, int);
extern int XGetInputFocus(Display *, Window *, int *);
extern int XGetKeyboardControl(Display *, XKeyboardState *);
extern KeySym *XGetKeyboardMapping(Display *, unsigned int, int, int *);
extern XModifierKeymap *XGetModifierMapping(Display *);
extern XTimeCoord *XGetMotionEvents(Display *, Window, Time, Time, int *);
extern char *XGetOCValues(XOC, ...);
extern char *XGetOMValues(XOM, ...);
extern int XGetPointerControl(Display *, int *, int *, int *);
extern int XGetPointerMapping(Display *, unsigned char *, int);
extern int XGetScreenSaver(Display *, int *, int *, int *, int *);
extern Window XGetSelectionOwner(Display *, Atom);
extern XImage *XGetSubImage(Display *, Drawable, int, int, unsigned int,
                            unsigned int, unsigned long int, int, XImage *,
                            int, int);
extern int XGetTransientForHint(Display *, Window, Window *);
extern int XGetWMColormapWindows(Display *, Window, Window * *, int *);
extern int XGetWMProtocols(Display *, Window, Atom * *, int *);
extern int XGetWindowAttributes(Display *, Window, XWindowAttributes *);
extern int XGetWindowProperty(Display *, Window, Atom, long int, long int,
                              int, Atom, Atom *, int *,
                              unsigned long int *, unsigned long int *,
                              unsigned char **);
extern int XGrabButton(Display *, unsigned int, unsigned int, Window, int,
                       unsigned int, int, int, Window, Cursor);
extern int XGrabKey(Display *, int, unsigned int, Window, int, int, int);
extern int XGrabKeyboard(Display *, Window, int, int, int, Time);
extern int XGrabPointer(Display *, Window, int, unsigned int, int, int,
                        Window, Cursor, Time);
extern int XGrabServer(Display *);
extern int XHeightMMOfScreen(Screen *);
extern int XHeightOfScreen(Screen *);
extern XIM XIMOfIC(XIC);
extern int XIconifyWindow(Display *, Window, int);
extern int XIfEvent(Display *, XEvent *, int, XPointer);
extern int XImageByteOrder(Display *);
extern XExtCodes *XInitExtension(Display *, const char *);
extern int XInitImage(XImage *);
extern int XInitThreads(void);
extern XModifierKeymap *XInsertModifiermapEntry(XModifierKeymap *,
                                                unsigned int, int);
extern int XInstallColormap(Display *, Colormap);
extern Atom XInternAtom(Display *, const char *, int);
extern int XInternAtoms(Display *, char **, int, int, Atom *);
extern int XInternalConnectionNumbers(Display *, int **, int *);
extern KeySym XKeycodeToKeysym(Display *, unsigned int, int);
extern KeyCode XKeysymToKeycode(Display *, KeySym);
extern char *XKeysymToString(KeySym);
extern int XKillClient(Display *, XID);
extern unsigned long int XLastKnownRequestProcessed(Display *);
extern int *XListDepths(Display *, int, int *);
extern char **XListExtensions(Display *, int *);
extern char **XListFonts(Display *, const char *, int, int *);
extern char **XListFontsWithInfo(Display *, const char *, int, int *,
                                 XFontStruct * *);
extern XHostAddress *XListHosts(Display *, int *, int *);
extern Colormap *XListInstalledColormaps(Display *, Window, int *);
extern XPixmapFormatValues *XListPixmapFormats(Display *, int *);
extern Atom *XListProperties(Display *, Window, int *);
extern Font XLoadFont(Display *, const char *);
extern XFontStruct *XLoadQueryFont(Display *, const char *);
extern char *XLocaleOfFontSet(XFontSet);
extern char *XLocaleOfIM(XIM);
extern char *XLocaleOfOM(XOM);
extern void XLockDisplay(Display *);
extern int XLookupColor(Display *, Colormap, const char *, XColor *,
                        XColor *);
extern KeySym XLookupKeysym(XKeyEvent *, int);
extern int XLowerWindow(Display *, Window);
extern int XMapRaised(Display *, Window);
extern int XMapSubwindows(Display *, Window);
extern int XMapWindow(Display *, Window);
extern int XMaskEvent(Display *, long int, XEvent *);
extern int XMaxCmapsOfScreen(Screen *);
extern long int XMaxRequestSize(Display *);
extern int XMinCmapsOfScreen(Screen *);
extern int XMoveResizeWindow(Display *, Window, int, int, unsigned int,
                             unsigned int);
extern int XMoveWindow(Display *, Window, int, int);
extern XModifierKeymap *XNewModifiermap(int);
extern int XNextEvent(Display *, XEvent *);
extern unsigned long int XNextRequest(Display *);
extern int XNoOp(Display *);
extern XOM XOMOfOC(XOC);
extern Display *XOpenDisplay(const char *);
extern XIM XOpenIM(Display *, struct _XrmHashBucketRec *, char *, char *);
extern XOM XOpenOM(Display *, struct _XrmHashBucketRec *, const char *,
                   const char *);
extern int XParseColor(Display *, Colormap, const char *, XColor *);
extern int XParseGeometry(const char *, int *, int *, unsigned int *,
                          unsigned int *);
extern int XPeekEvent(Display *, XEvent *);
extern int XPeekIfEvent(Display *, XEvent *, int, XPointer);
extern int XPending(Display *);
extern int XPlanesOfScreen(Screen *);
extern void XProcessInternalConnection(Display *, int);
extern int XProtocolRevision(Display *);
extern int XProtocolVersion(Display *);
extern int XPutBackEvent(Display *, XEvent *);
extern int XPutImage(Display *, Drawable, GC, XImage *, int, int, int, int,
                     unsigned int, unsigned int);
extern int XQLength(Display *);
extern int XQueryBestCursor(Display *, Drawable, unsigned int,
                            unsigned int, unsigned int *, unsigned int *);
extern int XQueryBestSize(Display *, int, Drawable, unsigned int,
                          unsigned int, unsigned int *, unsigned int *);
extern int XQueryBestStipple(Display *, Drawable, unsigned int,
                             unsigned int, unsigned int *, unsigned int *);
extern int XQueryBestTile(Display *, Drawable, unsigned int, unsigned int,
                          unsigned int *, unsigned int *);
extern int XQueryColor(Display *, Colormap, XColor *);
extern int XQueryColors(Display *, Colormap, XColor *, int);
extern int XQueryExtension(Display *, const char *, int *, int *, int *);
extern XFontStruct *XQueryFont(Display *, XID);
extern int XQueryKeymap(Display *, char);
extern int XQueryPointer(Display *, Window, Window *, Window *, int *,
                         int *, int *, int *, unsigned int *);
extern int XQueryTextExtents(Display *, XID, const char *, int, int *,
                             int *, int *, XCharStruct *);
extern int XQueryTextExtents16(Display *, XID, XChar2b *, int, int *,
                               int *, int *, XCharStruct *);
extern int XQueryTree(Display *, Window, Window *, Window *, Window * *,
                      unsigned int *);
extern int XRaiseWindow(Display *, Window);
extern int XReadBitmapFile(Display *, Drawable, const char *,
                           unsigned int *, unsigned int *, Pixmap *, int *,
                           int *);
extern int XReadBitmapFileData(const char *, unsigned int *,
                               unsigned int *, unsigned char **, int *,
                               int *);
extern int XRebindKeysym(Display *, KeySym, KeySym *, int,
                         const unsigned char *, int);
extern int XRecolorCursor(Display *, Cursor, XColor *, XColor *);
extern int XReconfigureWMWindow(Display *, Window, int, unsigned int,
                                XWindowChanges *);
extern int XRefreshKeyboardMapping(XMappingEvent *);
extern int XRegisterIMInstantiateCallback(Display *,
                                          struct _XrmHashBucketRec *,
                                          char *, char *, XIDProc,
                                          XPointer);
extern void XRemoveConnectionWatch(Display *, XConnectionWatchProc,
                                   XPointer);
extern int XRemoveFromSaveSet(Display *, Window);
extern int XRemoveHost(Display *, XHostAddress *);
extern int XRemoveHosts(Display *, XHostAddress *, int);
extern int XReparentWindow(Display *, Window, Window, int, int);
extern int XResetScreenSaver(Display *);
extern int XResizeWindow(Display *, Window, unsigned int, unsigned int);
extern char *XResourceManagerString(Display *);
extern int XRestackWindows(Display *, Window *, int);
extern Window XRootWindow(Display *, int);
extern Window XRootWindowOfScreen(Screen *);
extern int XRotateBuffers(Display *, int);
extern int XRotateWindowProperties(Display *, Window, Atom *, int, int);
extern int XScreenCount(Display *);
extern int XScreenNumberOfScreen(Screen *);
extern Screen *XScreenOfDisplay(Display *, int);
extern char *XScreenResourceString(Screen *);
extern int XSelectInput(Display *, Window, long int);
extern int XSendEvent(Display *, Window, int, long int, XEvent *);
extern char *XServerVendor(Display *);
extern int XSetAccessControl(Display *, int);
extern int (*XIDProc) (void) XSetAfterFunction;
extern int XSetArcMode(Display *, GC, int);
extern void XSetAuthorization(char *, int, char *, int);
extern int XSetBackground(Display *, GC, unsigned long int);
extern int XSetClipMask(Display *, GC, Pixmap);
extern int XSetClipOrigin(Display *, GC, int, int);
extern int XSetClipRectangles(Display *, GC, int, int, XRectangle *, int,
                              int);
extern int XSetCloseDownMode(Display *, int);
extern int XSetCommand(Display *, Window, char **, int);
extern int XSetDashes(Display *, GC, int, const char *, int);
extern XErrorHandler XSetErrorHandler(XErrorHandler);
extern int XSetFillRule(Display *, GC, int);
extern int XSetFillStyle(Display *, GC, int);
extern int XSetFont(Display *, GC, Font);
extern int XSetFontPath(Display *, char **, int);
extern int XSetForeground(Display *, GC, unsigned long int);
extern int XSetFunction(Display *, GC, int);
extern int XSetGraphicsExposures(Display *, GC, int);
extern void XSetICFocus(XIC);
extern char *XSetICValues(XIC, ...);
extern XIOErrorHandler XSetIOErrorHandler(XIOErrorHandler);
extern int XSetIconName(Display *, Window, const char *);
extern int XSetInputFocus(Display *, Window, int, Time);
extern int XSetLineAttributes(Display *, GC, unsigned int, int, int, int);
extern char *XSetLocaleModifiers(const char *);
extern int XSetModifierMapping(Display *, XModifierKeymap *);
extern char *XSetOCValues(XOC, ...);
extern char *XSetOMValues(XOM, ...);
extern int XSetPlaneMask(Display *, GC, unsigned long int);
extern int XSetPointerMapping(Display *, const unsigned char *, int);
extern int XSetScreenSaver(Display *, int, int, int, int);
extern int XSetSelectionOwner(Display *, Atom, Window, Time);
extern int XSetState(Display *, GC, unsigned long int, unsigned long int,
                     int, unsigned long int);
extern int XSetStipple(Display *, GC, Pixmap);
extern int XSetSubwindowMode(Display *, GC, int);
extern int XSetTSOrigin(Display *, GC, int, int);
extern int XSetTile(Display *, GC, Pixmap);
extern int XSetTransientForHint(Display *, Window, Window);
extern int XSetWMColormapWindows(Display *, Window, Window *, int);
extern int XSetWMProtocols(Display *, Window, Atom *, int);
extern int XSetWindowBackground(Display *, Window, unsigned long int);
extern int XSetWindowBackgroundPixmap(Display *, Window, Pixmap);
extern int XSetWindowBorder(Display *, Window, unsigned long int);
extern int XSetWindowBorderPixmap(Display *, Window, Pixmap);
extern int XSetWindowBorderWidth(Display *, Window, unsigned int);
extern int XSetWindowColormap(Display *, Window, Colormap);
extern int XStoreBuffer(Display *, const char *, int, int);
extern int XStoreBytes(Display *, const char *, int);
extern int XStoreColor(Display *, Colormap, XColor *);
extern int XStoreColors(Display *, Colormap, XColor *, int);
extern int XStoreName(Display *, Window, const char *);
extern int XStoreNamedColor(Display *, Colormap, const char *,
                            unsigned long int, int);
extern KeySym XStringToKeysym(const char *);
extern int XSupportsLocale(void);
extern int XSync(Display *, int);
extern int (*XIDProc) (void) XSynchronize;
extern int XTextExtents(XFontStruct *, const char *, int, int *, int *,
                        int *, XCharStruct *);
extern int XTextExtents16(XFontStruct *, XChar2b *, int, int *, int *,
                          int *, XCharStruct *);
extern int XTextWidth(XFontStruct *, const char *, int);
extern int XTextWidth16(XFontStruct *, XChar2b *, int);
extern int XTranslateCoordinates(Display *, Window, Window, int, int,
                                 int *, int *, Window *);
extern int XUndefineCursor(Display *, Window);
extern int XUngrabButton(Display *, unsigned int, unsigned int, Window);
extern int XUngrabKey(Display *, int, unsigned int, Window);
extern int XUngrabKeyboard(Display *, Time);
extern int XUngrabPointer(Display *, Time);
extern int XUngrabServer(Display *);
extern int XUninstallColormap(Display *, Colormap);
extern int XUnloadFont(Display *, Font);
extern void XUnlockDisplay(Display *);
extern int XUnmapSubwindows(Display *, Window);
extern int XUnmapWindow(Display *, Window);
extern int XUnregisterIMInstantiateCallback(Display *,
                                            struct _XrmHashBucketRec *,
                                            char *, char *, XIDProc,
                                            XPointer);
extern void XUnsetICFocus(XIC);
extern XVaNestedList XVaCreateNestedList(int, ...);
extern int XVendorRelease(Display *);
extern VisualID XVisualIDFromVisual(Visual *);
extern int XWarpPointer(Display *, Window, Window, int, int, unsigned int,
                        unsigned int, int, int);
extern unsigned long int XWhitePixel(Display *, int);
extern unsigned long int XWhitePixelOfScreen(Screen *);
extern int XWidthMMOfScreen(Screen *);
extern int XWidthOfScreen(Screen *);
extern int XWindowEvent(Display *, Window, long int, XEvent *);
extern int XWithdrawWindow(Display *, Window, int);
extern int XWriteBitmapFile(Display *, const char *, Pixmap, unsigned int,
                            unsigned int, int, int);
extern void XmbDrawImageString(Display *, Drawable, XFontSet, GC, int, int,
                               const char *, int);
extern void XmbDrawString(Display *, Drawable, XFontSet, GC, int, int,
                          const char *, int);
extern void XmbDrawText(Display *, Drawable, GC, int, int, XmbTextItem *,
                        int);
extern int XmbLookupString(XIC, XKeyPressedEvent *, char *, int, KeySym *,
                           int *);
extern char *XmbResetIC(XIC);
extern int XmbTextEscapement(XFontSet, const char *, int);
extern int XmbTextExtents(XFontSet, const char *, int, XRectangle *,
                          XRectangle *);
extern int XmbTextPerCharExtents(XFontSet, const char *, int, XRectangle *,
                                 XRectangle *, int, int *, XRectangle *,
                                 XRectangle *);
extern void XrmInitialize(void);
extern void XwcDrawImageString(Display *, Drawable, XFontSet, GC, int, int,
                               wchar_t *, int);
extern void XwcDrawString(Display *, Drawable, XFontSet, GC, int, int,
                          wchar_t *, int);
extern void XwcDrawText(Display *, Drawable, GC, int, int, XwcTextItem *,
                        int);
extern int XwcLookupString(XIC, XKeyPressedEvent *, wchar_t *, int,
                           KeySym *, int *);
extern wchar_t *XwcResetIC(XIC);
extern int XwcTextEscapement(XFontSet, wchar_t *, int);
extern int XwcTextExtents(XFontSet, wchar_t *, int, XRectangle *,
                          XRectangle *);
extern int XwcTextPerCharExtents(XFontSet, wchar_t *, int, XRectangle *,
                                 XRectangle *, int, int *, XRectangle *,
                                 XRectangle *);
6.2.6 X11/Xresource.h

extern void XrmCombineDatabase(XrmDatabase, XrmDatabase *, int);
extern int XrmCombineFileDatabase(const char *, XrmDatabase *, int);
extern void XrmDestroyDatabase(XrmDatabase);
extern int XrmEnumerateDatabase(XrmDatabase, XrmNameList, XrmClassList,
                                int, int, XPointer);
extern XrmDatabase XrmGetDatabase(Display *);
extern XrmDatabase XrmGetFileDatabase(const char *);
extern int XrmGetResource(XrmDatabase, const char *, const char *, char **,
                          XrmValue *);
extern XrmDatabase XrmGetStringDatabase(const char *);
extern const char *XrmLocaleOfDatabase(XrmDatabase);
extern void XrmMergeDatabases(XrmDatabase, XrmDatabase *);
extern void XrmParseCommand(XrmDatabase *, XrmOptionDescList, int,
                            const char *, int *, char **);
extern XrmQuark XrmPermStringToQuark(const char *);
extern void XrmPutFileDatabase(XrmDatabase, const char *);
extern void XrmPutLineResource(XrmDatabase *, const char *);
extern void XrmPutResource(XrmDatabase *, const char *, const char *,
                           XrmValue *);
extern void XrmPutStringResource(XrmDatabase *, const char *,
                                 const char *);
extern int XrmQGetResource(XrmDatabase, XrmNameList, XrmClassList,
                           XrmRepresentation *, XrmValue *);
extern int XrmQGetSearchList(XrmDatabase, XrmNameList, XrmClassList,
                             XrmSearchList, int);
extern int XrmQGetSearchResource(XrmSearchList, XrmName, XrmClass,
                                 XrmRepresentation *, XrmValue *);
extern void XrmQPutResource(XrmDatabase *, XrmBindingList, XrmQuarkList,
                            XrmRepresentation, XrmValue *);
extern void XrmQPutStringResource(XrmDatabase *, XrmBindingList,
                                  XrmQuarkList, const char *);
extern XrmString XrmQuarkToString(XrmQuark);
extern void XrmSetDatabase(Display *, XrmDatabase);
extern void XrmStringToBindingQuarkList(const char *, XrmBindingList,
                                        XrmQuarkList);
extern XrmQuark XrmStringToQuark(const char *);
extern void XrmStringToQuarkList(const char *, XrmQuarkList);
extern XrmQuark XrmUniqueQuark(void);
6.2.7 X11/Xutil.h

typedef struct
    XSizeHints;
typedef struct
    XWMHints;
typedef struct
    XTextProperty;
typedef struct
    XIconSize;
typedef struct
    XClassHint;
typedef struct _XComposeStatus {
    XPointer compose_ptr;
    int chars_matched;
} XComposeStatus;
typedef struct _XRegion *Region;
typedef struct
    XVisualInfo;
typedef struct
    XStandardColormap;
typedef int XContext;
typedef enum XICCEncodingStyle;
extern int XAddPixel(void);
extern XClassHint *XAllocClassHint(void);
extern XIconSize *XAllocIconSize(void);
extern XSizeHints *XAllocSizeHints(void);
extern XStandardColormap *XAllocStandardColormap(void);
extern XWMHints *XAllocWMHints(void);
extern int XClipBox(Region, XRectangle *);
extern void XConvertCase(KeySym, KeySym *, KeySym *);
extern Region XCreateRegion(void);
extern const char *XDefaultString(void);
extern int XDeleteContext(Display *, XID, XContext);
extern int XDestroyImage(XImage *);
extern int XDestroyRegion(Region);
extern int XEmptyRegion(Region);
extern int XEqualRegion(Region, Region);
extern int XFindContext(Display *, XID, XContext, XPointer *);
extern int XGetClassHint(Display *, Window, XClassHint *);
extern int XGetIconSizes(Display *, Window, XIconSize * *, int *);
extern int XGetNormalHints(Display *, Window, XSizeHints *);
extern unsigned long int XGetPixel(void);
extern int XGetRGBColormaps(Display *, Window, XStandardColormap * *,
                            int *, Atom);
extern int XGetSizeHints(Display *, Window, XSizeHints *, Atom);
extern int XGetStandardColormap(Display *, Window, XStandardColormap *,
                                Atom);
extern int XGetTextProperty(Display *, Window, XTextProperty *, Atom);
extern XVisualInfo *XGetVisualInfo(Display *, long int, XVisualInfo *,
                                   int *);
extern int XGetWMClientMachine(Display *, Window, XTextProperty *);
extern XWMHints *XGetWMHints(Display *, Window);
extern int XGetWMIconName(Display *, Window, XTextProperty *);
extern int XGetWMName(Display *, Window, XTextProperty *);
extern int XGetWMNormalHints(Display *, Window, XSizeHints *, long int *);
extern int XGetWMSizeHints(Display *, Window, XSizeHints *, long int *,
                           Atom);
extern int XGetZoomHints(Display *, Window, XSizeHints *);
extern int XIntersectRegion(Region, Region, Region);
extern int XLookupString(XKeyEvent *, char *, int, KeySym *,
                         XComposeStatus *);
extern int XMatchVisualInfo(Display *, int, int, int, XVisualInfo *);
extern int XOffsetRegion(Region, int, int);
extern int XPointInRegion(Region, int, int);
extern Region XPolygonRegion(XPoint *, int, int);
extern int XPutPixel(void);
extern int XRectInRegion(Region, int, int, unsigned int, unsigned int);
extern int XSaveContext(Display *, XID, XContext, const char *);
extern int XSetClassHint(Display *, Window, XClassHint *);
extern int XSetIconSizes(Display *, Window, XIconSize *, int);
extern int XSetNormalHints(Display *, Window, XSizeHints *);
extern void XSetRGBColormaps(Display *, Window, XStandardColormap *, int,
                             Atom);
extern int XSetRegion(Display *, GC, Region);
extern int XSetSizeHints(Display *, Window, XSizeHints *, Atom);
extern void XSetStandardColormap(Display *, Window, XStandardColormap *,
                                 Atom);
extern int XSetStandardProperties(Display *, Window, const char *,
                                  const char *, Pixmap, char **, int,
                                  XSizeHints *);
extern void XSetTextProperty(Display *, Window, XTextProperty *, Atom);
extern void XSetWMClientMachine(Display *, Window, XTextProperty *);
extern int XSetWMHints(Display *, Window, XWMHints *);
extern void XSetWMIconName(Display *, Window, XTextProperty *);
extern void XSetWMName(Display *, Window, XTextProperty *);
extern void XSetWMNormalHints(Display *, Window, XSizeHints *);
extern void XSetWMProperties(Display *, Window, XTextProperty *,
                             XTextProperty *, char **, int, XSizeHints *,
                             XWMHints *, XClassHint *);
extern void XSetWMSizeHints(Display *, Window, XSizeHints *, Atom);
extern int XSetZoomHints(Display *, Window, XSizeHints *);
extern int XShrinkRegion(Region, int, int);
extern int XStringListToTextProperty(char **, int, XTextProperty *);
extern XImage *XSubImage(void);
extern int XSubtractRegion(Region, Region, Region);
extern int XTextPropertyToStringList(XTextProperty *, char ***, int *);
extern int XUnionRectWithRegion(XRectangle *, Region, Region);
extern int XUnionRegion(Region, Region, Region);
extern int XWMGeometry(Display *, int, const char *, const char *,
                       unsigned int, XSizeHints *, int *, int *, int *,
                       int *, int *);
extern int XXorRegion(Region, Region, Region);
extern void XmbSetWMProperties(Display *, Window, const char *,
                               const char *, char **, int, XSizeHints *,
                               XWMHints *, XClassHint *);
extern int XmbTextListToTextProperty(Display *, char **, int,
                                     XICCEncodingStyle, XTextProperty *);
extern int XmbTextPropertyToTextList(Display *, XTextProperty *, char ***,
                                     int *);
extern void XwcFreeStringList(wchar_t * *);
extern int XwcTextListToTextProperty(Display *, wchar_t * *, int,
                                     XICCEncodingStyle, XTextProperty *);
extern int XwcTextPropertyToTextList(Display *, XTextProperty *,
                                     wchar_t * **, int *);
extern int Xutf8TextPropertyToTextList(Display *, XTextProperty *,
                                       char ***, int *);
extern int Xutf8TextListToTextProperty(Display *, char **, int,
                                       XICCEncodingStyle, XTextProperty *);
6.3 Interface Definitions for libX11
The interfaces defined on the following pages are included in libX11 and are defined by this specification. Unless otherwise noted, these interfaces shall be included in the source standard.
Other interfaces listed in Section 6.1 shall behave as described in the referenced base document.
6.4 Interfaces for libSM
Table 6-3 defines the library name and shared object name for the libSM library
Table 6-3 libSM Definition
Library:	libSM	
SONAME:	libSM.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[XSM] X11 Session Management	

6.4.1 Session Management Functions
6.4.1.1 Interfaces for Session Management Functions
An LSB conforming implementation shall provide the generic functions for Session Management Functions specified in Table 6-4, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-4 libSM - Session Management Functions Function Interfaces
SmFreeProperty [XSM]	SmFreeReasons [XSM]	SmcClientID [XSM]	SmcCloseConnection [XSM]	
SmcDeleteProperties [XSM]	SmcGetIceConnection [XSM]	SmcGetProperties [XSM]	SmcInteractDone [XSM]	
SmcInteractRequest [XSM]	SmcModifyCallbacks [XSM]	SmcOpenConnection [XSM]	SmcProtocolRevision [XSM]	
SmcProtocolVersion [XSM]	SmcRelease [XSM]	SmcRequestSaveYourself [XSM]	SmcRequestSaveYourselfPhase2 [XSM]	
SmcSaveYourselfDone [XSM]	SmcSetErrorHandler [XSM]	SmcSetProperties [XSM]	SmcVendor [XSM]	
SmsCleanUp [XSM]	SmsClientHostName [XSM]	SmsClientID [XSM]	SmsDie [XSM]	
SmsGenerateClientID [XSM]	SmsGetIceConnection [XSM]	SmsInitialize [XSM]	SmsInteract [XSM]	
SmsProtocolRevision [XSM]	SmsProtocolVersion [XSM]	SmsRegisterClientReply [XSM]	SmsReturnProperties [XSM]	
SmsSaveComplete [XSM]	SmsSaveYourself [XSM]	SmsSaveYourselfPhase2 [XSM]	SmsSetErrorHandler [XSM]	
SmsShutdownCancelled [XSM]	

	

6.5 Data Definitions for libSM
This section defines global identifiers and their values that are associated with interfaces contained in libSM. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
6.5.1 X11/SM/SMlib.h

typedef IcePointer SmPointer;
typedef struct _SmcConn *SmcConn;
typedef struct _SmsConn *SmsConn;

typedef struct {
    int length;
    SmPointer value;
} SmPropValue;
typedef struct {
    char *name;
    char *type;
    int num_vals;
    SmPropValue *vals;
} SmProp;

typedef enum {
    SmcClosedNow,
    SmcClosedASAP,
    SmcConnectionInUse
} SmcCloseStatus;

typedef void (*SmcSaveYourselfPhase2Proc) (void);
typedef void (*SmcInteractProc) (void);
typedef void (*SmcDieProc) (void);
typedef void (*SmcShutdownCancelledProc) (void);
typedef void (*SmcSaveCompleteProc) (void);
typedef void (*SmcPropReplyProc) (void);

typedef struct {
    SmcShutdownCancelledProc callback;
    SmPointer client_data;
} SmcCallbacks;

typedef void (*SmsSetPropertiesProc) (void);
typedef void (*SmsDeletePropertiesProc) (void);
typedef void (*SmsGetPropertiesProc) (void);

typedef struct {
    SmsGetPropertiesProc callback;
    SmPointer manager_data;
} SmsCallbacks;

typedef int (*SmsNewClientProc) (void);

typedef void (*SmcErrorHandler) (void);
typedef void (*SmsErrorHandler) (void);

extern void SmFreeProperty(SmProp *);
extern void SmFreeReasons(int, char **);
extern char *SmcClientID(SmcConn);
extern SmcCloseStatus SmcCloseConnection(SmcConn, int, char **);
extern void SmcDeleteProperties(SmcConn, int, char **);
extern IceConn SmcGetIceConnection(SmcConn);
extern int SmcGetProperties(SmcConn, SmcPropReplyProc, SmPointer);
extern void SmcInteractDone(SmcConn, int);
extern int SmcInteractRequest(SmcConn, int, SmcInteractProc, SmPointer);
extern void SmcModifyCallbacks(SmcConn, unsigned long int, SmcCallbacks *);
extern SmcConn SmcOpenConnection(char *, SmPointer, int, int,
                                 unsigned long int, SmcCallbacks *, char *,
                                 char **, int, char *);
extern int SmcProtocolRevision(SmcConn);
extern int SmcProtocolVersion(SmcConn);
extern char *SmcRelease(SmcConn);
extern void SmcRequestSaveYourself(SmcConn, int, int, int, int, int);
extern int SmcRequestSaveYourselfPhase2(SmcConn, SmcSaveYourselfPhase2Proc,
                                        SmPointer);
extern void SmcSaveYourselfDone(SmcConn, int);
extern SmcErrorHandler SmcSetErrorHandler(SmcErrorHandler);
extern void SmcSetProperties(SmcConn, int, SmProp * *);
extern char *SmcVendor(SmcConn);
extern void SmsCleanUp(SmsConn);
extern char *SmsClientHostName(SmsConn);
extern char *SmsClientID(SmsConn);
extern void SmsDie(SmsConn);
extern char *SmsGenerateClientID(SmsConn);
extern IceConn SmsGetIceConnection(SmsConn);
extern int SmsInitialize(char *, char *, SmsNewClientProc, SmPointer,
                         IceHostBasedAuthProc, int, char *);
extern void SmsInteract(SmsConn);
extern int SmsProtocolRevision(SmsConn);
extern int SmsProtocolVersion(SmsConn);
extern int SmsRegisterClientReply(SmsConn, char *);
extern void SmsReturnProperties(SmsConn, int, SmProp * *);
extern void SmsSaveComplete(SmsConn);
extern void SmsSaveYourself(SmsConn, int, int, int, int);
extern void SmsSaveYourselfPhase2(SmsConn);
extern SmsErrorHandler SmsSetErrorHandler(SmsErrorHandler);
extern void SmsShutdownCancelled(SmsConn);
6.6 Interfaces for libICE
Table 6-5 defines the library name and shared object name for the libICE library
Table 6-5 libICE Definition
Library:	libICE	
SONAME:	libICE.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[XICE] X11 Inter-Client Exchange	

6.6.1 ICE Functions
6.6.1.1 Interfaces for ICE Functions
An LSB conforming implementation shall provide the generic functions for ICE Functions specified in Table 6-6, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-6 libICE - ICE Functions Function Interfaces
IceAcceptConnection [XICE]	IceAddConnectionWatch [XICE]	IceAllocScratch [XICE]	IceAppLockConn [XICE]	
IceAppUnlockConn [XICE]	IceAuthFileName [XICE]	IceCheckShutdownNegotiation [XICE]	IceCloseConnection [XICE]	
IceComposeNetworkIdList [XICE]	IceConnectionNumber [XICE]	IceConnectionStatus [XICE]	IceConnectionString [XICE]	
IceFlush [XICE]	IceFreeAuthFileEntry [XICE]	IceFreeListenObjs [XICE]	IceGenerateMagicCookie [XICE]	
IceGetAuthFileEntry [XICE]	IceGetConnectionContext [XICE]	IceGetInBufSize [XICE]	IceGetListenConnectionNumber [XICE]	
IceGetListenConnectionString [XICE]	IceGetOutBufSize [XICE]	IceInitThreads [XICE]	IceLastReceivedSequenceNumber [XICE]	
IceLastSentSequenceNumber [XICE]	IceListenForConnections [XICE]	IceListenForWellKnownConnections [XICE]	IceLockAuthFile [XICE]	
IceOpenConnection [XICE]	IcePing [XICE]	IceProcessMessages [XICE]	IceProtocolRevision [XICE]	
IceProtocolSetup [XICE]	IceProtocolShutdown [XICE]	IceProtocolVersion [XICE]	IceReadAuthFileEntry [XICE]	
IceRegisterForProtocolReply [XICE]	IceRegisterForProtocolSetup [XICE]	IceRelease [XICE]	IceRemoveConnectionWatch [XICE]	
IceSetErrorHandler [XICE]	IceSetHostBasedAuthProc [XICE]	IceSetIOErrorHandler [XICE]	IceSetPaAuthData [XICE]	
IceSetShutdownNegotiation [XICE]	IceSwapping [XICE]	IceUnlockAuthFile [XICE]	IceVendor [XICE]	
IceWriteAuthFileEntry [XICE]	

	

6.7 Data Definitions for libICE
This section defines global identifiers and their values that are associated with interfaces contained in libICE. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
6.7.1 X11/ICE/ICElib.h

typedef void *IcePointer;
typedef enum {
    IcePoAuthHaveReply,
    IcePoAuthRejected,
    IcePoAuthFailed,
    IcePoAuthDoneCleanup
} IcePoAuthStatus;
typedef enum {
    IcePaAuthContinue,
    IcePaAuthAccepted,
    IcePaAuthRejected,
    IcePaAuthFailed
} IcePaAuthStatus;
typedef enum {
    IceConnectPending,
    IceConnectAccepted,
    IceConnectRejected,
    IceConnectIOError
} IceConnectStatus;
typedef enum {
    IceProtocolSetupSuccess,
    IceProtocolSetupFailure,
    IceProtocolSetupIOError,
    IceProtocolAlreadyActive
} IceProtocolSetupStatus;
typedef enum {
    IceAcceptSuccess,
    IceAcceptFailure,
    IceAcceptBadMalloc
} IceAcceptStatus;
typedef enum {
    IceClosedNow,
    IceClosedASAP,
    IceConnectionInUse,
    IceStartedShutdownNegotiation
} IceCloseStatus;
typedef enum {
    IceProcessMessagesSuccess,
    IceProcessMessagesIOError,
    IceProcessMessagesConnectionClosed
} IceProcessMessagesStatus;

typedef struct {
    unsigned long int sequence_of_request;
    int major_opcode_of_request;
    int minor_opcode_of_request;
    IcePointer reply;
} IceReplyWaitInfo;

typedef struct _IceConn *IceConn;
typedef struct _IceListenObj *IceListenObj;

typedef void (*IceWatchProc) (void);
typedef void (*IcePoProcessMsgProc) (void);
typedef void (*IcePaProcessMsgProc) (void);
typedef IcePoAuthStatus(*IcePoAuthProc) (void);
typedef IcePaAuthStatus(*IcePaAuthProc) (void);
typedef int (*IceHostBasedAuthProc) (void);
typedef int (*IceProtocolSetupProc) (void);
typedef void (*IceProtocolActivateProc) (void);
typedef void (*IceIOErrorProc) (void);
typedef void (*IcePingReplyProc) (void);
typedef void (*IceErrorHandler) (void);
typedef void (*IceIOErrorHandler) (void);

typedef struct {
    int major_version;
    int minor_version;
    IcePoProcessMsgProc process_msg_proc;
} IcePoVersionRec;
typedef struct {
    int major_version;
    int minor_version;
    IcePaProcessMsgProc process_msg_proc;
} IcePaVersionRec;
extern IceConn IceAcceptConnection(IceListenObj, IceAcceptStatus *);
extern int IceAddConnectionWatch(IceWatchProc, IcePointer);
extern char *IceAllocScratch(IceConn, unsigned long int);
extern void IceAppLockConn(IceConn);
extern void IceAppUnlockConn(IceConn);
extern int IceCheckShutdownNegotiation(IceConn);
extern IceCloseStatus IceCloseConnection(IceConn);
extern char *IceComposeNetworkIdList(int, IceListenObj *);
extern int IceConnectionNumber(IceConn);
extern IceConnectStatus IceConnectionStatus(IceConn);
extern char *IceConnectionString(IceConn);
extern int IceFlush(IceConn);
extern void IceFreeListenObjs(int, IceListenObj *);
extern IcePointer IceGetConnectionContext(IceConn);
extern int IceGetInBufSize(IceConn);
extern int IceGetListenConnectionNumber(IceListenObj);
extern char *IceGetListenConnectionString(IceListenObj);
extern int IceGetOutBufSize(IceConn);
extern int IceInitThreads(void);
extern unsigned long int IceLastReceivedSequenceNumber(IceConn);
extern unsigned long int IceLastSentSequenceNumber(IceConn);
extern int IceListenForConnections(int *, IceListenObj * *, int, char *);
extern int IceListenForWellKnownConnections(char *, int *,
                                            IceListenObj * *, int, char *);
extern IceConn IceOpenConnection(char *, IcePointer, int, int, int,
                                 char *);
extern int IcePing(IceConn, IcePingReplyProc, IcePointer);
extern IceProcessMessagesStatus IceProcessMessages(IceConn,
                                                   IceReplyWaitInfo *,
                                                   int *);
extern int IceProtocolRevision(IceConn);
extern IceProtocolSetupStatus IceProtocolSetup(IceConn, int, IcePointer,
                                               int, int *, int *, char **,
                                               char **, int, char *);
extern int IceProtocolShutdown(IceConn, int);
extern int IceProtocolVersion(IceConn);
extern int IceRegisterForProtocolReply(char *, char *, char *, int,
                                       IcePaVersionRec *, int, char **,
                                       IcePaAuthProc *,
                                       IceHostBasedAuthProc,
                                       IceProtocolSetupProc,
                                       IceProtocolActivateProc,
                                       IceIOErrorProc);
extern int IceRegisterForProtocolSetup(char *, char *, char *, int,
                                       IcePoVersionRec *, int, char **,
                                       IcePoAuthProc *, IceIOErrorProc);
extern char *IceRelease(IceConn);
extern void IceRemoveConnectionWatch(IceWatchProc, IcePointer);
extern IceErrorHandler IceSetErrorHandler(IceErrorHandler);
extern void IceSetHostBasedAuthProc(IceListenObj, IceHostBasedAuthProc);
extern IceIOErrorHandler IceSetIOErrorHandler(IceIOErrorHandler);
extern void IceSetShutdownNegotiation(IceConn, int);
extern int IceSwapping(IceConn);
extern char *IceVendor(IceConn);
6.7.2 X11/ICE/ICEutil.h

typedef struct {
    char *protocol_name;
    unsigned short protocol_data_length;
    char *protocol_data;
    char *network_id;
    char *auth_name;
    unsigned short auth_data_length;
    char *auth_data;
} IceAuthFileEntry;
typedef struct {
    char *protocol_name;
    char *network_id;
    char *auth_name;
    unsigned short auth_data_length;
    char *auth_data;
} IceAuthDataEntry;
extern char *IceAuthFileName(void);
extern void IceFreeAuthFileEntry(IceAuthFileEntry *);
extern char *IceGenerateMagicCookie(int);
extern IceAuthFileEntry *IceGetAuthFileEntry(char *, char *, char *);
extern int IceLockAuthFile(char *, int, int, long int);
extern IceAuthFileEntry *IceReadAuthFileEntry(FILE);
extern void IceSetPaAuthData(int, IceAuthDataEntry *);
extern void IceUnlockAuthFile(char *);
extern int IceWriteAuthFileEntry(FILE, IceAuthFileEntry *);
6.8 Interfaces for libXt
Table 6-7 defines the library name and shared object name for the libXt library
Table 6-7 libXt Definition
Library:	libXt	
SONAME:	libXt.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[LSB] This Specification	
[Xt] X11 Toolkit Intrinsics	

6.8.1 X Toolkit
6.8.1.1 Interfaces for X Toolkit
An LSB conforming implementation shall provide the generic functions for X Toolkit specified in Table 6-8, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-8 libXt - X Toolkit Function Interfaces
XtAddActions [Xt]	XtAddCallback [Xt]	XtAddCallbacks [Xt]	XtAddConverter [Xt]	
XtAddEventHandler [Xt]	XtAddExposureToRegion [Xt]	XtAddGrab [Xt]	XtAddInput [Xt]	
XtAddRawEventHandler [Xt]	XtAddSignal [Xt]	XtAddTimeOut [Xt]	XtAddWorkProc [Xt]	
XtAllocateGC [Xt]	XtAppAddActionHook [Xt]	XtAppAddActions [Xt]	XtAppAddBlockHook [Xt]	
XtAppAddConverter [Xt]	XtAppAddInput [Xt]	XtAppAddSignal [Xt]	XtAppAddTimeOut [Xt]	
XtAppAddWorkProc [Xt]	XtAppCreateShell [Xt]	XtAppError [Xt]	XtAppErrorMsg [Xt]	
XtAppGetErrorDatabase [Xt]	XtAppGetErrorDatabaseText [Xt]	XtAppGetExitFlag [Xt]	XtAppGetSelectionTimeout [Xt]	
XtAppInitialize [Xt]	XtAppLock [Xt]	XtAppMainLoop [Xt]	XtAppNextEvent [Xt]	
XtAppPeekEvent [Xt]	XtAppPending [Xt]	XtAppProcessEvent [Xt]	XtAppReleaseCacheRefs [Xt]	
XtAppSetErrorHandler [Xt]	XtAppSetErrorMsgHandler [Xt]	XtAppSetExitFlag [Xt]	XtAppSetFallbackResources [Xt]	
XtAppSetSelectionTimeout [Xt]	XtAppSetTypeConverter [Xt]	XtAppSetWarningHandler [Xt]	XtAppSetWarningMsgHandler [Xt]	
XtAppUnlock [Xt]	XtAppWarning [Xt]	XtAppWarningMsg [Xt]	XtAugmentTranslations [Xt]	
XtBuildEventMask [Xt]	XtCallAcceptFocus [Xt]	XtCallActionProc [Xt]	XtCallCallbackList [Xt]	
XtCallCallbacks [Xt]	XtCallConverter [Xt]	XtCallbackExclusive [Xt]	XtCallbackNone [Xt]	
XtCallbackNonexclusive [Xt]	XtCallbackPopdown [Xt]	XtCallbackReleaseCacheRef [Xt]	XtCallbackReleaseCacheRefList [Xt]	
XtCalloc [Xt]	XtCancelSelectionRequest [Xt]	XtChangeManagedSet [Xt]	XtClass [Xt]	
XtCloseDisplay [Xt]	XtConfigureWidget [Xt]	XtConvert [Xt]	XtConvertAndStore [Xt]	
XtConvertCase [Xt]	XtCreateApplicationContext [Xt]	XtCreateApplicationShell [Xt]	XtCreateManagedWidget [Xt]	
XtCreatePopupShell [Xt]	XtCreateSelectionRequest [Xt]	XtCreateWidget [Xt]	XtCreateWindow [Xt]	
XtCvtColorToPixel [Xt]	XtCvtIntToBool [Xt]	XtCvtIntToBoolean [Xt]	XtCvtIntToColor [Xt]	
XtCvtIntToFloat [Xt]	XtCvtIntToFont [Xt]	XtCvtIntToPixel [Xt]	XtCvtIntToPixmap [Xt]	
XtCvtIntToShort [Xt]	XtCvtIntToUnsignedChar [Xt]	XtCvtStringToAcceleratorTable [Xt]	XtCvtStringToAtom [Xt]	
XtCvtStringToBool [Xt]	XtCvtStringToBoolean [Xt]	XtCvtStringToCommandArgArray [Xt]	XtCvtStringToCursor [Xt]	
XtCvtStringToDimension [Xt]	XtCvtStringToDirectoryString [Xt]	XtCvtStringToDisplay [Xt]	XtCvtStringToFile [Xt]	
XtCvtStringToFloat [Xt]	XtCvtStringToFont [Xt]	XtCvtStringToFontSet [Xt]	XtCvtStringToFontStruct [Xt]	
XtCvtStringToGravity [Xt]	XtCvtStringToInitialState [Xt]	XtCvtStringToInt [Xt]	XtCvtStringToPixel [Xt]	
XtCvtStringToRestartStyle [Xt]	XtCvtStringToShort [Xt]	XtCvtStringToTranslationTable [Xt]	XtCvtStringToUnsignedChar [Xt]	
XtCvtStringToVisual [Xt]	XtDatabase [Xt]	XtDestroyApplicationContext [Xt]	XtDestroyGC [Xt]	
XtDestroyWidget [Xt]	XtDirectConvert [Xt]	XtDisownSelection [Xt]	XtDispatchEvent [Xt]	
XtDispatchEventToWidget [Xt]	XtDisplay [Xt]	XtDisplayInitialize [Xt]	XtDisplayOfObject [Xt]	
XtDisplayStringConversionWarning [Xt]	XtDisplayToApplicationContext [Xt]	XtError [Xt]	XtErrorMsg [Xt]	
XtFindFile [Xt]	XtFree [Xt]	XtGetActionKeysym [Xt]	XtGetActionList [Xt]	
XtGetApplicationNameAndClass [Xt]	XtGetApplicationResources [Xt]	XtGetClassExtension [Xt]	XtGetConstraintResourceList [Xt]	
XtGetDisplays [Xt]	XtGetErrorDatabase [Xt]	XtGetErrorDatabaseText [Xt]	XtGetGC [Xt]	
XtGetKeyboardFocusWidget [Xt]	XtGetKeysymTable [Xt]	XtGetMultiClickTime [Xt]	XtGetResourceList [Xt]	
XtGetSelectionParameters [Xt]	XtGetSelectionRequest [Xt]	XtGetSelectionTimeout [Xt]	XtGetSelectionValue [Xt]	
XtGetSelectionValueIncremental [Xt]	XtGetSelectionValues [Xt]	XtGetSelectionValuesIncremental [Xt]	XtGetSubresources [Xt]	
XtGetSubvalues [Xt]	XtGetValues [Xt]	XtGrabButton [Xt]	XtGrabKey [Xt]	
XtGrabKeyboard [Xt]	XtGrabPointer [Xt]	XtHasCallbacks [Xt]	XtHooksOfDisplay [Xt]	
XtInitialize [Xt]	XtInitializeWidgetClass [Xt]	XtInsertEventHandler [Xt]	XtInsertEventTypeHandler [Xt]	
XtInsertRawEventHandler [Xt]	XtInstallAccelerators [Xt]	XtInstallAllAccelerators [Xt]	XtIsApplicationShell [Xt]	
XtIsComposite [Xt]	XtIsConstraint [Xt]	XtIsManaged [Xt]	XtIsObject [Xt]	
XtIsOverrideShell [Xt]	XtIsRealized [Xt]	XtIsRectObj [Xt]	XtIsSensitive [Xt]	
XtIsSessionShell [Xt]	XtIsShell [Xt]	XtIsSubclass [Xt]	XtIsTopLevelShell [Xt]	
XtIsTransientShell [Xt]	XtIsVendorShell [Xt]	XtIsWMShell [Xt]	XtIsWidget [Xt]	
XtKeysymToKeycodeList [Xt]	XtLastEventProcessed [Xt]	XtLastTimestampProcessed [Xt]	XtMainLoop [Xt]	
XtMakeGeometryRequest [Xt]	XtMakeResizeRequest [Xt]	XtMalloc [Xt]	XtManageChild [Xt]	
XtManageChildren [Xt]	XtMapWidget [Xt]	XtMenuPopupAction [Xt]	XtMergeArgLists [Xt]	
XtMoveWidget [Xt]	XtName [Xt]	XtNameToWidget [Xt]	XtNewString [Xt]	
XtNextEvent [Xt]	XtNoticeSignal [Xt]	XtOpenApplication [Xt]	XtOpenDisplay [Xt]	
XtOverrideTranslations [Xt]	XtOwnSelection [Xt]	XtOwnSelectionIncremental [Xt]	XtParent [Xt]	
XtParseAcceleratorTable [Xt]	XtParseTranslationTable [Xt]	XtPeekEvent [Xt]	XtPending [Xt]	
XtPopdown [Xt]	XtPopup [Xt]	XtPopupSpringLoaded [Xt]	XtProcessEvent [Xt]	
XtProcessLock [Xt]	XtProcessUnlock [Xt]	XtQueryGeometry [Xt]	XtRealizeWidget [Xt]	
XtRealloc [Xt]	XtRegisterCaseConverter [Xt]	XtRegisterDrawable [Xt]	XtRegisterExtensionSelector [Xt]	
XtRegisterGrabAction [Xt]	XtReleaseGC [Xt]	XtReleasePropertyAtom [Xt]	XtRemoveActionHook [Xt]	
XtRemoveAllCallbacks [Xt]	XtRemoveBlockHook [Xt]	XtRemoveCallback [Xt]	XtRemoveCallbacks [Xt]	
XtRemoveEventHandler [Xt]	XtRemoveEventTypeHandler [Xt]	XtRemoveGrab [Xt]	XtRemoveInput [Xt]	
XtRemoveRawEventHandler [Xt]	XtRemoveSignal [Xt]	XtRemoveTimeOut [Xt]	XtRemoveWorkProc [Xt]	
XtReservePropertyAtom [Xt]	XtResizeWidget [Xt]	XtResizeWindow [Xt]	XtResolvePathname [Xt]	
XtScreen [Xt]	XtScreenDatabase [Xt]	XtScreenOfObject [Xt]	XtSendSelectionRequest [Xt]	
XtSessionGetToken [Xt]	XtSessionReturnToken [Xt]	XtSetErrorHandler [Xt]	XtSetErrorMsgHandler [Xt]	
XtSetEventDispatcher [Xt]	XtSetKeyTranslator [Xt]	XtSetKeyboardFocus [Xt]	XtSetLanguageProc [Xt]	
XtSetMappedWhenManaged [Xt]	XtSetMultiClickTime [Xt]	XtSetSelectionParameters [Xt]	XtSetSelectionTimeout [Xt]	
XtSetSensitive [Xt]	XtSetSubvalues [Xt]	XtSetTypeConverter [Xt]	XtSetValues [Xt]	
XtSetWMColormapWindows [Xt]	XtSetWarningHandler [Xt]	XtSetWarningMsgHandler [Xt]	XtStringConversionWarning [Xt]	
XtSuperclass [Xt]	XtToolkitInitialize [Xt]	XtToolkitThreadInitialize [Xt]	XtTranslateCoords [Xt]	
XtTranslateKey [Xt]	XtTranslateKeycode [Xt]	XtUngrabButton [Xt]	XtUngrabKey [Xt]	
XtUngrabKeyboard [Xt]	XtUngrabPointer [Xt]	XtUninstallTranslations [Xt]	XtUnmanageChild [Xt]	
XtUnmanageChildren [Xt]	XtUnmapWidget [Xt]	XtUnrealizeWidget [Xt]	XtUnregisterDrawable [Xt]	
XtVaAppCreateShell [Xt]	XtVaAppInitialize [Xt]	XtVaCreateArgsList [Xt]	XtVaCreateManagedWidget [Xt]	
XtVaCreatePopupShell [Xt]	XtVaCreateWidget [Xt]	XtVaGetApplicationResources [Xt]	XtVaGetSubresources [Xt]	
XtVaGetSubvalues [Xt]	XtVaGetValues [Xt]	XtVaOpenApplication [Xt]	XtVaSetSubvalues [Xt]	
XtVaSetValues [Xt]	XtWarning [Xt]	XtWarningMsg [Xt]	XtWidgetToApplicationContext [Xt]	
XtWindow [Xt]	XtWindowOfObject [Xt]	XtWindowToWidget [Xt]	_XtCheckSubclassFlag [Xt]	
_XtCopyFromArg [LSB]	_XtInherit [LSB]	_XtIsSubclassOf [LSB]	

An LSB conforming implementation shall provide the generic data interfaces for X Toolkit specified in Table 6-9, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-9 libXt - X Toolkit Data Interfaces
XtCXtToolkitError [Xt]	XtShellStrings [Xt]	XtStrings [Xt]	_XtInheritTranslations [LSB]	
applicationShellWidgetClass [Xt]	compositeClassRec [Xt]	compositeWidgetClass [Xt]	constraintClassRec [Xt]	
constraintWidgetClass [Xt]	coreWidgetClass [Xt]	objectClass [Xt]	objectClassRec [Xt]	
overrideShellClassRec [Xt]	overrideShellWidgetClass [Xt]	rectObjClass [Xt]	rectObjClassRec [Xt]	
sessionShellClassRec [Xt]	sessionShellWidgetClass [Xt]	shellClassRec [Xt]	shellWidgetClass [Xt]	
topLevelShellClassRec [Xt]	topLevelShellWidgetClass [Xt]	transientShellClassRec [Xt]	transientShellWidgetClass [Xt]	
widgetClass [Xt]	widgetClassRec [Xt]	wmShellClassRec [Xt]	wmShellWidgetClass [Xt]	

6.9 Data Definitions for libXt
This section defines global identifiers and their values that are associated with interfaces contained in libXt. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
6.9.1 X11/Composite.h

typedef Cardinal(*XtOrderProc) (Widget child);
typedef void (*XtDoChangeProc) (Widget composite_parent,
                                WidgetList unmanage_children,
                                Cardinal * num_unmanage_children,
                                WidgetList manage_children,
                                Cardinal * num_manage_children,
                                XtPointer client_data);
extern void XtChangeManagedSet(WidgetList, Cardinal, XtDoChangeProc,
                               XtPointer, WidgetList, Cardinal);
extern void XtManageChild(Widget);
extern void XtManageChildren(WidgetList, Cardinal);
extern void XtUnmanageChild(Widget);
extern void XtUnmanageChildren(WidgetList, Cardinal);
extern WidgetClass compositeWidgetClass;
6.9.2 X11/CompositeP.h

#define XtInheritGeometryManager        ((XtGeometryHandler) _XtInherit)
#define XtInheritDeleteChild    ((XtWidgetProc) _XtInherit)
#define XtInheritInsertChild    ((XtWidgetProc) _XtInherit)
#define XtCompositeExtensionVersion     2L

typedef struct _CompositeClassPart CompositeClassPart;

typedef struct _CompositeClassRec CompositeClassRec;
extern CompositeClassRec compositeClassRec;
6.9.3 X11/ConstrainP.h

#define XtConstraintExtensionVersion    1L

typedef struct _ConstraintPart ConstraintPart;
typedef struct _ConstraintClassPart ConstraintClassPart;
typedef struct _ConstraintClassRec {
    CoreClassPart core_class;
    CompositeClassPart composite_class;
    ConstraintClassPart constraint_class;
} ConstraintClassRec;
extern ConstraintClassRec constraintClassRec;
6.9.4 X11/Constraint.h

typedef struct _ConstraintClassRec *ConstraintWidgetClass;
extern WidgetClass constraintWidgetClass;
6.9.5 X11/Core.h
extern WidgetClass coreWidgetClass;
6.9.6 X11/Intrinsic.h

typedef struct _WidgetRec *Widget;
typedef Widget *WidgetList;
typedef struct _WidgetClassRec *WidgetClass;
typedef struct _CompositeRec *CompositeWidget;
typedef struct _XtActionsRec *XtActionList;
typedef struct _XtEventRec *XtEventTable;
typedef struct _XtAppStruct *XtAppContext;
typedef unsigned long int XtValueMask;
typedef unsigned long int XtIntervalId;
typedef unsigned long int XtInputId;
typedef unsigned long int XtSignalId;
typedef unsigned int XtGeometryMask;
typedef unsigned long int XtGCMask;
typedef unsigned long int Pixel;
typedef int XtCacheType;
typedef char Boolean;
typedef long int XtArgVal;
typedef unsigned char XtEnum;
typedef unsigned int Cardinal;
typedef unsigned short Dimension;
typedef short Position;
typedef void *XtPointer;
typedef XtPointer Opaque;
extern void XtAddActions(XtActionList, Cardinal);
extern void XtAddCallback(Widget, char *, XtCallbackProc, XtPointer);
extern void XtAddCallbacks(Widget, char *, XtCallbackList);
extern void XtAddConverter(char *, char *, XtConverter, XtConvertArgList,
                           Cardinal);
extern void XtAddEventHandler(Widget, EventMask, int, XtEventHandler,
                              XtPointer);
extern void XtAddExposureToRegion(XEvent *, Region);
extern void XtAddGrab(Widget, int, int);
extern XtInputId XtAddInput(int, XtPointer, XtInputCallbackProc,
                            XtPointer);
extern void XtAddRawEventHandler(Widget, EventMask, int, XtEventHandler,
                                 XtPointer);
extern XtIntervalId XtAddTimeOut(unsigned long int, XtTimerCallbackProc,
                                 XtPointer);
extern XtWorkProcId XtAddWorkProc(XtWorkProc, XtPointer);
extern GC XtAllocateGC(Widget, Cardinal, XtGCMask, XGCValues *, XtGCMask,
                       XtGCMask);
extern XtActionHookId XtAppAddActionHook(XtAppContext, XtActionHookProc,
                                         XtPointer);
extern void XtAppAddActions(XtAppContext, XtActionList, Cardinal);
extern XtBlockHookId XtAppAddBlockHook(XtAppContext, XtBlockHookProc,
                                       XtPointer);
extern void XtAppAddConverter(XtAppContext, char *, char *, XtConverter,
                              XtConvertArgList, Cardinal);
extern XtInputId XtAppAddInput(XtAppContext, int, XtPointer,
                               XtInputCallbackProc, XtPointer);
extern XtSignalId XtAppAddSignal(XtAppContext, XtSignalCallbackProc,
                                 XtPointer);
extern XtIntervalId XtAppAddTimeOut(XtAppContext, unsigned long int,
                                    XtTimerCallbackProc, XtPointer);
extern XtWorkProcId XtAppAddWorkProc(XtAppContext, XtWorkProc, XtPointer);
extern Widget XtAppCreateShell(char *, char *, WidgetClass, Display *,
                               ArgList, Cardinal);
extern void XtAppError(XtAppContext, char *);
extern void XtAppErrorMsg(XtAppContext, char *, char *, char *, char *,
                          String *, Cardinal *);
extern XrmDatabase *XtAppGetErrorDatabase(XtAppContext);
extern void XtAppGetErrorDatabaseText(XtAppContext, char *, char *, char *,
                                      char *, String, int, XrmDatabase);
extern Boolean XtAppGetExitFlag(XtAppContext);
extern unsigned long int XtAppGetSelectionTimeout(XtAppContext);
extern Widget XtAppInitialize(XtAppContext *, char *, XrmOptionDescList,
                              Cardinal, int *, String *, String *, ArgList,
                              Cardinal);
extern void XtAppLock(XtAppContext);
extern void XtAppMainLoop(XtAppContext);
extern void XtAppNextEvent(XtAppContext, XEvent *);
extern Boolean XtAppPeekEvent(XtAppContext, XEvent *);
extern XtInputMask XtAppPending(XtAppContext);
extern void XtAppProcessEvent(XtAppContext, XtInputMask);
extern void XtAppReleaseCacheRefs(XtAppContext, XtCacheRef *);
extern XtErrorHandler XtAppSetErrorHandler(XtAppContext, XtErrorHandler);
extern XtErrorMsgHandler XtAppSetErrorMsgHandler(XtAppContext,
                                                 XtErrorMsgHandler);
extern void XtAppSetExitFlag(XtAppContext);
extern void XtAppSetFallbackResources(XtAppContext, String *);
extern void XtAppSetSelectionTimeout(XtAppContext, unsigned long int);
extern void XtAppSetTypeConverter(XtAppContext, char *, char *,
                                  XtTypeConverter, XtConvertArgList,
                                  Cardinal, XtCacheType, XtDestructor);
extern XtErrorHandler XtAppSetWarningHandler(XtAppContext, XtErrorHandler);
extern XtErrorMsgHandler XtAppSetWarningMsgHandler(XtAppContext,
                                                   XtErrorMsgHandler);
extern void XtAppUnlock(XtAppContext);
extern void XtAppWarning(XtAppContext, char *);
extern void XtAppWarningMsg(XtAppContext, char *, char *, char *, char *,
                            String *, Cardinal *);
extern void XtAugmentTranslations(Widget, XtTranslations);
extern EventMask XtBuildEventMask(Widget);
extern String XtCXtToolkitError;
extern Boolean XtCallAcceptFocus(Widget, Time *);
extern void XtCallActionProc(Widget, char *, XEvent *, String *, Cardinal);
extern void XtCallCallbackList(Widget, XtCallbackList, XtPointer);
extern void XtCallCallbacks(Widget, char *, XtPointer);
extern Boolean XtCallConverter(Display *, XtTypeConverter, XrmValuePtr,
                               Cardinal, XrmValuePtr, XrmValue *,
                               XtCacheRef *);
extern void XtCallbackExclusive(Widget, XtPointer, XtPointer);
extern void XtCallbackNone(Widget, XtPointer, XtPointer);
extern void XtCallbackNonexclusive(Widget, XtPointer, XtPointer);
extern void XtCallbackPopdown(Widget, XtPointer, XtPointer);
extern void XtCallbackReleaseCacheRef(Widget, XtPointer, XtPointer);
extern void XtCallbackReleaseCacheRefList(Widget, XtPointer, XtPointer);
extern char *XtCalloc(Cardinal, Cardinal);
extern void XtCancelSelectionRequest(Widget, Atom);
extern WidgetClass XtClass(Widget);
extern void XtCloseDisplay(Display *);
extern void XtConvert(Widget, char *, XrmValue *, char *, XrmValue *);
extern Boolean XtConvertAndStore(Widget, char *, XrmValue *, char *,
                                 XrmValue *);
extern void XtConvertCase(Display *, KeySym, KeySym *, KeySym *);
extern XtAppContext XtCreateApplicationContext(void);
extern Widget XtCreateApplicationShell(char *, WidgetClass, ArgList,
                                       Cardinal);
extern Widget XtCreateManagedWidget(char *, WidgetClass, Widget, ArgList,
                                    Cardinal);
extern Widget XtCreatePopupShell(char *, WidgetClass, Widget, ArgList,
                                 Cardinal);
extern void XtCreateSelectionRequest(Widget, Atom);
extern Widget XtCreateWidget(char *, WidgetClass, Widget, ArgList,
                             Cardinal);
extern Boolean XtCvtColorToPixel(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToBool(Display *, XrmValuePtr, Cardinal *,
                              XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToBoolean(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToColor(Display *, XrmValuePtr, Cardinal *,
                               XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToFloat(Display *, XrmValuePtr, Cardinal *,
                               XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToFont(Display *, XrmValuePtr, Cardinal *,
                              XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToPixel(Display *, XrmValuePtr, Cardinal *,
                               XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToPixmap(Display *, XrmValuePtr, Cardinal *,
                                XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToShort(Display *, XrmValuePtr, Cardinal *,
                               XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtIntToUnsignedChar(Display *, XrmValuePtr, Cardinal *,
                                      XrmValuePtr, XrmValuePtr,
                                      XtPointer *);
extern Boolean XtCvtStringToAcceleratorTable(Display *, XrmValuePtr,
                                             Cardinal *, XrmValuePtr,
                                             XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToAtom(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToBool(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToBoolean(Display *, XrmValuePtr, Cardinal *,
                                    XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToCommandArgArray(Display *, XrmValuePtr,
                                            Cardinal *, XrmValuePtr,
                                            XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToCursor(Display *, XrmValuePtr, Cardinal *,
                                   XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToDimension(Display *, XrmValuePtr, Cardinal *,
                                      XrmValuePtr, XrmValuePtr,
                                      XtPointer *);
extern Boolean XtCvtStringToDirectoryString(Display *, XrmValuePtr,
                                            Cardinal *, XrmValuePtr,
                                            XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToDisplay(Display *, XrmValuePtr, Cardinal *,
                                    XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToFile(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToFloat(Display *, XrmValuePtr, Cardinal *,
                                  XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToFont(Display *, XrmValuePtr, Cardinal *,
                                 XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToFontSet(Display *, XrmValuePtr, Cardinal *,
                                    XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToFontStruct(Display *, XrmValuePtr, Cardinal *,
                                       XrmValuePtr, XrmValuePtr,
                                       XtPointer *);
extern Boolean XtCvtStringToGravity(Display *, XrmValuePtr, Cardinal *,
                                    XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToInitialState(Display *, XrmValuePtr,
                                         Cardinal *, XrmValuePtr,
                                         XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToInt(Display *, XrmValuePtr, Cardinal *,
                                XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToPixel(Display *, XrmValuePtr, Cardinal *,
                                  XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToRestartStyle(Display *, XrmValuePtr,
                                         Cardinal *, XrmValuePtr,
                                         XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToShort(Display *, XrmValuePtr, Cardinal *,
                                  XrmValuePtr, XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToTranslationTable(Display *, XrmValuePtr,
                                             Cardinal *, XrmValuePtr,
                                             XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToUnsignedChar(Display *, XrmValuePtr,
                                         Cardinal *, XrmValuePtr,
                                         XrmValuePtr, XtPointer *);
extern Boolean XtCvtStringToVisual(Display *, XrmValuePtr, Cardinal *,
                                   XrmValuePtr, XrmValuePtr, XtPointer *);
extern XrmDatabase XtDatabase(Display *);
extern void XtDestroyApplicationContext(XtAppContext);
extern void XtDestroyGC(GC);
extern void XtDestroyWidget(Widget);
extern void XtDirectConvert(XtConverter, XrmValuePtr, Cardinal,
                            XrmValuePtr, XrmValue *);
extern void XtDisownSelection(Widget, Atom, Time);
extern Boolean XtDispatchEvent(XEvent *);
extern Boolean XtDispatchEventToWidget(Widget, XEvent *);
extern Display *XtDisplay(Widget);
extern void XtDisplayInitialize(XtAppContext, Display *, char *, char *,
                                XrmOptionDescRec *, Cardinal, int *,
                                char **);
extern Display *XtDisplayOfObject(Widget);
extern void XtDisplayStringConversionWarning(Display *, char *, char *);
extern XtAppContext XtDisplayToApplicationContext(Display *);
extern void XtError(char *);
extern void XtErrorMsg(char *, char *, char *, char *, String *,
                       Cardinal *);
extern String XtFindFile(char *, Substitution, Cardinal, XtFilePredicate);
extern void XtFree(char *);
extern KeySym XtGetActionKeysym(XEvent *, Modifiers *);
extern void XtGetActionList(WidgetClass, XtActionList *, Cardinal *);
extern void XtGetApplicationNameAndClass(Display *, String *, String *);
extern void XtGetApplicationResources(Widget, XtPointer, XtResourceList,
                                      Cardinal, ArgList, Cardinal);
extern XtPointer XtGetClassExtension(WidgetClass, Cardinal, XrmQuark,
                                     long int, Cardinal);
extern void XtGetConstraintResourceList(WidgetClass, XtResourceList *,
                                        Cardinal *);
extern void XtGetDisplays(XtAppContext, Display * **, Cardinal *);
extern XrmDatabase *XtGetErrorDatabase(void);
extern void XtGetErrorDatabaseText(char *, char *, char *, char *, String,
                                   int);
extern GC XtGetGC(Widget, XtGCMask, XGCValues *);
extern Widget XtGetKeyboardFocusWidget(Widget);
extern KeySym *XtGetKeysymTable(Display *, KeyCode *, int *);
extern int XtGetMultiClickTime(Display *);
extern void XtGetResourceList(WidgetClass, XtResourceList *, Cardinal *);
extern void XtGetSelectionParameters(Widget, Atom, XtRequestId, Atom *,
                                     XtPointer *, unsigned long int *,
                                     int *);
extern XSelectionRequestEvent *XtGetSelectionRequest(Widget, Atom,
                                                     XtRequestId);
extern unsigned long int XtGetSelectionTimeout(void);
extern void XtGetSelectionValue(Widget, Atom, Atom,
                                XtSelectionCallbackProc, XtPointer, Time);
extern void XtGetSelectionValueIncremental(Widget, Atom, Atom,
                                           XtSelectionCallbackProc,
                                           XtPointer, Time);
extern void XtGetSelectionValues(Widget, Atom, Atom *, int,
                                 XtSelectionCallbackProc, XtPointer *,
                                 Time);
extern void XtGetSelectionValuesIncremental(Widget, Atom, Atom *, int,
                                            XtSelectionCallbackProc,
                                            XtPointer *, Time);
extern void XtGetSubresources(Widget, XtPointer, char *, char *,
                              XtResourceList, Cardinal, ArgList, Cardinal);
extern void XtGetSubvalues(XtPointer, XtResourceList, Cardinal, ArgList,
                           Cardinal);
extern void XtGetValues(Widget, ArgList, Cardinal);
extern void XtGrabButton(Widget, int, Modifiers, int, unsigned int, int,
                         int, Window, Cursor);
extern void XtGrabKey(Widget, unsigned int, Modifiers, int, int, int);
extern int XtGrabKeyboard(Widget, int, int, int, Time);
extern int XtGrabPointer(Widget, int, unsigned int, int, int, Window,
                         Cursor, Time);
extern XtCallbackStatus XtHasCallbacks(Widget, char *);
extern Widget XtHooksOfDisplay(Display *);
extern Widget XtInitialize(char *, char *, XrmOptionDescRec *, Cardinal,
                           int *, char **);
extern void XtInitializeWidgetClass(WidgetClass);
extern void XtInsertEventHandler(Widget, EventMask, int, XtEventHandler,
                                 XtPointer, XtListPosition);
extern void XtInsertEventTypeHandler(Widget, int, XtPointer,
                                     XtEventHandler, XtPointer,
                                     XtListPosition);
extern void XtInsertRawEventHandler(Widget, EventMask, int, XtEventHandler,
                                    XtPointer, XtListPosition);
extern void XtInstallAccelerators(Widget, Widget);
extern void XtInstallAllAccelerators(Widget, Widget);
extern Boolean XtIsApplicationShell(Widget);
extern Boolean XtIsComposite(Widget);
extern Boolean XtIsConstraint(Widget);
extern Boolean XtIsManaged(Widget);
extern Boolean XtIsObject(Widget);
extern Boolean XtIsOverrideShell(Widget);
extern Boolean XtIsRealized(Widget);
extern Boolean XtIsRectObj(Widget);
extern Boolean XtIsSensitive(Widget);
extern Boolean XtIsSessionShell(Widget);
extern Boolean XtIsShell(Widget);
extern Boolean XtIsSubclass(Widget, WidgetClass);
extern Boolean XtIsTopLevelShell(Widget);
extern Boolean XtIsTransientShell(Widget);
extern Boolean XtIsVendorShell(Widget);
extern Boolean XtIsWMShell(Widget);
extern Boolean XtIsWidget(Widget);
extern void XtKeysymToKeycodeList(Display *, KeySym, KeyCode * *,
                                  Cardinal *);
extern XEvent *XtLastEventProcessed(Display *);
extern Time XtLastTimestampProcessed(Display *);
extern void XtMainLoop(void);
extern XtGeometryResult XtMakeGeometryRequest(Widget, XtWidgetGeometry *,
                                              XtWidgetGeometry *);
extern XtGeometryResult XtMakeResizeRequest(Widget, unsigned int,
                                            unsigned int, Dimension *,
                                            Dimension *);
extern char *XtMalloc(Cardinal);
extern void XtMapWidget(void);
extern void XtMenuPopupAction(Widget, XEvent *, String *, Cardinal *);
extern ArgList XtMergeArgLists(ArgList, Cardinal, ArgList, Cardinal);
extern String XtName(Widget);
extern Widget XtNameToWidget(Widget, char *);
extern String XtNewString(void);
extern void XtNextEvent(XEvent *);
extern void XtNoticeSignal(XtSignalId);
extern Widget XtOpenApplication(XtAppContext *, char *, XrmOptionDescList,
                                Cardinal, int *, String *, String *,
                                WidgetClass, ArgList, Cardinal);
extern Display *XtOpenDisplay(XtAppContext, char *, char *, char *,
                              XrmOptionDescRec *, Cardinal, int *,
                              char **);
extern void XtOverrideTranslations(Widget, XtTranslations);
extern Boolean XtOwnSelection(Widget, Atom, Time, XtConvertSelectionProc,
                              XtLoseSelectionProc, XtSelectionDoneProc);
extern Boolean XtOwnSelectionIncremental(Widget, Atom, Time,
                                         XtConvertSelectionIncrProc,
                                         XtLoseSelectionIncrProc,
                                         XtSelectionDoneIncrProc,
                                         XtCancelConvertSelectionProc,
                                         XtPointer);
extern Widget XtParent(Widget);
extern XtAccelerators XtParseAcceleratorTable(char *);
extern XtTranslations XtParseTranslationTable(char *);
extern Boolean XtPeekEvent(XEvent *);
extern Boolean XtPending(void);
extern void XtPopdown(Widget);
extern void XtPopup(Widget, XtGrabKind);
extern void XtPopupSpringLoaded(Widget);
extern void XtProcessEvent(XtInputMask);
extern XtGeometryResult XtQueryGeometry(Widget, XtWidgetGeometry *,
                                        XtWidgetGeometry *);
extern void XtRealizeWidget(Widget);
extern char *XtRealloc(char *, Cardinal);
extern void XtRegisterCaseConverter(Display *, XtCaseProc, KeySym, KeySym);
extern void XtRegisterDrawable(Display *, Drawable, Widget);
extern void XtRegisterExtensionSelector(Display *, int, int,
                                        XtExtensionSelectProc, XtPointer);
extern void XtRegisterGrabAction(XtActionProc, int, unsigned int, int,
                                 int);
extern void XtReleaseGC(Widget, GC);
extern void XtReleasePropertyAtom(Widget, Atom);
extern void XtRemoveActionHook(XtActionHookId);
extern void XtRemoveAllCallbacks(Widget, char *);
extern void XtRemoveBlockHook(XtBlockHookId);
extern void XtRemoveCallback(Widget, char *, XtCallbackProc, XtPointer);
extern void XtRemoveCallbacks(Widget, char *, XtCallbackList);
extern void XtRemoveEventHandler(Widget, EventMask, int, XtEventHandler,
                                 XtPointer);
extern void XtRemoveEventTypeHandler(Widget, int, XtPointer,
                                     XtEventHandler, XtPointer);
extern void XtRemoveGrab(Widget);
extern void XtRemoveInput(XtInputId);
extern void XtRemoveRawEventHandler(Widget, EventMask, int, XtEventHandler,
                                    XtPointer);
extern void XtRemoveSignal(XtSignalId);
extern void XtRemoveTimeOut(XtIntervalId);
extern void XtRemoveWorkProc(XtWorkProcId);
extern Atom XtReservePropertyAtom(Widget);
extern String XtResolvePathname(Display *, char *, char *, char *, char *,
                                Substitution, Cardinal, XtFilePredicate);
extern Screen *XtScreen(Widget);
extern XrmDatabase XtScreenDatabase(Screen *);
extern Screen *XtScreenOfObject(Widget);
extern void XtSendSelectionRequest(Widget, Atom, Time);
extern XtCheckpointToken XtSessionGetToken(Widget);
extern void XtSessionReturnToken(XtCheckpointToken);
extern void XtSetErrorHandler(XtErrorHandler);
extern void XtSetErrorMsgHandler(XtErrorMsgHandler);
extern XtEventDispatchProc XtSetEventDispatcher(Display *, int,
                                                XtEventDispatchProc);
extern void XtSetKeyTranslator(Display *, XtKeyProc);
extern void XtSetKeyboardFocus(Widget, Widget);
extern XtLanguageProc XtSetLanguageProc(XtAppContext, XtLanguageProc,
                                        XtPointer);
extern void XtSetMappedWhenManaged(Widget, int);
extern void XtSetMultiClickTime(Display *, int);
extern void XtSetSelectionParameters(Widget, Atom, Atom, XtPointer,
                                     unsigned long int, int);
extern void XtSetSelectionTimeout(unsigned long int);
extern void XtSetSensitive(Widget, int);
extern void XtSetSubvalues(XtPointer, XtResourceList, Cardinal, ArgList,
                           Cardinal);
extern void XtSetTypeConverter(char *, char *, XtTypeConverter,
                               XtConvertArgList, Cardinal, XtCacheType,
                               XtDestructor);
extern void XtSetValues(Widget, ArgList, Cardinal);
extern void XtSetWMColormapWindows(Widget, Widget *, Cardinal);
extern void XtSetWarningHandler(XtErrorHandler);
extern void XtSetWarningMsgHandler(XtErrorMsgHandler);
extern void XtStringConversionWarning(char *, char *);
extern WidgetClass XtSuperclass(Widget);
extern void XtToolkitInitialize(void);
extern Boolean XtToolkitThreadInitialize(void);
extern void XtTranslateCoords(Widget, int, int, Position *, Position *);
extern void XtTranslateKey(Display *, unsigned int, Modifiers, Modifiers *,
                           KeySym *);
extern void XtTranslateKeycode(Display *, unsigned int, Modifiers,
                               Modifiers *, KeySym *);
extern void XtUngrabButton(Widget, unsigned int, Modifiers);
extern void XtUngrabKey(Widget, unsigned int, Modifiers);
extern void XtUngrabKeyboard(Widget, Time);
extern void XtUngrabPointer(Widget, Time);
extern void XtUninstallTranslations(Widget);
extern void XtUnmapWidget(void);
extern void XtUnrealizeWidget(Widget);
extern void XtUnregisterDrawable(Display *, Drawable);
extern Widget XtVaAppCreateShell(char *, char *, WidgetClass, Display *,
                                 ...);
extern Widget XtVaAppInitialize(XtAppContext *, char *, XrmOptionDescList,
                                Cardinal, int *, String *, String *, ...);
extern XtVarArgsList XtVaCreateArgsList(XtPointer, ...);
extern Widget XtVaCreateManagedWidget(char *, WidgetClass, Widget, ...);
extern Widget XtVaCreatePopupShell(char *, WidgetClass, Widget, ...);
extern Widget XtVaCreateWidget(char *, WidgetClass, Widget, ...);
extern void XtVaGetApplicationResources(Widget, XtPointer, XtResourceList,
                                        Cardinal, ...);
extern void XtVaGetSubresources(Widget, XtPointer, char *, char *,
                                XtResourceList, Cardinal, ...);
extern void XtVaGetSubvalues(XtPointer, XtResourceList, Cardinal, ...);
extern void XtVaGetValues(Widget, ...);
extern Widget XtVaOpenApplication(XtAppContext *, char *,
                                  XrmOptionDescList, Cardinal, int *,
                                  String *, String *, WidgetClass, ...);
extern void XtVaSetSubvalues(XtPointer, XtResourceList, Cardinal, ...);
extern void XtVaSetValues(Widget, ...);
extern void XtWarning(char *);
extern void XtWarningMsg(char *, char *, char *, char *, String *,
                         Cardinal *);
extern XtAppContext XtWidgetToApplicationContext(Widget);
extern Window XtWindow(Widget);
extern Window XtWindowOfObject(Widget);
extern Widget XtWindowToWidget(Display *, Window);
extern Boolean _XtCheckSubclassFlag(Widget, unsigned int);
extern Boolean _XtIsSubclassOf(Widget, WidgetClass, WidgetClass,
                               unsigned int);
6.9.7 X11/IntrinsicP.h

extern void XtConfigureWidget(Widget, int, int, unsigned int, unsigned int,
                              unsigned int);
extern void XtCreateWindow(Widget, unsigned int, Visual *, XtValueMask,
                           XSetWindowAttributes *);
extern void XtMoveWidget(Widget, int, int);
extern void XtProcessLock(void);
extern void XtProcessUnlock(void);
extern void XtResizeWidget(Widget, unsigned int, unsigned int,
                           unsigned int);
extern void XtResizeWindow(Widget);
extern void _XtInherit(void);
6.9.8 X11/Object.h

extern WidgetClass objectClass;
6.9.9 X11/ObjectP.h

#define XtInheritAllocate       ((XtAllocateProc) _XtInherit)
#define XtInheritDeallocate     ((XtDeallocateProc) _XtInherit)
#define XtObjectExtensionVersion        1L

typedef struct _ObjectPart {
    Widget self;
    WidgetClass widget_class;
    Widget parent;
    XrmName xrm_name;
    Boolean being_destroyed;
    XtCallbackList destroy_callbacks;
    XtPointer constraints;
} ObjectPart;

typedef struct _ObjectRec {
    ObjectPart object;
} ObjectRec;

typedef struct _ObjectClassPart {
    WidgetClass superclass;
    String class_name;
    Cardinal widget_size;
    XtProc class_initialize;
    XtWidgetClassProc class_part_initialize;
    XtEnum class_inited;
    XtInitProc initialize;
    XtArgsProc initialize_hook;
    XtProc obj1;
    XtProc obj2;
    XtProc obj3;
    XtResourceList resources;
    Cardinal num_resources;
    XrmClass xrm_class;
    Boolean obj4;
    XtEnum obj5;
    Boolean obj6;
    Boolean obj7;
    XtWidgetProc destroy;
    XtProc obj8;
    XtProc obj9;
    XtSetValuesFunc set_values;
    XtArgsFunc set_values_hook;
    XtProc obj10;
    XtArgsProc get_values_hook;
    XtProc obj11;
    XtVersionType version;
    XtPointer callback_private;
    String obj12;
    XtProc obj13;
    XtProc obj14;
    XtPointer extension;
} ObjectClassPart;

struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long int version;
    Cardinal record_size;
    XtAllocateProc allocate;
    XtDeallocateProc deallocate;
};

typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long int version;
    Cardinal record_size;
    XtAllocateProc allocate;
    XtDeallocateProc deallocate;
} ObjectClassExtensionRec;
typedef struct {
    XtPointer next_extension;
    XrmQuark record_type;
    long int version;
    Cardinal record_size;
    XtAllocateProc allocate;
    XtDeallocateProc deallocate;
} *ObjectClassExtension;

typedef struct _ObjectClassRec {
    ObjectClassPart object_class;
} ObjectClassRec;
extern ObjectClassRec objectClassRec;
6.9.10 X11/Shell.h

extern char XtShellStrings[];
extern WidgetClass applicationShellWidgetClass;
extern WidgetClass overrideShellWidgetClass;
extern WidgetClass sessionShellWidgetClass;
extern WidgetClass shellWidgetClass;
extern WidgetClass topLevelShellWidgetClass;
extern WidgetClass transientShellWidgetClass;
extern WidgetClass wmShellWidgetClass;
6.9.11 X11/StringDefs.h

extern char XtStrings[];
6.10 Interface Definitions for libXt
The interfaces defined on the following pages are included in libXt and are defined by this specification. Unless otherwise noted, these interfaces shall be included in the source standard.
Other interfaces listed in Section 6.8 shall behave as described in the referenced base document.
_XtCopyFromArg
Name
_XtCopyFromArg — Copy "size" bytes from src to dst. 
Synopsis
void _XtCopyFromArg(XtArgVal src,char* dst,unsigned int size);
Description
The _XtCopyFromArg() function copies "size" bytes from src to dst. This is an internal X function call.
_XtInherit
Name
_XtInherit — inheritance operation.
Synopsis
#include <IntrinsicP.h>

extern void _XtInherit(
#if NeedFunctionPrototypes
    void
#endif
);
Description
_XtInherit() is a procedure that issues an error message if it is actually called.
_XtInheritTranslations
Name
_XtInheritTranslations — an inheritance constant
Synopsis
#include <CoreP.h>

externalref int _XtInheritTranslations;
Description
_XtInheritTranslations is an inheritance constant.
_XtIsSubclassOf
Name
_XtIsSubclassOf — determine if Widget is a subclass of WidgetClass.
Synopsis
#include <Intrinsic.h>

extern Boolean _XtIsSubclassOf(
    Widget              /* object*  /,
    WidgetClass         /* widget_class */,
    WidgetClass         /* flag_class */,
    _XtXtEnum           /* type_flag */,
);

Description
Determine if Widget(object) is a subclass of WidgetClass(widget_class).
6.11 Interfaces for libXext
Table 6-10 defines the library name and shared object name for the libXext library
Table 6-10 libXext Definition
Library:	libXext	
SONAME:	libXext.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[X-dbe] Double Buffer Extension Library	
[X-DPMS] X Display Power Management Signaling	
[X-evi] X Extended Visual Interface Extension	
[X-security] X Security Extension Specification	
[X-shape] X Nonrectangular Window Shape Extension Library	
[X-shm] The MIT Shared Memory Extension	
[X-sync] X Synchronization Extension Library	

6.11.1 X Shape Extension
6.11.1.1 Interfaces for X Shape Extension
An LSB conforming implementation shall provide the generic functions for X Shape Extension specified in Table 6-11, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-11 libXext - X Shape Extension Function Interfaces
XShapeCombineMask [X-shape]	XShapeCombineRectangles [X-shape]	XShapeCombineRegion [X-shape]	XShapeCombineShape [X-shape]	
XShapeGetRectangles [X-shape]	XShapeInputSelected [X-shape]	XShapeOffsetShape [X-shape]	XShapeQueryExtension [X-shape]	
XShapeQueryExtents [X-shape]	XShapeQueryVersion [X-shape]	XShapeSelectInput [X-shape]	

6.11.2 X Display Power Management Signaling Extension
6.11.2.1 Interfaces for X Display Power Management Signaling Extension
An LSB conforming implementation shall provide the generic functions for X Display Power Management Signaling Extension specified in Table 6-12, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-12 libXext - X Display Power Management Signaling Extension Function Interfaces
DPMSCapable [X-DPMS]	DPMSDisable [X-DPMS]	DPMSEnable [X-DPMS]	DPMSForceLevel [X-DPMS]	
DPMSGetTimeouts [X-DPMS]	DPMSGetVersion [X-DPMS]	DPMSInfo [X-DPMS]	DPMSQueryExtension [X-DPMS]	
DPMSSetTimeouts [X-DPMS]	

	

6.11.3 X Shared Memory Extensions
6.11.3.1 Interfaces for X Shared Memory Extensions
An LSB conforming implementation shall provide the generic functions for X Shared Memory Extensions specified in Table 6-13, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-13 libXext - X Shared Memory Extensions Function Interfaces
XShmAttach [X-shm]	XShmCreateImage [X-shm]	XShmCreatePixmap [X-shm]	XShmDetach [X-shm]	
XShmGetEventBase [X-shm]	XShmGetImage [X-shm]	XShmPixmapFormat [X-shm]	XShmPutImage [X-shm]	
XShmQueryExtension [X-shm]	XShmQueryVersion [X-shm]	

6.11.4 MIT-MISC Extension
6.11.4.1 Interfaces for MIT-MISC Extension
No external functions are defined for libXext - MIT-MISC Extension in this part of the specification. See also the relevant architecture specific part of ISO/IEC 23360.
6.11.5 X Synchronization Extension
6.11.5.1 Interfaces for X Synchronization Extension
An LSB conforming implementation shall provide the generic functions for X Synchronization Extension specified in Table 6-14, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-14 libXext - X Synchronization Extension Function Interfaces
XSyncAwait [X-sync]	XSyncChangeAlarm [X-sync]	XSyncChangeCounter [X-sync]	XSyncCreateAlarm [X-sync]	
XSyncCreateCounter [X-sync]	XSyncDestroyAlarm [X-sync]	XSyncDestroyCounter [X-sync]	XSyncFreeSystemCounterList [X-sync]	
XSyncGetPriority [X-sync]	XSyncInitialize [X-sync]	XSyncIntToValue [X-sync]	XSyncIntsToValue [X-sync]	
XSyncListSystemCounters [X-sync]	XSyncMaxValue [X-sync]	XSyncMinValue [X-sync]	XSyncQueryAlarm [X-sync]	
XSyncQueryCounter [X-sync]	XSyncQueryExtension [X-sync]	XSyncSetCounter [X-sync]	XSyncSetPriority [X-sync]	
XSyncValueAdd [X-sync]	XSyncValueEqual [X-sync]	XSyncValueGreaterOrEqual [X-sync]	XSyncValueGreaterThan [X-sync]	
XSyncValueHigh32 [X-sync]	XSyncValueIsNegative [X-sync]	XSyncValueIsPositive [X-sync]	XSyncValueIsZero [X-sync]	
XSyncValueLessOrEqual [X-sync]	XSyncValueLessThan [X-sync]	XSyncValueLow32 [X-sync]	XSyncValueSubtract [X-sync]	

6.11.6 X Security Extension
6.11.6.1 Interfaces for X Security Extension
An LSB conforming implementation shall provide the generic functions for X Security Extension specified in Table 6-15, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-15 libXext - X Security Extension Function Interfaces
XSecurityAllocXauth [X-security]	XSecurityFreeXauth [X-security]	XSecurityGenerateAuthorization [X-security]	XSecurityQueryExtension [X-security]	
XSecurityRevokeAuthorization [X-security]	

	

6.11.7 X Double Buffer Extension
6.11.7.1 Interfaces for X Double Buffer Extension
An LSB conforming implementation shall provide the generic functions for X Double Buffer Extension specified in Table 6-16, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-16 libXext - X Double Buffer Extension Function Interfaces
XdbeAllocateBackBufferName [X-dbe]	XdbeBeginIdiom [X-dbe]	XdbeDeallocateBackBufferName [X-dbe]	XdbeEndIdiom [X-dbe]	
XdbeFreeVisualInfo [X-dbe]	XdbeGetBackBufferAttributes [X-dbe]	XdbeGetVisualInfo [X-dbe]	XdbeQueryExtension [X-dbe]	
XdbeSwapBuffers [X-dbe]	

	

6.11.8 X Extended Visual Interface Extension
6.11.8.1 Interfaces for X Extended Visual Interface Extension
An LSB conforming implementation shall provide the generic functions for X Extended Visual Interface Extension specified in Table 6-17, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-17 libXext - X Extended Visual Interface Extension Function Interfaces
XeviGetVisualInfo [X-evi]	XeviQueryExtension [X-evi]	XeviQueryVersion [X-evi]	

6.12 Data Definitions for libXext
This section defines global identifiers and their values that are associated with interfaces contained in libXext. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
6.12.1 X11/extensions/XEVI.h

#define XEVI_TRANSPARENCY_NONE  0
#define XEVI_TRANSPARENCY_PIXEL 1
#define XEVI_TRANSPARENCY_MASK  2

typedef struct {
    VisualID core_visual_id;
    int screen;
    int level;
    unsigned int transparency_type;
    unsigned int transparency_value;
    unsigned int min_hw_colormaps;
    unsigned int max_hw_colormaps;
    unsigned int num_colormap_conflicts;
    VisualID *colormap_conflicts;
} ExtendedVisualInfo;
extern int XeviGetVisualInfo(Display *, Visual *, int,
                             ExtendedVisualInfo * *, int *);
extern int XeviQueryExtension(Display *);
extern int XeviQueryVersion(Display *, int *, int *);
6.12.2 X11/extensions/XKBgeom.h

extern int XkbAllocGeomColors(XkbGeometryPtr, int);
extern int XkbAllocGeomDoodads(XkbGeometryPtr, int);
extern int XkbAllocGeomKeyAliases(XkbGeometryPtr, int);
extern int XkbAllocGeomKeys(XkbRowPtr, int);
extern int XkbAllocGeomOutlines(XkbShapePtr, int);
extern int XkbAllocGeomOverlayKeys(XkbOverlayRowPtr, int);
extern int XkbAllocGeomOverlayRows(XkbOverlayPtr, int);
extern int XkbAllocGeomOverlays(XkbSectionPtr, int);
extern int XkbAllocGeomPoints(XkbOutlinePtr, int);
extern int XkbAllocGeomProps(XkbGeometryPtr, int);
extern int XkbAllocGeomRows(XkbSectionPtr, int);
extern int XkbAllocGeomSectionDoodads(XkbSectionPtr, int);
extern int XkbAllocGeomSections(XkbGeometryPtr, int);
extern int XkbAllocGeomShapes(XkbGeometryPtr, int);
extern int XkbAllocGeometry(XkbDescPtr, XkbGeometrySizesPtr);
extern int XkbComputeRowBounds(XkbGeometryPtr, XkbSectionPtr, XkbRowPtr);
extern int XkbComputeSectionBounds(XkbGeometryPtr, XkbSectionPtr);
extern int XkbComputeShapeBounds(XkbShapePtr);
extern int XkbComputeShapeTop(XkbShapePtr, XkbBoundsPtr);
extern char *XkbFindOverlayForKey(XkbGeometryPtr, XkbSectionPtr, char *);
extern void XkbFreeGeomColors(XkbGeometryPtr, int, int, int);
extern void XkbFreeGeomDoodads(XkbDoodadPtr, int, int);
extern void XkbFreeGeomKeyAliases(XkbGeometryPtr, int, int, int);
extern void XkbFreeGeomKeys(XkbRowPtr, int, int, int);
extern void XkbFreeGeomOutlines(XkbShapePtr, int, int, int);
extern void XkbFreeGeomOverlayKeys(XkbOverlayRowPtr, int, int, int);
extern void XkbFreeGeomOverlayRows(XkbOverlayPtr, int, int, int);
extern void XkbFreeGeomOverlays(XkbSectionPtr, int, int, int);
extern void XkbFreeGeomPoints(XkbOutlinePtr, int, int, int);
extern void XkbFreeGeomProperties(XkbGeometryPtr, int, int, int);
extern void XkbFreeGeomRows(XkbSectionPtr, int, int, int);
extern void XkbFreeGeomSections(XkbGeometryPtr, int, int, int);
extern void XkbFreeGeomShapes(XkbGeometryPtr, int, int, int);
extern void XkbFreeGeometry(XkbGeometryPtr, unsigned int, int);
extern int XkbGetGeometry(Display *, XkbDescPtr);
extern int XkbGetNamedGeometry(Display *, XkbDescPtr, Atom);
extern int XkbSetGeometry(Display *, unsigned int, XkbGeometryPtr);
6.12.3 X11/extensions/XShm.h

extern int XShmAttach(Display *, XShmSegmentInfo *);
extern XImage *XShmCreateImage(Display *, Visual *, unsigned int, int,
                               char *, XShmSegmentInfo *, unsigned int,
                               unsigned int);
extern Pixmap XShmCreatePixmap(Display *, Drawable, char *,
                               XShmSegmentInfo *, unsigned int,
                               unsigned int, unsigned int);
extern int XShmDetach(Display *, XShmSegmentInfo *);
extern int XShmGetEventBase(Display *);
extern int XShmGetImage(Display *, Drawable, XImage *, int, int,
                        unsigned long int);
extern int XShmPixmapFormat(Display *);
extern int XShmPutImage(Display *, Drawable, GC, XImage *, int, int, int,
                        int, unsigned int, unsigned int, int);
extern int XShmQueryExtension(Display *);
extern int XShmQueryVersion(Display *, int *, int *, int *);
6.12.4 X11/extensions/Xdbe.h

extern XdbeBackBuffer XdbeAllocateBackBufferName(Display *, Window,
                                                 XdbeSwapAction);
extern int XdbeBeginIdiom(Display *);
extern int XdbeDeallocateBackBufferName(Display *, XdbeBackBuffer);
extern int XdbeEndIdiom(Display *);
extern void XdbeFreeVisualInfo(XdbeScreenVisualInfo *);
extern XdbeBackBufferAttributes *XdbeGetBackBufferAttributes(Display *,
                                                             XdbeBackBuffer);
extern XdbeScreenVisualInfo *XdbeGetVisualInfo(Display *, Drawable *,
                                               int *);
extern int XdbeQueryExtension(Display *, int *, int *);
extern int XdbeSwapBuffers(Display *, XdbeSwapInfo *, int);
6.12.5 X11/extensions/dpms.h

extern int DPMSCapable(Display *);
extern int DPMSDisable(Display *);
extern int DPMSEnable(Display *);
extern int DPMSForceLevel(Display *, CARD16);
extern int DPMSGetTimeouts(Display *, CARD16 *, CARD16 *, CARD16 *);
extern int DPMSGetVersion(Display *, int *, int *);
extern int DPMSInfo(Display *, CARD16 *, BOOL *);
extern int DPMSQueryExtension(Display *, int *, int *);
extern int DPMSSetTimeouts(Display *, CARD16, CARD16, CARD16);
6.12.6 X11/extensions/security.h

typedef unsigned long int XSecurityAuthorization;
typedef struct {
    unsigned int timeout;
    unsigned int trust_level;
    XID group;
    long int event_mask;
} XSecurityAuthorizationAttributes;
extern Xauth *XSecurityAllocXauth(void);
extern void XSecurityFreeXauth(Xauth *);
extern Xauth *XSecurityGenerateAuthorization(Display *, Xauth *,
                                             unsigned long int,
                                             XSecurityAuthorizationAttributes
                                             *, XSecurityAuthorization *);
extern int XSecurityQueryExtension(Display *, int *, int *);
extern int XSecurityRevokeAuthorization(Display *, XSecurityAuthorization);
6.12.7 X11/extensions/shape.h

extern void XShapeCombineMask(Display *, Window, int, int, int, Pixmap,
                              int);
extern void XShapeCombineRectangles(Display *, Window, int, int, int,
                                    XRectangle *, int, int, int);
extern void XShapeCombineRegion(Display *, Window, int, int, int, Region,
                                int);
extern void XShapeCombineShape(Display *, Window, int, int, int, Window,
                               int, int);
extern XRectangle *XShapeGetRectangles(Display *, Window, int, int *,
                                       int *);
extern unsigned long int XShapeInputSelected(Display *, Window);
extern void XShapeOffsetShape(Display *, Window, int, int, int);
extern int XShapeQueryExtension(Display *, int *, int *);
extern int XShapeQueryExtents(Display *, Window, int *, int *, int *,
                              unsigned int *, unsigned int *, int *, int *,
                              int *, unsigned int *, unsigned int *);
extern int XShapeQueryVersion(Display *, int *, int *);
extern void XShapeSelectInput(Display *, Window, unsigned long int);
6.12.8 X11/extensions/sync.h

typedef struct _XSyncSystemCounter {
    char *name;
    XSyncCounter counter;
    XSyncValue resolution;
} XSyncSystemCounter;
typedef struct {
    XSyncCounter counter;
    XSyncValueType value_type;
    XSyncValue wait_value;
    XSyncTestType test_type;
} XSyncTrigger;
typedef struct {
    XSyncTrigger trigger;
    XSyncValue event_threshold;
} XSyncWaitCondition;
typedef struct {
    XSyncTrigger trigger;
    XSyncValue delta;
    int events;
    XSyncAlarmState state;
} XSyncAlarmAttributes;

typedef XID XSyncCounter;
typedef XID XSyncAlarm;
typedef struct _XSyncValue {
    int hi;
    unsigned int lo;
} XSyncValue;
typedef enum {
    XSyncAbsolute,
    XSyncRelative
} XSyncValueType;
typedef enum {
    XSyncPositiveTransition,
    XSyncNegativeTransition,
    XSyncPositiveComparison,
    XSyncNegativeComparison
} XSyncTestType;
typedef enum {
    XSyncAlarmActive,
    XSyncAlarmInactive,
    XSyncAlarmDestroyed
} XSyncAlarmState;
extern int XSyncAwait(Display *, XSyncWaitCondition *, int);
extern int XSyncChangeAlarm(Display *, XSyncAlarm, unsigned long int,
                            XSyncAlarmAttributes *);
extern int XSyncChangeCounter(Display *, XSyncCounter, XSyncValue);
extern XSyncAlarm XSyncCreateAlarm(Display *, unsigned long int,
                                   XSyncAlarmAttributes *);
extern XSyncCounter XSyncCreateCounter(Display *, XSyncValue);
extern int XSyncDestroyAlarm(Display *, XSyncAlarm);
extern int XSyncDestroyCounter(Display *, XSyncCounter);
extern void XSyncFreeSystemCounterList(XSyncSystemCounter *);
extern int XSyncGetPriority(Display *, XID, int *);
extern int XSyncInitialize(Display *, int *, int *);
extern void XSyncIntToValue(XSyncValue *, int);
extern void XSyncIntsToValue(XSyncValue *, unsigned int, int);
extern XSyncSystemCounter *XSyncListSystemCounters(Display *, int *);
extern void XSyncMaxValue(XSyncValue *);
extern void XSyncMinValue(XSyncValue *);
extern int XSyncQueryAlarm(Display *, XSyncAlarm, XSyncAlarmAttributes *);
extern int XSyncQueryCounter(Display *, XSyncCounter, XSyncValue *);
extern int XSyncQueryExtension(Display *, int *, int *);
extern int XSyncSetCounter(Display *, XSyncCounter, XSyncValue);
extern int XSyncSetPriority(Display *, XID, int);
extern void XSyncValueAdd(XSyncValue *, XSyncValue, XSyncValue, int *);
extern int XSyncValueEqual(XSyncValue, XSyncValue);
extern int XSyncValueGreaterOrEqual(XSyncValue, XSyncValue);
extern int XSyncValueGreaterThan(XSyncValue, XSyncValue);
extern int XSyncValueHigh32(XSyncValue);
extern int XSyncValueIsNegative(XSyncValue);
extern int XSyncValueIsPositive(XSyncValue);
extern int XSyncValueIsZero(XSyncValue);
extern int XSyncValueLessOrEqual(XSyncValue, XSyncValue);
extern int XSyncValueLessThan(XSyncValue, XSyncValue);
extern unsigned int XSyncValueLow32(XSyncValue);
extern void XSyncValueSubtract(XSyncValue *, XSyncValue, XSyncValue,
                               int *);
6.13 Interfaces for libXi
Table 6-18 defines the library name and shared object name for the libXi library
Table 6-18 libXi Definition
Library:	libXi	
SONAME:	libXi.so.6	

The behavior of the interfaces in this library is specified by the following specifications:
[XINPUT] X11 Input Library	

6.13.1 XInput
6.13.1.1 Interfaces for XInput
An LSB conforming implementation shall provide the generic functions for XInput specified in Table 6-19, with the full mandatory functionality as described in the referenced underlying specification.
Table 6-19 libXi - XInput Function Interfaces
XAllowDeviceEvents [XINPUT]	XChangeDeviceControl [XINPUT]	XChangeDeviceDontPropagateList [XINPUT]	XChangeDeviceKeyMapping [XINPUT]	
XChangeFeedbackControl [XINPUT]	XChangeKeyboardDevice [XINPUT]	XChangePointerDevice [XINPUT]	XCloseDevice [XINPUT]	
XDeviceBell [XINPUT]	XFreeDeviceControl [XINPUT]	XFreeDeviceList [XINPUT]	XFreeDeviceMotionEvents [XINPUT]	
XFreeDeviceState [XINPUT]	XFreeFeedbackList [XINPUT]	XGetDeviceButtonMapping [XINPUT]	XGetDeviceControl [XINPUT]	
XGetDeviceDontPropagateList [XINPUT]	XGetDeviceFocus [XINPUT]	XGetDeviceKeyMapping [XINPUT]	XGetDeviceModifierMapping [XINPUT]	
XGetDeviceMotionEvents [XINPUT]	XGetExtensionVersion [XINPUT]	XGetFeedbackControl [XINPUT]	XGetSelectedExtensionEvents [XINPUT]	
XGrabDevice [XINPUT]	XGrabDeviceButton [XINPUT]	XGrabDeviceKey [XINPUT]	XInput_find_display [XINPUT]	
XListInputDevices [XINPUT]	XOpenDevice [XINPUT]	XQueryDeviceState [XINPUT]	XSelectExtensionEvent [XINPUT]	
XSendExtensionEvent [XINPUT]	XSetDeviceButtonMapping [XINPUT]	XSetDeviceFocus [XINPUT]	XSetDeviceMode [XINPUT]	
XSetDeviceModifierMapping [XINPUT]	XSetDeviceValuators [XINPUT]	XUngrabDevice [XINPUT]	XUngrabDeviceButton [XINPUT]	
XUngrabDeviceKey [XINPUT]	

	

III OpenGL Libraries

7 Libraries
7.1 Interfaces for libGL
Table 7-1 defines the library name and shared object name for the libGL library
Table 7-1 libGL Definition
Library:	libGL	
SONAME:	libGL.so.1	

The behavior of the interfaces in this library is specified by the following specifications:
[OGL] OpenGL	

7.1.1 GL X interface
7.1.1.1 Interfaces for GL X interface
An LSB conforming implementation shall provide the generic functions for GL X interface specified in Table 7-2, with the full mandatory functionality as described in the referenced underlying specification.
Table 7-2 libGL - GL X interface Function Interfaces
glXChooseVisual [OGL]	glXCopyContext [OGL]	glXCreateContext [OGL]	glXCreateGLXPixmap [OGL]	
glXCreateNewContext [OGL]	glXCreatePbuffer [OGL]	glXCreatePixmap [OGL]	glXCreateWindow [OGL]	
glXDestroyContext [OGL]	glXDestroyGLXPixmap [OGL]	glXDestroyPbuffer [OGL]	glXDestroyPixmap [OGL]	
glXDestroyWindow [OGL]	glXFreeContextEXT [OGL]	glXGetClientString [OGL]	glXGetConfig [OGL]	
glXGetContextIDEXT [OGL]	glXGetCurrentContext [OGL]	glXGetCurrentDisplay [OGL]	glXGetCurrentDrawable [OGL]	
glXGetCurrentReadDrawable [OGL]	glXGetFBConfigAttrib [OGL]	glXGetProcAddressARB [OGL]	glXGetSelectedEvent [OGL]	
glXGetVisualFromFBConfig [OGL]	glXImportContextEXT [OGL]	glXIsDirect [OGL]	glXMakeContextCurrent [OGL]	
glXMakeCurrent [OGL]	glXQueryContext [OGL]	glXQueryContextInfoEXT [OGL]	glXQueryDrawable [OGL]	
glXQueryExtension [OGL]	glXQueryExtensionsString [OGL]	glXQueryServerString [OGL]	glXQueryVersion [OGL]	
glXSelectEvent [OGL]	glXSwapBuffers [OGL]	glXUseXFont [OGL]	glXWaitGL [OGL]	
glXWaitX [OGL]	

	

7.1.2 OpenGL
7.1.2.1 Interfaces for OpenGL
An LSB conforming implementation shall provide the generic functions for OpenGL specified in Table 7-3, with the full mandatory functionality as described in the referenced underlying specification.
Table 7-3 libGL - OpenGL Function Interfaces
glAccum [OGL]	glActiveTextureARB [OGL]	glAlphaFunc [OGL]	glAreTexturesResident [OGL]	
glArrayElement [OGL]	glBegin [OGL]	glBindTexture [OGL]	glBitmap [OGL]	
glBlendColor [OGL]	glBlendEquation [OGL]	glBlendFunc [OGL]	glCallList [OGL]	
glCallLists [OGL]	glClear [OGL]	glClearAccum [OGL]	glClearColor [OGL]	
glClearDepth [OGL]	glClearIndex [OGL]	glClearStencil [OGL]	glClientActiveTextureARB [OGL]	
glClipPlane [OGL]	glColor3b [OGL]	glColor3bv [OGL]	glColor3d [OGL]	
glColor3dv [OGL]	glColor3f [OGL]	glColor3fv [OGL]	glColor3i [OGL]	
glColor3iv [OGL]	glColor3s [OGL]	glColor3sv [OGL]	glColor3ub [OGL]	
glColor3ubv [OGL]	glColor3ui [OGL]	glColor3uiv [OGL]	glColor3us [OGL]	
glColor3usv [OGL]	glColor4b [OGL]	glColor4bv [OGL]	glColor4d [OGL]	
glColor4dv [OGL]	glColor4f [OGL]	glColor4fv [OGL]	glColor4i [OGL]	
glColor4iv [OGL]	glColor4s [OGL]	glColor4sv [OGL]	glColor4ub [OGL]	
glColor4ubv [OGL]	glColor4ui [OGL]	glColor4uiv [OGL]	glColor4us [OGL]	
glColor4usv [OGL]	glColorMask [OGL]	glColorMaterial [OGL]	glColorPointer [OGL]	
glColorSubTable [OGL]	glColorTable [OGL]	glColorTableParameterfv [OGL]	glColorTableParameteriv [OGL]	
glConvolutionFilter1D [OGL]	glConvolutionFilter2D [OGL]	glConvolutionParameterf [OGL]	glConvolutionParameterfv [OGL]	
glConvolutionParameteri [OGL]	glConvolutionParameteriv [OGL]	glCopyColorSubTable [OGL]	glCopyColorTable [OGL]	
glCopyConvolutionFilter1D [OGL]	glCopyConvolutionFilter2D [OGL]	glCopyPixels [OGL]	glCopyTexImage1D [OGL]	
glCopyTexImage2D [OGL]	glCopyTexSubImage1D [OGL]	glCopyTexSubImage2D [OGL]	glCopyTexSubImage3D [OGL]	
glCullFace [OGL]	glDeleteLists [OGL]	glDeleteTextures [OGL]	glDepthFunc [OGL]	
glDepthMask [OGL]	glDepthRange [OGL]	glDisable [OGL]	glDisableClientState [OGL]	
glDrawArrays [OGL]	glDrawBuffer [OGL]	glDrawElements [OGL]	glDrawPixels [OGL]	
glDrawRangeElements [OGL]	glEdgeFlag [OGL]	glEdgeFlagPointer [OGL]	glEdgeFlagv [OGL]	
glEnable [OGL]	glEnableClientState [OGL]	glEnd [OGL]	glEndList [OGL]	
glEvalCoord1d [OGL]	glEvalCoord1dv [OGL]	glEvalCoord1f [OGL]	glEvalCoord1fv [OGL]	
glEvalCoord2d [OGL]	glEvalCoord2dv [OGL]	glEvalCoord2f [OGL]	glEvalCoord2fv [OGL]	
glEvalMesh1 [OGL]	glEvalMesh2 [OGL]	glEvalPoint1 [OGL]	glEvalPoint2 [OGL]	
glFeedbackBuffer [OGL]	glFinish [OGL]	glFlush [OGL]	glFogf [OGL]	
glFogfv [OGL]	glFogi [OGL]	glFogiv [OGL]	glFrontFace [OGL]	
glFrustum [OGL]	glGenLists [OGL]	glGenTextures [OGL]	glGetBooleanv [OGL]	
glGetClipPlane [OGL]	glGetColorTable [OGL]	glGetColorTableParameterfv [OGL]	glGetColorTableParameteriv [OGL]	
glGetConvolutionFilter [OGL]	glGetConvolutionParameterfv [OGL]	glGetConvolutionParameteriv [OGL]	glGetDoublev [OGL]	
glGetError [OGL]	glGetFloatv [OGL]	glGetHistogram [OGL]	glGetHistogramParameterfv [OGL]	
glGetHistogramParameteriv [OGL]	glGetIntegerv [OGL]	glGetLightfv [OGL]	glGetLightiv [OGL]	
glGetMapdv [OGL]	glGetMapfv [OGL]	glGetMapiv [OGL]	glGetMaterialfv [OGL]	
glGetMaterialiv [OGL]	glGetMinmax [OGL]	glGetMinmaxParameterfv [OGL]	glGetMinmaxParameteriv [OGL]	
glGetPixelMapfv [OGL]	glGetPixelMapuiv [OGL]	glGetPixelMapusv [OGL]	glGetPointerv [OGL]	
glGetPolygonStipple [OGL]	glGetSeparableFilter [OGL]	glGetString [OGL]	glGetTexEnvfv [OGL]	
glGetTexEnviv [OGL]	glGetTexGendv [OGL]	glGetTexGenfv [OGL]	glGetTexGeniv [OGL]	
glGetTexImage [OGL]	glGetTexLevelParameterfv [OGL]	glGetTexLevelParameteriv [OGL]	glGetTexParameterfv [OGL]	
glGetTexParameteriv [OGL]	glHint [OGL]	glHistogram [OGL]	glIndexMask [OGL]	
glIndexPointer [OGL]	glIndexd [OGL]	glIndexdv [OGL]	glIndexf [OGL]	
glIndexfv [OGL]	glIndexi [OGL]	glIndexiv [OGL]	glIndexs [OGL]	
glIndexsv [OGL]	glIndexub [OGL]	glIndexubv [OGL]	glInitNames [OGL]	
glInterleavedArrays [OGL]	glIsEnabled [OGL]	glIsList [OGL]	glIsTexture [OGL]	
glLightModelf [OGL]	glLightModelfv [OGL]	glLightModeli [OGL]	glLightModeliv [OGL]	
glLightf [OGL]	glLightfv [OGL]	glLighti [OGL]	glLightiv [OGL]	
glLineStipple [OGL]	glLineWidth [OGL]	glListBase [OGL]	glLoadIdentity [OGL]	
glLoadMatrixd [OGL]	glLoadMatrixf [OGL]	glLoadName [OGL]	glLogicOp [OGL]	
glMap1d [OGL]	glMap1f [OGL]	glMap2d [OGL]	glMap2f [OGL]	
glMapGrid1d [OGL]	glMapGrid1f [OGL]	glMapGrid2d [OGL]	glMapGrid2f [OGL]	
glMaterialf [OGL]	glMaterialfv [OGL]	glMateriali [OGL]	glMaterialiv [OGL]	
glMatrixMode [OGL]	glMinmax [OGL]	glMultMatrixd [OGL]	glMultMatrixf [OGL]	
glMultiTexCoord1dARB [OGL]	glMultiTexCoord1dvARB [OGL]	glMultiTexCoord1fARB [OGL]	glMultiTexCoord1fvARB [OGL]	
glMultiTexCoord1iARB [OGL]	glMultiTexCoord1ivARB [OGL]	glMultiTexCoord1sARB [OGL]	glMultiTexCoord1svARB [OGL]	
glMultiTexCoord2dARB [OGL]	glMultiTexCoord2dvARB [OGL]	glMultiTexCoord2fARB [OGL]	glMultiTexCoord2fvARB [OGL]	
glMultiTexCoord2iARB [OGL]	glMultiTexCoord2ivARB [OGL]	glMultiTexCoord2sARB [OGL]	glMultiTexCoord2svARB [OGL]	
glMultiTexCoord3dARB [OGL]	glMultiTexCoord3dvARB [OGL]	glMultiTexCoord3fARB [OGL]	glMultiTexCoord3fvARB [OGL]	
glMultiTexCoord3iARB [OGL]	glMultiTexCoord3ivARB [OGL]	glMultiTexCoord3sARB [OGL]	glMultiTexCoord3svARB [OGL]	
glMultiTexCoord4dARB [OGL]	glMultiTexCoord4dvARB [OGL]	glMultiTexCoord4fARB [OGL]	glMultiTexCoord4fvARB [OGL]	
glMultiTexCoord4iARB [OGL]	glMultiTexCoord4ivARB [OGL]	glMultiTexCoord4sARB [OGL]	glMultiTexCoord4svARB [OGL]	
glNewList [OGL]	glNormal3b [OGL]	glNormal3bv [OGL]	glNormal3d [OGL]	
glNormal3dv [OGL]	glNormal3f [OGL]	glNormal3fv [OGL]	glNormal3i [OGL]	
glNormal3iv [OGL]	glNormal3s [OGL]	glNormal3sv [OGL]	glNormalPointer [OGL]	
glOrtho [OGL]	glPassThrough [OGL]	glPixelMapfv [OGL]	glPixelMapuiv [OGL]	
glPixelMapusv [OGL]	glPixelStoref [OGL]	glPixelStorei [OGL]	glPixelTransferf [OGL]	
glPixelTransferi [OGL]	glPixelZoom [OGL]	glPointSize [OGL]	glPolygonMode [OGL]	
glPolygonOffset [OGL]	glPolygonStipple [OGL]	glPopAttrib [OGL]	glPopClientAttrib [OGL]	
glPopMatrix [OGL]	glPopName [OGL]	glPrioritizeTextures [OGL]	glPushAttrib [OGL]	
glPushClientAttrib [OGL]	glPushMatrix [OGL]	glPushName [OGL]	glRasterPos2d [OGL]	
glRasterPos2dv [OGL]	glRasterPos2f [OGL]	glRasterPos2fv [OGL]	glRasterPos2i [OGL]	
glRasterPos2iv [OGL]	glRasterPos2s [OGL]	glRasterPos2sv [OGL]	glRasterPos3d [OGL]	
glRasterPos3dv [OGL]	glRasterPos3f [OGL]	glRasterPos3fv [OGL]	glRasterPos3i [OGL]	
glRasterPos3iv [OGL]	glRasterPos3s [OGL]	glRasterPos3sv [OGL]	glRasterPos4d [OGL]	
glRasterPos4dv [OGL]	glRasterPos4f [OGL]	glRasterPos4fv [OGL]	glRasterPos4i [OGL]	
glRasterPos4iv [OGL]	glRasterPos4s [OGL]	glRasterPos4sv [OGL]	glReadBuffer [OGL]	
glReadPixels [OGL]	glRectd [OGL]	glRectdv [OGL]	glRectf [OGL]	
glRectfv [OGL]	glRecti [OGL]	glRectiv [OGL]	glRects [OGL]	
glRectsv [OGL]	glRenderMode [OGL]	glResetHistogram [OGL]	glResetMinmax [OGL]	
glRotated [OGL]	glRotatef [OGL]	glScaled [OGL]	glScalef [OGL]	
glScissor [OGL]	glSelectBuffer [OGL]	glSeparableFilter2D [OGL]	glShadeModel [OGL]	
glStencilFunc [OGL]	glStencilMask [OGL]	glStencilOp [OGL]	glTexCoord1d [OGL]	
glTexCoord1dv [OGL]	glTexCoord1f [OGL]	glTexCoord1fv [OGL]	glTexCoord1i [OGL]	
glTexCoord1iv [OGL]	glTexCoord1s [OGL]	glTexCoord1sv [OGL]	glTexCoord2d [OGL]	
glTexCoord2dv [OGL]	glTexCoord2f [OGL]	glTexCoord2fv [OGL]	glTexCoord2i [OGL]	
glTexCoord2iv [OGL]	glTexCoord2s [OGL]	glTexCoord2sv [OGL]	glTexCoord3d [OGL]	
glTexCoord3dv [OGL]	glTexCoord3f [OGL]	glTexCoord3fv [OGL]	glTexCoord3i [OGL]	
glTexCoord3iv [OGL]	glTexCoord3s [OGL]	glTexCoord3sv [OGL]	glTexCoord4d [OGL]	
glTexCoord4dv [OGL]	glTexCoord4f [OGL]	glTexCoord4fv [OGL]	glTexCoord4i [OGL]	
glTexCoord4iv [OGL]	glTexCoord4s [OGL]	glTexCoord4sv [OGL]	glTexCoordPointer [OGL]	
glTexEnvf [OGL]	glTexEnvfv [OGL]	glTexEnvi [OGL]	glTexEnviv [OGL]	
glTexGend [OGL]	glTexGendv [OGL]	glTexGenf [OGL]	glTexGenfv [OGL]	
glTexGeni [OGL]	glTexGeniv [OGL]	glTexImage1D [OGL]	glTexImage2D [OGL]	
glTexImage3D [OGL]	glTexParameterf [OGL]	glTexParameterfv [OGL]	glTexParameteri [OGL]	
glTexParameteriv [OGL]	glTexSubImage1D [OGL]	glTexSubImage2D [OGL]	glTexSubImage3D [OGL]	
glTranslated [OGL]	glTranslatef [OGL]	glVertex2d [OGL]	glVertex2dv [OGL]	
glVertex2f [OGL]	glVertex2fv [OGL]	glVertex2i [OGL]	glVertex2iv [OGL]	
glVertex2s [OGL]	glVertex2sv [OGL]	glVertex3d [OGL]	glVertex3dv [OGL]	
glVertex3f [OGL]	glVertex3fv [OGL]	glVertex3i [OGL]	glVertex3iv [OGL]	
glVertex3s [OGL]	glVertex3sv [OGL]	glVertex4d [OGL]	glVertex4dv [OGL]	
glVertex4f [OGL]	glVertex4fv [OGL]	glVertex4i [OGL]	glVertex4iv [OGL]	
glVertex4s [OGL]	glVertex4sv [OGL]	glVertexPointer [OGL]	glViewport [OGL]	
glXChooseFBConfig [OGL]	

	

7.2 Data Definitions for libGL
This section defines global identifiers and their values that are associated with interfaces contained in libGL. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.
This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.
This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.
7.2.1 GL/gl.h

typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef int GLsizei;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;

#define GL_UNSIGNED_BYTE        0x1401
#define GL_SHORT        0x1402
#define GL_UNSIGNED_SHORT       0x1403
#define GL_INT  0x1404
#define GL_UNSIGNED_INT 0x1405
#define GL_FLOAT        0x1406
#define GL_2_BYTES      0x1407
#define GL_3_BYTES      0x1408
#define GL_4_BYTES      0x1409
#define GL_DOUBLE       0x140A

#define GL_POINTS       0x0000
#define GL_LINES        0x0001
#define GL_LINE_LOOP    0x0002
#define GL_LINE_STRIP   0x0003
#define GL_TRIANGLES    0x0004
#define GL_TRIANGLE_STRIP       0x0005
#define GL_TRIANGLE_FAN 0x0006
#define GL_QUADS        0x0007
#define GL_QUAD_STRIP   0x0008
#define GL_POLYGON      0x0009

#define GL_V2F  0x2A20
#define GL_V3F  0x2A21
#define GL_C4UB_V2F     0x2A22
#define GL_C4UB_V3F     0x2A23
#define GL_C3F_V3F      0x2A24
#define GL_N3F_V3F      0x2A25
#define GL_C4F_N3F_V3F  0x2A26
#define GL_T2F_V3F      0x2A27
#define GL_T4F_V4F      0x2A28
#define GL_T2F_C4UB_V3F 0x2A29
#define GL_T2F_C3F_V3F  0x2A2A
#define GL_T2F_N3F_V3F  0x2A2B
#define GL_T2F_C4F_N3F_V3F      0x2A2C
#define GL_T4F_C4F_N3F_V4F      0x2A2D
#define GL_VERTEX_ARRAY 0x8074
#define GL_NORMAL_ARRAY 0x8075
#define GL_COLOR_ARRAY  0x8076
#define GL_INDEX_ARRAY  0x8077
#define GL_TEXTURE_COORD_ARRAY  0x8078
#define GL_EDGE_FLAG_ARRAY      0x8079
#define GL_VERTEX_ARRAY_SIZE    0x807A
#define GL_VERTEX_ARRAY_TYPE    0x807B
#define GL_VERTEX_ARRAY_STRIDE  0x807C
#define GL_NORMAL_ARRAY_TYPE    0x807E
#define GL_NORMAL_ARRAY_STRIDE  0x807F
#define GL_COLOR_ARRAY_SIZE     0x8081
#define GL_COLOR_ARRAY_TYPE     0x8082
#define GL_COLOR_ARRAY_STRIDE   0x8083
#define GL_INDEX_ARRAY_TYPE     0x8085
#define GL_INDEX_ARRAY_STRIDE   0x8086
#define GL_TEXTURE_COORD_ARRAY_SIZE     0x8088
#define GL_TEXTURE_COORD_ARRAY_TYPE     0x8089
#define GL_TEXTURE_COORD_ARRAY_STRIDE   0x808A
#define GL_EDGE_FLAG_ARRAY_STRIDE       0x808C
#define GL_VERTEX_ARRAY_POINTER 0x808E
#define GL_NORMAL_ARRAY_POINTER 0x808F
#define GL_COLOR_ARRAY_POINTER  0x8090
#define GL_INDEX_ARRAY_POINTER  0x8091
#define GL_TEXTURE_COORD_ARRAY_POINTER  0x8092

#define GL_MATRIX_MODE  0x0BA0
#define GL_MODELVIEW    0x1700
#define GL_PROJECTION   0x1701
#define GL_TEXTURE      0x1702

extern void glAccum(GLenum, GLfloat);
extern void glAlphaFunc(GLenum, GLclampf);
extern GLboolean glAreTexturesResident(GLsizei, GLuint *, GLboolean *);
extern void glArrayElement(GLint);
extern void glBegin(GLenum);
extern void glBindTexture(GLenum, GLuint);
extern void glBitmap(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat,
                     GLubyte *);
extern void glBlendFunc(GLenum, GLenum);
extern void glCallList(GLuint);
extern void glCallLists(GLsizei, GLenum, GLvoid *);
extern void glClear(GLbitfield);
extern void glClearAccum(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glClearColor(GLclampf, GLclampf, GLclampf, GLclampf);
extern void glClearDepth(GLclampd);
extern void glClearIndex(GLfloat);
extern void glClearStencil(GLint);
extern void glClipPlane(GLenum, GLdouble *);
extern void glColor3b(GLbyte, GLbyte, GLbyte);
extern void glColor3bv(GLbyte *);
extern void glColor3d(GLdouble, GLdouble, GLdouble);
extern void glColor3dv(GLdouble *);
extern void glColor3f(GLfloat, GLfloat, GLfloat);
extern void glColor3fv(GLfloat *);
extern void glColor3i(GLint, GLint, GLint);
extern void glColor3iv(GLint *);
extern void glColor3s(GLshort, GLshort, GLshort);
extern void glColor3sv(GLshort *);
extern void glColor3ub(GLubyte, GLubyte, GLubyte);
extern void glColor3ubv(GLubyte *);
extern void glColor3ui(GLuint, GLuint, GLuint);
extern void glColor3uiv(GLuint *);
extern void glColor3us(GLushort, GLushort, GLushort);
extern void glColor3usv(GLushort *);
extern void glColor4b(GLbyte, GLbyte, GLbyte, GLbyte);
extern void glColor4bv(GLbyte *);
extern void glColor4d(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glColor4dv(GLdouble *);
extern void glColor4f(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glColor4fv(GLfloat *);
extern void glColor4i(GLint, GLint, GLint, GLint);
extern void glColor4iv(GLint *);
extern void glColor4s(GLshort, GLshort, GLshort, GLshort);
extern void glColor4sv(GLshort *);
extern void glColor4ub(GLubyte, GLubyte, GLubyte, GLubyte);
extern void glColor4ubv(GLubyte *);
extern void glColor4ui(GLuint, GLuint, GLuint, GLuint);
extern void glColor4uiv(GLuint *);
extern void glColor4us(GLushort, GLushort, GLushort, GLushort);
extern void glColor4usv(GLushort *);
extern void glColorMask(GLboolean, GLboolean, GLboolean, GLboolean);
extern void glColorMaterial(GLenum, GLenum);
extern void glColorPointer(GLint, GLenum, GLsizei, GLvoid *);
extern void glCopyPixels(GLint, GLint, GLsizei, GLsizei, GLenum);
extern void glCopyTexImage1D(GLenum, GLint, GLenum, GLint, GLint, GLsizei,
                             GLint);
extern void glCopyTexImage2D(GLenum, GLint, GLenum, GLint, GLint, GLsizei,
                             GLsizei, GLint);
extern void glCopyTexSubImage1D(GLenum, GLint, GLint, GLint, GLint,
                                GLsizei);
extern void glCopyTexSubImage2D(GLenum, GLint, GLint, GLint, GLint, GLint,
                                GLsizei, GLsizei);
extern void glCullFace(GLenum);
extern void glDeleteLists(GLuint, GLsizei);
extern void glDeleteTextures(GLsizei, GLuint *);
extern void glDepthFunc(GLenum);
extern void glDepthMask(GLboolean);
extern void glDepthRange(GLclampd, GLclampd);
extern void glDisable(GLenum);
extern void glDisableClientState(GLenum);
extern void glDrawArrays(GLenum, GLint, GLsizei);
extern void glDrawBuffer(GLenum);
extern void glDrawElements(GLenum, GLsizei, GLenum, GLvoid *);
extern void glDrawPixels(GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
extern void glEdgeFlag(GLboolean);
extern void glEdgeFlagPointer(GLsizei, GLvoid *);
extern void glEdgeFlagv(GLboolean *);
extern void glEnable(GLenum);
extern void glEnableClientState(GLenum);
extern void glEnd(void);
extern void glEndList(void);
extern void glEvalCoord1d(GLdouble);
extern void glEvalCoord1dv(GLdouble *);
extern void glEvalCoord1f(GLfloat);
extern void glEvalCoord1fv(GLfloat *);
extern void glEvalCoord2d(GLdouble, GLdouble);
extern void glEvalCoord2dv(GLdouble *);
extern void glEvalCoord2f(GLfloat, GLfloat);
extern void glEvalCoord2fv(GLfloat *);
extern void glEvalMesh1(GLenum, GLint, GLint);
extern void glEvalMesh2(GLenum, GLint, GLint, GLint, GLint);
extern void glEvalPoint1(GLint);
extern void glEvalPoint2(GLint, GLint);
extern void glFeedbackBuffer(GLsizei, GLenum, GLfloat *);
extern void glFinish(void);
extern void glFlush(void);
extern void glFogf(GLenum, GLfloat);
extern void glFogfv(GLenum, GLfloat *);
extern void glFogi(GLenum, GLint);
extern void glFogiv(GLenum, GLint *);
extern void glFrontFace(GLenum);
extern void glFrustum(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble,
                      GLdouble);
extern GLuint glGenLists(GLsizei);
extern void glGenTextures(GLsizei, GLuint *);
extern void glGetBooleanv(GLenum, GLboolean *);
extern void glGetClipPlane(GLenum, GLdouble *);
extern void glGetDoublev(GLenum, GLdouble *);
extern GLenum glGetError(void);
extern void glGetFloatv(GLenum, GLfloat *);
extern void glGetIntegerv(GLenum, GLint *);
extern void glGetLightfv(GLenum, GLenum, GLfloat *);
extern void glGetLightiv(GLenum, GLenum, GLint *);
extern void glGetMapdv(GLenum, GLenum, GLdouble *);
extern void glGetMapfv(GLenum, GLenum, GLfloat *);
extern void glGetMapiv(GLenum, GLenum, GLint *);
extern void glGetMaterialfv(GLenum, GLenum, GLfloat *);
extern void glGetMaterialiv(GLenum, GLenum, GLint *);
extern void glGetPixelMapfv(GLenum, GLfloat *);
extern void glGetPixelMapuiv(GLenum, GLuint *);
extern void glGetPixelMapusv(GLenum, GLushort *);
extern void glGetPointerv(GLenum, void **);
extern void glGetPolygonStipple(GLubyte *);
extern GLubyte *glGetString(GLenum);
extern void glGetTexEnvfv(GLenum, GLenum, GLfloat *);
extern void glGetTexEnviv(GLenum, GLenum, GLint *);
extern void glGetTexGendv(GLenum, GLenum, GLdouble *);
extern void glGetTexGenfv(GLenum, GLenum, GLfloat *);
extern void glGetTexGeniv(GLenum, GLenum, GLint *);
extern void glGetTexImage(GLenum, GLint, GLenum, GLenum, GLvoid *);
extern void glGetTexLevelParameterfv(GLenum, GLint, GLenum, GLfloat *);
extern void glGetTexLevelParameteriv(GLenum, GLint, GLenum, GLint *);
extern void glGetTexParameterfv(GLenum, GLenum, GLfloat *);
extern void glGetTexParameteriv(GLenum, GLenum, GLint *);
extern void glHint(GLenum, GLenum);
extern void glIndexMask(GLuint);
extern void glIndexPointer(GLenum, GLsizei, GLvoid *);
extern void glIndexd(GLdouble);
extern void glIndexdv(GLdouble *);
extern void glIndexf(GLfloat);
extern void glIndexfv(GLfloat *);
extern void glIndexi(GLint);
extern void glIndexiv(GLint *);
extern void glIndexs(GLshort);
extern void glIndexsv(GLshort *);
extern void glIndexub(GLubyte);
extern void glIndexubv(GLubyte *);
extern void glInitNames(void);
extern void glInterleavedArrays(GLenum, GLsizei, GLvoid *);
extern GLboolean glIsEnabled(GLenum);
extern GLboolean glIsList(GLuint);
extern GLboolean glIsTexture(GLuint);
extern void glLightModelf(GLenum, GLfloat);
extern void glLightModelfv(GLenum, GLfloat *);
extern void glLightModeli(GLenum, GLint);
extern void glLightModeliv(GLenum, GLint *);
extern void glLightf(GLenum, GLenum, GLfloat);
extern void glLightfv(GLenum, GLenum, GLfloat *);
extern void glLighti(GLenum, GLenum, GLint);
extern void glLightiv(GLenum, GLenum, GLint *);
extern void glLineStipple(GLint, GLushort);
extern void glLineWidth(GLfloat);
extern void glListBase(GLuint);
extern void glLoadIdentity(void);
extern void glLoadMatrixd(GLdouble *);
extern void glLoadMatrixf(GLfloat *);
extern void glLoadName(GLuint);
extern void glLogicOp(GLenum);
extern void glMap1d(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble *);
extern void glMap1f(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat *);
extern void glMap2d(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble,
                    GLdouble, GLint, GLint, GLdouble *);
extern void glMap2f(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat,
                    GLfloat, GLint, GLint, GLfloat *);
extern void glMapGrid1d(GLint, GLdouble, GLdouble);
extern void glMapGrid1f(GLint, GLfloat, GLfloat);
extern void glMapGrid2d(GLint, GLdouble, GLdouble, GLint, GLdouble,
                        GLdouble);
extern void glMapGrid2f(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
extern void glMaterialf(GLenum, GLenum, GLfloat);
extern void glMaterialfv(GLenum, GLenum, GLfloat *);
extern void glMateriali(GLenum, GLenum, GLint);
extern void glMaterialiv(GLenum, GLenum, GLint *);
extern void glMatrixMode(GLenum);
extern void glMultMatrixd(GLdouble *);
extern void glMultMatrixf(GLfloat *);
extern void glNewList(GLuint, GLenum);
extern void glNormal3b(GLbyte, GLbyte, GLbyte);
extern void glNormal3bv(GLbyte *);
extern void glNormal3d(GLdouble, GLdouble, GLdouble);
extern void glNormal3dv(GLdouble *);
extern void glNormal3f(GLfloat, GLfloat, GLfloat);
extern void glNormal3fv(GLfloat *);
extern void glNormal3i(GLint, GLint, GLint);
extern void glNormal3iv(GLint *);
extern void glNormal3s(GLshort, GLshort, GLshort);
extern void glNormal3sv(GLshort *);
extern void glNormalPointer(GLenum, GLsizei, GLvoid *);
extern void glOrtho(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble,
                    GLdouble);
extern void glPassThrough(GLfloat);
extern void glPixelMapfv(GLenum, GLint, GLfloat *);
extern void glPixelMapuiv(GLenum, GLint, GLuint *);
extern void glPixelMapusv(GLenum, GLint, GLushort *);
extern void glPixelStoref(GLenum, GLfloat);
extern void glPixelStorei(GLenum, GLint);
extern void glPixelTransferf(GLenum, GLfloat);
extern void glPixelTransferi(GLenum, GLint);
extern void glPixelZoom(GLfloat, GLfloat);
extern void glPointSize(GLfloat);
extern void glPolygonMode(GLenum, GLenum);
extern void glPolygonOffset(GLfloat, GLfloat);
extern void glPolygonStipple(GLubyte *);
extern void glPopAttrib(void);
extern void glPopClientAttrib(void);
extern void glPopMatrix(void);
extern void glPopName(void);
extern void glPrioritizeTextures(GLsizei, GLuint *, GLclampf *);
extern void glPushAttrib(GLbitfield);
extern void glPushClientAttrib(GLbitfield);
extern void glPushMatrix(void);
extern void glPushName(GLuint);
extern void glRasterPos2d(GLdouble, GLdouble);
extern void glRasterPos2dv(GLdouble *);
extern void glRasterPos2f(GLfloat, GLfloat);
extern void glRasterPos2fv(GLfloat *);
extern void glRasterPos2i(GLint, GLint);
extern void glRasterPos2iv(GLint *);
extern void glRasterPos2s(GLshort, GLshort);
extern void glRasterPos2sv(GLshort *);
extern void glRasterPos3d(GLdouble, GLdouble, GLdouble);
extern void glRasterPos3dv(GLdouble *);
extern void glRasterPos3f(GLfloat, GLfloat, GLfloat);
extern void glRasterPos3fv(GLfloat *);
extern void glRasterPos3i(GLint, GLint, GLint);
extern void glRasterPos3iv(GLint *);
extern void glRasterPos3s(GLshort, GLshort, GLshort);
extern void glRasterPos3sv(GLshort *);
extern void glRasterPos4d(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glRasterPos4dv(GLdouble *);
extern void glRasterPos4f(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glRasterPos4fv(GLfloat *);
extern void glRasterPos4i(GLint, GLint, GLint, GLint);
extern void glRasterPos4iv(GLint *);
extern void glRasterPos4s(GLshort, GLshort, GLshort, GLshort);
extern void glRasterPos4sv(GLshort *);
extern void glReadBuffer(GLenum);
extern void glReadPixels(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum,
                         GLvoid *);
extern void glRectd(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glRectdv(GLdouble *, GLdouble *);
extern void glRectf(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glRectfv(GLfloat *, GLfloat *);
extern void glRecti(GLint, GLint, GLint, GLint);
extern void glRectiv(GLint *, GLint *);
extern void glRects(GLshort, GLshort, GLshort, GLshort);
extern void glRectsv(GLshort *, GLshort *);
extern GLint glRenderMode(GLenum);
extern void glRotated(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glRotatef(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glScaled(GLdouble, GLdouble, GLdouble);
extern void glScalef(GLfloat, GLfloat, GLfloat);
extern void glScissor(GLint, GLint, GLsizei, GLsizei);
extern void glSelectBuffer(GLsizei, GLuint *);
extern void glShadeModel(GLenum);
extern void glStencilFunc(GLenum, GLint, GLuint);
extern void glStencilMask(GLuint);
extern void glStencilOp(GLenum, GLenum, GLenum);
extern void glTexCoord1d(GLdouble);
extern void glTexCoord1dv(GLdouble *);
extern void glTexCoord1f(GLfloat);
extern void glTexCoord1fv(GLfloat *);
extern void glTexCoord1i(GLint);
extern void glTexCoord1iv(GLint *);
extern void glTexCoord1s(GLshort);
extern void glTexCoord1sv(GLshort *);
extern void glTexCoord2d(GLdouble, GLdouble);
extern void glTexCoord2dv(GLdouble *);
extern void glTexCoord2f(GLfloat, GLfloat);
extern void glTexCoord2fv(GLfloat *);
extern void glTexCoord2i(GLint, GLint);
extern void glTexCoord2iv(GLint *);
extern void glTexCoord2s(GLshort, GLshort);
extern void glTexCoord2sv(GLshort *);
extern void glTexCoord3d(GLdouble, GLdouble, GLdouble);
extern void glTexCoord3dv(GLdouble *);
extern void glTexCoord3f(GLfloat, GLfloat, GLfloat);
extern void glTexCoord3fv(GLfloat *);
extern void glTexCoord3i(GLint, GLint, GLint);
extern void glTexCoord3iv(GLint *);
extern void glTexCoord3s(GLshort, GLshort, GLshort);
extern void glTexCoord3sv(GLshort *);
extern void glTexCoord4d(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glTexCoord4dv(GLdouble *);
extern void glTexCoord4f(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glTexCoord4fv(GLfloat *);
extern void glTexCoord4i(GLint, GLint, GLint, GLint);
extern void glTexCoord4iv(GLint *);
extern void glTexCoord4s(GLshort, GLshort, GLshort, GLshort);
extern void glTexCoord4sv(GLshort *);
extern void glTexCoordPointer(GLint, GLenum, GLsizei, GLvoid *);
extern void glTexEnvf(GLenum, GLenum, GLfloat);
extern void glTexEnvfv(GLenum, GLenum, GLfloat *);
extern void glTexEnvi(GLenum, GLenum, GLint);
extern void glTexEnviv(GLenum, GLenum, GLint *);
extern void glTexGend(GLenum, GLenum, GLdouble);
extern void glTexGendv(GLenum, GLenum, GLdouble *);
extern void glTexGenf(GLenum, GLenum, GLfloat);
extern void glTexGenfv(GLenum, GLenum, GLfloat *);
extern void glTexGeni(GLenum, GLenum, GLint);
extern void glTexGeniv(GLenum, GLenum, GLint *);
extern void glTexImage1D(GLenum, GLint, GLint, GLsizei, GLint, GLenum,
                         GLenum, GLvoid *);
extern void glTexImage2D(GLenum, GLint, GLint, GLsizei, GLsizei, GLint,
                         GLenum, GLenum, GLvoid *);
extern void glTexParameterf(GLenum, GLenum, GLfloat);
extern void glTexParameterfv(GLenum, GLenum, GLfloat *);
extern void glTexParameteri(GLenum, GLenum, GLint);
extern void glTexParameteriv(GLenum, GLenum, GLint *);
extern void glTexSubImage1D(GLenum, GLint, GLint, GLsizei, GLenum, GLenum,
                            GLvoid *);
extern void glTexSubImage2D(GLenum, GLint, GLint, GLint, GLsizei, GLsizei,
                            GLenum, GLenum, GLvoid *);
extern void glTranslated(GLdouble, GLdouble, GLdouble);
extern void glTranslatef(GLfloat, GLfloat, GLfloat);
extern void glVertex2d(GLdouble, GLdouble);
extern void glVertex2dv(GLdouble *);
extern void glVertex2f(GLfloat, GLfloat);
extern void glVertex2fv(GLfloat *);
extern void glVertex2i(GLint, GLint);
extern void glVertex2iv(GLint *);
extern void glVertex2s(GLshort, GLshort);
extern void glVertex2sv(GLshort *);
extern void glVertex3d(GLdouble, GLdouble, GLdouble);
extern void glVertex3dv(GLdouble *);
extern void glVertex3f(GLfloat, GLfloat, GLfloat);
extern void glVertex3fv(GLfloat *);
extern void glVertex3i(GLint, GLint, GLint);
extern void glVertex3iv(GLint *);
extern void glVertex3s(GLshort, GLshort, GLshort);
extern void glVertex3sv(GLshort *);
extern void glVertex4d(GLdouble, GLdouble, GLdouble, GLdouble);
extern void glVertex4dv(GLdouble *);
extern void glVertex4f(GLfloat, GLfloat, GLfloat, GLfloat);
extern void glVertex4fv(GLfloat *);
extern void glVertex4i(GLint, GLint, GLint, GLint);
extern void glVertex4iv(GLint *);
extern void glVertex4s(GLshort, GLshort, GLshort, GLshort);
extern void glVertex4sv(GLshort *);
extern void glVertexPointer(GLint, GLenum, GLsizei, GLvoid *);
extern void glViewport(GLint, GLint, GLsizei, GLsizei);
extern void glMultiTexCoord4svARB(GLenum, GLshort *);
extern void glMultiTexCoord4sARB(GLenum, GLshort, GLshort, GLshort,
                                 GLshort);
extern void glMultiTexCoord4ivARB(GLenum, GLint *);
extern void glMultiTexCoord4iARB(GLenum, GLint, GLint, GLint, GLint);
extern void glMultiTexCoord4fvARB(GLenum, GLfloat *);
extern void glMultiTexCoord4fARB(GLenum, GLfloat, GLfloat, GLfloat,
                                 GLfloat);
extern void glMultiTexCoord4dvARB(GLenum, GLdouble *);
extern void glMultiTexCoord4dARB(GLenum, GLdouble, GLdouble, GLdouble,
                                 GLdouble);
extern void glMultiTexCoord3svARB(GLenum, GLshort *);
extern void glMultiTexCoord3sARB(GLenum, GLshort, GLshort, GLshort);
extern void glMultiTexCoord3ivARB(GLenum, GLint *);
extern void glMultiTexCoord3iARB(GLenum, GLint, GLint, GLint);
extern void glMultiTexCoord3fvARB(GLenum, GLfloat *);
extern void glMultiTexCoord3fARB(GLenum, GLfloat, GLfloat, GLfloat);
extern void glMultiTexCoord3dvARB(GLenum, GLdouble *);
extern void glMultiTexCoord3dARB(GLenum, GLdouble, GLdouble, GLdouble);
extern void glMultiTexCoord2svARB(GLenum, GLshort *);
extern void glMultiTexCoord2sARB(GLenum, GLshort, GLshort);
extern void glMultiTexCoord2ivARB(GLenum, GLint *);
extern void glMultiTexCoord2iARB(GLenum, GLint, GLint);
extern void glMultiTexCoord2fvARB(GLenum, GLfloat *);
extern void glMultiTexCoord2fARB(GLenum, GLfloat, GLfloat);
extern void glMultiTexCoord2dvARB(GLenum, GLdouble *);
extern void glMultiTexCoord2dARB(GLenum, GLdouble, GLdouble);
extern void glMultiTexCoord1svARB(GLenum, GLshort *);
extern void glMultiTexCoord1sARB(GLenum, GLshort);
extern void glMultiTexCoord1ivARB(GLenum, GLint *);
extern void glMultiTexCoord1iARB(GLenum, GLint);
extern void glMultiTexCoord1fvARB(GLenum, GLfloat *);
extern void glMultiTexCoord1fARB(GLenum, GLfloat);
extern void glMultiTexCoord1dvARB(GLenum, GLdouble *);
extern void glMultiTexCoord1dARB(GLenum, GLdouble);
extern void glClientActiveTextureARB(GLenum);
extern void glActiveTextureARB(GLenum);
extern void glGetSeparableFilter(GLenum, GLenum, GLenum, GLvoid *,
                                 GLvoid *, GLvoid *);
extern void glSeparableFilter2D(GLenum, GLenum, GLsizei, GLsizei, GLenum,
                                GLenum, GLvoid *, GLvoid *);
extern void glGetConvolutionParameteriv(GLenum, GLenum, GLint *);
extern void glGetConvolutionParameterfv(GLenum, GLenum, GLfloat *);
extern void glGetConvolutionFilter(GLenum, GLenum, GLenum, GLvoid *);
extern void glCopyConvolutionFilter2D(GLenum, GLenum, GLint, GLint,
                                      GLsizei, GLsizei);
extern void glCopyConvolutionFilter1D(GLenum, GLenum, GLint, GLint,
                                      GLsizei);
extern void glConvolutionParameteriv(GLenum, GLenum, GLint *);
extern void glConvolutionParameteri(GLenum, GLenum, GLint);
extern void glConvolutionParameterfv(GLenum, GLenum, GLfloat *);
extern void glConvolutionParameterf(GLenum, GLenum, GLfloat);
extern void glConvolutionFilter2D(GLenum, GLenum, GLsizei, GLsizei, GLenum,
                                  GLenum, GLvoid *);
extern void glConvolutionFilter1D(GLenum, GLenum, GLsizei, GLenum, GLenum,
                                  GLvoid *);
extern void glGetMinmaxParameteriv(GLenum, GLenum, GLint *);
extern void glGetMinmaxParameterfv(GLenum, GLenum, GLfloat *);
extern void glGetMinmax(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
extern void glResetMinmax(GLenum);
extern void glMinmax(GLenum, GLenum, GLboolean);
extern void glGetHistogramParameteriv(GLenum, GLenum, GLint *);
extern void glGetHistogramParameterfv(GLenum, GLenum, GLfloat *);
extern void glGetHistogram(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
extern void glResetHistogram(GLenum);
extern void glHistogram(GLenum, GLsizei, GLenum, GLboolean);
extern void glBlendColor(GLclampf, GLclampf, GLclampf, GLclampf);
extern void glBlendEquation(GLenum);
extern void glGetColorTableParameteriv(GLenum, GLenum, GLint *);
extern void glGetColorTableParameterfv(GLenum, GLenum, GLfloat *);
extern void glGetColorTable(GLenum, GLenum, GLenum, GLvoid *);
extern void glCopyColorTable(GLenum, GLenum, GLint, GLint, GLsizei);
extern void glCopyColorSubTable(GLenum, GLsizei, GLint, GLint, GLsizei);
extern void glColorTableParameterfv(GLenum, GLenum, GLfloat *);
extern void glColorTableParameteriv(GLenum, GLenum, GLint *);
extern void glColorSubTable(GLenum, GLsizei, GLsizei, GLenum, GLenum,
                            GLvoid *);
extern void glColorTable(GLenum, GLenum, GLsizei, GLenum, GLenum,
                         GLvoid *);
extern void glCopyTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLint,
                                GLint, GLsizei, GLsizei);
extern void glTexSubImage3D(GLenum, GLint, GLint, GLint, GLint, GLsizei,
                            GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
extern void glTexImage3D(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei,
                         GLint, GLenum, GLenum, GLvoid *);
extern void glDrawRangeElements(GLenum, GLuint, GLuint, GLsizei, GLenum,
                                GLvoid *);
7.2.2 GL/glx.h

typedef struct __GLXcontextRec *GLXContext;
typedef struct __GLXFBConfigRec *GLXFBConfig;
typedef XID GLXContextID;
typedef XID GLXPixmap;
typedef XID GLXDrawable;
typedef XID GLXPbuffer;
typedef XID GLXWindow;
extern XVisualInfo *glXChooseVisual(Display *, int, int *);
extern void glXCopyContext(Display *, GLXContext, GLXContext,
                           unsigned long int);
extern GLXContext glXCreateContext(Display *, XVisualInfo *, GLXContext,
                                   int);
extern GLXPixmap glXCreateGLXPixmap(Display *, XVisualInfo *, Pixmap);
extern void glXDestroyContext(Display *, GLXContext);
extern void glXDestroyGLXPixmap(Display *, GLXPixmap);
extern void glXFreeContextEXT(Display *, GLXContext);
extern char *glXGetClientString(Display *, int);
extern int glXGetConfig(Display *, XVisualInfo *, int, int *);
extern GLXContextID glXGetContextIDEXT(GLXContext);
extern GLXContext glXGetCurrentContext(void);
extern Display *glXGetCurrentDisplay(void);
extern GLXDrawable glXGetCurrentDrawable(void);
extern GLXContext glXImportContextEXT(Display *, GLXContextID);
extern int glXIsDirect(Display *, GLXContext);
extern int glXMakeCurrent(Display *, GLXDrawable, GLXContext);
extern int glXQueryContextInfoEXT(Display *, GLXContext, int, int *);
extern int glXQueryExtension(Display *, int *, int *);
extern char *glXQueryExtensionsString(Display *, int);
extern char *glXQueryServerString(Display *, int, int);
extern int glXQueryVersion(Display *, int *, int *);
extern void glXSwapBuffers(Display *, GLXDrawable);
extern void glXUseXFont(Font, int, int, int);
extern void glXWaitGL(void);
extern void glXWaitX(void);
extern void (*glXGetProcAddressARB(const GLubyte * procName))
 (void);
extern void glXGetSelectedEvent(Display *, GLXDrawable,
                                unsigned long int *);
extern void glXSelectEvent(Display *, GLXDrawable, unsigned long int);
extern int glXQueryContext(Display *, GLXContext, int, int *);
extern GLXDrawable glXGetCurrentReadDrawable(void);
extern int glXMakeContextCurrent(Display *, GLXDrawable, GLXDrawable,
                                 GLXContext);
extern GLXContext glXCreateNewContext(Display *, GLXFBConfig, int,
                                      GLXContext, int);
extern void glXQueryDrawable(Display *, GLXDrawable, int, unsigned int *);
extern void glXDestroyPbuffer(Display *, GLXPbuffer);
extern GLXPbuffer glXCreatePbuffer(Display *, GLXFBConfig, int *);
extern void glXDestroyPixmap(Display *, GLXPixmap);
extern GLXPixmap glXCreatePixmap(Display *, GLXFBConfig, Pixmap, int *);
extern void glXDestroyWindow(Display *, GLXWindow);
extern GLXWindow glXCreateWindow(Display *, GLXFBConfig, Window, int *);
extern XVisualInfo *glXGetVisualFromFBConfig(Display *, GLXFBConfig);
extern int glXGetFBConfigAttrib(Display *, GLXFBConfig, int, int *);
extern GLXFBConfig *glXChooseFBConfig(Display *, int, int *, int *);

Annex A GNU Free Documentation License (Informative)
This specification is published under the terms of the GNU Free Documentation License, Version 1.1, March 2000
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
A.1 PREAMBLE
The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.
This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.
A.2 APPLICABILITY AND DEFINITIONS
This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you".
A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.
A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.
The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License.
The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License.
A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, whose contents can be viewed and edited directly and straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart or discourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed for human modification. Opaque formats include PostScript, PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML produced by some word processors for output purposes only.
The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.
A.3 VERBATIM COPYING
You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display copies.
A.4 COPYING IN QUANTITY
If you publish printed copies of the Document numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.
If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a publicly-accessible computer-network location containing a complete Transparent copy of the Document, free of added material, which the general network-using public has access to download anonymously at no charge using public-standard network protocols. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.
A.5 MODIFICATIONS
You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:
	A.	Use in the Title Page  (and on the covers, if any) a title distinct from that of the  Document, and from those of previous versions (which should, if  there were any, be listed in the History section of the  Document). You may use the same title as a previous version if  the original publisher of that version gives permission.
	B.	List on the Title Page,  as authors, one or more persons or entities responsible for  authorship of the modifications in the Modified Version,  together with at least five of the principal authors of the  Document (all of its principal authors, if it has less than  five).
	C.	State on the Title page  the name of the publisher of the Modified Version, as the  publisher.
	D.	Preserve all the  copyright notices of the Document.
	E.	Add an appropriate  copyright notice for your modifications adjacent to the other  copyright notices.
	F.	Include, immediately  after the copyright notices, a license notice giving the public  permission to use the Modified Version under the terms of this  License, in the form shown in the Addendum below.
	G.	Preserve in that license  notice the full lists of Invariant Sections and required Cover  Texts given in the Document's license notice.
	H.	Include an unaltered  copy of this License.
	I.	Preserve the section  entitled "History", and its title, and add to it an item stating  at least the title, year, new authors, and publisher of the  Modified Version as given on the Title Page. If there is no  section entitled "History" in the Document, create one stating  the title, year, authors, and publisher of the Document as given  on its Title Page, then add an item describing the Modified  Version as stated in the previous sentence.
	J.	Preserve the network  location, if any, given in the Document for public access to a  Transparent copy of the Document, and likewise the network  locations given in the Document for previous versions it was  based on. These may be placed in the "History" section. You  may omit a network location for a work that was published at  least four years before the Document itself, or if the original  publisher of the version it refers to gives permission.
	K.	In any section entitled  "Acknowledgements" or "Dedications", preserve the section's  title, and preserve in the section all the substance and tone of  each of the contributor acknowledgements and/or dedications  given therein.
	L.	Preserve all the  Invariant Sections of the Document, unaltered in their text and  in their titles. Section numbers or the equivalent are not  considered part of the section titles.
	M.	Delete any section  entitled "Endorsements". Such a section may not be included in  the Modified Version.
	N.	Do not retitle any  existing section as "Endorsements" or to conflict in title with  any Invariant Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.
You may add a section entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.
A.6 COMBINING DOCUMENTS
You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.
In the combination, you must combine any sections entitled "History" in the various original documents, forming one section entitled "History"; likewise combine any sections entitled "Acknowledgements", and any sections entitled "Dedications". You must delete all sections entitled "Endorsements."
A.7 COLLECTIONS OF DOCUMENTS
You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.
A.8 AGGREGATION WITH INDEPENDENT WORKS
A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, does not as a whole count as a Modified Version of the Document, provided no compilation copyright is claimed for the compilation. Such a compilation is called an "aggregate", and this License does not apply to the other self-contained works thus compiled with the Document, on account of their being thus compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one quarter of the entire aggregate, the Document's Cover Texts may be placed on covers that surround only the Document within the aggregate. Otherwise they must appear on covers around the whole aggregate.
A.9 TRANSLATION
Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License provided that you also include the original English version of this License. In case of a disagreement between the translation and the original English version of this License, the original English version will prevail.
A.10 TERMINATION
You may not copy, modify, sublicense, or distribute the Document except as expressly provided for under this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
A.11 FUTURE REVISIONS OF THIS LICENSE
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.
Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation.
A.12 How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:
Copyright (c) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in the section entitled "GNU Free Documentation License".
If you have no Invariant Sections, write "with no Invariant Sections" instead of saying which ones are invariant. If you have no Front-Cover Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.