a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $XFree86: xc/programs/Xserver/include/dix.h,v 3.26 2003/01/12 02:44:27 dawes Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/***********************************************************
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright 1987, 1998 The Open Group
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncthe above copyright notice appear in all copies and that both that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynccopyright notice and this permission notice appear in supporting
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncThe above copyright notice and this permission notice shall be included in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncall copies or substantial portions of the Software.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncin this Software without prior written authorization from The Open Group.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync All Rights Reserved
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncPermission to use, copy, modify, and distribute this software and its
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncdocumentation for any purpose and without fee is hereby granted,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncprovided that the above copyright notice appear in all copies and that
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncboth that copyright notice and this permission notice appear in
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsupporting documentation, and that the name of Digital not be
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncused in advertising or publicity pertaining to distribution of the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncsoftware without specific, written prior permission.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncSOFTWARE.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync******************************************************************/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* $Xorg: dix.h,v 1.4 2001/02/09 02:05:15 xorgcvs Exp $ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef DIX_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define DIX_H
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "gc.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "window.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#include "input.h"
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define EARLIER -1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SAMETIME 0
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define LATER 1
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define NullClient ((ClientPtr) 0)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define REQUEST(type) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync register type *stuff = (type *)client->requestBuffer
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define REQUEST_SIZE_MATCH(req)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((sizeof(req) >> 2) != client->req_len)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return(BadLength)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define REQUEST_AT_LEAST_SIZE(req) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((sizeof(req) >> 2) > client->req_len )\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return(BadLength)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define REQUEST_FIXED_SIZE(req, n)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (((sizeof(req) >> 2) > client->req_len) || \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (((sizeof(req) + (n) + 3) >> 2) != client->req_len)) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return(BadLength)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define LEGAL_NEW_RESOURCE(id,client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!LegalNewID(id,client)) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = id;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return(BadIDChoice);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* XXX if you are using this macro, you are probably not generating Match
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * errors where appropriate */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define LOOKUP_DRAWABLE(did, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ((client->lastDrawableID == did) ? \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->lastDrawable : (DrawablePtr)LookupDrawable(did, client))
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifdef XCSECURITY
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastDrawableID == did && !client->trustLevel)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = client->lastDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync RC_DRAWABLE, mode);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pDraw) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = did; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (pDraw->type == UNDRAWABLE_WINDOW)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadMatch;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastDrawableID == did && !client->trustLevel)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = client->lastDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = (DrawablePtr) SecurityLookupIDByClass(client, did, \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync RC_DRAWABLE, mode);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pDraw) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = did; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastGCID == rid && !client->trustLevel)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pGC = client->lastGC;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pGC = (GC *) SecurityLookupIDByType(client, rid, RT_GC, mode);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pGC)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = rid;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return (BadGC);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_DRAWABLE(pDraw, did, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SECURITY_VERIFY_DRAWABLE(pDraw, did, client, SecurityUnknownAccess)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_GEOMETRABLE(pDraw, did, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, SecurityUnknownAccess)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_GC(pGC, rid, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SECURITY_VERIFY_GC(pGC, rid, client, SecurityUnknownAccess)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#else /* not XCSECURITY */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_DRAWABLE(pDraw, did, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastDrawableID == did)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = client->lastDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pDraw) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = did; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (pDraw->type == UNDRAWABLE_WINDOW)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadMatch;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_GEOMETRABLE(pDraw, did, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastDrawableID == did)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = client->lastDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = (DrawablePtr) LookupIDByClass(did, RC_DRAWABLE);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pDraw) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = did; \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return BadDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VERIFY_GC(pGC, rid, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (client->lastGCID == rid)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pGC = client->lastGC;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pGC = (GC *)LookupIDByType(rid, RT_GC);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (!pGC)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->errorValue = rid;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return (BadGC);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_DRAWABLE(pDraw, did, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync VERIFY_DRAWABLE(pDraw, did, client)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_GEOMETRABLE(pDraw, did, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync VERIFY_GEOMETRABLE(pDraw, did, client)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SECURITY_VERIFY_GC(pGC, rid, client, mode)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync VERIFY_GC(pGC, rid, client)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* XCSECURITY */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * We think that most hardware implementations of DBE will want
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * LookupID*(dbe_back_buffer_id) to return the window structure that the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * id is a back buffer for. Since both front and back buffers will
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * return the same structure, you need to be able to distinguish
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * somewhere what kind of buffer (front/back) was being asked for, so
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * that ddx can render to the right place. That's the problem that the
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * following code solves. Note: we couldn't embed this in the LookupID*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * functions because the VALIDATE_DRAWABLE_AND_GC macro often circumvents
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * those functions by checking a one-element cache. That's why we're
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * mucking with VALIDATE_DRAWABLE_AND_GC.
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync *
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * If you put -DNEED_DBE_BUF_BITS into PervasiveDBEDefines, the window
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * structure will have two additional bits defined, srcBuffer and
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * dstBuffer, and their values will be maintained via the macros
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * SET_DBE_DSTBUF and SET_DBE_SRCBUF (below). If you also
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * put -DNEED_DBE_BUF_VALIDATE into PervasiveDBEDefines, the function
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * DbeValidateBuffer will be called any time the bits change to give you
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * a chance to do some setup. See the DBE code for more details on this
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * function. We put in these levels of conditionality so that you can do
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * just what you need to do, and no more. If neither of these defines
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * are used, the bits won't be there, and VALIDATE_DRAWABLE_AND_GC will
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * be unchanged. dpw
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if defined(NEED_DBE_BUF_BITS)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_DSTBUF(_pDraw, _drawID) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SET_DBE_BUF(_pDraw, _drawID, dstBuffer, TRUE)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_SRCBUF(_pDraw, _drawID) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SET_DBE_BUF(_pDraw, _drawID, srcBuffer, FALSE)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if defined (NEED_DBE_BUF_VALIDATE)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (_pDraw->type == DRAWABLE_WINDOW)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int thisbuf = (_pDraw->id == _drawID);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (thisbuf != ((WindowPtr)_pDraw)->_whichBuffer)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ((WindowPtr)_pDraw)->_whichBuffer = thisbuf;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DbeValidateBuffer((WindowPtr)_pDraw, _drawID, _dstbuf);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#else /* want buffer bits, but don't need to call DbeValidateBuffer */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (_pDraw->type == DRAWABLE_WINDOW)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ((WindowPtr)_pDraw)->_whichBuffer = (_pDraw->id == _drawID);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* NEED_DBE_BUF_VALIDATE */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#else /* don't want buffer bits in window */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_DSTBUF(_pDraw, _drawID) /**/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SET_DBE_SRCBUF(_pDraw, _drawID) /**/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* NEED_DBE_BUF_BITS */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, pGC, client)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (client->lastDrawableID != drawID))\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SECURITY_VERIFY_GEOMETRABLE(pDraw, drawID, client, SecurityWriteAccess);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SECURITY_VERIFY_GC(pGC, stuff->gc, client, SecurityReadAccess);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((pGC->depth != pDraw->depth) ||\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (pGC->pScreen != pDraw->pScreen))\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync return (BadMatch);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->lastDrawable = pDraw;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->lastDrawableID = drawID;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->lastGC = pGC;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync client->lastGCID = stuff->gc;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync {\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pGC = client->lastGC;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pDraw = client->lastDrawable;\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync }\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync SET_DBE_DSTBUF(pDraw, drawID);\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if (pGC->serialNumber != pDraw->serialNumber)\
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ValidateGC(pDraw, pGC);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define WriteReplyToClient(pClient, size, pReply) { \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((pClient)->swapped) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (pClient, (int)(size), pReply); \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else (void) WriteToClient(pClient, (int)(size), (char *)(pReply)); }
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define WriteSwappedDataToClient(pClient, size, pbuf) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync if ((pClient)->swapped) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync else (void) WriteToClient (pClient, (int)(size), (char *)(pbuf));
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _TimeStamp *TimeStampPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef _XTYPEDEF_CLIENTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _Client *ClientPtr; /* also in misc.h */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define _XTYPEDEF_CLIENTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _WorkQueue *WorkQueuePtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ClientPtr requestingClient;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ClientPtr *clients;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ClientPtr serverClient;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int currentMaxClients;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef int HWEventQueueType;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef HWEventQueueType* HWEventQueuePtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern HWEventQueuePtr checkForInput[2];
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _TimeStamp {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CARD32 months; /* really ~49.7 days */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CARD32 milliseconds;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} TimeStamp;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* dispatch.c */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void SetInputCheck(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync HWEventQueuePtr /*c0*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync HWEventQueuePtr /*c1*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CloseDownClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void UpdateCurrentTime(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void UpdateCurrentTimeIf(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitSelections(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void FlushClientCaches(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*id*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int dixDestroyPixmap(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*value*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*pid*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CloseDownRetainedResources(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*i*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*ospriv*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ClientPtr NextAvailableClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*ospriv*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void SendErrorToClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*majorCode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned int /*minorCode*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*resId*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*errorCode*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeleteWindowFromAnySelections(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /*pWin*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void MarkClientException(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int GetGeometry(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xGetGeometryReply* /* wa */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int SendConnSetup(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char* /*reason*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncDoGetImage(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*format*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Drawable /*drawable*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*x*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*y*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*width*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*height*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /*planemask*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xGetImageReply **/*im_return*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifdef LBX
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void IncrementClientCount(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* LBX */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* dixutils.c */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CopyISOLatin1Lowered(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*dest*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned char * /*source*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*length*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifdef XCSECURITY
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern WindowPtr SecurityLookupWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /*access_mode*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern pointer SecurityLookupDrawable(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /*access_mode*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern WindowPtr LookupWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern pointer LookupDrawable(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#else
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern WindowPtr LookupWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern pointer LookupDrawable(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SecurityLookupWindow(rid, client, access_mode) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync LookupWindow(rid, client)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define SecurityLookupDrawable(rid, client, access_mode) \
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync LookupDrawable(rid, client)
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* XCSECURITY */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern ClientPtr LookupClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /*rid*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void NoopDDA(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int AlterSaveSetForClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /*pWin*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /*mode*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeleteWindowFromAnySaveSet(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /*pWin*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void BlockHandler(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*pTimeout*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*pReadmask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void WakeupHandler(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*result*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*pReadmask*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef void (* WakeupHandlerProcPtr)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /* blockData */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* result */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /* pReadmask */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool RegisterBlockAndWakeupHandlers(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync BlockHandlerProcPtr /*blockHandler*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*blockData*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void RemoveBlockAndWakeupHandlers(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync BlockHandlerProcPtr /*blockHandler*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*blockData*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitBlockAndWakeupHandlers(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ProcessWorkQueue(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ProcessWorkQueueZombies(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool QueueWorkProc(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool (* /*function*/)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*clientUnused*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*closure*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ),
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*closure*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef Bool (* ClientSleepProcPtr)(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*closure*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool ClientSleep(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientSleepProcPtr /* function */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*closure*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef ___CLIENTSIGNAL_DEFINED___
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define ___CLIENTSIGNAL_DEFINED___
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool ClientSignal(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* ___CLIENTSIGNAL_DEFINED___ */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ClientWakeup(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool ClientIsAsleep(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* atom.c */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Atom MakeAtom(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync char * /*string*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /*len*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /*makeit*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool ValidAtom(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Atom /*atom*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern char *NameForAtom(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Atom /*atom*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void AtomError(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void FreeAllAtoms(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitAtoms(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/* events.c */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void SetMaskForEvent(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /* mask */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* event */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool IsParent(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* maybeparent */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* child */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern WindowPtr GetCurrentRootWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern WindowPtr GetSpriteWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void NoticeEventTime(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void EnqueueEvent(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* device */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ComputeFreezes(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CheckGrabForSyncs(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* dev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* thisMode */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* otherMode */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ActivatePointerGrab(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* mouse */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync GrabPtr /* grab */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync TimeStamp /* time */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* autoGrab */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeactivatePointerGrab(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* mouse */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ActivateKeyboardGrab(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* keybd */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync GrabPtr /* grab */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync TimeStamp /* time */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* passive */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeactivateKeyboardGrab(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* keybd */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void AllowSome(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /* client */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync TimeStamp /* time */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* thisDev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* newState */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ReleaseActiveGrabs(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncClientPtr client
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int DeliverEventsToWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* pEvents */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /* filter */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync GrabPtr /* grab */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* mskidx */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int DeliverDeviceEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync GrabPtr /* grab */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* stopAt */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* dev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DefineInitialRootWindow(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* win */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void WindowHasNewCursor(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool CheckDeviceGrabs(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* device */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* checkFirst */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeliverFocusedEvent(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* keybd */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* window */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeliverGrabbedEvent(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* thisDev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* deactivateGrab */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* count */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifdef XKB
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void FixKeyState(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEvent * /* xE */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* keybd */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* XKB */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void RecalculateDeliverableEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int OtherClientGone(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /* value */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync XID /* id */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DoFocusEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* dev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* fromWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* toWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /* mode */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int SetInputFocus(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /* client */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* dev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Window /* focusID */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CARD8 /* revertTo */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Time /* ctime */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* followOK */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int GrabDevice(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /* client */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeviceIntPtr /* dev */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /* this_mode */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /* other_mode */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Window /* grabWindow */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /* ownerEvents */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Time /* ctime */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /* mask */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CARD8 * /* status */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CloseDownEvents(void);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeleteWindowFromAnyEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Bool /* freeResources */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Mask EventMaskForClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /* pWin */,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /* client */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int DeliverEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /*pWin*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /*xE*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*count*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync WindowPtr /*otherParent*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void WriteEventsToClient(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*pClient*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*count*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /*events*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int TryClientEvents(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr /*client*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr /*pEvents*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*count*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /*mask*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync Mask /*filter*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync GrabPtr /*grab*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void WindowsRestructured(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifdef RANDR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncvoid
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncScreenRestructured (ScreenPtr pScreen);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void ResetClientPrivates(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern int AllocateClientPrivateIndex(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool AllocateClientPrivate(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int /*index*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync unsigned /*amount*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * callback manager stuff
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#ifndef _XTYPEDEF_CALLBACKLISTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _CallbackList *CallbackListPtr; /* also in misc.h */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#define _XTYPEDEF_CALLBACKLISTPTR
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef void (*CallbackProcPtr) (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr *, pointer, pointer
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef Bool (*AddCallbackProcPtr) (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr *, CallbackProcPtr, pointer
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef Bool (*DeleteCallbackProcPtr) (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr *, CallbackProcPtr, pointer
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef void (*CallCallbacksProcPtr) (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr *, pointer
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef void (*DeleteCallbackListProcPtr) (
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedNestedPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr *
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct _CallbackProcs {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync AddCallbackProcPtr AddCallback;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeleteCallbackProcPtr DeleteCallback;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallCallbacksProcPtr CallCallbacks;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync DeleteCallbackListProcPtr DeleteCallbackList;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} CallbackFuncsRec, *CallbackFuncsPtr;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool CreateCallbackList(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr * /*pcbl*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackFuncsPtr /*cbfuncs*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool AddCallback(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr * /*pcbl*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackProcPtr /*callback*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*data*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern Bool DeleteCallback(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr * /*pcbl*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackProcPtr /*callback*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*data*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void CallCallbacks(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr * /*pcbl*/,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync pointer /*call_data*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void DeleteCallbackList(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CallbackListPtr * /*pcbl*/
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern void InitCallbackManager(
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#if NeedFunctionPrototypes
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync void
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync);
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * ServerGrabCallback stuff
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern CallbackListPtr ServerGrabCallback;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr client;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ServerGrabState grabstate;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} ServerGrabInfoRec;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * EventCallback stuff
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern CallbackListPtr EventCallback;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync ClientPtr client;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr events;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int count;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} EventInfoRec;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync/*
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync * DeviceEventCallback stuff
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync */
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsyncextern CallbackListPtr DeviceEventCallback;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsynctypedef struct {
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync xEventPtr events;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync int count;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync} DeviceEventInfoRec;
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync
a2760a4d593af57a19ec32cdfd1723b68495df8cvboxsync#endif /* DIX_H */