040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/***********************************************************
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987, 1998 The Open Group
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncthe above copyright notice appear in all copies and that both that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynccopyright notice and this permission notice appear in supporting
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncThe above copyright notice and this permission notice shall be included in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncall copies or substantial portions of the Software.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncExcept as contained in this notice, the name of The Open Group shall not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or otherwise to promote the sale, use or other dealings
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncin this Software without prior written authorization from The Open Group.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncCopyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync All Rights Reserved
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncPermission to use, copy, modify, and distribute this software and its
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncdocumentation for any purpose and without fee is hereby granted,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncprovided that the above copyright notice appear in all copies and that
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncboth that copyright notice and this permission notice appear in
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsupporting documentation, and that the name of Digital not be
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncused in advertising or publicity pertaining to distribution of the
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncsoftware without specific, written prior permission.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncSOFTWARE.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync******************************************************************/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef DIX_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define DIX_H
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "gc.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "window.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "input.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define EARLIER -1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define SAMETIME 0
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define LATER 1
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define NullClient ((ClientPtr) 0)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define REQUEST(type) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync register type *stuff = (type *)client->requestBuffer
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define REQUEST_SIZE_MATCH(req)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if ((sizeof(req) >> 2) != client->req_len)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return(BadLength)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define REQUEST_AT_LEAST_SIZE(req) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if ((sizeof(req) >> 2) > client->req_len )\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return(BadLength)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define REQUEST_FIXED_SIZE(req, n)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if (((sizeof(req) >> 2) > client->req_len) || \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (((sizeof(req) + (n) + 3) >> 2) != client->req_len)) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return(BadLength)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define LEGAL_NEW_RESOURCE(id,client)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if (!LegalNewID(id,client)) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync {\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync client->errorValue = id;\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return(BadIDChoice);\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync }
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, mode)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync {\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int rc = dixLookupDrawable(&(pDraw), drawID, client, M_ANY, mode);\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if (rc != Success)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return rc;\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync rc = dixLookupGC(&(pGC), stuff->gc, client, DixUseAccess);\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if (rc != Success)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return rc;\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync return (BadMatch);\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync }\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if (pGC->serialNumber != pDraw->serialNumber)\
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ValidateGC(pDraw, pGC);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define WriteReplyToClient(pClient, size, pReply) { \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if ((pClient)->swapped) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (pClient, (int)(size), pReply); \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync else (void) WriteToClient(pClient, (int)(size), (char *)(pReply)); }
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define WriteSwappedDataToClient(pClient, size, pbuf) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync if ((pClient)->swapped) \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync else (void) WriteToClient (pClient, (int)(size), (char *)(pbuf));
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _TimeStamp *TimeStampPtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef _XTYPEDEF_CLIENTPTR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _Client *ClientPtr; /* also in misc.h */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define _XTYPEDEF_CLIENTPTR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _WorkQueue *WorkQueuePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifdef XPRINT
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern ClientPtr requestingClient;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern ClientPtr *clients;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern ClientPtr serverClient;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int currentMaxClients;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern char dispatchExceptionAtReset;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef int HWEventQueueType;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef HWEventQueueType* HWEventQueuePtr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern HWEventQueuePtr checkForInput[2];
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _TimeStamp {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD32 months; /* really ~49.7 days */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD32 milliseconds;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} TimeStamp;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* dispatch.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void SetInputCheck(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync HWEventQueuePtr /*c0*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync HWEventQueuePtr /*c1*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void CloseDownClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void UpdateCurrentTime(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void UpdateCurrentTimeIf(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int dixDestroyPixmap(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*value*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID /*pid*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void InitClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*i*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*ospriv*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern ClientPtr NextAvailableClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*ospriv*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void SendErrorToClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*majorCode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned int /*minorCode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID /*resId*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*errorCode*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void MarkClientException(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#if defined(DDXBEFORERESET)
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ddxBeforeReset (void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* dixutils.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void CopyISOLatin1Lowered(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char * /*dest*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char * /*source*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*length*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int CompareISOLatin1Lowered(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char * /*a*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int alen,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned char * /*b*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int blen);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int dixLookupWindow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr *result,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int dixLookupDrawable(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DrawablePtr *result,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask type_mask,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int dixLookupGC(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GCPtr *result,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int dixLookupClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr *result,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void NoopDDA(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int AlterSaveSetForClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pWin*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /*mode*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /*toRoot*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /*remap*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeleteWindowFromAnySaveSet(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pWin*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void BlockHandler(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pTimeout*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pReadmask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void WakeupHandler(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*result*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*pReadmask*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (* WakeupHandlerProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /* blockData */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* result */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /* pReadmask */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool RegisterBlockAndWakeupHandlers(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync BlockHandlerProcPtr /*blockHandler*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*blockData*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void RemoveBlockAndWakeupHandlers(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync BlockHandlerProcPtr /*blockHandler*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WakeupHandlerProcPtr /*wakeupHandler*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*blockData*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void InitBlockAndWakeupHandlers(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ProcessWorkQueue(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ProcessWorkQueueZombies(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool QueueWorkProc(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool (* /*function*/)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*clientUnused*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*closure*/),
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*closure*/
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef Bool (* ClientSleepProcPtr)(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*closure*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool ClientSleep(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientSleepProcPtr /* function */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*closure*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef ___CLIENTSIGNAL_DEFINED___
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define ___CLIENTSIGNAL_DEFINED___
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool ClientSignal(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* ___CLIENTSIGNAL_DEFINED___ */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ClientWakeup(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool ClientIsAsleep(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* atom.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Atom MakeAtom(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync char * /*string*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /*len*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /*makeit*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool ValidAtom(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /*atom*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern char *NameForAtom(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Atom /*atom*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void AtomError(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void FreeAllAtoms(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void InitAtoms(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* main.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void SetVendorRelease(int release);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void SetVendorString(char *string);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* events.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void SetMaskForEvent(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask /* mask */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* event */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool IsParent(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* maybeparent */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* child */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern WindowPtr GetCurrentRootWindow(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern WindowPtr GetSpriteWindow(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void NoticeEventTime(xEventPtr /* xE */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void EnqueueEvent(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* device */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ActivatePointerGrab(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* mouse */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GrabPtr /* grab */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync TimeStamp /* time */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* autoGrab */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeactivatePointerGrab(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* mouse */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ActivateKeyboardGrab(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* keybd */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GrabPtr /* grab */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync TimeStamp /* time */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* passive */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeactivateKeyboardGrab(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* keybd */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void AllowSome(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /* client */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync TimeStamp /* time */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* thisDev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* newState */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ReleaseActiveGrabs(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int DeliverEventsToWindow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* pEvents */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask /* filter */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GrabPtr /* grab */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* mskidx */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int DeliverDeviceEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GrabPtr /* grab */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* stopAt */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* dev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DefineInitialRootWindow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* win */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void UpdateSpriteForScreen(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ScreenPtr /* pScreen */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void WindowHasNewCursor(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool CheckDeviceGrabs(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* device */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* checkFirst */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeliverFocusedEvent(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* keybd */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* window */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeliverGrabbedEvent(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* thisDev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* deactivateGrab */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* count */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifdef XKB
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void FixKeyState(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEvent * /* xE */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* keybd */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* XKB */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void RecalculateDeliverableEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int OtherClientGone(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /* value */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID /* id */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DoFocusEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* dev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* fromWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* toWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /* mode */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int SetInputFocus(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /* client */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* dev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Window /* focusID */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 /* revertTo */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Time /* ctime */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* followOK */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int GrabDevice(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /* client */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync DeviceIntPtr /* dev */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /* this_mode */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /* other_mode */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Window /* grabWindow */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync unsigned /* ownerEvents */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Time /* ctime */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask /* mask */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 * /* status */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void InitEvents(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void CloseDownEvents(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeleteWindowFromAnyEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Bool /* freeResources */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Mask EventMaskForClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /* pWin */,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /* client */);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int DeliverEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*pWin*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /*xE*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync WindowPtr /*otherParent*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void WriteEventsToClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*pClient*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /*events*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int TryClientEvents(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr /*client*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr /*pEvents*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int /*count*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask /*mask*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask /*filter*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync GrabPtr /*grab*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void WindowsRestructured(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifdef PANORAMIX
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifdef RANDR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncvoid
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncScreenRestructured (ScreenPtr pScreen);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int ffs(int i);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * callback manager stuff
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef _XTYPEDEF_CALLBACKLISTPTR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct _CallbackList *CallbackListPtr; /* also in misc.h */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define _XTYPEDEF_CALLBACKLISTPTR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef void (*CallbackProcPtr) (
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackListPtr *, pointer, pointer);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool AddCallback(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackListPtr * /*pcbl*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackProcPtr /*callback*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*data*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern Bool DeleteCallback(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackListPtr * /*pcbl*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackProcPtr /*callback*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*data*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void CallCallbacks(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackListPtr * /*pcbl*/,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync pointer /*call_data*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void DeleteCallbackList(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CallbackListPtr * /*pcbl*/);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern void InitCallbackManager(void);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * ServerGrabCallback stuff
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern CallbackListPtr ServerGrabCallback;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef enum {SERVER_GRABBED, SERVER_UNGRABBED,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CLIENT_PERVIOUS, CLIENT_IMPERVIOUS } ServerGrabState;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ServerGrabState grabstate;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} ServerGrabInfoRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * EventCallback stuff
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern CallbackListPtr EventCallback;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr events;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int count;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} EventInfoRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * DeviceEventCallback stuff
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern CallbackListPtr DeviceEventCallback;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync xEventPtr events;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync int count;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync} DeviceEventInfoRec;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* strcasecmp.c */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#if NEED_STRCASECMP
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define strcasecmp xstrcasecmp
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int xstrcasecmp(const char *s1, const char *s2);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#if NEED_STRNCASECMP
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define strncasecmp xstrncasecmp
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern int xstrncasecmp(const char *s1, const char *s2, size_t n);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#if NEED_STRCASESTR
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define strcasestr xstrcasestr
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern char *xstrcasestr(const char *s, const char *find);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/*
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * These are deprecated compatibility functions and will be removed soon!
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync * Please use the noted replacements instead.
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* replaced by dixLookupWindow */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern WindowPtr SecurityLookupWindow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* replaced by dixLookupWindow */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern WindowPtr LookupWindow(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* replaced by dixLookupDrawable */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern pointer SecurityLookupDrawable(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync Mask access_mode);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* replaced by dixLookupDrawable */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern pointer LookupDrawable(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync/* replaced by dixLookupClient */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncextern ClientPtr LookupClient(
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync XID id,
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync ClientPtr client);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif /* DIX_H */