56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * $Xorg: Xproto.h,v 1.4 2001/02/09 02:03:23 xorgcvs Exp $
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Definitions for the X window system used by server and c bindings */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * This packet-construction scheme makes the following assumptions:
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * 1. The compiler is able
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * to generate code which addresses one- and two-byte quantities.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * In the worst case, this would be done with bit-fields. If bit-fields
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * are used it may be necessary to reorder the request fields in this file,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * depending on the order in which the machine assigns bit fields to
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * machine words. There may also be a problem with sign extension,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * as K+R specify that bitfields are always unsigned.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * 2. 2- and 4-byte fields in packet structures must be ordered by hand
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * such that they are naturally-aligned, so that no compiler will ever
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * insert padding bytes.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * 3. All packets are hand-padded to a multiple of 4 bytes, for
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * the same reason.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/***********************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncCopyright 1987, 1998 The Open Group
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncthe above copyright notice appear in all copies and that both that
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynccopyright notice and this permission notice appear in supporting
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncdocumentation.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncThe above copyright notice and this permission notice shall be included in
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncall copies or substantial portions of the Software.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncExcept as contained in this notice, the name of The Open Group shall not be
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncused in advertising or otherwise to promote the sale, use or other dealings
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncin this Software without prior written authorization from The Open Group.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync All Rights Reserved
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncPermission to use, copy, modify, and distribute this software and its
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncdocumentation for any purpose and without fee is hereby granted,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncprovided that the above copyright notice appear in all copies and that
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncboth that copyright notice and this permission notice appear in
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncsupporting documentation, and that the name of Digital not be
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncused in advertising or publicity pertaining to distribution of the
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncsoftware without specific, written prior permission.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync******************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Define constants for the sizes of the network packets. The sz_ prefix is
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * used instead of something more descriptive so that the symbols are no more
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * than 32 characters in length (which causes problems for some compilers).
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* For the purpose of the structure definitions in this file,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncwe must redefine the following types in terms of Xmd.h's types, which may
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncinclude bit fields. All of these are #undef'd at the end of this file,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncrestoring the definitions in X.h. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync connection setup structure. This is followed by
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync numRoots xWindowRoot structs.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync*****************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytesAuthProto B16; /* Authorization protocol */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytesAuthString B16; /* Authorization string */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync BYTE lengthReason; /*num bytes in string following if failure */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 length B16; /* 1/4 additional bytes in setup info */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytesVendor B16; /* number of bytes in vendor string */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 numRoots; /* number of roots structs to follow */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 bitmapBitOrder; /* LeastSignificant, MostSign...*/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* window root */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nVisuals B16; /* number of xVisualType structures following */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 nDepths; /* number of xDepth structures following */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Structure Defns
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Structures needed for replies
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Used in GetMotionEvents */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * non-aligned big-endian font ID follows this struct
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct { /* followed by string */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 len; /* number of *characters* in string, or FontChange (255)
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync for font change, or 0 if just delta given */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * meant to be 32 byte quantity
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* GenericReply is the common format of all replies. The "data" items
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync are specific to each individual reply type. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 sequenceNumber B16; /* of last request received by server */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 length B32; /* 4 byte quantities beyond size of GenericReply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Individual reply formats. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 length B32; /* NOT 0; this is an extra-large reply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nameLength B16; /* # of characters in name */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 nItems B32; /* # of 8, 16, or 32-bit entities in reply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 length B32; /* 2, NOT 0; this is an extra-large reply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Warning: this MUST match (up to component renaming) xListFontsWithInfoReply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 length B32; /* definitely > 0, even if "nCharInfos" is 0 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nFontProps B16; /* followed by this many xFontProp structures */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 nCharInfos B32; /* followed by this many xCharInfo structures */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync INT32 overallWidth B32, overallLeft B32, overallRight B32;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Warning: this MUST match (up to component renaming) xQueryFontReply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 nameLength; /* 0 indicates end-of-reply-sequence */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 length B32; /* definitely > 0, even if "nameLength" is 0 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nFontProps B16; /* followed by this many xFontProp structures */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 nReplies B32; /* hint as to how many more replies might be coming */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 exactRed B16, exactGreen B16, exactBlue B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 screenRed B16, screenGreen B16, screenBlue B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 exactRed B16, exactGreen B16, exactBlue B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 screenRed B16, screenGreen B16, screenBlue B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 nElts; /* how many elements does the map have */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * All errors are 32 bytes
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 sequenceNumber B16; /* the nth request from this client */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * All events are 32 bytes
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync INT16 rootX B16, rootY B16, eventX B16, eventY B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync INT16 rootX B16, rootY B16, eventX B16, eventY B16;
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync BYTE flags; /* sameScreen and focus booleans, packed together */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * The event feilds in the structures for DestroyNotify, UnmapNotify,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * MapNotify, ReparentNotify, ConfigureNotify, CirclulateNotify, GravityNotify,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * must be at the same offset because server internal code is depending upon
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * this to patch up the events before they are delivered.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * Also note that MapRequest, ConfigureRequest and CirculateRequest have
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * the same offset for the event window.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* The event field in the circulate record is really the parent when this
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync is used as a CirculateRequest insteaad of a CircluateNotify */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* KeymapNotify events are not included in the above union because they
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync are different from all other events: they do not have a "detail"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync or "sequenceNumber", so there is room for a 248-bit key mask. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* XReply is the union of all the replies above whose "fixed part"
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncfits in 32 bytes. It does NOT include GetWindowAttributesReply,
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncQueryFontReply, QueryKeymapReply, or GetKeyboardControlReply
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsyncListFontsWithInfoReply */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef union {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Request structure */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync of whole request, including this header */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/*****************************************************************
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync * structures that follow request.
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync *****************************************************************/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* ResourceReq is used for any request which has a resource ID
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync (or Atom or Time) as its one and only argument. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 id B32; /* a Window, Drawable, Font, GContext, Pixmap, etc. */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct { /* followed by padded string */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD32 nUnits B32; /* length of stuff following, depends on format */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync /* the structure should have been quad-aligned */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#endif /* WORD64 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync BYTE pad1, pad2; /* string follows on word boundary */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytes B16; /* followed immediately by string bytes */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync BYTE pad1, pad2; /* LISTofSTRING8 follows on word boundary */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nDashes B16; /* length LISTofCARD8 of values following */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef xPolyPointReq xPolyLineReq; /* same request structure */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* The following used for PolySegment, PolyRectangle, PolyArc, PolyFillRectangle, PolyFillArc */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* the folloiwng used by PolyText8 and PolyText16 */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync INT16 x B16, y B16; /* items (xTextElt) start after struct */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD8 flags; /* DoRed, DoGreen, DoBlue, as in xColorItem */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytes B16; /* number of name string bytes following structure */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct { /* followed by string of length len */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytes B16; /* number of string bytes following structure*/
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync CARD16 nbytes B16; /* number of string bytes following structure */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct {
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsynctypedef struct { /* followed by LIST of ATOM */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Reply codes */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* Request codes */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync/* restore these definitions back to the typedefs in X.h */
56cf8eab3b29ae65a78e72a1d03ad30ef1c9bf57vboxsync#endif /* XPROTO_H */