f0ab104f070bc7f569404826fea1828ed985638cvboxsync/***********************************************************
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCopyright 1987, 1998 The Open Group
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncthe above copyright notice appear in all copies and that both that
f0ab104f070bc7f569404826fea1828ed985638cvboxsynccopyright notice and this permission notice appear in supporting
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncdocumentation.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncThe above copyright notice and this permission notice shall be included in
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncall copies or substantial portions of the Software.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncin this Software without prior written authorization from The Open Group.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync All Rights Reserved
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncPermission to use, copy, modify, and distribute this software and its
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncdocumentation for any purpose and without fee is hereby granted,
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncprovided that the above copyright notice appear in all copies and that
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncboth that copyright notice and this permission notice appear in
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncsupporting documentation, and that the name of Digital not be
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncused in advertising or publicity pertaining to distribution of the
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncsoftware without specific, written prior permission.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncSOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync******************************************************************/
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef DIX_H
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define DIX_H
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "callback.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "gc.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "window.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "input.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "cursor.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "geext.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "events.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include <X11/extensions/XI.h>
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define EARLIER -1
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define SAMETIME 0
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define LATER 1
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define NullClient ((ClientPtr) 0)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define REQUEST(type) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync type *stuff = (type *)client->requestBuffer
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define REQUEST_SIZE_MATCH(req)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((sizeof(req) >> 2) != client->req_len)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return(BadLength)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define REQUEST_AT_LEAST_SIZE(req) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((sizeof(req) >> 2) > client->req_len )\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return(BadLength)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define REQUEST_FIXED_SIZE(req, n)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (((sizeof(req) >> 2) > client->req_len) || \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (((sizeof(req) + (n) + 3) >> 2) != client->req_len)) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return(BadLength)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define LEGAL_NEW_RESOURCE(id,client)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (!LegalNewID(id,client)) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync {\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync client->errorValue = id;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return BadIDChoice;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, mode)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync {\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY, mode);\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (rc != Success)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return rc;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync rc = dixLookupGC(&(pGC), stuff->gc, client, DixUseAccess);\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (rc != Success)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return rc;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync return BadMatch;\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync }\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if (pGC->serialNumber != pDraw->serialNumber)\
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ValidateGC(pDraw, pGC);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define WriteReplyToClient(pClient, size, pReply) { \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((pClient)->swapped) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (pClient, (int)(size), pReply); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync else (void) WriteToClient(pClient, (int)(size), (char *)(pReply)); }
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define WriteSwappedDataToClient(pClient, size, pbuf) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync if ((pClient)->swapped) \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
f0ab104f070bc7f569404826fea1828ed985638cvboxsync else (void) WriteToClient (pClient, (int)(size), (char *)(pbuf));
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _TimeStamp *TimeStampPtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef _XTYPEDEF_CLIENTPTR
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _Client *ClientPtr; /* also in misc.h */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define _XTYPEDEF_CLIENTPTR
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _WorkQueue *WorkQueuePtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT ClientPtr clients[MAXCLIENTS];
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT ClientPtr serverClient;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int currentMaxClients;
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT char dispatchExceptionAtReset;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef int HWEventQueueType;
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef HWEventQueueType* HWEventQueuePtr;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT HWEventQueuePtr checkForInput[2];
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct _TimeStamp {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 months; /* really ~49.7 days */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD32 milliseconds;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} TimeStamp;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* dispatch.c */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void SetInputCheck(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync HWEventQueuePtr /*c0*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync HWEventQueuePtr /*c1*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void CloseDownClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void UpdateCurrentTime(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void UpdateCurrentTimeIf(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixDestroyPixmap(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*value*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID /*pid*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void InitClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*i*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*ospriv*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT ClientPtr NextAvailableClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*ospriv*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void SendErrorToClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int /*majorCode*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned int /*minorCode*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID /*resId*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*errorCode*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void MarkClientException(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_HIDDEN Bool CreateConnectionBlock(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* dixutils.c */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int CompareISOLatin1Lowered(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync const unsigned char * /*a*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int alen,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync const unsigned char * /*b*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int blen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixLookupWindow(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr *result,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask access_mode);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixLookupDrawable(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DrawablePtr *result,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask type_mask,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask access_mode);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixLookupGC(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GCPtr *result,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask access_mode);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixLookupFontable(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync FontPtr *result,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask access_mode);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int dixLookupClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr *result,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask access_mode);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void NoopDDA(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int AlterSaveSetForClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /*pWin*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned /*mode*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /*toRoot*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /*map*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void DeleteWindowFromAnySaveSet(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /*pWin*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void BlockHandler(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*pTimeout*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*pReadmask*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void WakeupHandler(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*result*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*pReadmask*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncvoid
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncEnableLimitedSchedulingLatency(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncvoid
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncDisableLimitedSchedulingLatency(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef void (* WakeupHandlerProcPtr)(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /* blockData */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* result */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /* pReadmask */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BlockHandlerProcPtr /*blockHandler*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*blockData*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void RemoveBlockAndWakeupHandlers(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BlockHandlerProcPtr /*blockHandler*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*blockData*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void InitBlockAndWakeupHandlers(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void ProcessWorkQueue(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void ProcessWorkQueueZombies(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool QueueWorkProc(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool (* /*function*/)(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*clientUnused*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*closure*/),
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*closure*/
f0ab104f070bc7f569404826fea1828ed985638cvboxsync);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef Bool (* ClientSleepProcPtr)(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*closure*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool ClientSleep(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientSleepProcPtr /* function */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /*closure*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef ___CLIENTSIGNAL_DEFINED___
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define ___CLIENTSIGNAL_DEFINED___
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool ClientSignal(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* ___CLIENTSIGNAL_DEFINED___ */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void ClientWakeup(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool ClientIsAsleep(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* atom.c */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Atom MakeAtom(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync const char * /*string*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned /*len*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /*makeit*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool ValidAtom(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Atom /*atom*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT const char *NameForAtom(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Atom /*atom*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void AtomError(void) _X_NORETURN;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void FreeAllAtoms(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void InitAtoms(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* main.c */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void SetVendorRelease(int release);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void SetVendorString(char *string);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/* events.c */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void SetMaskForEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* deviceid */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask /* mask */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* event */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void ConfineToShape(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* pDev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RegionPtr /* shape */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int* /* px */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int* /* py */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool IsParent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* maybeparent */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* child */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT WindowPtr GetCurrentRootWindow(DeviceIntPtr pDev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT WindowPtr GetSpriteWindow(DeviceIntPtr pDev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void NoticeEventTime(InternalEvent *ev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void EnqueueEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent * /* ev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* device */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void PlayReleasedEvents(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void ActivatePointerGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* mouse */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabPtr /* grab */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TimeStamp /* time */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /* autoGrab */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DeactivatePointerGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* mouse */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void ActivateKeyboardGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* keybd */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabPtr /* grab */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TimeStamp /* time */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /* passive */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DeactivateKeyboardGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* keybd */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern BOOL ActivateFocusInGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* old */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* win */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void AllowSome(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TimeStamp /* time */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* thisDev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* newState */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void ReleaseActiveGrabs(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern GrabPtr CheckPassiveGrabsOnWindow(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* device */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent * /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BOOL /* checkCore */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync BOOL /* activate */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int DeliverEventsToWindow(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEventPtr /* pEvents */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* count */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask /* filter */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabPtr /* grab */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void DeliverRawEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync RawDeviceEvent* /* ev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int DeliverDeviceEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent* /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabPtr /* grab */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* stopAt */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int DeliverOneGrabbedEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent* /* event*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync enum InputLevel /* level */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DeliverTouchEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync TouchPointInfoPtr /* ti */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent* /* ev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID /* resource */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void InitializeSprite(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* pDev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void UpdateSpriteForScreen(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* pDev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ScreenPtr /* pScreen */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void WindowHasNewCursor(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool CheckDeviceGrabs(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* device */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceEvent* /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* ancestor */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DeliverFocusedEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* keybd */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent* /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* window */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int DeliverGrabbedEvent(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent* /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* thisDev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /* deactivateGrab */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void FixKeyState(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceEvent* /* event */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* keybd */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void RecalculateDeliverableEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int OtherClientGone(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync pointer /* value */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID /* id */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DoFocusEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* fromWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* toWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* mode */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int SetInputFocus(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Window /* focusID */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD8 /* revertTo */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Time /* ctime */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /* followOK */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int GrabDevice(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned /* this_mode */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned /* other_mode */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Window /* grabWindow */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync unsigned /* ownerEvents */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Time /* ctime */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabMask* /* mask */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /* grabtype */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Cursor /* curs */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Window /* confineToWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CARD8 * /* status */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void InitEvents(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void CloseDownEvents(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern void DeleteWindowFromAnyEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Bool /* freeResources */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Mask EventMaskForClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /* pWin */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int DeliverEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /*pWin*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEventPtr /*xE*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*count*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync WindowPtr /*otherParent*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool CheckMotion(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceEvent* /* ev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* pDev */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void WriteEventsToClient(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*pClient*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*count*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEventPtr /*events*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int TryClientEvents(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /*client*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* device */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEventPtr /*pEvents*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int /*count*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask /*mask*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync Mask /*filter*/,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GrabPtr /*grab*/);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void WindowsRestructured(void);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int SetClientPointer(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* device */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DeviceIntPtr PickPointer(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT DeviceIntPtr PickKeyboard(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool IsInterferingGrab(
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr /* client */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr /* dev */,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEvent* /* events */);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef PANORAMIX
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifdef RANDR
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT void
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncScreenRestructured (ScreenPtr pScreen);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef HAVE_FFS
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT int ffs(int i);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * ServerGrabCallback stuff
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT CallbackListPtr ServerGrabCallback;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ServerGrabState grabstate;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} ServerGrabInfoRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * EventCallback stuff
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT CallbackListPtr EventCallback;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ClientPtr client;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync xEventPtr events;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync int count;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} EventInfoRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * DeviceEventCallback stuff
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT CallbackListPtr DeviceEventCallback;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync InternalEvent *event;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync DeviceIntPtr device;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync} DeviceEventInfoRec;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern int XItoCoreType(int xi_type);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool DevHasCursor(DeviceIntPtr pDev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool IsPointerDevice(DeviceIntPtr dev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool IsKeyboardDevice(DeviceIntPtr dev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool IsPointerEvent(InternalEvent *event);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern Bool IsTouchEvent(InternalEvent *event);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool IsMaster(DeviceIntPtr dev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_EXPORT Bool IsFloating(DeviceIntPtr dev);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_HIDDEN void CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_HIDDEN int CorePointerProc(DeviceIntPtr dev, int what);
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncextern _X_HIDDEN int CoreKeyboardProc(DeviceIntPtr dev, int what);
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* DIX_H */