diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c index e03570468..5e683a8ab 100644 --- a/GL/glx/glxdri.c +++ b/GL/glx/glxdri.c @@ -495,6 +495,7 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen, context->base.loseCurrent = __glXDRIcontextLoseCurrent; context->base.copy = __glXDRIcontextCopy; context->base.forceCurrent = __glXDRIcontextForceCurrent; + context->base.pScreen = screen->base.pScreen; context->base.textureFromPixmap = &__glXDRItextureFromPixmap; diff --git a/Xext/appgroup.c b/Xext/appgroup.c index bb7a73ce1..7bd205587 100644 --- a/Xext/appgroup.c +++ b/Xext/appgroup.c @@ -116,8 +116,7 @@ int XagAppGroupFree( return Success; } -/* static */ -void XagClientStateChange( +static void XagClientStateChange( CallbackListPtr* pcbl, pointer nulldata, pointer calldata) @@ -172,21 +171,6 @@ void XagClientStateChange( } } -void -XagExtensionInit(INITARGS) -{ - if (AddExtension (XAGNAME, - 0, - XagNumberErrors, - ProcXagDispatch, - SProcXagDispatch, - XagResetProc, - StandardMinorOpcode)) { - RT_APPGROUP = CreateNewResourceType (XagAppGroupFree); - XaceRegisterCallback(XACE_AUTH_AVAIL, XagCallClientStateChange, NULL); - } -} - /*ARGSUSED*/ static void XagResetProc( @@ -393,8 +377,7 @@ int AttrValidate( return client->noClientException; } -/* static */ -int ProcXagCreate ( +static int ProcXagCreate ( register ClientPtr client) { REQUEST (xXagCreateReq); @@ -425,8 +408,7 @@ int ProcXagCreate ( return client->noClientException; } -/* static */ -int ProcXagDestroy( +static int ProcXagDestroy( register ClientPtr client) { AppGroupPtr pAppGrp; @@ -743,18 +725,7 @@ XID XagId( return (client->appgroup ? client->appgroup->appgroupId : 0); } -void XagGetDeltaInfo( - ClientPtr client, - CARD32* buf) -{ - *buf++ = (CARD32) client->appgroup->default_root; - *buf++ = (CARD32) client->appgroup->root_visual; - *buf++ = (CARD32) client->appgroup->default_colormap; - *buf++ = (CARD32) client->appgroup->black_pixel; - *buf = (CARD32) client->appgroup->white_pixel; -} - -void XagCallClientStateChange( +static void XagCallClientStateChange( CallbackListPtr *pcbl, pointer nulldata, pointer calldata) @@ -785,3 +756,18 @@ void XagCallClientStateChange( XagClientStateChange (NULL, NULL, (pointer)&clientinfo); } } + +void +XagExtensionInit(INITARGS) +{ + if (AddExtension (XAGNAME, + 0, + XagNumberErrors, + ProcXagDispatch, + SProcXagDispatch, + XagResetProc, + StandardMinorOpcode)) { + RT_APPGROUP = CreateNewResourceType (XagAppGroupFree); + XaceRegisterCallback(XACE_AUTH_AVAIL, XagCallClientStateChange, NULL); + } +} diff --git a/Xext/appgroup.h b/Xext/appgroup.h index a875068fc..778da5de6 100644 --- a/Xext/appgroup.h +++ b/Xext/appgroup.h @@ -50,12 +50,6 @@ extern ClientPtr XagLeader( ClientPtr /* client */ ); -extern void XagCallClientStateChange( - CallbackListPtr * /* pcbl */, - pointer /* nulldata */, - pointer /* calldata */ -); - extern Bool XagIsControlledRoot ( ClientPtr /* client */, WindowPtr /* pParent */ @@ -65,22 +59,6 @@ extern XID XagId ( ClientPtr /* client */ ); -extern void XagGetDeltaInfo ( - ClientPtr /* client */, - CARD32* /* buf */ -); - -extern void XagClientStateChange( - CallbackListPtr* pcbl, - pointer nulldata, - pointer calldata); - -extern int ProcXagCreate ( - register ClientPtr client); - -extern int ProcXagDestroy( - register ClientPtr client); - _XFUNCPROTOEND #endif /* _APPGROUP_SRV_H_ */ diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c index 85f591356..95df04320 100644 --- a/Xext/panoramiX.c +++ b/Xext/panoramiX.c @@ -77,7 +77,7 @@ int PanoramiXPixHeight = 0; _X_EXPORT int PanoramiXNumScreens = 0; _X_EXPORT PanoramiXData *panoramiXdataPtr = NULL; -RegionRec PanoramiXScreenRegion = {{0, 0, 0, 0}, NULL}; +static RegionRec PanoramiXScreenRegion = {{0, 0, 0, 0}, NULL}; static int PanoramiXNumDepths; static DepthPtr PanoramiXDepths; @@ -109,7 +109,6 @@ static void PanoramiXResetProc(ExtensionEntry*); #include "panoramiXh.h" int (* SavedProcVector[256]) (ClientPtr client) = { NULL, }; -ScreenInfo *GlobalScrInfo = NULL; static int PanoramiXGCIndex = -1; static int PanoramiXScreenIndex = -1; @@ -135,7 +134,7 @@ static void XineramaChangeClip(GCPtr, int, pointer, int); static void XineramaDestroyClip(GCPtr); static void XineramaCopyClip(GCPtr, GCPtr); -GCFuncs XineramaGCFuncs = { +static GCFuncs XineramaGCFuncs = { XineramaValidateGC, XineramaChangeGC, XineramaCopyGC, XineramaDestroyGC, XineramaChangeClip, XineramaDestroyClip, XineramaCopyClip }; @@ -168,7 +167,7 @@ XineramaCloseScreen (int i, ScreenPtr pScreen) return (*pScreen->CloseScreen) (i, pScreen); } -Bool +static Bool XineramaCreateGC(GCPtr pGC) { ScreenPtr pScreen = pGC->pScreen; @@ -330,8 +329,6 @@ XineramaDestroyClip(GCPtr pGC) Xinerama_GC_FUNC_EPILOGUE (pGC); } - - _X_EXPORT int XineramaDeleteResource(pointer data, XID id) { @@ -339,32 +336,11 @@ XineramaDeleteResource(pointer data, XID id) return 1; } - -static Bool -XineramaFindIDOnAnyScreen(pointer resource, XID id, pointer privdata) -{ - PanoramiXRes *res = (PanoramiXRes*)resource; - int j; - - FOR_NSCREENS(j) - if(res->info[j].id == *((XID*)privdata)) return TRUE; - - return FALSE; -} - -PanoramiXRes * -PanoramiXFindIDOnAnyScreen(RESTYPE type, XID id) -{ - return LookupClientResourceComplex(clients[CLIENT_ID(id)], type, - XineramaFindIDOnAnyScreen, &id); -} - typedef struct { int screen; int id; } PanoramiXSearchData; - static Bool XineramaFindIDByScrnum(pointer resource, XID id, pointer privdata) { @@ -389,23 +365,6 @@ PanoramiXFindIDByScrnum(RESTYPE type, XID id, int screen) XineramaFindIDByScrnum, &data); } -WindowPtr -PanoramiXChangeWindow(int ScrnNum, WindowPtr pWin) -{ - int num = pWin->drawable.pScreen->myNum; - - if(num != ScrnNum) { - PanoramiXRes *win; - - win = PanoramiXFindIDByScrnum(XRT_WINDOW, pWin->drawable.id, num); - - if (win) - pWin = (WindowPtr) LookupIDByType(win->info[ScrnNum].id, RT_WINDOW); - } - - return pWin; -} - typedef struct _connect_callback_list { void (*func)(void); struct _connect_callback_list *next; @@ -496,7 +455,6 @@ void PanoramiXExtensionInit(int argc, char *argv[]) if (noPanoramiXExtension) return; - GlobalScrInfo = &screenInfo; /* For debug visibility */ PanoramiXNumScreens = screenInfo.numScreens; if (PanoramiXNumScreens == 1) { /* Only 1 screen */ noPanoramiXExtension = TRUE; diff --git a/Xext/panoramiX.h b/Xext/panoramiX.h index 7b3339204..3ad90fa84 100644 --- a/Xext/panoramiX.h +++ b/Xext/panoramiX.h @@ -94,18 +94,6 @@ typedef struct { (a).root = WindowTable[0]->drawable.id; \ } -#define FORCE_WIN(a) { \ - if ((win = PanoramiXFindIDOnAnyScreen(XRT_WINDOW, a))) { \ - (a) = win->info[0].id; /* Real ID */ \ - } \ -} - -#define FORCE_CMAP(a) { \ - if ((win = PanoramiXFindIDOnAnyScreen(XRT_COLORMAP, a))) { \ - (a) = win->info[0].id; /* Real ID */ \ - } \ -} - #define IS_SHARED_PIXMAP(r) (((r)->type == XRT_PIXMAP) && (r)->u.pix.shared) #define SKIP_FAKE_WINDOW(a) if(!LookupIDByType(a, XRT_WINDOW)) return diff --git a/Xext/panoramiXh.h b/Xext/panoramiXh.h index 6cee650ac..1a76a45cd 100644 --- a/Xext/panoramiXh.h +++ b/Xext/panoramiXh.h @@ -19,10 +19,10 @@ extern int PanoramiXGetGeometry(ClientPtr client); extern int PanoramiXTranslateCoords(ClientPtr client); extern int PanoramiXCreatePixmap(ClientPtr client); extern int PanoramiXFreePixmap(ClientPtr client); -extern int PanoramiXCreateGC(ClientPtr client); extern int PanoramiXChangeGC(ClientPtr client); extern int PanoramiXCopyGC(ClientPtr client); extern int PanoramiXCopyColormapAndFree(ClientPtr client); +extern int PanoramiXCreateGC(ClientPtr client); extern int PanoramiXSetDashes(ClientPtr client); extern int PanoramiXSetClipRectangles(ClientPtr client); extern int PanoramiXFreeGC(ClientPtr client); @@ -64,7 +64,6 @@ PROC_EXTERN(ProcPanoramiXGetScreenSize); PROC_EXTERN(ProcXineramaQueryScreens); PROC_EXTERN(ProcXineramaIsActive); -extern Bool XineramaCreateGC(GCPtr pGC); extern int SProcPanoramiXDispatch(ClientPtr client); @@ -72,6 +71,4 @@ extern char *ConnectionInfo; extern int connBlockScreenStart; extern xConnSetupPrefix connSetupPrefix; -extern ScreenInfo *GlobalScrInfo; extern int (* SavedProcVector[256]) (ClientPtr client); - diff --git a/Xext/panoramiXsrv.h b/Xext/panoramiXsrv.h index bb032cfae..ae9024418 100644 --- a/Xext/panoramiXsrv.h +++ b/Xext/panoramiXsrv.h @@ -12,14 +12,11 @@ extern int PanoramiXNumScreens; extern PanoramiXData *panoramiXdataPtr; extern int PanoramiXPixWidth; extern int PanoramiXPixHeight; -extern RegionRec PanoramiXScreenRegion; extern XID *PanoramiXVisualTable; extern void PanoramiXConsolidate(void); extern Bool PanoramiXCreateConnectionBlock(void); extern PanoramiXRes * PanoramiXFindIDByScrnum(RESTYPE, XID, int); -extern PanoramiXRes * PanoramiXFindIDOnAnyScreen(RESTYPE, XID); -extern WindowPtr PanoramiXChangeWindow(int, WindowPtr); extern Bool XineramaRegisterConnectionBlockCallback(void (*func)(void)); extern int XineramaDeleteResource(pointer, XID); diff --git a/Xext/saver.c b/Xext/saver.c index 7e3ebf408..a9f1dd36c 100644 --- a/Xext/saver.c +++ b/Xext/saver.c @@ -66,7 +66,7 @@ static unsigned char ScreenSaverReqCode = 0; #endif static int ScreenSaverEventBase = 0; -extern DISPATCH_PROC(ProcScreenSaverQueryInfo); +static DISPATCH_PROC(ProcScreenSaverQueryInfo); static DISPATCH_PROC(ProcScreenSaverDispatch); static DISPATCH_PROC(ProcScreenSaverQueryVersion); static DISPATCH_PROC(ProcScreenSaverSelectInput); @@ -774,7 +774,7 @@ ProcScreenSaverQueryVersion (client) return (client->noClientException); } -int +static int ProcScreenSaverQueryInfo (client) register ClientPtr client; { diff --git a/Xext/security.c b/Xext/security.c index 74ba8d42c..bc92594c4 100644 --- a/Xext/security.c +++ b/Xext/security.c @@ -71,7 +71,7 @@ typedef struct { #define AUTHID(client) \ (((SecurityClientStateRec*)STATEPTR(client))->authId) -CallbackListPtr SecurityValidateGroupCallback = NULL; /* see security.h */ +static CallbackListPtr SecurityValidateGroupCallback = NULL; RESTYPE SecurityAuthorizationResType; /* resource type for authorizations */ diff --git a/Xext/securitysrv.h b/Xext/securitysrv.h index 7c6f432fe..67d864e2e 100644 --- a/Xext/securitysrv.h +++ b/Xext/securitysrv.h @@ -72,15 +72,6 @@ typedef struct { struct _OtherClients *eventClients; /* clients wanting events */ } SecurityAuthorizationRec, *SecurityAuthorizationPtr; -/* The following callback is called when a GenerateAuthorization request - * is processed to sanity check the group argument. The call data will - * be a pointer to a SecurityValidateGroupInfoRec (below). - * Functions registered on this callback are expected to examine the - * group and set the valid field to TRUE if they recognize the group as a - * legitimate group. If they don't recognize it, they should not change the - * valid field. - */ -extern CallbackListPtr SecurityValidateGroupCallback; typedef struct { XID group; /* the group that was sent in GenerateAuthorization */ Bool valid; /* did anyone recognize it? if so, set to TRUE */ diff --git a/Xext/xace.c b/Xext/xace.c index a3c4d426e..aff45d90a 100644 --- a/Xext/xace.c +++ b/Xext/xace.c @@ -35,10 +35,10 @@ CallbackListPtr XaceHooks[XACE_NUM_HOOKS] = {0}; * from guessing extension major opcodes and using the extension even though * the extension can't be listed or queried. */ -int (*UntrustedProcVector[256])( +static int (*UntrustedProcVector[256])( ClientPtr /*client*/ ); -int (*SwappedUntrustedProcVector[256])( +static int (*SwappedUntrustedProcVector[256])( ClientPtr /*client*/ ); diff --git a/Xext/xace.h b/Xext/xace.h index d3d5a84be..ec138426d 100644 --- a/Xext/xace.h +++ b/Xext/xace.h @@ -82,16 +82,6 @@ extern int XaceHook( /* From the original Security extension... */ -/* Proc vectors for untrusted clients, swapped and unswapped versions. - * These are the same as the normal proc vectors except that extensions - * that haven't declared themselves secure will have ProcBadRequest plugged - * in for their major opcode dispatcher. This prevents untrusted clients - * from guessing extension major opcodes and using the extension even though - * the extension can't be listed or queried. - */ -extern int (*UntrustedProcVector[256])(ClientPtr client); -extern int (*SwappedUntrustedProcVector[256])(ClientPtr client); - extern void XaceCensorImage( ClientPtr client, RegionPtr pVisibleRegion, diff --git a/Xext/xevie.c b/Xext/xevie.c index e979e7e4d..7922913ba 100644 --- a/Xext/xevie.c +++ b/Xext/xevie.c @@ -52,7 +52,7 @@ of the copyright holder. #include "inputstr.h" #include "windowstr.h" #include "cursorstr.h" -#include +#include #include "../os/osdep.h" @@ -105,7 +105,7 @@ typedef struct { } xevieKeycQueueRec, *xevieKeycQueuePtr; #define KEYC_QUEUE_SIZE 100 -xevieKeycQueueRec keycq[KEYC_QUEUE_SIZE] = {{0, NULL}}; +static xevieKeycQueueRec keycq[KEYC_QUEUE_SIZE] = {{0, NULL}}; static int keycqHead = 0, keycqTail = 0; static int ProcDispatch (ClientPtr), SProcDispatch (ClientPtr); diff --git a/Xi/chgfctl.c b/Xi/chgfctl.c index d0acc593b..82616c694 100644 --- a/Xi/chgfctl.c +++ b/Xi/chgfctl.c @@ -89,137 +89,13 @@ SProcXChangeFeedbackControl(register ClientPtr client) return (ProcXChangeFeedbackControl(client)); } -/*********************************************************************** - * - * Change the control attributes. - * - */ - -int -ProcXChangeFeedbackControl(ClientPtr client) -{ - unsigned len; - DeviceIntPtr dev; - KbdFeedbackPtr k; - PtrFeedbackPtr p; - IntegerFeedbackPtr i; - StringFeedbackPtr s; - BellFeedbackPtr b; - LedFeedbackPtr l; - - REQUEST(xChangeFeedbackControlReq); - REQUEST_AT_LEAST_SIZE(xChangeFeedbackControlReq); - - len = stuff->length - (sizeof(xChangeFeedbackControlReq) >> 2); - dev = LookupDeviceIntRec(stuff->deviceid); - if (dev == NULL) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, 0, - BadDevice); - return Success; - } - - switch (stuff->feedbackid) { - case KbdFeedbackClass: - if (len != (sizeof(xKbdFeedbackCtl) >> 2)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (k = dev->kbdfeed; k; k = k->next) - if (k->ctrl.id == ((xKbdFeedbackCtl *) & stuff[1])->id) { - ChangeKbdFeedback(client, dev, stuff->mask, k, - (xKbdFeedbackCtl *) & stuff[1]); - return Success; - } - break; - case PtrFeedbackClass: - if (len != (sizeof(xPtrFeedbackCtl) >> 2)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (p = dev->ptrfeed; p; p = p->next) - if (p->ctrl.id == ((xPtrFeedbackCtl *) & stuff[1])->id) { - ChangePtrFeedback(client, dev, stuff->mask, p, - (xPtrFeedbackCtl *) & stuff[1]); - return Success; - } - break; - case StringFeedbackClass: - { - register char n; - xStringFeedbackCtl *f = ((xStringFeedbackCtl *) & stuff[1]); - - if (client->swapped) { - swaps(&f->num_keysyms, n); - } - if (len != ((sizeof(xStringFeedbackCtl) >> 2) + f->num_keysyms)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (s = dev->stringfeed; s; s = s->next) - if (s->ctrl.id == ((xStringFeedbackCtl *) & stuff[1])->id) { - ChangeStringFeedback(client, dev, stuff->mask, s, - (xStringFeedbackCtl *) & stuff[1]); - return Success; - } - break; - } - case IntegerFeedbackClass: - if (len != (sizeof(xIntegerFeedbackCtl) >> 2)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (i = dev->intfeed; i; i = i->next) - if (i->ctrl.id == ((xIntegerFeedbackCtl *) & stuff[1])->id) { - ChangeIntegerFeedback(client, dev, stuff->mask, i, - (xIntegerFeedbackCtl *) & stuff[1]); - return Success; - } - break; - case LedFeedbackClass: - if (len != (sizeof(xLedFeedbackCtl) >> 2)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (l = dev->leds; l; l = l->next) - if (l->ctrl.id == ((xLedFeedbackCtl *) & stuff[1])->id) { - ChangeLedFeedback(client, dev, stuff->mask, l, - (xLedFeedbackCtl *) & stuff[1]); - return Success; - } - break; - case BellFeedbackClass: - if (len != (sizeof(xBellFeedbackCtl) >> 2)) { - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, - 0, BadLength); - return Success; - } - for (b = dev->bell; b; b = b->next) - if (b->ctrl.id == ((xBellFeedbackCtl *) & stuff[1])->id) { - ChangeBellFeedback(client, dev, stuff->mask, b, - (xBellFeedbackCtl *) & stuff[1]); - return Success; - } - break; - default: - break; - } - - SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, 0, BadMatch); - return Success; -} - /****************************************************************************** * * This procedure changes KbdFeedbackClass data. * */ -int +static int ChangeKbdFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, KbdFeedbackPtr k, xKbdFeedbackCtl * f) { @@ -351,7 +227,7 @@ ChangeKbdFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, * */ -int +static int ChangePtrFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, PtrFeedbackPtr p, xPtrFeedbackCtl * f) { @@ -422,7 +298,7 @@ ChangePtrFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, * */ -int +static int ChangeIntegerFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, IntegerFeedbackPtr i, xIntegerFeedbackCtl * f) @@ -445,7 +321,7 @@ ChangeIntegerFeedback(ClientPtr client, DeviceIntPtr dev, * */ -int +static int ChangeStringFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, StringFeedbackPtr s, xStringFeedbackCtl * f) @@ -495,7 +371,7 @@ ChangeStringFeedback(ClientPtr client, DeviceIntPtr dev, * */ -int +static int ChangeBellFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, BellFeedbackPtr b, xBellFeedbackCtl * f) @@ -560,7 +436,7 @@ ChangeBellFeedback(ClientPtr client, DeviceIntPtr dev, * */ -int +static int ChangeLedFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, LedFeedbackPtr l, xLedFeedbackCtl * f) { @@ -585,3 +461,128 @@ ChangeLedFeedback(ClientPtr client, DeviceIntPtr dev, long unsigned int mask, return Success; } + +/*********************************************************************** + * + * Change the control attributes. + * + */ + +int +ProcXChangeFeedbackControl(ClientPtr client) +{ + unsigned len; + DeviceIntPtr dev; + KbdFeedbackPtr k; + PtrFeedbackPtr p; + IntegerFeedbackPtr i; + StringFeedbackPtr s; + BellFeedbackPtr b; + LedFeedbackPtr l; + + REQUEST(xChangeFeedbackControlReq); + REQUEST_AT_LEAST_SIZE(xChangeFeedbackControlReq); + + len = stuff->length - (sizeof(xChangeFeedbackControlReq) >> 2); + dev = LookupDeviceIntRec(stuff->deviceid); + if (dev == NULL) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, 0, + BadDevice); + return Success; + } + + switch (stuff->feedbackid) { + case KbdFeedbackClass: + if (len != (sizeof(xKbdFeedbackCtl) >> 2)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (k = dev->kbdfeed; k; k = k->next) + if (k->ctrl.id == ((xKbdFeedbackCtl *) & stuff[1])->id) { + ChangeKbdFeedback(client, dev, stuff->mask, k, + (xKbdFeedbackCtl *) & stuff[1]); + return Success; + } + break; + case PtrFeedbackClass: + if (len != (sizeof(xPtrFeedbackCtl) >> 2)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (p = dev->ptrfeed; p; p = p->next) + if (p->ctrl.id == ((xPtrFeedbackCtl *) & stuff[1])->id) { + ChangePtrFeedback(client, dev, stuff->mask, p, + (xPtrFeedbackCtl *) & stuff[1]); + return Success; + } + break; + case StringFeedbackClass: + { + register char n; + xStringFeedbackCtl *f = ((xStringFeedbackCtl *) & stuff[1]); + + if (client->swapped) { + swaps(&f->num_keysyms, n); + } + if (len != ((sizeof(xStringFeedbackCtl) >> 2) + f->num_keysyms)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (s = dev->stringfeed; s; s = s->next) + if (s->ctrl.id == ((xStringFeedbackCtl *) & stuff[1])->id) { + ChangeStringFeedback(client, dev, stuff->mask, s, + (xStringFeedbackCtl *) & stuff[1]); + return Success; + } + break; + } + case IntegerFeedbackClass: + if (len != (sizeof(xIntegerFeedbackCtl) >> 2)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (i = dev->intfeed; i; i = i->next) + if (i->ctrl.id == ((xIntegerFeedbackCtl *) & stuff[1])->id) { + ChangeIntegerFeedback(client, dev, stuff->mask, i, + (xIntegerFeedbackCtl *) & stuff[1]); + return Success; + } + break; + case LedFeedbackClass: + if (len != (sizeof(xLedFeedbackCtl) >> 2)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (l = dev->leds; l; l = l->next) + if (l->ctrl.id == ((xLedFeedbackCtl *) & stuff[1])->id) { + ChangeLedFeedback(client, dev, stuff->mask, l, + (xLedFeedbackCtl *) & stuff[1]); + return Success; + } + break; + case BellFeedbackClass: + if (len != (sizeof(xBellFeedbackCtl) >> 2)) { + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, + 0, BadLength); + return Success; + } + for (b = dev->bell; b; b = b->next) + if (b->ctrl.id == ((xBellFeedbackCtl *) & stuff[1])->id) { + ChangeBellFeedback(client, dev, stuff->mask, b, + (xBellFeedbackCtl *) & stuff[1]); + return Success; + } + break; + default: + break; + } + + SendErrorToClient(client, IReqCode, X_ChangeFeedbackControl, 0, BadMatch); + return Success; +} + diff --git a/Xi/chgfctl.h b/Xi/chgfctl.h index 81e1153ec..cfa9fc6b0 100644 --- a/Xi/chgfctl.h +++ b/Xi/chgfctl.h @@ -36,46 +36,4 @@ int SProcXChangeFeedbackControl(ClientPtr /* client */ int ProcXChangeFeedbackControl(ClientPtr /* client */ ); -int ChangeKbdFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - KbdFeedbackPtr /* k */ , - xKbdFeedbackCtl * /* f */ - ); - -int ChangePtrFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - PtrFeedbackPtr /* p */ , - xPtrFeedbackCtl * /* f */ - ); - -int ChangeIntegerFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - IntegerFeedbackPtr /* i */ , - xIntegerFeedbackCtl * /* f */ - ); - -int ChangeStringFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - StringFeedbackPtr /* s */ , - xStringFeedbackCtl * /* f */ - ); - -int ChangeBellFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - BellFeedbackPtr /* b */ , - xBellFeedbackCtl * /* f */ - ); - -int ChangeLedFeedback(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - unsigned long /* mask */ , - LedFeedbackPtr /* l */ , - xLedFeedbackCtl * /* f */ - ); - #endif /* CHGFCTL_H */ diff --git a/Xi/chgptr.h b/Xi/chgptr.h index fb3b5cc39..2d8ab66e5 100644 --- a/Xi/chgptr.h +++ b/Xi/chgptr.h @@ -45,12 +45,4 @@ void SendEventToAllWindows(DeviceIntPtr /* dev */ , int /* count */ ); -void FindInterestedChildren( /* FIXME: could be static? */ - DeviceIntPtr /* dev */ , - WindowPtr /* p1 */ , - Mask /* mask */ , - xEvent * /* ev */ , - int /* count */ - ); - #endif /* CHGPTR_H */ diff --git a/Xi/closedev.c b/Xi/closedev.c index cc83e6a5b..3d47b5fca 100644 --- a/Xi/closedev.c +++ b/Xi/closedev.c @@ -87,6 +87,53 @@ SProcXCloseDevice(register ClientPtr client) return (ProcXCloseDevice(client)); } +/*********************************************************************** + * + * Clear out event selections and passive grabs from a window for the + * specified device. + * + */ + +static void +DeleteDeviceEvents(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client) +{ + InputClientsPtr others; + OtherInputMasks *pOthers; + GrabPtr grab, next; + + if ((pOthers = wOtherInputMasks(pWin)) != 0) + for (others = pOthers->inputClients; others; others = others->next) + if (SameClient(others, client)) + others->mask[dev->id] = NoEventMask; + + for (grab = wPassiveGrabs(pWin); grab; grab = next) { + next = grab->next; + if ((grab->device == dev) && + (client->clientAsMask == CLIENT_BITS(grab->resource))) + FreeResource(grab->resource, RT_NONE); + } +} + +/*********************************************************************** + * + * Walk througth the window tree, deleting event selections for this client + * from this device from all windows. + * + */ + +static void +DeleteEventsFromChildren(DeviceIntPtr dev, WindowPtr p1, ClientPtr client) +{ + WindowPtr p2; + + while (p1) { + p2 = p1->firstChild; + DeleteDeviceEvents(dev, p1, client); + DeleteEventsFromChildren(dev, p2, client); + p1 = p1->nextSib; + } +} + /*********************************************************************** * * This procedure closes an input device. @@ -126,50 +173,3 @@ ProcXCloseDevice(register ClientPtr client) CloseInputDevice(d, client); return Success; } - -/*********************************************************************** - * - * Walk througth the window tree, deleting event selections for this client - * from this device from all windows. - * - */ - -void -DeleteEventsFromChildren(DeviceIntPtr dev, WindowPtr p1, ClientPtr client) -{ - WindowPtr p2; - - while (p1) { - p2 = p1->firstChild; - DeleteDeviceEvents(dev, p1, client); - DeleteEventsFromChildren(dev, p2, client); - p1 = p1->nextSib; - } -} - -/*********************************************************************** - * - * Clear out event selections and passive grabs from a window for the - * specified device. - * - */ - -void -DeleteDeviceEvents(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client) -{ - InputClientsPtr others; - OtherInputMasks *pOthers; - GrabPtr grab, next; - - if ((pOthers = wOtherInputMasks(pWin)) != 0) - for (others = pOthers->inputClients; others; others = others->next) - if (SameClient(others, client)) - others->mask[dev->id] = NoEventMask; - - for (grab = wPassiveGrabs(pWin); grab; grab = next) { - next = grab->next; - if ((grab->device == dev) && - (client->clientAsMask == CLIENT_BITS(grab->resource))) - FreeResource(grab->resource, RT_NONE); - } -} diff --git a/Xi/closedev.h b/Xi/closedev.h index 6853d5002..400aaa60b 100644 --- a/Xi/closedev.h +++ b/Xi/closedev.h @@ -36,14 +36,4 @@ int SProcXCloseDevice(ClientPtr /* client */ int ProcXCloseDevice(ClientPtr /* client */ ); -void DeleteEventsFromChildren(DeviceIntPtr /* dev */ , - WindowPtr /* p1 */ , - ClientPtr /* client */ - ); - -void DeleteDeviceEvents(DeviceIntPtr /* dev */ , - WindowPtr /* pWin */ , - ClientPtr /* client */ - ); - #endif /* CLOSEDEV_H */ diff --git a/Xi/exevents.c b/Xi/exevents.c index b7645f443..164fce31e 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -994,33 +994,7 @@ ChangeKeyMapping(ClientPtr client, return client->noClientException; } -void -DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources) -{ - int i; - DeviceIntPtr dev; - InputClientsPtr ic; - struct _OtherInputMasks *inputMasks; - - for (dev = inputInfo.devices; dev; dev = dev->next) { - if (dev == inputInfo.pointer || dev == inputInfo.keyboard) - continue; - DeleteDeviceFromAnyExtEvents(pWin, dev); - } - - for (dev = inputInfo.off_devices; dev; dev = dev->next) - DeleteDeviceFromAnyExtEvents(pWin, dev); - - if (freeResources) - while ((inputMasks = wOtherInputMasks(pWin)) != 0) { - ic = inputMasks->inputClients; - for (i = 0; i < EMASKSIZE; i++) - inputMasks->dontPropagateMask[i] = 0; - FreeResource(ic->resource, RT_NONE); - } -} - -void +static void DeleteDeviceFromAnyExtEvents(WindowPtr pWin, DeviceIntPtr dev) { WindowPtr parent; @@ -1085,6 +1059,32 @@ DeleteDeviceFromAnyExtEvents(WindowPtr pWin, DeviceIntPtr dev) dev->valuator->motionHintWindow = NullWindow; } +void +DeleteWindowFromAnyExtEvents(WindowPtr pWin, Bool freeResources) +{ + int i; + DeviceIntPtr dev; + InputClientsPtr ic; + struct _OtherInputMasks *inputMasks; + + for (dev = inputInfo.devices; dev; dev = dev->next) { + if (dev == inputInfo.pointer || dev == inputInfo.keyboard) + continue; + DeleteDeviceFromAnyExtEvents(pWin, dev); + } + + for (dev = inputInfo.off_devices; dev; dev = dev->next) + DeleteDeviceFromAnyExtEvents(pWin, dev); + + if (freeResources) + while ((inputMasks = wOtherInputMasks(pWin)) != 0) { + ic = inputMasks->inputClients; + for (i = 0; i < EMASKSIZE; i++) + inputMasks->dontPropagateMask[i] = 0; + FreeResource(ic->resource, RT_NONE); + } +} + int MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask) { @@ -1138,7 +1138,7 @@ CheckDeviceGrabAndHintWindow(WindowPtr pWin, int type, } } -Mask +static Mask DeviceEventMaskForClient(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client) { register InputClientsPtr other; @@ -1223,7 +1223,7 @@ ShouldFreeInputMasks(WindowPtr pWin, Bool ignoreSelectedEvents) * */ -void +static void FindInterestedChildren(DeviceIntPtr dev, WindowPtr p1, Mask mask, xEvent * ev, int count) { diff --git a/Xi/exglobals.h b/Xi/exglobals.h index 3afd1bb9e..50bb33fdc 100644 --- a/Xi/exglobals.h +++ b/Xi/exglobals.h @@ -37,7 +37,6 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. extern int IReqCode; extern int BadDevice; -extern int BadEvent; extern int BadMode; extern int DeviceBusy; extern int BadClass; @@ -46,7 +45,6 @@ extern Mask DevicePointerMotionMask; extern Mask DevicePointerMotionHintMask; extern Mask DeviceFocusChangeMask; extern Mask DeviceStateNotifyMask; -extern Mask ChangeDeviceNotifyMask; extern Mask DeviceMappingNotifyMask; extern Mask DeviceOwnerGrabButtonMask; extern Mask DeviceButtonGrabMask; diff --git a/Xi/extinit.c b/Xi/extinit.c index 454883762..fed54ab37 100644 --- a/Xi/extinit.c +++ b/Xi/extinit.c @@ -116,7 +116,7 @@ int ExtEventIndex; Mask ExtValidMasks[EMASKSIZE]; Mask ExtExclusiveMasks[EMASKSIZE]; -struct dev_type +static struct dev_type { Atom type; char *name; @@ -152,7 +152,7 @@ XExtEventInfo EventInfo[32]; int IReqCode = 0; int BadDevice = 0; -int BadEvent = 1; +static int BadEvent = 1; int BadMode = 2; int DeviceBusy = 3; int BadClass = 4; @@ -161,7 +161,7 @@ Mask DevicePointerMotionMask; Mask DevicePointerMotionHintMask; Mask DeviceFocusChangeMask; Mask DeviceStateNotifyMask; -Mask ChangeDeviceNotifyMask; +static Mask ChangeDeviceNotifyMask; Mask DeviceMappingNotifyMask; Mask DeviceOwnerGrabButtonMask; Mask DeviceButtonGrabMask; @@ -208,51 +208,6 @@ static XExtensionVersion thisversion = { XI_Present, XI_Add_DevicePresenceNotify_Minor }; -/********************************************************************** - * - * IExtensionInit - initialize the input extension. - * - * Called from InitExtensions in main() or from QueryExtension() if the - * extension is dynamically loaded. - * - * This extension has several events and errors. - * - */ - -void -XInputExtensionInit(void) -{ - ExtensionEntry *extEntry; - - extEntry = AddExtension(INAME, IEVENTS, IERRORS, ProcIDispatch, - SProcIDispatch, IResetProc, StandardMinorOpcode); - if (extEntry) { - IReqCode = extEntry->base; - AllExtensionVersions[IReqCode - 128] = thisversion; - MakeDeviceTypeAtoms(); - RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone); - FixExtensionEvents(extEntry); - ReplySwapVector[IReqCode] = (ReplySwapPtr) SReplyIDispatch; - EventSwapVector[DeviceValuator] = SEventIDispatch; - EventSwapVector[DeviceKeyPress] = SEventIDispatch; - EventSwapVector[DeviceKeyRelease] = SEventIDispatch; - EventSwapVector[DeviceButtonPress] = SEventIDispatch; - EventSwapVector[DeviceButtonRelease] = SEventIDispatch; - EventSwapVector[DeviceMotionNotify] = SEventIDispatch; - EventSwapVector[DeviceFocusIn] = SEventIDispatch; - EventSwapVector[DeviceFocusOut] = SEventIDispatch; - EventSwapVector[ProximityIn] = SEventIDispatch; - EventSwapVector[ProximityOut] = SEventIDispatch; - EventSwapVector[DeviceStateNotify] = SEventIDispatch; - EventSwapVector[DeviceKeyStateNotify] = SEventIDispatch; - EventSwapVector[DeviceButtonStateNotify] = SEventIDispatch; - EventSwapVector[DeviceMappingNotify] = SEventIDispatch; - EventSwapVector[ChangeDeviceNotify] = SEventIDispatch; - } else { - FatalError("IExtensionInit: AddExtensions failed\n"); - } -} - /************************************************************************* * * ProcIDispatch - main dispatch routine for requests to this extension. @@ -260,7 +215,7 @@ XInputExtensionInit(void) * */ -int +static int ProcIDispatch(register ClientPtr client) { REQUEST(xReq); @@ -349,7 +304,7 @@ ProcIDispatch(register ClientPtr client) * */ -int +static int SProcIDispatch(register ClientPtr client) { REQUEST(xReq); @@ -441,7 +396,7 @@ SProcIDispatch(register ClientPtr client) if (rep->RepType == X_##code) \ SRepX##code (client, len, (x##code##Reply *) rep) -void +static void SReplyIDispatch(ClientPtr client, int len, xGrabDeviceReply * rep) /* All we look at is the type field */ { /* This is common to all replies */ @@ -500,68 +455,13 @@ SReplyIDispatch(ClientPtr client, int len, xGrabDeviceReply * rep) } } -/***************************************************************************** - * - * SEventIDispatch - * - * Swap any events defined in this extension. - */ -#define DO_SWAP(func,type) func ((type *)from, (type *)to) - -void -SEventIDispatch(xEvent * from, xEvent * to) -{ - int type = from->u.u.type & 0177; - - if (type == DeviceValuator) - DO_SWAP(SEventDeviceValuator, deviceValuator); - else if (type == DeviceKeyPress) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceKeyRelease) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceButtonPress) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceButtonRelease) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceMotionNotify) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceFocusIn) - DO_SWAP(SEventFocus, deviceFocus); - else if (type == DeviceFocusOut) - DO_SWAP(SEventFocus, deviceFocus); - else if (type == ProximityIn) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == ProximityOut) { - SKeyButtonPtrEvent(from, to); - to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; - } else if (type == DeviceStateNotify) - DO_SWAP(SDeviceStateNotifyEvent, deviceStateNotify); - else if (type == DeviceKeyStateNotify) - DO_SWAP(SDeviceKeyStateNotifyEvent, deviceKeyStateNotify); - else if (type == DeviceButtonStateNotify) - DO_SWAP(SDeviceButtonStateNotifyEvent, deviceButtonStateNotify); - else if (type == DeviceMappingNotify) - DO_SWAP(SDeviceMappingNotifyEvent, deviceMappingNotify); - else if (type == ChangeDeviceNotify) - DO_SWAP(SChangeDeviceNotifyEvent, changeDeviceNotify); - else { - FatalError("XInputExtension: Impossible event!\n"); - } -} - /************************************************************************ * * This function swaps the DeviceValuator event. * */ -void +static void SEventDeviceValuator(deviceValuator * from, deviceValuator * to) { register char n; @@ -577,7 +477,7 @@ SEventDeviceValuator(deviceValuator * from, deviceValuator * to) } } -void +static void SEventFocus(deviceFocus * from, deviceFocus * to) { register char n; @@ -588,7 +488,7 @@ SEventFocus(deviceFocus * from, deviceFocus * to) swapl(&to->window, n); } -void +static void SDeviceStateNotifyEvent(deviceStateNotify * from, deviceStateNotify * to) { register int i; @@ -604,7 +504,7 @@ SDeviceStateNotifyEvent(deviceStateNotify * from, deviceStateNotify * to) } } -void +static void SDeviceKeyStateNotifyEvent(deviceKeyStateNotify * from, deviceKeyStateNotify * to) { @@ -614,7 +514,7 @@ SDeviceKeyStateNotifyEvent(deviceKeyStateNotify * from, swaps(&to->sequenceNumber, n); } -void +static void SDeviceButtonStateNotifyEvent(deviceButtonStateNotify * from, deviceButtonStateNotify * to) { @@ -624,7 +524,7 @@ SDeviceButtonStateNotifyEvent(deviceButtonStateNotify * from, swaps(&to->sequenceNumber, n); } -void +static void SChangeDeviceNotifyEvent(changeDeviceNotify * from, changeDeviceNotify * to) { register char n; @@ -634,7 +534,7 @@ SChangeDeviceNotifyEvent(changeDeviceNotify * from, changeDeviceNotify * to) swapl(&to->time, n); } -void +static void SDeviceMappingNotifyEvent(deviceMappingNotify * from, deviceMappingNotify * to) { register char n; @@ -644,7 +544,7 @@ SDeviceMappingNotifyEvent(deviceMappingNotify * from, deviceMappingNotify * to) swapl(&to->time, n); } -void +static void SDevicePresenceNotifyEvent (devicePresenceNotify *from, devicePresenceNotify *to) { register char n; @@ -655,13 +555,106 @@ SDevicePresenceNotifyEvent (devicePresenceNotify *from, devicePresenceNotify *to swaps(&to->control, n); } +/************************************************************************** + * + * Allow the specified event to have its propagation suppressed. + * The default is to not allow suppression of propagation. + * + */ + +static void +AllowPropagateSuppress(Mask mask) +{ + int i; + + for (i = 0; i < MAX_DEVICES; i++) + PropagateMask[i] |= mask; +} + +/************************************************************************** + * + * Return the next available extension event mask. + * + */ + +static Mask +GetNextExtEventMask(void) +{ + int i; + Mask mask = lastExtEventMask; + + if (lastExtEventMask == 0) { + FatalError("GetNextExtEventMask: no more events are available."); + } + lastExtEventMask <<= 1; + + for (i = 0; i < MAX_DEVICES; i++) + ExtValidMasks[i] |= mask; + return mask; +} + +/************************************************************************** + * + * Record an event mask where there is no unique corresponding event type. + * We can't call SetMaskForEvent, since that would clobber the existing + * mask for that event. MotionHint and ButtonMotion are examples. + * + * Since extension event types will never be less than 64, we can use + * 0-63 in the EventInfo array as the "type" to be used to look up this + * mask. This means that the corresponding macros such as + * DevicePointerMotionHint must have access to the same constants. + * + */ + +static void +SetEventInfo(Mask mask, int constant) +{ + EventInfo[ExtEventIndex].mask = mask; + EventInfo[ExtEventIndex++].type = constant; +} + +/************************************************************************** + * + * Allow the specified event to be restricted to being selected by one + * client at a time. + * The default is to allow more than one client to select the event. + * + */ + +static void +SetExclusiveAccess(Mask mask) +{ + int i; + + for (i = 0; i < MAX_DEVICES; i++) + ExtExclusiveMasks[i] |= mask; +} + +/************************************************************************** + * + * Assign the specified mask to the specified event. + * + */ + +static void +SetMaskForExtEvent(Mask mask, int event) +{ + + EventInfo[ExtEventIndex].mask = mask; + EventInfo[ExtEventIndex++].type = event; + + if ((event < LASTEvent) || (event >= 128)) + FatalError("MaskForExtensionEvent: bogus event number"); + SetMaskForEvent(mask, event); +} + /************************************************************************ * * This function sets up extension event types and masks. * */ -void +static void FixExtensionEvents(ExtensionEntry * extEntry) { Mask mask; @@ -767,7 +760,7 @@ FixExtensionEvents(ExtensionEntry * extEntry) * */ -void +static void RestoreExtensionEvents(void) { int i; @@ -815,7 +808,7 @@ RestoreExtensionEvents(void) * */ -void +static void IResetProc(ExtensionEntry * unused) { @@ -859,7 +852,7 @@ AssignTypeAndName(DeviceIntPtr dev, Atom type, char *name) * */ -void +static void MakeDeviceTypeAtoms(void) { int i; @@ -892,95 +885,102 @@ LookupDeviceIntRec(CARD8 id) return NULL; } -/************************************************************************** +/***************************************************************************** * - * Allow the specified event to be restricted to being selected by one - * client at a time. - * The default is to allow more than one client to select the event. + * SEventIDispatch * + * Swap any events defined in this extension. */ +#define DO_SWAP(func,type) func ((type *)from, (type *)to) -void -SetExclusiveAccess(Mask mask) +static void +SEventIDispatch(xEvent * from, xEvent * to) { - int i; + int type = from->u.u.type & 0177; - for (i = 0; i < MAX_DEVICES; i++) - ExtExclusiveMasks[i] |= mask; -} - -/************************************************************************** - * - * Allow the specified event to have its propagation suppressed. - * The default is to not allow suppression of propagation. - * - */ - -void -AllowPropagateSuppress(Mask mask) -{ - int i; - - for (i = 0; i < MAX_DEVICES; i++) - PropagateMask[i] |= mask; -} - -/************************************************************************** - * - * Return the next available extension event mask. - * - */ - -Mask -GetNextExtEventMask(void) -{ - int i; - Mask mask = lastExtEventMask; - - if (lastExtEventMask == 0) { - FatalError("GetNextExtEventMask: no more events are available."); + if (type == DeviceValuator) + DO_SWAP(SEventDeviceValuator, deviceValuator); + else if (type == DeviceKeyPress) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceKeyRelease) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceButtonPress) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceButtonRelease) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceMotionNotify) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceFocusIn) + DO_SWAP(SEventFocus, deviceFocus); + else if (type == DeviceFocusOut) + DO_SWAP(SEventFocus, deviceFocus); + else if (type == ProximityIn) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == ProximityOut) { + SKeyButtonPtrEvent(from, to); + to->u.keyButtonPointer.pad1 = from->u.keyButtonPointer.pad1; + } else if (type == DeviceStateNotify) + DO_SWAP(SDeviceStateNotifyEvent, deviceStateNotify); + else if (type == DeviceKeyStateNotify) + DO_SWAP(SDeviceKeyStateNotifyEvent, deviceKeyStateNotify); + else if (type == DeviceButtonStateNotify) + DO_SWAP(SDeviceButtonStateNotifyEvent, deviceButtonStateNotify); + else if (type == DeviceMappingNotify) + DO_SWAP(SDeviceMappingNotifyEvent, deviceMappingNotify); + else if (type == ChangeDeviceNotify) + DO_SWAP(SChangeDeviceNotifyEvent, changeDeviceNotify); + else { + FatalError("XInputExtension: Impossible event!\n"); } - lastExtEventMask <<= 1; - - for (i = 0; i < MAX_DEVICES; i++) - ExtValidMasks[i] |= mask; - return mask; } -/************************************************************************** +/********************************************************************** * - * Assign the specified mask to the specified event. + * IExtensionInit - initialize the input extension. + * + * Called from InitExtensions in main() or from QueryExtension() if the + * extension is dynamically loaded. + * + * This extension has several events and errors. * */ void -SetMaskForExtEvent(Mask mask, int event) +XInputExtensionInit(void) { + ExtensionEntry *extEntry; - EventInfo[ExtEventIndex].mask = mask; - EventInfo[ExtEventIndex++].type = event; - - if ((event < LASTEvent) || (event >= 128)) - FatalError("MaskForExtensionEvent: bogus event number"); - SetMaskForEvent(mask, event); -} - -/************************************************************************** - * - * Record an event mask where there is no unique corresponding event type. - * We can't call SetMaskForEvent, since that would clobber the existing - * mask for that event. MotionHint and ButtonMotion are examples. - * - * Since extension event types will never be less than 64, we can use - * 0-63 in the EventInfo array as the "type" to be used to look up this - * mask. This means that the corresponding macros such as - * DevicePointerMotionHint must have access to the same constants. - * - */ - -void -SetEventInfo(Mask mask, int constant) -{ - EventInfo[ExtEventIndex].mask = mask; - EventInfo[ExtEventIndex++].type = constant; + extEntry = AddExtension(INAME, IEVENTS, IERRORS, ProcIDispatch, + SProcIDispatch, IResetProc, StandardMinorOpcode); + if (extEntry) { + IReqCode = extEntry->base; + AllExtensionVersions[IReqCode - 128] = thisversion; + MakeDeviceTypeAtoms(); + RT_INPUTCLIENT = CreateNewResourceType((DeleteType) InputClientGone); + FixExtensionEvents(extEntry); + ReplySwapVector[IReqCode] = (ReplySwapPtr) SReplyIDispatch; + EventSwapVector[DeviceValuator] = SEventIDispatch; + EventSwapVector[DeviceKeyPress] = SEventIDispatch; + EventSwapVector[DeviceKeyRelease] = SEventIDispatch; + EventSwapVector[DeviceButtonPress] = SEventIDispatch; + EventSwapVector[DeviceButtonRelease] = SEventIDispatch; + EventSwapVector[DeviceMotionNotify] = SEventIDispatch; + EventSwapVector[DeviceFocusIn] = SEventIDispatch; + EventSwapVector[DeviceFocusOut] = SEventIDispatch; + EventSwapVector[ProximityIn] = SEventIDispatch; + EventSwapVector[ProximityOut] = SEventIDispatch; + EventSwapVector[DeviceStateNotify] = SEventIDispatch; + EventSwapVector[DeviceKeyStateNotify] = SEventIDispatch; + EventSwapVector[DeviceButtonStateNotify] = SEventIDispatch; + EventSwapVector[DeviceMappingNotify] = SEventIDispatch; + EventSwapVector[ChangeDeviceNotify] = SEventIDispatch; + } else { + FatalError("IExtensionInit: AddExtensions failed\n"); + } } diff --git a/Xi/getdctl.c b/Xi/getdctl.c index d738ef83b..c264d4f8c 100644 --- a/Xi/getdctl.c +++ b/Xi/getdctl.c @@ -86,6 +86,152 @@ SProcXGetDeviceControl(register ClientPtr client) return (ProcXGetDeviceControl(client)); } +/*********************************************************************** + * + * This procedure copies DeviceResolution data, swapping if necessary. + * + */ + +static void +CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf, + int length) +{ + register char n; + AxisInfoPtr a; + xDeviceResolutionState *r; + int i, *iptr; + + r = (xDeviceResolutionState *) buf; + r->control = DEVICE_RESOLUTION; + r->length = length; + r->num_valuators = v->numAxes; + buf += sizeof(xDeviceResolutionState); + iptr = (int *)buf; + for (i = 0, a = v->axes; i < v->numAxes; i++, a++) + *iptr++ = a->resolution; + for (i = 0, a = v->axes; i < v->numAxes; i++, a++) + *iptr++ = a->min_resolution; + for (i = 0, a = v->axes; i < v->numAxes; i++, a++) + *iptr++ = a->max_resolution; + if (client->swapped) { + swaps(&r->control, n); + swaps(&r->length, n); + swapl(&r->num_valuators, n); + iptr = (int *)buf; + for (i = 0; i < (3 * v->numAxes); i++, iptr++) { + swapl(iptr, n); + } + } +} + +static void CopySwapDeviceAbsCalib (ClientPtr client, AbsoluteClassPtr dts, + char *buf) +{ + register char n; + xDeviceAbsCalibState *calib = (xDeviceAbsCalibState *) buf; + + calib->control = DEVICE_ABS_CALIB; + calib->length = sizeof(calib); + calib->min_x = dts->min_x; + calib->max_x = dts->max_x; + calib->min_y = dts->min_y; + calib->max_y = dts->max_y; + calib->flip_x = dts->flip_x; + calib->flip_y = dts->flip_y; + calib->rotation = dts->rotation; + calib->button_threshold = dts->button_threshold; + + if (client->swapped) { + swaps(&calib->control, n); + swaps(&calib->length, n); + swapl(&calib->min_x, n); + swapl(&calib->max_x, n); + swapl(&calib->min_y, n); + swapl(&calib->max_y, n); + swapl(&calib->flip_x, n); + swapl(&calib->flip_y, n); + swapl(&calib->rotation, n); + swapl(&calib->button_threshold, n); + } +} + +static void CopySwapDeviceAbsArea (ClientPtr client, AbsoluteClassPtr dts, + char *buf) +{ + register char n; + xDeviceAbsAreaState *area = (xDeviceAbsAreaState *) buf; + + area->control = DEVICE_ABS_AREA; + area->length = sizeof(area); + area->offset_x = dts->offset_x; + area->offset_y = dts->offset_y; + area->width = dts->width; + area->height = dts->height; + area->screen = dts->screen; + area->following = dts->following; + + if (client->swapped) { + swaps(&area->control, n); + swaps(&area->length, n); + swapl(&area->offset_x, n); + swapl(&area->offset_y, n); + swapl(&area->width, n); + swapl(&area->height, n); + swapl(&area->screen, n); + swapl(&area->following, n); + } +} + +static void CopySwapDeviceCore (ClientPtr client, DeviceIntPtr dev, char *buf) +{ + register char n; + xDeviceCoreState *c = (xDeviceCoreState *) buf; + + c->control = DEVICE_CORE; + c->length = sizeof(c); + c->status = dev->coreEvents; + c->iscore = (dev == inputInfo.keyboard || dev == inputInfo.pointer); + + if (client->swapped) { + swaps(&c->control, n); + swaps(&c->length, n); + swaps(&c->status, n); + } +} + +static void CopySwapDeviceEnable (ClientPtr client, DeviceIntPtr dev, char *buf) +{ + register char n; + xDeviceEnableState *e = (xDeviceEnableState *) buf; + + e->control = DEVICE_ENABLE; + e->length = sizeof(e); + e->enable = dev->enabled; + + if (client->swapped) { + swaps(&e->control, n); + swaps(&e->length, n); + swaps(&e->enable, n); + } +} + +/*********************************************************************** + * + * This procedure writes the reply for the xGetDeviceControl function, + * if the client and server have a different byte ordering. + * + */ + +void +SRepXGetDeviceControl(ClientPtr client, int size, xGetDeviceControlReply * rep) +{ + register char n; + + swaps(&rep->sequenceNumber, n); + swapl(&rep->length, n); + WriteToClient(client, size, (char *)rep); +} + /*********************************************************************** * * Get the state of the specified device control. @@ -186,150 +332,3 @@ ProcXGetDeviceControl(ClientPtr client) xfree(savbuf); return Success; } - -/*********************************************************************** - * - * This procedure copies DeviceResolution data, swapping if necessary. - * - */ - -void -CopySwapDeviceResolution(ClientPtr client, ValuatorClassPtr v, char *buf, - int length) -{ - register char n; - AxisInfoPtr a; - xDeviceResolutionState *r; - int i, *iptr; - - r = (xDeviceResolutionState *) buf; - r->control = DEVICE_RESOLUTION; - r->length = length; - r->num_valuators = v->numAxes; - buf += sizeof(xDeviceResolutionState); - iptr = (int *)buf; - for (i = 0, a = v->axes; i < v->numAxes; i++, a++) - *iptr++ = a->resolution; - for (i = 0, a = v->axes; i < v->numAxes; i++, a++) - *iptr++ = a->min_resolution; - for (i = 0, a = v->axes; i < v->numAxes; i++, a++) - *iptr++ = a->max_resolution; - if (client->swapped) { - swaps(&r->control, n); - swaps(&r->length, n); - swapl(&r->num_valuators, n); - iptr = (int *)buf; - for (i = 0; i < (3 * v->numAxes); i++, iptr++) { - swapl(iptr, n); - } - } -} - -void CopySwapDeviceAbsCalib (ClientPtr client, AbsoluteClassPtr dts, - char *buf) -{ - register char n; - xDeviceAbsCalibState *calib = (xDeviceAbsCalibState *) buf; - - calib->control = DEVICE_ABS_CALIB; - calib->length = sizeof(calib); - calib->min_x = dts->min_x; - calib->max_x = dts->max_x; - calib->min_y = dts->min_y; - calib->max_y = dts->max_y; - calib->flip_x = dts->flip_x; - calib->flip_y = dts->flip_y; - calib->rotation = dts->rotation; - calib->button_threshold = dts->button_threshold; - - if (client->swapped) { - swaps(&calib->control, n); - swaps(&calib->length, n); - swapl(&calib->min_x, n); - swapl(&calib->max_x, n); - swapl(&calib->min_y, n); - swapl(&calib->max_y, n); - swapl(&calib->flip_x, n); - swapl(&calib->flip_y, n); - swapl(&calib->rotation, n); - swapl(&calib->button_threshold, n); - } -} - -void CopySwapDeviceAbsArea (ClientPtr client, AbsoluteClassPtr dts, - char *buf) -{ - register char n; - xDeviceAbsAreaState *area = (xDeviceAbsAreaState *) buf; - - area->control = DEVICE_ABS_AREA; - area->length = sizeof(area); - area->offset_x = dts->offset_x; - area->offset_y = dts->offset_y; - area->width = dts->width; - area->height = dts->height; - area->screen = dts->screen; - area->following = dts->following; - - if (client->swapped) { - swaps(&area->control, n); - swaps(&area->length, n); - swapl(&area->offset_x, n); - swapl(&area->offset_y, n); - swapl(&area->width, n); - swapl(&area->height, n); - swapl(&area->screen, n); - swapl(&area->following, n); - } -} - -void CopySwapDeviceCore (ClientPtr client, DeviceIntPtr dev, char *buf) -{ - register char n; - xDeviceCoreState *c = (xDeviceCoreState *) buf; - - c->control = DEVICE_CORE; - c->length = sizeof(c); - c->status = dev->coreEvents; - c->iscore = (dev == inputInfo.keyboard || dev == inputInfo.pointer); - - if (client->swapped) { - swaps(&c->control, n); - swaps(&c->length, n); - swaps(&c->status, n); - } -} - -void CopySwapDeviceEnable (ClientPtr client, DeviceIntPtr dev, char *buf) -{ - register char n; - xDeviceEnableState *e = (xDeviceEnableState *) buf; - - e->control = DEVICE_ENABLE; - e->length = sizeof(e); - e->enable = dev->enabled; - - if (client->swapped) { - swaps(&e->control, n); - swaps(&e->length, n); - swaps(&e->enable, n); - } -} - - -/*********************************************************************** - * - * This procedure writes the reply for the xGetDeviceControl function, - * if the client and server have a different byte ordering. - * - */ - -void -SRepXGetDeviceControl(ClientPtr client, int size, xGetDeviceControlReply * rep) -{ - register char n; - - swaps(&rep->sequenceNumber, n); - swapl(&rep->length, n); - WriteToClient(client, size, (char *)rep); -} diff --git a/Xi/getdctl.h b/Xi/getdctl.h index 36868d8be..19c189f36 100644 --- a/Xi/getdctl.h +++ b/Xi/getdctl.h @@ -36,30 +36,6 @@ int SProcXGetDeviceControl(ClientPtr /* client */ int ProcXGetDeviceControl(ClientPtr /* client */ ); -void CopySwapDeviceResolution(ClientPtr /* client */ , - ValuatorClassPtr /* v */ , - char * /* buf */ , - int /* length */ - ); - -void CopySwapDeviceAbsCalib (ClientPtr client, - AbsoluteClassPtr dts, - char *buf); - -void CopySwapDeviceAbsArea (ClientPtr client, - AbsoluteClassPtr dts, - char *buf); - -void CopySwapDeviceCore(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - char * /* buf */ - ); - -void CopySwapDeviceEnable(ClientPtr /* client */ , - DeviceIntPtr /* dev */ , - char * /* buf */ - ); - void SRepXGetDeviceControl(ClientPtr /* client */ , int /* size */ , xGetDeviceControlReply * /* rep */ diff --git a/Xi/getfctl.c b/Xi/getfctl.c index 870348fbb..28360ee54 100644 --- a/Xi/getfctl.c +++ b/Xi/getfctl.c @@ -84,6 +84,206 @@ SProcXGetFeedbackControl(register ClientPtr client) return (ProcXGetFeedbackControl(client)); } +/*********************************************************************** + * + * This procedure copies KbdFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapKbdFeedback(ClientPtr client, KbdFeedbackPtr k, char **buf) +{ + int i; + register char n; + xKbdFeedbackState *k2; + + k2 = (xKbdFeedbackState *) * buf; + k2->class = KbdFeedbackClass; + k2->length = sizeof(xKbdFeedbackState); + k2->id = k->ctrl.id; + k2->click = k->ctrl.click; + k2->percent = k->ctrl.bell; + k2->pitch = k->ctrl.bell_pitch; + k2->duration = k->ctrl.bell_duration; + k2->led_mask = k->ctrl.leds; + k2->global_auto_repeat = k->ctrl.autoRepeat; + for (i = 0; i < 32; i++) + k2->auto_repeats[i] = k->ctrl.autoRepeats[i]; + if (client->swapped) { + swaps(&k2->length, n); + swaps(&k2->pitch, n); + swaps(&k2->duration, n); + swapl(&k2->led_mask, n); + swapl(&k2->led_values, n); + } + *buf += sizeof(xKbdFeedbackState); +} + +/*********************************************************************** + * + * This procedure copies PtrFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapPtrFeedback(ClientPtr client, PtrFeedbackPtr p, char **buf) +{ + register char n; + xPtrFeedbackState *p2; + + p2 = (xPtrFeedbackState *) * buf; + p2->class = PtrFeedbackClass; + p2->length = sizeof(xPtrFeedbackState); + p2->id = p->ctrl.id; + p2->accelNum = p->ctrl.num; + p2->accelDenom = p->ctrl.den; + p2->threshold = p->ctrl.threshold; + if (client->swapped) { + swaps(&p2->length, n); + swaps(&p2->accelNum, n); + swaps(&p2->accelDenom, n); + swaps(&p2->threshold, n); + } + *buf += sizeof(xPtrFeedbackState); +} + +/*********************************************************************** + * + * This procedure copies IntegerFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapIntegerFeedback(ClientPtr client, IntegerFeedbackPtr i, char **buf) +{ + register char n; + xIntegerFeedbackState *i2; + + i2 = (xIntegerFeedbackState *) * buf; + i2->class = IntegerFeedbackClass; + i2->length = sizeof(xIntegerFeedbackState); + i2->id = i->ctrl.id; + i2->resolution = i->ctrl.resolution; + i2->min_value = i->ctrl.min_value; + i2->max_value = i->ctrl.max_value; + if (client->swapped) { + swaps(&i2->length, n); + swapl(&i2->resolution, n); + swapl(&i2->min_value, n); + swapl(&i2->max_value, n); + } + *buf += sizeof(xIntegerFeedbackState); +} + +/*********************************************************************** + * + * This procedure copies StringFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapStringFeedback(ClientPtr client, StringFeedbackPtr s, char **buf) +{ + int i; + register char n; + xStringFeedbackState *s2; + KeySym *kptr; + + s2 = (xStringFeedbackState *) * buf; + s2->class = StringFeedbackClass; + s2->length = sizeof(xStringFeedbackState) + + s->ctrl.num_symbols_supported * sizeof(KeySym); + s2->id = s->ctrl.id; + s2->max_symbols = s->ctrl.max_symbols; + s2->num_syms_supported = s->ctrl.num_symbols_supported; + *buf += sizeof(xStringFeedbackState); + kptr = (KeySym *) (*buf); + for (i = 0; i < s->ctrl.num_symbols_supported; i++) + *kptr++ = *(s->ctrl.symbols_supported + i); + if (client->swapped) { + swaps(&s2->length, n); + swaps(&s2->max_symbols, n); + swaps(&s2->num_syms_supported, n); + kptr = (KeySym *) (*buf); + for (i = 0; i < s->ctrl.num_symbols_supported; i++, kptr++) { + swapl(kptr, n); + } + } + *buf += (s->ctrl.num_symbols_supported * sizeof(KeySym)); +} + +/*********************************************************************** + * + * This procedure copies LedFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapLedFeedback(ClientPtr client, LedFeedbackPtr l, char **buf) +{ + register char n; + xLedFeedbackState *l2; + + l2 = (xLedFeedbackState *) * buf; + l2->class = LedFeedbackClass; + l2->length = sizeof(xLedFeedbackState); + l2->id = l->ctrl.id; + l2->led_values = l->ctrl.led_values; + l2->led_mask = l->ctrl.led_mask; + if (client->swapped) { + swaps(&l2->length, n); + swapl(&l2->led_values, n); + swapl(&l2->led_mask, n); + } + *buf += sizeof(xLedFeedbackState); +} + +/*********************************************************************** + * + * This procedure copies BellFeedbackClass data, swapping if necessary. + * + */ + +static void +CopySwapBellFeedback(ClientPtr client, BellFeedbackPtr b, char **buf) +{ + register char n; + xBellFeedbackState *b2; + + b2 = (xBellFeedbackState *) * buf; + b2->class = BellFeedbackClass; + b2->length = sizeof(xBellFeedbackState); + b2->id = b->ctrl.id; + b2->percent = b->ctrl.percent; + b2->pitch = b->ctrl.pitch; + b2->duration = b->ctrl.duration; + if (client->swapped) { + swaps(&b2->length, n); + swaps(&b2->pitch, n); + swaps(&b2->duration, n); + } + *buf += sizeof(xBellFeedbackState); +} + +/*********************************************************************** + * + * This procedure writes the reply for the xGetFeedbackControl function, + * if the client and server have a different byte ordering. + * + */ + +void +SRepXGetFeedbackControl(ClientPtr client, int size, + xGetFeedbackControlReply * rep) +{ + register char n; + + swaps(&rep->sequenceNumber, n); + swapl(&rep->length, n); + swaps(&rep->num_feedbacks, n); + WriteToClient(client, size, (char *)rep); +} + /*********************************************************************** * * Get the feedback control state. @@ -176,203 +376,3 @@ ProcXGetFeedbackControl(ClientPtr client) xfree(savbuf); return Success; } - -/*********************************************************************** - * - * This procedure copies KbdFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapKbdFeedback(ClientPtr client, KbdFeedbackPtr k, char **buf) -{ - int i; - register char n; - xKbdFeedbackState *k2; - - k2 = (xKbdFeedbackState *) * buf; - k2->class = KbdFeedbackClass; - k2->length = sizeof(xKbdFeedbackState); - k2->id = k->ctrl.id; - k2->click = k->ctrl.click; - k2->percent = k->ctrl.bell; - k2->pitch = k->ctrl.bell_pitch; - k2->duration = k->ctrl.bell_duration; - k2->led_mask = k->ctrl.leds; - k2->global_auto_repeat = k->ctrl.autoRepeat; - for (i = 0; i < 32; i++) - k2->auto_repeats[i] = k->ctrl.autoRepeats[i]; - if (client->swapped) { - swaps(&k2->length, n); - swaps(&k2->pitch, n); - swaps(&k2->duration, n); - swapl(&k2->led_mask, n); - swapl(&k2->led_values, n); - } - *buf += sizeof(xKbdFeedbackState); -} - -/*********************************************************************** - * - * This procedure copies PtrFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapPtrFeedback(ClientPtr client, PtrFeedbackPtr p, char **buf) -{ - register char n; - xPtrFeedbackState *p2; - - p2 = (xPtrFeedbackState *) * buf; - p2->class = PtrFeedbackClass; - p2->length = sizeof(xPtrFeedbackState); - p2->id = p->ctrl.id; - p2->accelNum = p->ctrl.num; - p2->accelDenom = p->ctrl.den; - p2->threshold = p->ctrl.threshold; - if (client->swapped) { - swaps(&p2->length, n); - swaps(&p2->accelNum, n); - swaps(&p2->accelDenom, n); - swaps(&p2->threshold, n); - } - *buf += sizeof(xPtrFeedbackState); -} - -/*********************************************************************** - * - * This procedure copies IntegerFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapIntegerFeedback(ClientPtr client, IntegerFeedbackPtr i, char **buf) -{ - register char n; - xIntegerFeedbackState *i2; - - i2 = (xIntegerFeedbackState *) * buf; - i2->class = IntegerFeedbackClass; - i2->length = sizeof(xIntegerFeedbackState); - i2->id = i->ctrl.id; - i2->resolution = i->ctrl.resolution; - i2->min_value = i->ctrl.min_value; - i2->max_value = i->ctrl.max_value; - if (client->swapped) { - swaps(&i2->length, n); - swapl(&i2->resolution, n); - swapl(&i2->min_value, n); - swapl(&i2->max_value, n); - } - *buf += sizeof(xIntegerFeedbackState); -} - -/*********************************************************************** - * - * This procedure copies StringFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapStringFeedback(ClientPtr client, StringFeedbackPtr s, char **buf) -{ - int i; - register char n; - xStringFeedbackState *s2; - KeySym *kptr; - - s2 = (xStringFeedbackState *) * buf; - s2->class = StringFeedbackClass; - s2->length = sizeof(xStringFeedbackState) + - s->ctrl.num_symbols_supported * sizeof(KeySym); - s2->id = s->ctrl.id; - s2->max_symbols = s->ctrl.max_symbols; - s2->num_syms_supported = s->ctrl.num_symbols_supported; - *buf += sizeof(xStringFeedbackState); - kptr = (KeySym *) (*buf); - for (i = 0; i < s->ctrl.num_symbols_supported; i++) - *kptr++ = *(s->ctrl.symbols_supported + i); - if (client->swapped) { - swaps(&s2->length, n); - swaps(&s2->max_symbols, n); - swaps(&s2->num_syms_supported, n); - kptr = (KeySym *) (*buf); - for (i = 0; i < s->ctrl.num_symbols_supported; i++, kptr++) { - swapl(kptr, n); - } - } - *buf += (s->ctrl.num_symbols_supported * sizeof(KeySym)); -} - -/*********************************************************************** - * - * This procedure copies LedFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapLedFeedback(ClientPtr client, LedFeedbackPtr l, char **buf) -{ - register char n; - xLedFeedbackState *l2; - - l2 = (xLedFeedbackState *) * buf; - l2->class = LedFeedbackClass; - l2->length = sizeof(xLedFeedbackState); - l2->id = l->ctrl.id; - l2->led_values = l->ctrl.led_values; - l2->led_mask = l->ctrl.led_mask; - if (client->swapped) { - swaps(&l2->length, n); - swapl(&l2->led_values, n); - swapl(&l2->led_mask, n); - } - *buf += sizeof(xLedFeedbackState); -} - -/*********************************************************************** - * - * This procedure copies BellFeedbackClass data, swapping if necessary. - * - */ - -void -CopySwapBellFeedback(ClientPtr client, BellFeedbackPtr b, char **buf) -{ - register char n; - xBellFeedbackState *b2; - - b2 = (xBellFeedbackState *) * buf; - b2->class = BellFeedbackClass; - b2->length = sizeof(xBellFeedbackState); - b2->id = b->ctrl.id; - b2->percent = b->ctrl.percent; - b2->pitch = b->ctrl.pitch; - b2->duration = b->ctrl.duration; - if (client->swapped) { - swaps(&b2->length, n); - swaps(&b2->pitch, n); - swaps(&b2->duration, n); - } - *buf += sizeof(xBellFeedbackState); -} - -/*********************************************************************** - * - * This procedure writes the reply for the xGetFeedbackControl function, - * if the client and server have a different byte ordering. - * - */ - -void -SRepXGetFeedbackControl(ClientPtr client, int size, - xGetFeedbackControlReply * rep) -{ - register char n; - - swaps(&rep->sequenceNumber, n); - swapl(&rep->length, n); - swaps(&rep->num_feedbacks, n); - WriteToClient(client, size, (char *)rep); -} diff --git a/Xi/getfctl.h b/Xi/getfctl.h index 7d2d17ab1..0ad58aa2b 100644 --- a/Xi/getfctl.h +++ b/Xi/getfctl.h @@ -36,36 +36,6 @@ int SProcXGetFeedbackControl(ClientPtr /* client */ int ProcXGetFeedbackControl(ClientPtr /* client */ ); -void CopySwapKbdFeedback(ClientPtr /* client */ , - KbdFeedbackPtr /* k */ , - char ** /* buf */ - ); - -void CopySwapPtrFeedback(ClientPtr /* client */ , - PtrFeedbackPtr /* p */ , - char ** /* buf */ - ); - -void CopySwapIntegerFeedback(ClientPtr /* client */ , - IntegerFeedbackPtr /* i */ , - char ** /* buf */ - ); - -void CopySwapStringFeedback(ClientPtr /* client */ , - StringFeedbackPtr /* s */ , - char ** /* buf */ - ); - -void CopySwapLedFeedback(ClientPtr /* client */ , - LedFeedbackPtr /* l */ , - char ** /* buf */ - ); - -void CopySwapBellFeedback(ClientPtr /* client */ , - BellFeedbackPtr /* b */ , - char ** /* buf */ - ); - void SRepXGetFeedbackControl(ClientPtr /* client */ , int /* size */ , xGetFeedbackControlReply * /* rep */ diff --git a/Xi/listdev.c b/Xi/listdev.c index 02d55ad4c..257ee59bc 100644 --- a/Xi/listdev.c +++ b/Xi/listdev.c @@ -86,6 +86,218 @@ SProcXListInputDevices(register ClientPtr client) return (ProcXListInputDevices(client)); } +/*********************************************************************** + * + * This procedure calculates the size of the information to be returned + * for an input device. + * + */ + +static void +SizeDeviceInfo(DeviceIntPtr d, int *namesize, int *size) +{ + int chunks; + + *namesize += 1; + if (d->name) + *namesize += strlen(d->name); + if (d->key != NULL) + *size += sizeof(xKeyInfo); + if (d->button != NULL) + *size += sizeof(xButtonInfo); + if (d->valuator != NULL) { + chunks = ((int)d->valuator->numAxes + 19) / VPC; + *size += (chunks * sizeof(xValuatorInfo) + + d->valuator->numAxes * sizeof(xAxisInfo)); + } +} + +/*********************************************************************** + * + * This procedure copies data to the DeviceInfo struct, swapping if necessary. + * + * We need the extra byte in the allocated buffer, because the trailing null + * hammers one extra byte, which is overwritten by the next name except for + * the last name copied. + * + */ + +static void +CopyDeviceName(char **namebuf, char *name) +{ + char *nameptr = (char *)*namebuf; + + if (name) { + *nameptr++ = strlen(name); + strcpy(nameptr, name); + *namebuf += (strlen(name) + 1); + } else { + *nameptr++ = 0; + *namebuf += 1; + } +} + +/*********************************************************************** + * + * This procedure copies ButtonClass information, swapping if necessary. + * + */ + +static void +CopySwapButtonClass(register ClientPtr client, ButtonClassPtr b, char **buf) +{ + register char n; + xButtonInfoPtr b2; + + b2 = (xButtonInfoPtr) * buf; + b2->class = ButtonClass; + b2->length = sizeof(xButtonInfo); + b2->num_buttons = b->numButtons; + if (client->swapped) { + swaps(&b2->num_buttons, n); /* macro - braces are required */ + } + *buf += sizeof(xButtonInfo); +} + +/*********************************************************************** + * + * This procedure copies data to the DeviceInfo struct, swapping if necessary. + * + */ + +static void +CopySwapDevice(register ClientPtr client, DeviceIntPtr d, int num_classes, + char **buf) +{ + register char n; + xDeviceInfoPtr dev; + + dev = (xDeviceInfoPtr) * buf; + + dev->id = d->id; + dev->type = d->type; + dev->num_classes = num_classes; + if (d == inputInfo.keyboard) + dev->use = IsXKeyboard; + else if (d == inputInfo.pointer) + dev->use = IsXPointer; + else if (d->key && d->kbdfeed) + dev->use = IsXExtensionKeyboard; + else if (d->valuator && d->button) + dev->use = IsXExtensionPointer; + else + dev->use = IsXExtensionDevice; + if (client->swapped) { + swapl(&dev->type, n); /* macro - braces are required */ + } + *buf += sizeof(xDeviceInfo); +} + +/*********************************************************************** + * + * This procedure copies KeyClass information, swapping if necessary. + * + */ + +static void +CopySwapKeyClass(register ClientPtr client, KeyClassPtr k, char **buf) +{ + register char n; + xKeyInfoPtr k2; + + k2 = (xKeyInfoPtr) * buf; + k2->class = KeyClass; + k2->length = sizeof(xKeyInfo); + k2->min_keycode = k->curKeySyms.minKeyCode; + k2->max_keycode = k->curKeySyms.maxKeyCode; + k2->num_keys = k2->max_keycode - k2->min_keycode + 1; + if (client->swapped) { + swaps(&k2->num_keys, n); + } + *buf += sizeof(xKeyInfo); +} + +/*********************************************************************** + * + * This procedure copies ValuatorClass information, swapping if necessary. + * + * Devices may have up to 255 valuators. The length of a ValuatorClass is + * defined to be sizeof(ValuatorClassInfo) + num_axes * sizeof (xAxisInfo). + * The maximum length is therefore (8 + 255 * 12) = 3068. However, the + * length field is one byte. If a device has more than 20 valuators, we + * must therefore return multiple valuator classes to the client. + * + */ + +static int +CopySwapValuatorClass(register ClientPtr client, ValuatorClassPtr v, char **buf) +{ + int i, j, axes, t_axes; + register char n; + xValuatorInfoPtr v2; + AxisInfo *a; + xAxisInfoPtr a2; + + for (i = 0, axes = v->numAxes; i < ((v->numAxes + 19) / VPC); + i++, axes -= VPC) { + t_axes = axes < VPC ? axes : VPC; + if (t_axes < 0) + t_axes = v->numAxes % VPC; + v2 = (xValuatorInfoPtr) * buf; + v2->class = ValuatorClass; + v2->length = sizeof(xValuatorInfo) + t_axes * sizeof(xAxisInfo); + v2->num_axes = t_axes; + v2->mode = v->mode & DeviceMode; + v2->motion_buffer_size = v->numMotionEvents; + if (client->swapped) { + swapl(&v2->motion_buffer_size, n); + } + *buf += sizeof(xValuatorInfo); + a = v->axes + (VPC * i); + a2 = (xAxisInfoPtr) * buf; + for (j = 0; j < t_axes; j++) { + a2->min_value = a->min_value; + a2->max_value = a->max_value; + a2->resolution = a->resolution; + if (client->swapped) { + swapl(&a2->min_value, n); + swapl(&a2->max_value, n); + swapl(&a2->resolution, n); + } + a2++; + a++; + *buf += sizeof(xAxisInfo); + } + } + return (i); +} + +/*********************************************************************** + * + * This procedure lists information to be returned for an input device. + * + */ + +static void +ListDeviceInfo(ClientPtr client, DeviceIntPtr d, xDeviceInfoPtr dev, + char **devbuf, char **classbuf, char **namebuf) +{ + CopyDeviceName(namebuf, d->name); + CopySwapDevice(client, d, 0, devbuf); + if (d->key != NULL) { + CopySwapKeyClass(client, d->key, classbuf); + dev->num_classes++; + } + if (d->button != NULL) { + CopySwapButtonClass(client, d->button, classbuf); + dev->num_classes++; + } + if (d->valuator != NULL) { + dev->num_classes += + CopySwapValuatorClass(client, d->valuator, classbuf); + } +} + /*********************************************************************** * * This procedure lists the input devices available to the server. @@ -145,218 +357,6 @@ ProcXListInputDevices(register ClientPtr client) return Success; } -/*********************************************************************** - * - * This procedure calculates the size of the information to be returned - * for an input device. - * - */ - -void -SizeDeviceInfo(DeviceIntPtr d, int *namesize, int *size) -{ - int chunks; - - *namesize += 1; - if (d->name) - *namesize += strlen(d->name); - if (d->key != NULL) - *size += sizeof(xKeyInfo); - if (d->button != NULL) - *size += sizeof(xButtonInfo); - if (d->valuator != NULL) { - chunks = ((int)d->valuator->numAxes + 19) / VPC; - *size += (chunks * sizeof(xValuatorInfo) + - d->valuator->numAxes * sizeof(xAxisInfo)); - } -} - -/*********************************************************************** - * - * This procedure lists information to be returned for an input device. - * - */ - -void -ListDeviceInfo(ClientPtr client, DeviceIntPtr d, xDeviceInfoPtr dev, - char **devbuf, char **classbuf, char **namebuf) -{ - CopyDeviceName(namebuf, d->name); - CopySwapDevice(client, d, 0, devbuf); - if (d->key != NULL) { - CopySwapKeyClass(client, d->key, classbuf); - dev->num_classes++; - } - if (d->button != NULL) { - CopySwapButtonClass(client, d->button, classbuf); - dev->num_classes++; - } - if (d->valuator != NULL) { - dev->num_classes += - CopySwapValuatorClass(client, d->valuator, classbuf); - } -} - -/*********************************************************************** - * - * This procedure copies data to the DeviceInfo struct, swapping if necessary. - * - * We need the extra byte in the allocated buffer, because the trailing null - * hammers one extra byte, which is overwritten by the next name except for - * the last name copied. - * - */ - -void -CopyDeviceName(char **namebuf, char *name) -{ - char *nameptr = (char *)*namebuf; - - if (name) { - *nameptr++ = strlen(name); - strcpy(nameptr, name); - *namebuf += (strlen(name) + 1); - } else { - *nameptr++ = 0; - *namebuf += 1; - } -} - -/*********************************************************************** - * - * This procedure copies data to the DeviceInfo struct, swapping if necessary. - * - */ - -void -CopySwapDevice(register ClientPtr client, DeviceIntPtr d, int num_classes, - char **buf) -{ - register char n; - xDeviceInfoPtr dev; - - dev = (xDeviceInfoPtr) * buf; - - dev->id = d->id; - dev->type = d->type; - dev->num_classes = num_classes; - if (d == inputInfo.keyboard) - dev->use = IsXKeyboard; - else if (d == inputInfo.pointer) - dev->use = IsXPointer; - else if (d->key && d->kbdfeed) - dev->use = IsXExtensionKeyboard; - else if (d->valuator && d->button) - dev->use = IsXExtensionPointer; - else - dev->use = IsXExtensionDevice; - if (client->swapped) { - swapl(&dev->type, n); /* macro - braces are required */ - } - *buf += sizeof(xDeviceInfo); -} - -/*********************************************************************** - * - * This procedure copies KeyClass information, swapping if necessary. - * - */ - -void -CopySwapKeyClass(register ClientPtr client, KeyClassPtr k, char **buf) -{ - register char n; - xKeyInfoPtr k2; - - k2 = (xKeyInfoPtr) * buf; - k2->class = KeyClass; - k2->length = sizeof(xKeyInfo); - k2->min_keycode = k->curKeySyms.minKeyCode; - k2->max_keycode = k->curKeySyms.maxKeyCode; - k2->num_keys = k2->max_keycode - k2->min_keycode + 1; - if (client->swapped) { - swaps(&k2->num_keys, n); - } - *buf += sizeof(xKeyInfo); -} - -/*********************************************************************** - * - * This procedure copies ButtonClass information, swapping if necessary. - * - */ - -void -CopySwapButtonClass(register ClientPtr client, ButtonClassPtr b, char **buf) -{ - register char n; - xButtonInfoPtr b2; - - b2 = (xButtonInfoPtr) * buf; - b2->class = ButtonClass; - b2->length = sizeof(xButtonInfo); - b2->num_buttons = b->numButtons; - if (client->swapped) { - swaps(&b2->num_buttons, n); /* macro - braces are required */ - } - *buf += sizeof(xButtonInfo); -} - -/*********************************************************************** - * - * This procedure copies ValuatorClass information, swapping if necessary. - * - * Devices may have up to 255 valuators. The length of a ValuatorClass is - * defined to be sizeof(ValuatorClassInfo) + num_axes * sizeof (xAxisInfo). - * The maximum length is therefore (8 + 255 * 12) = 3068. However, the - * length field is one byte. If a device has more than 20 valuators, we - * must therefore return multiple valuator classes to the client. - * - */ - -int -CopySwapValuatorClass(register ClientPtr client, ValuatorClassPtr v, char **buf) -{ - int i, j, axes, t_axes; - register char n; - xValuatorInfoPtr v2; - AxisInfo *a; - xAxisInfoPtr a2; - - for (i = 0, axes = v->numAxes; i < ((v->numAxes + 19) / VPC); - i++, axes -= VPC) { - t_axes = axes < VPC ? axes : VPC; - if (t_axes < 0) - t_axes = v->numAxes % VPC; - v2 = (xValuatorInfoPtr) * buf; - v2->class = ValuatorClass; - v2->length = sizeof(xValuatorInfo) + t_axes * sizeof(xAxisInfo); - v2->num_axes = t_axes; - v2->mode = v->mode & DeviceMode; - v2->motion_buffer_size = v->numMotionEvents; - if (client->swapped) { - swapl(&v2->motion_buffer_size, n); - } - *buf += sizeof(xValuatorInfo); - a = v->axes + (VPC * i); - a2 = (xAxisInfoPtr) * buf; - for (j = 0; j < t_axes; j++) { - a2->min_value = a->min_value; - a2->max_value = a->max_value; - a2->resolution = a->resolution; - if (client->swapped) { - swapl(&a2->min_value, n); - swapl(&a2->max_value, n); - swapl(&a2->resolution, n); - } - a2++; - a++; - *buf += sizeof(xAxisInfo); - } - } - return (i); -} - /*********************************************************************** * * This procedure writes the reply for the XListInputDevices function, diff --git a/Xi/listdev.h b/Xi/listdev.h index bdd67ce70..db376decf 100644 --- a/Xi/listdev.h +++ b/Xi/listdev.h @@ -36,44 +36,6 @@ int SProcXListInputDevices(ClientPtr /* client */ int ProcXListInputDevices(ClientPtr /* client */ ); -void SizeDeviceInfo(DeviceIntPtr /* d */ , - int * /* namesize */ , - int * /* size */ - ); - -void ListDeviceInfo(ClientPtr /* client */ , - DeviceIntPtr /* d */ , - xDeviceInfoPtr /* dev */ , - char ** /* devbuf */ , - char ** /* classbuf */ , - char ** /* namebuf */ - ); - -void CopyDeviceName(char ** /* namebuf */ , - char * /* name */ - ); - -void CopySwapDevice(ClientPtr /* client */ , - DeviceIntPtr /* d */ , - int /* num_classes */ , - char ** /* buf */ - ); - -void CopySwapKeyClass(ClientPtr /* client */ , - KeyClassPtr /* k */ , - char ** /* buf */ - ); - -void CopySwapButtonClass(ClientPtr /* client */ , - ButtonClassPtr /* b */ , - char ** /* buf */ - ); - -int CopySwapValuatorClass(ClientPtr /* client */ , - ValuatorClassPtr /* v */ , - char ** /* buf */ - ); - void SRepXListInputDevices(ClientPtr /* client */ , int /* size */ , xListInputDevicesReply * /* rep */ diff --git a/afb/afb.h b/afb/afb.h index c05cc5511..5aa2b0c92 100644 --- a/afb/afb.h +++ b/afb/afb.h @@ -78,27 +78,6 @@ extern void afbDoBitblt( unsigned long /*planemask*/ ); -extern RegionPtr afbBitBlt( - DrawablePtr /*pSrc*/, - DrawablePtr /*pDst*/, - GCPtr /*pGC*/, - int /*srcx*/, - int /*srcy*/, - int /*width*/, - int /*height*/, - int /*dstx*/, - int /*dsty*/, - void (*doBitBlt)( - DrawablePtr /*pSrc*/, - DrawablePtr /*pDst*/, - int /*alu*/, - RegionPtr /*prgnDst*/, - DDXPointPtr /*pptSrc*/, - unsigned long /*planemask*/ - ), - unsigned long /*planemask*/ -); - extern RegionPtr afbCopyArea( DrawablePtr /*pSrcDrawable*/, DrawablePtr /*pDstDrawable*/, @@ -111,27 +90,6 @@ extern RegionPtr afbCopyArea( int /*dsty*/ ); -extern RegionPtr afbCopyPlane( - DrawablePtr /*pSrcDrawable*/, - DrawablePtr /*pDstDrawable*/, - GCPtr/*pGC*/, - int /*srcx*/, - int /*srcy*/, - int /*width*/, - int /*height*/, - int /*dstx*/, - int /*dsty*/, - unsigned long /*plane*/ -); - -extern void afbCopy1ToN( - DrawablePtr /*pSrc*/, - DrawablePtr /*pDst*/, - int /*alu*/, - RegionPtr /*prgnDst*/, - DDXPointPtr /*pptSrc*/, - unsigned long /*planemask*/ -); /* afbbltC.c */ extern void afbDoBitbltCopy( @@ -273,23 +231,6 @@ extern Bool afbInitializeColormap( ColormapPtr /*pmap*/ ); -extern int afbExpandDirectColors( - ColormapPtr /*pmap*/, - int /*ndefs*/, - xColorItem * /*indefs*/, - xColorItem * /*outdefs*/ -); - -extern Bool afbCreateDefColormap( - ScreenPtr /*pScreen*/ -); - -extern Bool afbSetVisualTypes( - int /*depth*/, - int /*visuals*/, - int /*bitsPerRGB*/ -); - extern Bool afbInitVisuals( VisualPtr * /*visualp*/, DepthPtr * /*depthp*/, @@ -410,16 +351,6 @@ extern Bool afbCreateGC( GCPtr /*pGC*/ ); -extern void afbValidateGC( - GCPtr /*pGC*/, - unsigned long /*changes*/, - DrawablePtr /*pDrawable*/ -); - -extern void afbDestroyGC( - GCPtr /*pGC*/ -); - extern void afbReduceRop( int /*alu*/, Pixel /*src*/, @@ -428,19 +359,6 @@ extern void afbReduceRop( unsigned char * /*rrops*/ ); -extern void afbReduceOpaqueStipple ( - Pixel /*fg*/, - Pixel /*bg*/, - unsigned long /*planemask*/, - int /*depth*/, - unsigned char * /*rrops*/ -); - -extern void afbComputeCompositeClip( - GCPtr /*pGC*/, - DrawablePtr /*pDrawable*/ -); - /* afbgetsp.c */ extern void afbGetSpans( @@ -588,14 +506,6 @@ extern Bool afbDestroyPixmap( PixmapPtr /*pPixmap*/ ); -extern PixmapPtr afbCopyPixmap( - PixmapPtr /*pSrc*/ -); - -extern void afbPadPixmap( - PixmapPtr /*pPixmap*/ -); - extern void afbXRotatePixmap( PixmapPtr /*pPix*/, int /*rw*/ @@ -637,20 +547,9 @@ extern void afbPushPixels( int /*xOrg*/, int /*yOrg*/ ); -/* afbscrclse.c */ -extern Bool afbCloseScreen( - int /*index*/, - ScreenPtr /*pScreen*/ -); /* afbscrinit.c */ -extern Bool afbAllocatePrivates( - ScreenPtr /*pScreen*/, - int * /*pWinIndex*/, - int * /*pGCIndex*/ -); - extern Bool afbScreenInit( ScreenPtr /*pScreen*/, pointer /*pbits*/, @@ -661,15 +560,6 @@ extern Bool afbScreenInit( int /*width*/ ); -extern PixmapPtr afbGetWindowPixmap( - WindowPtr /*pWin*/ -); - -extern void afbSetWindowPixmap( - WindowPtr /*pWin*/, - PixmapPtr /*pPix*/ -); - /* afbseg.c */ extern void afbSegmentSS( @@ -687,20 +577,6 @@ extern void afbSegmentSD( ); /* afbsetsp.c */ -extern void afbSetScanline( - int /*y*/, - int /*xOrigin*/, - int /*xStart*/, - int /*xEnd*/, - PixelType * /*psrc*/, - int /*alu*/, - PixelType * /*pdstBase*/, - int /*widthDst*/, - int /*sizeDst*/, - int /*depthDst*/, - int /*sizeSrc*/ -); - extern void afbSetSpans( DrawablePtr /*pDrawable*/, GCPtr /*pGC*/, diff --git a/afb/afbbitblt.c b/afb/afbbitblt.c index 594e987a8..2e416e356 100644 --- a/afb/afbbitblt.c +++ b/afb/afbbitblt.c @@ -67,9 +67,6 @@ SOFTWARE. #include "afb.h" #include "maskbits.h" - -static unsigned char afbRropsOS[AFB_MAX_DEPTH]; - /* CopyArea and CopyPlane for a monchrome frame buffer @@ -126,34 +123,7 @@ afbDoBitblt(DrawablePtr pSrc, DrawablePtr pDst, int alu, RegionPtr prgnDst, DDXP typedef void (*afb_blit_func) (DrawablePtr, DrawablePtr, int, RegionPtr, DDXPointPtr, unsigned long); -RegionPtr -afbCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GC *pGC, int srcx, int srcy, int width, int height, int dstx, int dsty) -{ - afb_blit_func doBitBlt; - - switch (pGC->alu) { - case GXcopy: - doBitBlt = afbDoBitbltCopy; - break; - case GXxor: - doBitBlt = afbDoBitbltXor; - break; - case GXcopyInverted: - doBitBlt = afbDoBitbltCopyInverted; - break; - case GXor: - doBitBlt = afbDoBitbltOr; - break; - default: - doBitBlt = afbDoBitbltGeneral; - break; - } - - return(afbBitBlt(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, - width, height, dstx, dsty, doBitBlt, pGC->planemask)); -} - -RegionPtr +static RegionPtr afbBitBlt(register DrawablePtr pSrcDrawable, register DrawablePtr pDstDrawable, register GC *pGC, int srcx, int srcy, int width, int height, int dstx, int dsty, afb_blit_func doBitBlt, long unsigned int planemask) { RegionPtr prgnSrcClip = NULL; /* may be a new region, or just a copy */ @@ -346,102 +316,28 @@ afbBitBlt(register DrawablePtr pSrcDrawable, register DrawablePtr pDstDrawable, } RegionPtr -afbCopyPlane(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, register GC *pGC, int srcx, int srcy, int width, int height, int dstx, int dsty, long unsigned int plane) +afbCopyArea(DrawablePtr pSrcDrawable, DrawablePtr pDstDrawable, GC *pGC, int srcx, int srcy, int width, int height, int dstx, int dsty) { - int alu; - RegionPtr prgnExposed = NULL; - unsigned long old_planemask; + afb_blit_func doBitBlt; - if (pDstDrawable->depth == 1) { - old_planemask = pGC->planemask; - pGC->planemask = plane; - if ((pGC->fgPixel & 1) == 1 && (pGC->bgPixel & 1) == 0) { - prgnExposed = (*pGC->ops->CopyArea)(pSrcDrawable, pDstDrawable, - pGC, srcx, srcy, width, height, dstx, dsty); - } else if ((pGC->fgPixel & 1) == (pGC->bgPixel & 1)) { - unsigned char rop; - - afbReduceRop(pGC->alu, pGC->fgPixel, 1, 1, &rop); - alu = pGC->alu; - pGC->alu = rop; - prgnExposed = (*pGC->ops->CopyArea)(pSrcDrawable, pDstDrawable, pGC, - srcx, srcy, width, height, dstx, - dsty); - pGC->alu = alu; - } else { /* need to invert the src */ - alu = pGC->alu; - pGC->alu = afbInverseAlu[alu]; - prgnExposed = (*pGC->ops->CopyArea)(pSrcDrawable, pDstDrawable, pGC, - srcx, srcy, width, height, dstx, - dsty); - pGC->alu = alu; - } - pGC->planemask = old_planemask; - } else { - int free_pixmap = FALSE; - PixmapPtr pBitmap = (PixmapPtr)pSrcDrawable; - ScreenPtr pScreen = pSrcDrawable->pScreen; - GCPtr pGC1 = NULL; - - if (pSrcDrawable == pDstDrawable || - pSrcDrawable->type == DRAWABLE_WINDOW || pSrcDrawable->depth != 1) { - /* Copy a plane from source drawable to a tmp 1-bit deep pixmap */ - /* XXX: Range check width and height */ - pBitmap = (*pScreen->CreatePixmap)(pScreen, width, height, 1); - - if (!pBitmap) - return(NULL); - pGC1 = GetScratchGC(1, pScreen); - if (!pGC1) { - (*pScreen->DestroyPixmap)(pBitmap); - return(NULL); - } - ValidateGC((DrawablePtr)pBitmap, pGC1); - (void)afbBitBlt(pSrcDrawable, (DrawablePtr)pBitmap, pGC1, srcx, srcy, - width, height, 0, 0, afbDoBitbltCopy, plane); - free_pixmap = TRUE; - } -#if 0 - else { - /* XXX: could cope with N-deep pixmap source case without using tmp - * src bitmap by setting up a scratch pixmap header and fiddle - * around with the pbits pointer. - */ - } -#endif - afbReduceOpaqueStipple(pGC->fgPixel, pGC->bgPixel, pGC->planemask, - pGC->depth, afbRropsOS); - (void)afbBitBlt((DrawablePtr)pBitmap, pDstDrawable, pGC, 0, 0, width, - height, dstx, dsty, afbCopy1ToN, pGC->planemask); - if (free_pixmap) { - (*pScreen->DestroyPixmap)(pBitmap); - FreeScratchGC(pGC1); - } - - if (pGC->fExpose) - prgnExposed = miHandleExposures(pSrcDrawable, pDstDrawable, pGC, srcx, - srcy, width, height, dstx, dsty, - plane); - } - return prgnExposed; -} - -void -afbCopy1ToN(DrawablePtr pSrc, DrawablePtr pDst, int alu, RegionPtr prgnDst, DDXPointPtr pptSrc, long unsigned int planemask) -{ - int numRects = REGION_NUM_RECTS(prgnDst); - BoxPtr pbox = REGION_RECTS(prgnDst); - int r; - - for (r = 0; r < numRects; r++, pbox++, pptSrc++) { - int dx = pptSrc->x; - int dy = pptSrc->y; - - if (alu == GXcopy) - afbOpaqueStippleAreaCopy(pDst, 1, pbox, alu, (PixmapPtr)pSrc, dx, dy, - afbRropsOS, planemask); - else - afbOpaqueStippleAreaGeneral(pDst, 1, pbox, alu, (PixmapPtr)pSrc, dx, - dy, afbRropsOS, planemask); + switch (pGC->alu) { + case GXcopy: + doBitBlt = afbDoBitbltCopy; + break; + case GXxor: + doBitBlt = afbDoBitbltXor; + break; + case GXcopyInverted: + doBitBlt = afbDoBitbltCopyInverted; + break; + case GXor: + doBitBlt = afbDoBitbltOr; + break; + default: + doBitBlt = afbDoBitbltGeneral; + break; } + + return(afbBitBlt(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, + width, height, dstx, dsty, doBitBlt, pGC->planemask)); } diff --git a/afb/afbcmap.c b/afb/afbcmap.c index e3b95fbec..9608a3653 100644 --- a/afb/afbcmap.c +++ b/afb/afbcmap.c @@ -70,24 +70,6 @@ afbInitializeColormap(register ColormapPtr pmap) return miInitializeColormap(pmap); } -int -afbExpandDirectColors(ColormapPtr pmap, int ndef, xColorItem *indefs, xColorItem *outdefs) -{ - return miExpandDirectColors(pmap, ndef, indefs, outdefs); -} - -Bool -afbCreateDefColormap(ScreenPtr pScreen) -{ - return miCreateDefColormap(pScreen); -} - -Bool -afbSetVisualTypes(int depth, int visuals, int bitsPerRGB) -{ - return miSetVisualTypes(depth, visuals, bitsPerRGB, -1); -} - /* * Given a list of formats for a screen, create a list * of visuals and depths for the screen which correspond to diff --git a/afb/afbgc.c b/afb/afbgc.c index 03475dda5..59c09e097 100644 --- a/afb/afbgc.c +++ b/afb/afbgc.c @@ -69,6 +69,9 @@ SOFTWARE. #include "maskbits.h" +static void afbDestroyGC(GCPtr); +static void afbValidateGC(GCPtr, unsigned long, DrawablePtr); + static GCFuncs afbFuncs = { afbValidateGC, miChangeGC, @@ -102,6 +105,33 @@ static GCOps afbGCOps = { afbPushPixels }; +static void +afbReduceOpaqueStipple(PixelType fg, PixelType bg, unsigned long planemask, + int depth, unsigned char *rop) +{ + register int d; + register Pixel mask = 1; + + bg ^= fg; + + for (d = 0; d < depth; d++, mask <<= 1) { + if (!(planemask & mask)) + rop[d] = RROP_NOP; + else if (!(bg & mask)) { + /* Both fg and bg have a 0 or 1 in this plane */ + if (fg & mask) + rop[d] = RROP_WHITE; + else + rop[d] = RROP_BLACK; + } else { + /* Both fg and bg have different bits on this plane */ + if (fg & mask) + rop[d] = RROP_COPY; + else + rop[d] = RROP_INVERT; + } + } +} Bool afbCreateGC(pGC) @@ -136,6 +166,95 @@ afbCreateGC(pGC) return TRUE; } +static void +afbComputeCompositeClip(GCPtr pGC, DrawablePtr pDrawable) +{ + if (pDrawable->type == DRAWABLE_WINDOW) { + WindowPtr pWin = (WindowPtr) pDrawable; + RegionPtr pregWin; + Bool freeTmpClip, freeCompClip; + + if (pGC->subWindowMode == IncludeInferiors) { + pregWin = NotClippedByChildren(pWin); + freeTmpClip = TRUE; + } else { + pregWin = &pWin->clipList; + freeTmpClip = FALSE; + } + freeCompClip = pGC->freeCompClip; + + /* + * if there is no client clip, we can get by with just keeping the + * pointer we got, and remembering whether or not should destroy (or + * maybe re-use) it later. this way, we avoid unnecessary copying of + * regions. (this wins especially if many clients clip by children + * and have no client clip.) + */ + if (pGC->clientClipType == CT_NONE) { + if (freeCompClip) + REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip); + pGC->pCompositeClip = pregWin; + pGC->freeCompClip = freeTmpClip; + } else { + /* + * we need one 'real' region to put into the composite clip. if + * pregWin the current composite clip are real, we can get rid of + * one. if pregWin is real and the current composite clip isn't, + * use pregWin for the composite clip. if the current composite + * clip is real and pregWin isn't, use the current composite + * clip. if neither is real, create a new region. + */ + + REGION_TRANSLATE(pGC->pScreen, pGC->clientClip, + pDrawable->x + pGC->clipOrg.x, + pDrawable->y + pGC->clipOrg.y); + + if (freeCompClip) { + REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, pregWin, + pGC->clientClip); + if (freeTmpClip) + REGION_DESTROY(pGC->pScreen, pregWin); + } else if (freeTmpClip) { + REGION_INTERSECT(pGC->pScreen, pregWin, pregWin, pGC->clientClip); + pGC->pCompositeClip = pregWin; + } else { + pGC->pCompositeClip = REGION_CREATE(pGC->pScreen, NullBox, 0); + REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, + pregWin, pGC->clientClip); + } + pGC->freeCompClip = TRUE; + REGION_TRANSLATE(pGC->pScreen, pGC->clientClip, + -(pDrawable->x + pGC->clipOrg.x), + -(pDrawable->y + pGC->clipOrg.y)); + } + } /* end of composite clip for a window */ + else { + BoxRec pixbounds; + + /* XXX should we translate by drawable.x/y here ? */ + pixbounds.x1 = 0; + pixbounds.y1 = 0; + pixbounds.x2 = pDrawable->width; + pixbounds.y2 = pDrawable->height; + + if (pGC->freeCompClip) { + REGION_RESET(pGC->pScreen, pGC->pCompositeClip, &pixbounds); + } else { + pGC->freeCompClip = TRUE; + pGC->pCompositeClip = REGION_CREATE(pGC->pScreen, &pixbounds, 1); + } + + if (pGC->clientClipType == CT_REGION) { + REGION_TRANSLATE(pGC->pScreen, pGC->pCompositeClip, -pGC->clipOrg.x, + -pGC->clipOrg.y); + REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, + pGC->pCompositeClip, pGC->clientClip); + REGION_TRANSLATE(pGC->pScreen, pGC->pCompositeClip, pGC->clipOrg.x, + pGC->clipOrg.y); + } + } /* end of composite clip for pixmap */ +} /* end afbComputeCompositeClip */ + /* Clipping conventions if the drawable is a window CT_REGION ==> pCompositeClip really is the composite @@ -147,7 +266,7 @@ afbCreateGC(pGC) */ /*ARGSUSED*/ -void +static void afbValidateGC(pGC, changes, pDrawable) register GCPtr pGC; unsigned long changes; @@ -434,7 +553,7 @@ afbValidateGC(pGC, changes, pDrawable) } /* end of new_fill */ } -void +static void afbDestroyGC(pGC) GCPtr pGC; { @@ -445,58 +564,6 @@ afbDestroyGC(pGC) miDestroyGCOps(pGC->ops); } -/* table to map alu(src, dst) to alu(~src, dst) */ -int afbInverseAlu[16] = { - GXclear, - GXandInverted, - GXnor, - GXcopyInverted, - GXand, - GXnoop, - GXequiv, - GXorInverted, - GXandReverse, - GXxor, - GXinvert, - GXnand, - GXcopy, - GXor, - GXorReverse, - GXset -}; - -void -afbReduceOpaqueStipple(fg, bg, planemask, depth, rop) -register PixelType fg; -register PixelType bg; -register unsigned long planemask; -int depth; -register unsigned char *rop; -{ - register int d; - register Pixel mask = 1; - - bg ^= fg; - - for (d = 0; d < depth; d++, mask <<= 1) { - if (!(planemask & mask)) - rop[d] = RROP_NOP; - else if (!(bg & mask)) { - /* Both fg and bg have a 0 or 1 in this plane */ - if (fg & mask) - rop[d] = RROP_WHITE; - else - rop[d] = RROP_BLACK; - } else { - /* Both fg and bg have different bits on this plane */ - if (fg & mask) - rop[d] = RROP_COPY; - else - rop[d] = RROP_INVERT; - } - } -} - void afbReduceRop(alu, src, planemask, depth, rop) register int alu; @@ -615,94 +682,3 @@ afbReduceRop(alu, src, planemask, depth, rop) } } } - -void -afbComputeCompositeClip(pGC, pDrawable) - GCPtr pGC; - DrawablePtr pDrawable; -{ - if (pDrawable->type == DRAWABLE_WINDOW) { - WindowPtr pWin = (WindowPtr) pDrawable; - RegionPtr pregWin; - Bool freeTmpClip, freeCompClip; - - if (pGC->subWindowMode == IncludeInferiors) { - pregWin = NotClippedByChildren(pWin); - freeTmpClip = TRUE; - } else { - pregWin = &pWin->clipList; - freeTmpClip = FALSE; - } - freeCompClip = pGC->freeCompClip; - - /* - * if there is no client clip, we can get by with just keeping the - * pointer we got, and remembering whether or not should destroy (or - * maybe re-use) it later. this way, we avoid unnecessary copying of - * regions. (this wins especially if many clients clip by children - * and have no client clip.) - */ - if (pGC->clientClipType == CT_NONE) { - if (freeCompClip) - REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip); - pGC->pCompositeClip = pregWin; - pGC->freeCompClip = freeTmpClip; - } else { - /* - * we need one 'real' region to put into the composite clip. if - * pregWin the current composite clip are real, we can get rid of - * one. if pregWin is real and the current composite clip isn't, - * use pregWin for the composite clip. if the current composite - * clip is real and pregWin isn't, use the current composite - * clip. if neither is real, create a new region. - */ - - REGION_TRANSLATE(pGC->pScreen, pGC->clientClip, - pDrawable->x + pGC->clipOrg.x, - pDrawable->y + pGC->clipOrg.y); - - if (freeCompClip) { - REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, pregWin, - pGC->clientClip); - if (freeTmpClip) - REGION_DESTROY(pGC->pScreen, pregWin); - } else if (freeTmpClip) { - REGION_INTERSECT(pGC->pScreen, pregWin, pregWin, pGC->clientClip); - pGC->pCompositeClip = pregWin; - } else { - pGC->pCompositeClip = REGION_CREATE(pGC->pScreen, NullBox, 0); - REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, - pregWin, pGC->clientClip); - } - pGC->freeCompClip = TRUE; - REGION_TRANSLATE(pGC->pScreen, pGC->clientClip, - -(pDrawable->x + pGC->clipOrg.x), - -(pDrawable->y + pGC->clipOrg.y)); - } - } /* end of composite clip for a window */ - else { - BoxRec pixbounds; - - /* XXX should we translate by drawable.x/y here ? */ - pixbounds.x1 = 0; - pixbounds.y1 = 0; - pixbounds.x2 = pDrawable->width; - pixbounds.y2 = pDrawable->height; - - if (pGC->freeCompClip) { - REGION_RESET(pGC->pScreen, pGC->pCompositeClip, &pixbounds); - } else { - pGC->freeCompClip = TRUE; - pGC->pCompositeClip = REGION_CREATE(pGC->pScreen, &pixbounds, 1); - } - - if (pGC->clientClipType == CT_REGION) { - REGION_TRANSLATE(pGC->pScreen, pGC->pCompositeClip, -pGC->clipOrg.x, - -pGC->clipOrg.y); - REGION_INTERSECT(pGC->pScreen, pGC->pCompositeClip, - pGC->pCompositeClip, pGC->clientClip); - REGION_TRANSLATE(pGC->pScreen, pGC->pCompositeClip, pGC->clipOrg.x, - pGC->clipOrg.y); - } - } /* end of composite clip for pixmap */ -} /* end afbComputeCompositeClip */ diff --git a/afb/afbimage.c b/afb/afbimage.c index c82bb3668..81f49730a 100644 --- a/afb/afbimage.c +++ b/afb/afbimage.c @@ -42,39 +42,8 @@ afbPutImage(pDraw, pGC, depth, x, y, width, height, leftPad, format, pImage) (void)(*pGC->ops->CopyPlane)((DrawablePtr)pPixmap, pDraw, pGC, leftPad, 0, width, height, x, y, 1); else { -#if 0 - /* XXX: bit plane order wronge ! */ - pPixmap->drawable.depth = 1; - pPixmap->drawable.bitsPerPixel = 1; - - switch (pGC->alu) { - case GXcopy: - doBitBlt = afbDoBitbltCopy; - break; - case GXxor: - doBitBlt = afbDoBitbltXor; - break; - case GXcopyInverted: - doBitBlt = afbDoBitbltCopyInverted; - break; - case GXor: - doBitBlt = afbDoBitbltOr; - break; - default: - doBitBlt = afbDoBitbltGeneral; - break; - } - - for (plane = (1L << (pPixmap->drawable.depth - 1)); plane; - plane >>= 1) { - (void)afbBitBlt((DrawablePtr)pPixmap, pDraw, pGC, leftPad, 0, - width, height, x, y, doBitBlt, plane); - /* pDraw->devKind += sizeDst; */ - } -#else (void)(*pGC->ops->CopyArea)((DrawablePtr)pPixmap, pDraw, pGC, leftPad, 0, width, height, x, y); -#endif } pGC->fExpose = TRUE; diff --git a/afb/afbpixmap.c b/afb/afbpixmap.c index 6a3a48518..77ba53513 100644 --- a/afb/afbpixmap.c +++ b/afb/afbpixmap.c @@ -118,9 +118,8 @@ afbDestroyPixmap(pPixmap) } -PixmapPtr -afbCopyPixmap(pSrc) - register PixmapPtr pSrc; +static PixmapPtr +afbCopyPixmap(PixmapPtr pSrc) { register PixmapPtr pDst; int size; @@ -148,9 +147,8 @@ afbCopyPixmap(pSrc) zero out area to be filled with replicate left shift and or in original as many times as needed */ -void -afbPadPixmap(pPixmap) - PixmapPtr pPixmap; +static void +afbPadPixmap(PixmapPtr pPixmap) { register int width = pPixmap->drawable.width; register int h; diff --git a/afb/afbscrinit.c b/afb/afbscrinit.c index 2b0867fda..7cb742345 100644 --- a/afb/afbscrinit.c +++ b/afb/afbscrinit.c @@ -77,7 +77,7 @@ int afbScreenPrivateIndex; static unsigned long afbGeneration = 0; -BSFuncRec afbBSFuncRec = { +static BSFuncRec afbBSFuncRec = { afbSaveAreas, afbRestoreAreas, (BackingStoreSetClipmaskRgnProcPtr) 0, @@ -85,7 +85,7 @@ BSFuncRec afbBSFuncRec = { (BackingStoreGetSpansPixmapProcPtr) 0, }; -Bool +static Bool afbCloseScreen(int index, ScreenPtr pScreen) { int d; @@ -119,7 +119,29 @@ afbCreateScreenResources(ScreenPtr pScreen) return(retval); } -Bool +static PixmapPtr +afbGetWindowPixmap(WindowPtr pWin) +{ +#ifdef PIXMAP_PER_WINDOW + return (PixmapPtr)(pWin->devPrivates[frameWindowPrivateIndex].ptr); +#else + ScreenPtr pScreen = pWin->drawable.pScreen; + + return (* pScreen->GetScreenPixmap)(pScreen); +#endif +} + +static void +afbSetWindowPixmap(WindowPtr pWin, PixmapPtr pPix) +{ +#ifdef PIXMAP_PER_WINDOW + pWin->devPrivates[frameWindowPrivateIndex].ptr = (pointer)pPix; +#else + (* pWin->drawable.pScreen->SetScreenPixmap)(pPix); +#endif +} + +static Bool afbAllocatePrivates(ScreenPtr pScreen, int *pWinIndex, int *pGCIndex) { if (afbGeneration != serverGeneration) { @@ -216,25 +238,3 @@ afbScreenInit(register ScreenPtr pScreen, pointer pbits, int xsize, int ysize, i return TRUE; } - -PixmapPtr -afbGetWindowPixmap(WindowPtr pWin) -{ -#ifdef PIXMAP_PER_WINDOW - return (PixmapPtr)(pWin->devPrivates[frameWindowPrivateIndex].ptr); -#else - ScreenPtr pScreen = pWin->drawable.pScreen; - - return (* pScreen->GetScreenPixmap)(pScreen); -#endif -} - -void -afbSetWindowPixmap(WindowPtr pWin, PixmapPtr pPix) -{ -#ifdef PIXMAP_PER_WINDOW - pWin->devPrivates[frameWindowPrivateIndex].ptr = (pointer)pPix; -#else - (* pWin->drawable.pScreen->SetScreenPixmap)(pPix); -#endif -} diff --git a/afb/afbsetsp.c b/afb/afbsetsp.c index adc726620..cb36dba99 100644 --- a/afb/afbsetsp.c +++ b/afb/afbsetsp.c @@ -73,20 +73,10 @@ SOFTWARE. * boxes, we may not want to start grabbing bits at psrc but at some offset * further on.) */ -void -afbSetScanline(y, xOrigin, xStart, xEnd, psrc, alu, pdstBase, widthDst, - sizeDst, depthDst, sizeSrc) - int y; - int xOrigin; /* where this scanline starts */ - int xStart; /* first bit to use from scanline */ - int xEnd; /* last bit to use from scanline + 1 */ - register PixelType *psrc; - register int alu; /* raster op */ - PixelType *pdstBase; /* start of the drawable */ - int widthDst; /* width of drawable in words */ - int sizeDst; - int depthDst; - int sizeSrc; +static void +afbSetScanline(int y, int xOrigin, int xStart, int xEnd, PixelType *psrc, + int alu, PixelType *pdstBase, int widthDst, int sizeDst, + int depthDst, int sizeSrc) { int w; /* width of scanline in bits */ register PixelType *pdst; /* where to put the bits */ diff --git a/composite/compalloc.c b/composite/compalloc.c index 5bbf0a279..ce1ef7d80 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -48,7 +48,7 @@ #include "compint.h" -void +static void compReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure) { WindowPtr pWin = (WindowPtr) closure; diff --git a/composite/compext.c b/composite/compext.c index 13936fa18..4c25cc7da 100644 --- a/composite/compext.c +++ b/composite/compext.c @@ -50,10 +50,10 @@ #include "compint.h" static CARD8 CompositeReqCode; -int CompositeClientPrivateIndex; +static int CompositeClientPrivateIndex; RESTYPE CompositeClientWindowType; RESTYPE CompositeClientSubwindowsType; -RESTYPE CompositeClientOverlayType; +static RESTYPE CompositeClientOverlayType; static void deleteCompOverlayClient (CompOverlayClientPtr pOcToDel, ScreenPtr pScreen); @@ -423,7 +423,7 @@ createOverlayWindow (ScreenPtr pScreen) return pWin; } -int +static int ProcCompositeGetOverlayWindow (ClientPtr client) { REQUEST(xCompositeGetOverlayWindowReq); @@ -477,7 +477,7 @@ ProcCompositeGetOverlayWindow (ClientPtr client) return client->noClientException; } -int +static int ProcCompositeReleaseOverlayWindow (ClientPtr client) { REQUEST(xCompositeReleaseOverlayWindowReq); @@ -515,7 +515,7 @@ ProcCompositeReleaseOverlayWindow (ClientPtr client) return client->noClientException; } -int (*ProcCompositeVector[CompositeNumberRequests])(ClientPtr) = { +static int (*ProcCompositeVector[CompositeNumberRequests])(ClientPtr) = { ProcCompositeQueryVersion, ProcCompositeRedirectWindow, ProcCompositeRedirectSubwindows, @@ -625,7 +625,7 @@ SProcCompositeNameWindowPixmap (ClientPtr client) return (*ProcCompositeVector[stuff->compositeReqType]) (client); } -int +static int SProcCompositeGetOverlayWindow (ClientPtr client) { int n; @@ -637,7 +637,7 @@ SProcCompositeGetOverlayWindow (ClientPtr client) return (*ProcCompositeVector[stuff->compositeReqType]) (client); } -int +static int SProcCompositeReleaseOverlayWindow (ClientPtr client) { int n; @@ -649,7 +649,7 @@ SProcCompositeReleaseOverlayWindow (ClientPtr client) return (*ProcCompositeVector[stuff->compositeReqType]) (client); } -int (*SProcCompositeVector[CompositeNumberRequests])(ClientPtr) = { +static int (*SProcCompositeVector[CompositeNumberRequests])(ClientPtr) = { SProcCompositeQueryVersion, SProcCompositeRedirectWindow, SProcCompositeRedirectSubwindows, diff --git a/composite/compinit.c b/composite/compinit.c index 1d5cc7b04..27261dcad 100644 --- a/composite/compinit.c +++ b/composite/compinit.c @@ -51,7 +51,7 @@ int CompScreenPrivateIndex; int CompWindowPrivateIndex; int CompSubwindowsPrivateIndex; -int CompGeneration; +static int CompGeneration; static Bool diff --git a/composite/compint.h b/composite/compint.h index 3958b3b31..0bd55a9a6 100644 --- a/composite/compint.h +++ b/composite/compint.h @@ -171,9 +171,6 @@ extern RESTYPE CompositeClientSubwindowsType; * compalloc.c */ -void -compReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure); - Bool compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update); @@ -292,18 +289,6 @@ compWindowUpdate (WindowPtr pWin); void deleteCompOverlayClientsForScreen (ScreenPtr pScreen); -int -ProcCompositeGetOverlayWindow (ClientPtr client); - -int -ProcCompositeReleaseOverlayWindow (ClientPtr client); - -int -SProcCompositeGetOverlayWindow (ClientPtr client); - -int -SProcCompositeReleaseOverlayWindow (ClientPtr client); - WindowPtr CompositeRealChildHead (WindowPtr pWin); diff --git a/configure.ac b/configure.ac index a7d5c6f78..d2b4e19de 100644 --- a/configure.ac +++ b/configure.ac @@ -1427,6 +1427,8 @@ return 0;} fi if test "${OS_MINOR}" -lt 8 ; then solaris_usl_console="yes" + else + XORG_CFLAGS="$XORG_CFLAGS -DXF86PM" fi ;; *) diff --git a/damageext/damageext.c b/damageext/damageext.c index 739d20f09..57a7bce09 100755 --- a/damageext/damageext.c +++ b/damageext/damageext.c @@ -28,12 +28,12 @@ #include "damageextint.h" -unsigned char DamageReqCode; -int DamageEventBase; -int DamageErrorBase; -int DamageClientPrivateIndex; -RESTYPE DamageExtType; -RESTYPE DamageExtWinType; +static unsigned char DamageReqCode; +static int DamageEventBase; +static int DamageErrorBase; +static int DamageClientPrivateIndex; +static RESTYPE DamageExtType; +static RESTYPE DamageExtWinType; /* Version of the damage extension supported by the server, as opposed to the * DAMAGE_* defines from damageproto for what version the proto header @@ -319,7 +319,7 @@ static const int version_requests[] = { #define NUM_VERSION_REQUESTS (sizeof (version_requests) / sizeof (version_requests[0])) -int (*ProcDamageVector[XDamageNumberRequests])(ClientPtr) = { +static int (*ProcDamageVector[XDamageNumberRequests])(ClientPtr) = { /*************** Version 1 ******************/ ProcDamageQueryVersion, ProcDamageCreate, @@ -408,7 +408,7 @@ SProcDamageAdd (ClientPtr client) return (*ProcDamageVector[stuff->damageReqType]) (client); } -int (*SProcDamageVector[XDamageNumberRequests])(ClientPtr) = { +static int (*SProcDamageVector[XDamageNumberRequests])(ClientPtr) = { /*************** Version 1 ******************/ SProcDamageQueryVersion, SProcDamageCreate, @@ -478,7 +478,7 @@ FreeDamageExtWin (pointer value, XID wid) return Success; } -void +static void SDamageNotifyEvent (xDamageNotifyEvent *from, xDamageNotifyEvent *to) { diff --git a/damageext/damageextint.h b/damageext/damageextint.h index 6f14e4e97..1ed07de83 100644 --- a/damageext/damageextint.h +++ b/damageext/damageextint.h @@ -44,13 +44,6 @@ #include "damage.h" #include "xfixes.h" -extern unsigned char DamageReqCode; -extern int DamageEventBase; -extern int DamageErrorBase; -extern int DamageClientPrivateIndex; -extern RESTYPE DamageExtType; -extern RESTYPE DamageExtWinType; - typedef struct _DamageClient { CARD32 major_version; CARD32 minor_version; @@ -67,9 +60,6 @@ typedef struct _DamageExt { XID id; } DamageExtRec, *DamageExtPtr; -extern int (*ProcDamageVector[/*XDamageNumberRequests*/])(ClientPtr); -extern int (*SProcDamageVector[/*XDamageNumberRequests*/])(ClientPtr); - #define VERIFY_DAMAGEEXT(pDamageExt, rid, client, mode) { \ pDamageExt = SecurityLookupIDByType (client, rid, DamageExtType, mode); \ if (!pDamageExt) { \ @@ -78,10 +68,6 @@ extern int (*SProcDamageVector[/*XDamageNumberRequests*/])(ClientPtr); } \ } -void -SDamageNotifyEvent (xDamageNotifyEvent *from, - xDamageNotifyEvent *to); - void DamageExtSetCritical (ClientPtr pClient, Bool critical); diff --git a/dbe/dbe.c b/dbe/dbe.c index 862393b53..d63620d4f 100644 --- a/dbe/dbe.c +++ b/dbe/dbe.c @@ -79,36 +79,6 @@ static int dbeErrorBase; */ static Bool firstRegistrationPass = TRUE; - -/****************************************************************************** - * - * DBE DIX Procedure: DbeValidateBuffer - * - * Description: - * - * This function is called from VALIDATE_DRAWABLE_AND_GC and from - * various places in dispatch.c if the server has been compiled with - * the flags -DNEED_DBE_BUF_BITS and -DNEED_DBE_BUF_VALIDATE. - * When pWin->dstBuffer changes, this function will be called with pWin - * as the first argument, the drawable ID that was specified as the - * second argument (could be a back buffer id), and True for the third - * argument. - * When pWin->srcBuffer changes, the third argument will be False, and - * the first two arguments are as described for dstBuffer. - * - * This function should prepare the hardware to access the specified - * buffer for reads (if dstbuf is False) or writes (if dstbuf is True). - * - *****************************************************************************/ - -void -DbeValidateBuffer(WindowPtr pWin, XID drawID, Bool dstbuf) -{ - DbeScreenPrivPtr pDbeScreenPriv = DBE_SCREEN_PRIV_FROM_WINDOW(pWin); - if (pDbeScreenPriv->ValidateBuffer) - (*pDbeScreenPriv->ValidateBuffer)(pWin, drawID, dstbuf); -} - /****************************************************************************** * @@ -317,7 +287,6 @@ DbeStubScreen(DbeScreenPrivPtr pDbeScreenPriv, int *nStubbedScreens) pDbeScreenPriv->EndIdiom = NULL; pDbeScreenPriv->WinPrivDelete = NULL; pDbeScreenPriv->ResetProc = NULL; - pDbeScreenPriv->ValidateBuffer = NULL; (*nStubbedScreens)++; diff --git a/dbe/dbestruct.h b/dbe/dbestruct.h index 460cc7564..835074c75 100644 --- a/dbe/dbestruct.h +++ b/dbe/dbestruct.h @@ -221,11 +221,6 @@ typedef struct _DbeScreenPrivRec void (*ResetProc)( ScreenPtr /*pScreen*/ ); - void (*ValidateBuffer)( - WindowPtr /*pWin*/, - XID /*bufId*/, - Bool /*dstbuffer*/ -); /* Device-specific private information. */ diff --git a/dbe/midbe.c b/dbe/midbe.c index e687b98b7..014e365ce 100644 --- a/dbe/midbe.c +++ b/dbe/midbe.c @@ -59,21 +59,12 @@ #include -/* DEFINES */ - - -/* TYPEDEFS */ - - -/* GLOBALS */ - static int miDbePrivPrivGeneration = 0; static int miDbeWindowPrivPrivIndex = -1; -RESTYPE dbeDrawableResType; -RESTYPE dbeWindowPrivResType; -int dbeScreenPrivIndex = -1; -int dbeWindowPrivIndex = -1; - +static RESTYPE dbeDrawableResType; +static RESTYPE dbeWindowPrivResType; +static int dbeScreenPrivIndex = -1; +static int dbeWindowPrivIndex = -1; /****************************************************************************** @@ -768,11 +759,6 @@ miDbeResetProc(ScreenPtr pScreen) } /* miDbeResetProc() */ -static void -miDbeNopValidateBuffer(WindowPtr pWin, XID bufId, Bool dstbuffer) -{ -} - /****************************************************************************** * @@ -830,9 +816,6 @@ miDbeInit(ScreenPtr pScreen, DbeScreenPrivPtr pDbeScreenPriv) pDbeScreenPriv->ResetProc = miDbeResetProc; pDbeScreenPriv->WinPrivDelete = miDbeWinPrivDelete; - /* The mi implementation doesn't need buffer validation. */ - pDbeScreenPriv->ValidateBuffer = miDbeNopValidateBuffer; - return(TRUE); } /* miDbeInit() */ diff --git a/dix/atom.c b/dix/atom.c index d9d74f1da..bd3223caa 100644 --- a/dix/atom.c +++ b/dix/atom.c @@ -77,10 +77,10 @@ void FreeAtom(NodePtr patom); _X_EXPORT Atom MakeAtom(char *string, unsigned len, Bool makeit) { - register NodePtr * np; + NodePtr * np; unsigned i; - int comp; - register unsigned int fp = 0; + int comp; + unsigned int fp = 0; np = &atomRoot; for (i = 0; i < (len+1)/2; i++) @@ -107,7 +107,7 @@ MakeAtom(char *string, unsigned len, Bool makeit) } if (makeit) { - register NodePtr nd; + NodePtr nd; nd = (NodePtr) xalloc(sizeof(NodeRec)); if (!nd) diff --git a/dix/colormap.c b/dix/colormap.c index a74cb390c..73b666971 100644 --- a/dix/colormap.c +++ b/dix/colormap.c @@ -95,8 +95,8 @@ static int BlueComp( ); static void FreePixels( - register ColormapPtr /*pmap*/, - register int /*client*/ + ColormapPtr /*pmap*/, + int /*client*/ ); static void CopyFree( @@ -259,9 +259,9 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, int class, size; unsigned long sizebytes; ColormapPtr pmap; - register EntryPtr pent; + EntryPtr pent; int i; - register Pixel *ppix, **pptr; + Pixel *ppix, **pptr; class = pVisual->class; if(!(class & DynamicClass) && (alloc != AllocNone) && (client != SERVER_ID)) @@ -428,8 +428,8 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual, int FreeColormap (pointer value, XID mid) { - int i; - register EntryPtr pent; + int i; + EntryPtr pent; ColormapPtr pmap = (ColormapPtr)value; if(CLIENT_ID(mid) != SERVER_ID) @@ -744,9 +744,9 @@ static void UpdateColors (ColormapPtr pmap) { xColorItem *defs; - register xColorItem *pdef; - register EntryPtr pent; - register VisualPtr pVisual; + xColorItem *pdef; + EntryPtr pent; + VisualPtr pVisual; int i, n, size; pVisual = pmap->pVisual; @@ -993,14 +993,14 @@ AllocColor (ColormapPtr pmap, */ _X_EXPORT void -FakeAllocColor (register ColormapPtr pmap, register xColorItem *item) +FakeAllocColor (ColormapPtr pmap, xColorItem *item) { - Pixel pixR, pixG, pixB; - Pixel temp; - int entries; - xrgb rgb; - int class; - register VisualPtr pVisual; + Pixel pixR, pixG, pixB; + Pixel temp; + int entries; + xrgb rgb; + int class; + VisualPtr pVisual; pVisual = pmap->pVisual; rgb.red = item->red; @@ -1059,9 +1059,9 @@ FakeAllocColor (register ColormapPtr pmap, register xColorItem *item) /* free a pixel value obtained from FakeAllocColor */ _X_EXPORT void -FakeFreeColor(register ColormapPtr pmap, Pixel pixel) +FakeFreeColor(ColormapPtr pmap, Pixel pixel) { - register VisualPtr pVisual; + VisualPtr pVisual; Pixel pixR, pixG, pixB; switch (pmap->class) { @@ -1507,11 +1507,11 @@ QueryColors (ColormapPtr pmap, int count, Pixel *ppixIn, xrgb *prgbList) } static void -FreePixels(register ColormapPtr pmap, register int client) +FreePixels(ColormapPtr pmap, int client) { - register Pixel *ppix, *ppixStart; - register int n; - int class; + Pixel *ppix, *ppixStart; + int n; + int class; class = pmap->class; ppixStart = pmap->clientPixelsRed[client]; @@ -1646,8 +1646,8 @@ AllocColorPlanes (int client, ColormapPtr pmap, int colors, { int ok; Pixel mask, *ppixFirst; - register Pixel shift; - register int i; + Pixel shift; + int i; int class; int oldcount; colorResource *pcr = (colorResource *)NULL; @@ -2409,10 +2409,10 @@ FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixe _X_EXPORT int StoreColors (ColormapPtr pmap, int count, xColorItem *defs) { - register Pixel pix; - register xColorItem *pdef; - register EntryPtr pent, pentT, pentLast; - register VisualPtr pVisual; + Pixel pix; + xColorItem *pdef; + EntryPtr pent, pentT, pentLast; + VisualPtr pVisual; SHAREDCOLOR *pred, *pgreen, *pblue; int n, ChgRed, ChgGreen, ChgBlue, idef; int class, errVal = Success; diff --git a/dix/cursor.c b/dix/cursor.c index 7071d8345..5ab562ead 100644 --- a/dix/cursor.c +++ b/dix/cursor.c @@ -86,7 +86,7 @@ FreeCursorBits(CursorBitsPtr bits) #endif if (bits->refcnt == 0) { - register GlyphSharePtr *prev, this; + GlyphSharePtr *prev, this; for (prev = &sharedGlyphs; (this = *prev) && (this->bits != bits); @@ -135,7 +135,7 @@ FreeCursor(pointer value, XID cid) static void CheckForEmptyMask(CursorBitsPtr bits) { - register unsigned char *msk = bits->mask; + unsigned char *msk = bits->mask; int n = BitmapBytePad(bits->width) * bits->height; bits->emptyMask = FALSE; @@ -305,8 +305,8 @@ AllocGlyphCursor(Font source, unsigned sourceChar, Font mask, unsigned maskChar, } if (!maskfont) { - register long n; - register unsigned char *mskptr; + long n; + unsigned char *mskptr; n = BitmapBytePad(cm.width)*(long)cm.height; mskptr = mskbits = (unsigned char *)xalloc(n); diff --git a/dix/devices.c b/dix/devices.c index 2e04403c5..e51d1b339 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -67,7 +67,7 @@ SOFTWARE. #define XKB_IN_SERVER #endif #ifdef XKB -#include +#include #endif #include "xace.h" @@ -79,12 +79,13 @@ SOFTWARE. #include "exglobals.h" #include "exevents.h" -int CoreDevicePrivatesIndex = 0, CoreDevicePrivatesGeneration = -1; +int CoreDevicePrivatesIndex = 0; +static int CoreDevicePrivatesGeneration = -1; DeviceIntPtr AddInputDevice(DeviceProc deviceProc, Bool autoStart) { - register DeviceIntPtr dev, *prev; /* not a typo */ + DeviceIntPtr dev, *prev; /* not a typo */ if (inputInfo.numDevices >= MAX_DEVICES) return (DeviceIntPtr)NULL; @@ -147,9 +148,9 @@ AddInputDevice(DeviceProc deviceProc, Bool autoStart) } Bool -EnableDevice(register DeviceIntPtr dev) +EnableDevice(DeviceIntPtr dev) { - register DeviceIntPtr *prev; + DeviceIntPtr *prev; int ret; for (prev = &inputInfo.off_devices; @@ -173,9 +174,9 @@ EnableDevice(register DeviceIntPtr dev) } Bool -DisableDevice(register DeviceIntPtr dev) +DisableDevice(DeviceIntPtr dev) { - register DeviceIntPtr *prev; + DeviceIntPtr *prev; for (prev = &inputInfo.devices; *prev && (*prev != dev); @@ -245,7 +246,7 @@ CoreKeyboardProc(DeviceIntPtr pDev, int what) keySyms.mapWidth = 4; keySyms.map = (KeySym *)xcalloc(sizeof(KeySym), (keySyms.maxKeyCode - - keySyms.minKeyCode) * + keySyms.minKeyCode + 1) * keySyms.mapWidth); if (!keySyms.map) { ErrorF("Couldn't allocate core keymap\n"); @@ -322,7 +323,7 @@ CorePointerProc(DeviceIntPtr pDev, int what) void InitCoreDevices() { - register DeviceIntPtr dev; + DeviceIntPtr dev; if (CoreDevicePrivatesGeneration != serverGeneration) { CoreDevicePrivatesIndex = AllocateDevicePrivateIndex(); @@ -381,7 +382,7 @@ InitCoreDevices() int InitAndStartDevices() { - register DeviceIntPtr dev, next; + DeviceIntPtr dev, next; for (dev = inputInfo.off_devices; dev; dev = dev->next) { DebugF("(dix) initialising device %d\n", dev->id); @@ -413,7 +414,7 @@ InitAndStartDevices() } static void -CloseDevice(register DeviceIntPtr dev) +CloseDevice(DeviceIntPtr dev) { KbdFeedbackPtr k, knext; PtrFeedbackPtr p, pnext; @@ -501,6 +502,9 @@ CloseDevice(register DeviceIntPtr dev) XkbRemoveResourceClient((DevicePtr)dev,dev->xkb_interest->resource); #endif + if (dev->devPrivates) + xfree(dev->devPrivates); + xfree(dev->sync.event); xfree(dev); } @@ -508,7 +512,7 @@ CloseDevice(register DeviceIntPtr dev) void CloseDownDevices() { - register DeviceIntPtr dev, next; + DeviceIntPtr dev, next; for (dev = inputInfo.devices; dev; dev = next) { @@ -638,7 +642,7 @@ QueryMinMaxKeyCodes(KeyCode *minCode, KeyCode *maxCode) } Bool -SetKeySymsMap(register KeySymsPtr dst, register KeySymsPtr src) +SetKeySymsMap(KeySymsPtr dst, KeySymsPtr src) { int i, j; int rowDif = src->minKeyCode - dst->minKeyCode; @@ -687,7 +691,7 @@ SetKeySymsMap(register KeySymsPtr dst, register KeySymsPtr src) } static Bool -InitModMap(register KeyClassPtr keyc) +InitModMap(KeyClassPtr keyc) { int i, j; CARD8 keysPerModifier[8]; @@ -732,7 +736,7 @@ _X_EXPORT Bool InitKeyClassDeviceStruct(DeviceIntPtr dev, KeySymsPtr pKeySyms, CARD8 pModifiers[]) { int i; - register KeyClassPtr keyc; + KeyClassPtr keyc; keyc = (KeyClassPtr)xalloc(sizeof(KeyClassRec)); if (!keyc) @@ -767,10 +771,10 @@ InitKeyClassDeviceStruct(DeviceIntPtr dev, KeySymsPtr pKeySyms, CARD8 pModifiers } _X_EXPORT Bool -InitButtonClassDeviceStruct(register DeviceIntPtr dev, int numButtons, +InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons, CARD8 *map) { - register ButtonClassPtr butc; + ButtonClassPtr butc; int i; butc = (ButtonClassPtr)xalloc(sizeof(ButtonClassRec)); @@ -796,7 +800,7 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, int numMotionEvents, int mode) { int i; - register ValuatorClassPtr valc; + ValuatorClassPtr valc; if (!dev) return FALSE; @@ -838,7 +842,7 @@ InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, _X_EXPORT Bool InitAbsoluteClassDeviceStruct(DeviceIntPtr dev) { - register AbsoluteClassPtr abs; + AbsoluteClassPtr abs; abs = (AbsoluteClassPtr)xalloc(sizeof(AbsoluteClassRec)); if (!abs) @@ -868,7 +872,7 @@ InitAbsoluteClassDeviceStruct(DeviceIntPtr dev) _X_EXPORT Bool InitFocusClassDeviceStruct(DeviceIntPtr dev) { - register FocusClassPtr focc; + FocusClassPtr focc; focc = (FocusClassPtr)xalloc(sizeof(FocusClassRec)); if (!focc) @@ -887,7 +891,7 @@ _X_EXPORT Bool InitKbdFeedbackClassDeviceStruct(DeviceIntPtr dev, BellProcPtr bellProc, KbdCtrlProcPtr controlProc) { - register KbdFeedbackPtr feedc; + KbdFeedbackPtr feedc; feedc = (KbdFeedbackPtr)xalloc(sizeof(KbdFeedbackClassRec)); if (!feedc) @@ -914,7 +918,7 @@ InitKbdFeedbackClassDeviceStruct(DeviceIntPtr dev, BellProcPtr bellProc, _X_EXPORT Bool InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc) { - register PtrFeedbackPtr feedc; + PtrFeedbackPtr feedc; feedc = (PtrFeedbackPtr)xalloc(sizeof(PtrFeedbackClassRec)); if (!feedc) @@ -930,16 +934,16 @@ InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc) } -LedCtrl defaultLedControl = { +static LedCtrl defaultLedControl = { DEFAULT_LEDS, DEFAULT_LEDS_MASK, 0}; -BellCtrl defaultBellControl = { +static BellCtrl defaultBellControl = { DEFAULT_BELL, DEFAULT_BELL_PITCH, DEFAULT_BELL_DURATION, 0}; -IntegerCtrl defaultIntegerControl = { +static IntegerCtrl defaultIntegerControl = { DEFAULT_INT_RESOLUTION, DEFAULT_INT_MIN_VALUE, DEFAULT_INT_MAX_VALUE, @@ -952,7 +956,7 @@ InitStringFeedbackClassDeviceStruct ( int max_symbols, int num_symbols_supported, KeySym *symbols) { int i; - register StringFeedbackPtr feedc; + StringFeedbackPtr feedc; feedc = (StringFeedbackPtr)xalloc(sizeof(StringFeedbackClassRec)); if (!feedc) @@ -990,7 +994,7 @@ _X_EXPORT Bool InitBellFeedbackClassDeviceStruct (DeviceIntPtr dev, BellProcPtr bellProc, BellCtrlProcPtr controlProc) { - register BellFeedbackPtr feedc; + BellFeedbackPtr feedc; feedc = (BellFeedbackPtr)xalloc(sizeof(BellFeedbackClassRec)); if (!feedc) @@ -1009,7 +1013,7 @@ InitBellFeedbackClassDeviceStruct (DeviceIntPtr dev, BellProcPtr bellProc, _X_EXPORT Bool InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc) { - register LedFeedbackPtr feedc; + LedFeedbackPtr feedc; feedc = (LedFeedbackPtr)xalloc(sizeof(LedFeedbackClassRec)); if (!feedc) @@ -1030,7 +1034,7 @@ InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc) _X_EXPORT Bool InitIntegerFeedbackClassDeviceStruct (DeviceIntPtr dev, IntegerCtrlProcPtr controlProc) { - register IntegerFeedbackPtr feedc; + IntegerFeedbackPtr feedc; feedc = (IntegerFeedbackPtr)xalloc(sizeof(IntegerFeedbackClassRec)); if (!feedc) @@ -1116,9 +1120,9 @@ SendMappingNotify(unsigned request, unsigned firstKeyCode, unsigned count, * sort it to do the checking. How often is it called? Just being lazy? */ Bool -BadDeviceMap(register BYTE *buff, int length, unsigned low, unsigned high, XID *errval) +BadDeviceMap(BYTE *buff, int length, unsigned low, unsigned high, XID *errval) { - register int i, j; + int i, j; for (i = 0; i < length; i++) if (buff[i]) /* only check non-zero elements */ @@ -1140,12 +1144,12 @@ BadDeviceMap(register BYTE *buff, int length, unsigned low, unsigned high, XID * Bool AllModifierKeysAreUp(dev, map1, per1, map2, per2) - register DeviceIntPtr dev; - register CARD8 *map1, *map2; + DeviceIntPtr dev; + CARD8 *map1, *map2; int per1, per2; { - register int i, j, k; - register CARD8 *down = dev->key->down; + int i, j, k; + CARD8 *down = dev->key->down; for (i = 8; --i >= 0; map2 += per2) { @@ -1262,7 +1266,7 @@ int ProcGetModifierMapping(ClientPtr client) { xGetModifierMappingReply rep; - register KeyClassPtr keyc = inputInfo.keyboard->key; + KeyClassPtr keyc = inputInfo.keyboard->key; REQUEST_SIZE_MATCH(xReq); rep.type = X_Reply; @@ -1463,7 +1467,7 @@ NoteLedState(DeviceIntPtr keybd, int led, Bool on) _X_EXPORT int Ones(unsigned long mask) /* HACKMEM 169 */ { - register unsigned long y; + unsigned long y; y = (mask >> 1) &033333333333; y = mask - y - ((y >>1) & 033333333333); @@ -1680,7 +1684,7 @@ int ProcGetKeyboardControl (ClientPtr client) { int i; - register KeybdCtrl *ctrl = &inputInfo.keyboard->kbdfeed->ctrl; + KeybdCtrl *ctrl = &inputInfo.keyboard->kbdfeed->ctrl; xGetKeyboardControlReply rep; REQUEST_SIZE_MATCH(xReq); @@ -1702,7 +1706,7 @@ ProcGetKeyboardControl (ClientPtr client) int ProcBell(ClientPtr client) { - register DeviceIntPtr keybd = inputInfo.keyboard; + DeviceIntPtr keybd = inputInfo.keyboard; int base = keybd->kbdfeed->ctrl.bell; int newpercent; REQUEST(xBellReq); @@ -1811,7 +1815,7 @@ ProcChangePointerControl(ClientPtr client) int ProcGetPointerControl(ClientPtr client) { - register PtrCtrl *ctrl = &inputInfo.pointer->ptrfeed->ctrl; + PtrCtrl *ctrl = &inputInfo.pointer->ptrfeed->ctrl; xGetPointerControlReply rep; REQUEST_SIZE_MATCH(xReq); @@ -1826,7 +1830,7 @@ ProcGetPointerControl(ClientPtr client) } void -MaybeStopHint(register DeviceIntPtr dev, ClientPtr client) +MaybeStopHint(DeviceIntPtr dev, ClientPtr client) { GrabPtr grab = dev->grab; diff --git a/dix/dispatch.c b/dix/dispatch.c index e4bc93728..68499f1ec 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -143,7 +143,7 @@ int ProcInitialConnection(); #define XKB_IN_SERVER #endif #include "inputstr.h" -#include +#include #endif #ifdef XSERVER_DTRACE @@ -262,7 +262,7 @@ void FlushClientCaches(XID id) { int i; - register ClientPtr client; + ClientPtr client; client = clients[CLIENT_ID(id)]; if (client == NullClient) @@ -297,9 +297,8 @@ long SmartScheduleSlice = SMART_SCHEDULE_DEFAULT_INTERVAL; long SmartScheduleInterval = SMART_SCHEDULE_DEFAULT_INTERVAL; long SmartScheduleMaxSlice = SMART_SCHEDULE_MAX_SLICE; long SmartScheduleTime; -ClientPtr SmartLastClient; -int SmartLastIndex[SMART_MAX_PRIORITY-SMART_MIN_PRIORITY+1]; -int SmartScheduleClient(int *clientReady, int nready); +static ClientPtr SmartLastClient; +static int SmartLastIndex[SMART_MAX_PRIORITY-SMART_MIN_PRIORITY+1]; #ifdef SMART_DEBUG long SmartLastPrint; @@ -308,7 +307,7 @@ long SmartLastPrint; void Dispatch(void); void InitProcVectors(void); -int +static int SmartScheduleClient (int *clientReady, int nready) { ClientPtr pClient; @@ -394,11 +393,11 @@ SmartScheduleClient (int *clientReady, int nready) void Dispatch(void) { - register int *clientReady; /* array of request ready clients */ - register int result; - register ClientPtr client; - register int nready; - register HWEventQueuePtr* icheck = checkForInput; + int *clientReady; /* array of request ready clients */ + int result; + ClientPtr client; + int nready; + HWEventQueuePtr* icheck = checkForInput; #ifdef SMART_SCHEDULE long start_tick; #endif @@ -594,11 +593,11 @@ ProcCreateWindow(ClientPtr client) } int -ProcChangeWindowAttributes(register ClientPtr client) +ProcChangeWindowAttributes(ClientPtr client) { WindowPtr pWin; REQUEST(xChangeWindowAttributesReq); - register int result; + int result; int len, rc; REQUEST_AT_LEAST_SIZE(xChangeWindowAttributesReq); @@ -619,7 +618,7 @@ ProcChangeWindowAttributes(register ClientPtr client) } int -ProcGetWindowAttributes(register ClientPtr client) +ProcGetWindowAttributes(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -636,7 +635,7 @@ ProcGetWindowAttributes(register ClientPtr client) } int -ProcDestroyWindow(register ClientPtr client) +ProcDestroyWindow(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -652,7 +651,7 @@ ProcDestroyWindow(register ClientPtr client) } int -ProcDestroySubwindows(register ClientPtr client) +ProcDestroySubwindows(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -667,11 +666,11 @@ ProcDestroySubwindows(register ClientPtr client) } int -ProcChangeSaveSet(register ClientPtr client) +ProcChangeSaveSet(ClientPtr client) { WindowPtr pWin; REQUEST(xChangeSaveSetReq); - register int result, rc; + int result, rc; REQUEST_SIZE_MATCH(xChangeSaveSetReq); rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); @@ -695,11 +694,11 @@ ProcChangeSaveSet(register ClientPtr client) } int -ProcReparentWindow(register ClientPtr client) +ProcReparentWindow(ClientPtr client) { WindowPtr pWin, pParent; REQUEST(xReparentWindowReq); - register int result, rc; + int result, rc; REQUEST_SIZE_MATCH(xReparentWindowReq); rc = dixLookupWindow(&pWin, stuff->window, client, DixWriteAccess); @@ -728,7 +727,7 @@ ProcReparentWindow(register ClientPtr client) } int -ProcMapWindow(register ClientPtr client) +ProcMapWindow(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -744,7 +743,7 @@ ProcMapWindow(register ClientPtr client) } int -ProcMapSubwindows(register ClientPtr client) +ProcMapSubwindows(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -760,7 +759,7 @@ ProcMapSubwindows(register ClientPtr client) } int -ProcUnmapWindow(register ClientPtr client) +ProcUnmapWindow(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -776,7 +775,7 @@ ProcUnmapWindow(register ClientPtr client) } int -ProcUnmapSubwindows(register ClientPtr client) +ProcUnmapSubwindows(ClientPtr client) { WindowPtr pWin; REQUEST(xResourceReq); @@ -791,11 +790,11 @@ ProcUnmapSubwindows(register ClientPtr client) } int -ProcConfigureWindow(register ClientPtr client) +ProcConfigureWindow(ClientPtr client) { WindowPtr pWin; REQUEST(xConfigureWindowReq); - register int result; + int result; int len, rc; REQUEST_AT_LEAST_SIZE(xConfigureWindowReq); @@ -814,7 +813,7 @@ ProcConfigureWindow(register ClientPtr client) } int -ProcCirculateWindow(register ClientPtr client) +ProcCirculateWindow(ClientPtr client) { WindowPtr pWin; REQUEST(xCirculateWindowReq); @@ -834,8 +833,8 @@ ProcCirculateWindow(register ClientPtr client) return(client->noClientException); } -int -GetGeometry(register ClientPtr client, xGetGeometryReply *rep) +static int +GetGeometry(ClientPtr client, xGetGeometryReply *rep) { DrawablePtr pDraw; int rc; @@ -865,7 +864,7 @@ GetGeometry(register ClientPtr client, xGetGeometryReply *rep) if ((pDraw->type == UNDRAWABLE_WINDOW) || ((pDraw->type == DRAWABLE_WINDOW) && (stuff->id == pDraw->id))) { - register WindowPtr pWin = (WindowPtr)pDraw; + WindowPtr pWin = (WindowPtr)pDraw; rep->x = pWin->origin.x - wBorderWidth (pWin); rep->y = pWin->origin.y - wBorderWidth (pWin); rep->borderWidth = pWin->borderWidth; @@ -880,7 +879,7 @@ GetGeometry(register ClientPtr client, xGetGeometryReply *rep) int -ProcGetGeometry(register ClientPtr client) +ProcGetGeometry(ClientPtr client) { xGetGeometryReply rep; int status; @@ -894,7 +893,7 @@ ProcGetGeometry(register ClientPtr client) int -ProcQueryTree(register ClientPtr client) +ProcQueryTree(ClientPtr client) { xQueryTreeReply reply; int rc, numChildren = 0; @@ -942,7 +941,7 @@ ProcQueryTree(register ClientPtr client) } int -ProcInternAtom(register ClientPtr client) +ProcInternAtom(ClientPtr client) { Atom atom; char *tchar; @@ -971,7 +970,7 @@ ProcInternAtom(register ClientPtr client) } int -ProcGetAtomName(register ClientPtr client) +ProcGetAtomName(ClientPtr client) { char *str; xGetAtomNameReply reply; @@ -1002,7 +1001,7 @@ extern int k5_bad(); #endif int -ProcSetSelectionOwner(register ClientPtr client) +ProcSetSelectionOwner(ClientPtr client) { WindowPtr pWin; TimeStamp time; @@ -1102,7 +1101,7 @@ ProcSetSelectionOwner(register ClientPtr client) } int -ProcGetSelectionOwner(register ClientPtr client) +ProcGetSelectionOwner(ClientPtr client) { REQUEST(xResourceReq); @@ -1135,7 +1134,7 @@ ProcGetSelectionOwner(register ClientPtr client) } int -ProcConvertSelection(register ClientPtr client) +ProcConvertSelection(ClientPtr client) { Bool paramsOkay; xEvent event; @@ -1193,7 +1192,7 @@ ProcConvertSelection(register ClientPtr client) } int -ProcGrabServer(register ClientPtr client) +ProcGrabServer(ClientPtr client) { REQUEST_SIZE_MATCH(xReq); if (grabState != GrabNone && client != grabClient) @@ -1247,7 +1246,7 @@ UngrabServer(ClientPtr client) } int -ProcUngrabServer(register ClientPtr client) +ProcUngrabServer(ClientPtr client) { REQUEST_SIZE_MATCH(xReq); UngrabServer(client); @@ -1255,7 +1254,7 @@ ProcUngrabServer(register ClientPtr client) } int -ProcTranslateCoords(register ClientPtr client) +ProcTranslateCoords(ClientPtr client) { REQUEST(xTranslateCoordsReq); @@ -1332,7 +1331,7 @@ ProcTranslateCoords(register ClientPtr client) } int -ProcOpenFont(register ClientPtr client) +ProcOpenFont(ClientPtr client) { int err; REQUEST(xOpenFontReq); @@ -1351,7 +1350,7 @@ ProcOpenFont(register ClientPtr client) } int -ProcCloseFont(register ClientPtr client) +ProcCloseFont(ClientPtr client) { FontPtr pFont; REQUEST(xResourceReq); @@ -1372,11 +1371,11 @@ ProcCloseFont(register ClientPtr client) } int -ProcQueryFont(register ClientPtr client) +ProcQueryFont(ClientPtr client) { xQueryFontReply *reply; FontPtr pFont; - register GC *pGC; + GC *pGC; REQUEST(xResourceReq); REQUEST_SIZE_MATCH(xResourceReq); @@ -1430,7 +1429,7 @@ ProcQueryFont(register ClientPtr client) } int -ProcQueryTextExtents(register ClientPtr client) +ProcQueryTextExtents(ClientPtr client) { REQUEST(xQueryTextExtentsReq); xQueryTextExtentsReply reply; @@ -1480,7 +1479,7 @@ ProcQueryTextExtents(register ClientPtr client) } int -ProcListFonts(register ClientPtr client) +ProcListFonts(ClientPtr client) { REQUEST(xListFontsReq); @@ -1491,7 +1490,7 @@ ProcListFonts(register ClientPtr client) } int -ProcListFontsWithInfo(register ClientPtr client) +ProcListFontsWithInfo(ClientPtr client) { REQUEST(xListFontsWithInfoReq); @@ -1513,13 +1512,13 @@ dixDestroyPixmap(pointer value, XID pid) } int -ProcCreatePixmap(register ClientPtr client) +ProcCreatePixmap(ClientPtr client) { PixmapPtr pMap; DrawablePtr pDraw; REQUEST(xCreatePixmapReq); DepthPtr pDepth; - register int i, rc; + int i, rc; REQUEST_SIZE_MATCH(xCreatePixmapReq); client->errorValue = stuff->pid; @@ -1576,7 +1575,7 @@ CreatePmap: } int -ProcFreePixmap(register ClientPtr client) +ProcFreePixmap(ClientPtr client) { PixmapPtr pMap; @@ -1598,7 +1597,7 @@ ProcFreePixmap(register ClientPtr client) } int -ProcCreateGC(register ClientPtr client) +ProcCreateGC(ClientPtr client) { int error, rc; GC *pGC; @@ -1626,7 +1625,7 @@ ProcCreateGC(register ClientPtr client) } int -ProcChangeGC(register ClientPtr client) +ProcChangeGC(ClientPtr client) { GC *pGC; int result; @@ -1653,7 +1652,7 @@ ProcChangeGC(register ClientPtr client) } int -ProcCopyGC(register ClientPtr client) +ProcCopyGC(ClientPtr client) { GC *dstGC; GC *pGC; @@ -1680,7 +1679,7 @@ ProcCopyGC(register ClientPtr client) } int -ProcSetDashes(register ClientPtr client) +ProcSetDashes(ClientPtr client) { GC *pGC; int result; @@ -1709,7 +1708,7 @@ ProcSetDashes(register ClientPtr client) } int -ProcSetClipRectangles(register ClientPtr client) +ProcSetClipRectangles(ClientPtr client) { int nr, result; GC *pGC; @@ -1739,7 +1738,7 @@ ProcSetClipRectangles(register ClientPtr client) } int -ProcFreeGC(register ClientPtr client) +ProcFreeGC(ClientPtr client) { GC *pGC; int rc; @@ -1755,7 +1754,7 @@ ProcFreeGC(register ClientPtr client) } int -ProcClearToBackground(register ClientPtr client) +ProcClearToBackground(ClientPtr client) { REQUEST(xClearAreaReq); WindowPtr pWin; @@ -1782,7 +1781,7 @@ ProcClearToBackground(register ClientPtr client) } int -ProcCopyArea(register ClientPtr client) +ProcCopyArea(ClientPtr client) { DrawablePtr pDst; DrawablePtr pSrc; @@ -1809,8 +1808,6 @@ ProcCopyArea(register ClientPtr client) else pSrc = pDst; - SET_DBE_SRCBUF(pSrc, stuff->srcDrawable); - pRgn = (*pGC->ops->CopyArea)(pSrc, pDst, pGC, stuff->srcX, stuff->srcY, stuff->width, stuff->height, stuff->dstX, stuff->dstY); @@ -1826,7 +1823,7 @@ ProcCopyArea(register ClientPtr client) } int -ProcCopyPlane(register ClientPtr client) +ProcCopyPlane(ClientPtr client) { DrawablePtr psrcDraw, pdstDraw; GC *pGC; @@ -1853,8 +1850,6 @@ ProcCopyPlane(register ClientPtr client) else psrcDraw = pdstDraw; - SET_DBE_SRCBUF(psrcDraw, stuff->srcDrawable); - /* Check to see if stuff->bitPlane has exactly ONE good bit set */ if(stuff->bitPlane == 0 || (stuff->bitPlane & (stuff->bitPlane - 1)) || (stuff->bitPlane > (1L << (psrcDraw->depth - 1)))) @@ -1877,7 +1872,7 @@ ProcCopyPlane(register ClientPtr client) } int -ProcPolyPoint(register ClientPtr client) +ProcPolyPoint(ClientPtr client) { int npoint; GC *pGC; @@ -1900,7 +1895,7 @@ ProcPolyPoint(register ClientPtr client) } int -ProcPolyLine(register ClientPtr client) +ProcPolyLine(ClientPtr client) { int npoint; GC *pGC; @@ -1923,7 +1918,7 @@ ProcPolyLine(register ClientPtr client) } int -ProcPolySegment(register ClientPtr client) +ProcPolySegment(ClientPtr client) { int nsegs; GC *pGC; @@ -1942,7 +1937,7 @@ ProcPolySegment(register ClientPtr client) } int -ProcPolyRectangle (register ClientPtr client) +ProcPolyRectangle (ClientPtr client) { int nrects; GC *pGC; @@ -1962,7 +1957,7 @@ ProcPolyRectangle (register ClientPtr client) } int -ProcPolyArc(register ClientPtr client) +ProcPolyArc(ClientPtr client) { int narcs; GC *pGC; @@ -1981,7 +1976,7 @@ ProcPolyArc(register ClientPtr client) } int -ProcFillPoly(register ClientPtr client) +ProcFillPoly(ClientPtr client) { int things; GC *pGC; @@ -2012,7 +2007,7 @@ ProcFillPoly(register ClientPtr client) } int -ProcPolyFillRectangle(register ClientPtr client) +ProcPolyFillRectangle(ClientPtr client) { int things; GC *pGC; @@ -2033,7 +2028,7 @@ ProcPolyFillRectangle(register ClientPtr client) } int -ProcPolyFillArc(register ClientPtr client) +ProcPolyFillArc(ClientPtr client) { int narcs; GC *pGC; @@ -2106,7 +2101,7 @@ ReformatImage (char *base, int nbytes, int bpp, int order) * boundary, even if the scanlines are padded to our satisfaction. */ int -ProcPutImage(register ClientPtr client) +ProcPutImage(ClientPtr client) { GC *pGC; DrawablePtr pDraw; @@ -2162,15 +2157,14 @@ ProcPutImage(register ClientPtr client) return (client->noClientException); } - -int -DoGetImage(register ClientPtr client, int format, Drawable drawable, +static int +DoGetImage(ClientPtr client, int format, Drawable drawable, int x, int y, int width, int height, Mask planemask, xGetImageReply **im_return) { DrawablePtr pDraw; int nlines, linesPerBuf, rc; - register int linesDone; + int linesDone; long widthBytesLine, length; Mask plane = 0; char *pBuf; @@ -2215,8 +2209,6 @@ DoGetImage(register ClientPtr client, int format, Drawable drawable, xgi.visual = None; } - SET_DBE_SRCBUF(pDraw, drawable); - xgi.type = X_Reply; xgi.sequenceNumber = client->sequence; xgi.depth = pDraw->depth; @@ -2384,7 +2376,7 @@ DoGetImage(register ClientPtr client, int format, Drawable drawable, } int -ProcGetImage(register ClientPtr client) +ProcGetImage(ClientPtr client) { REQUEST(xGetImageReq); @@ -2397,7 +2389,7 @@ ProcGetImage(register ClientPtr client) } int -ProcPolyText(register ClientPtr client) +ProcPolyText(ClientPtr client) { int err; REQUEST(xPolyTextReq); @@ -2426,7 +2418,7 @@ ProcPolyText(register ClientPtr client) } int -ProcImageText8(register ClientPtr client) +ProcImageText8(ClientPtr client) { int err; DrawablePtr pDraw; @@ -2456,7 +2448,7 @@ ProcImageText8(register ClientPtr client) } int -ProcImageText16(register ClientPtr client) +ProcImageText16(ClientPtr client) { int err; DrawablePtr pDraw; @@ -2487,7 +2479,7 @@ ProcImageText16(register ClientPtr client) int -ProcCreateColormap(register ClientPtr client) +ProcCreateColormap(ClientPtr client) { VisualPtr pVisual; ColormapPtr pmap; @@ -2529,7 +2521,7 @@ ProcCreateColormap(register ClientPtr client) } int -ProcFreeColormap(register ClientPtr client) +ProcFreeColormap(ClientPtr client) { ColormapPtr pmap; REQUEST(xResourceReq); @@ -2553,7 +2545,7 @@ ProcFreeColormap(register ClientPtr client) int -ProcCopyColormapAndFree(register ClientPtr client) +ProcCopyColormapAndFree(ClientPtr client) { Colormap mid; ColormapPtr pSrcMap; @@ -2580,7 +2572,7 @@ ProcCopyColormapAndFree(register ClientPtr client) } int -ProcInstallColormap(register ClientPtr client) +ProcInstallColormap(ClientPtr client) { ColormapPtr pcmp; REQUEST(xResourceReq); @@ -2601,7 +2593,7 @@ ProcInstallColormap(register ClientPtr client) } int -ProcUninstallColormap(register ClientPtr client) +ProcUninstallColormap(ClientPtr client) { ColormapPtr pcmp; REQUEST(xResourceReq); @@ -2623,7 +2615,7 @@ ProcUninstallColormap(register ClientPtr client) } int -ProcListInstalledColormaps(register ClientPtr client) +ProcListInstalledColormaps(ClientPtr client) { xListInstalledColormapsReply *preply; int nummaps, rc; @@ -2656,7 +2648,7 @@ ProcListInstalledColormaps(register ClientPtr client) } int -ProcAllocColor (register ClientPtr client) +ProcAllocColor (ClientPtr client) { ColormapPtr pmap; int retval; @@ -2698,7 +2690,7 @@ ProcAllocColor (register ClientPtr client) } int -ProcAllocNamedColor (register ClientPtr client) +ProcAllocNamedColor (ClientPtr client) { ColormapPtr pcmp; REQUEST(xAllocNamedColorReq); @@ -2750,7 +2742,7 @@ ProcAllocNamedColor (register ClientPtr client) } int -ProcAllocColorCells (register ClientPtr client) +ProcAllocColorCells (ClientPtr client) { ColormapPtr pcmp; REQUEST(xAllocColorCellsReq); @@ -2816,7 +2808,7 @@ ProcAllocColorCells (register ClientPtr client) } int -ProcAllocColorPlanes(register ClientPtr client) +ProcAllocColorPlanes(ClientPtr client) { ColormapPtr pcmp; REQUEST(xAllocColorPlanesReq); @@ -2880,7 +2872,7 @@ ProcAllocColorPlanes(register ClientPtr client) } int -ProcFreeColors(register ClientPtr client) +ProcFreeColors(ClientPtr client) { ColormapPtr pcmp; REQUEST(xFreeColorsReq); @@ -2949,7 +2941,7 @@ ProcStoreColors (ClientPtr client) } int -ProcStoreNamedColor (register ClientPtr client) +ProcStoreNamedColor (ClientPtr client) { ColormapPtr pcmp; REQUEST(xStoreNamedColorReq); @@ -2983,7 +2975,7 @@ ProcStoreNamedColor (register ClientPtr client) } int -ProcQueryColors(register ClientPtr client) +ProcQueryColors(ClientPtr client) { ColormapPtr pcmp; REQUEST(xQueryColorsReq); @@ -3034,7 +3026,7 @@ ProcQueryColors(register ClientPtr client) } int -ProcLookupColor(register ClientPtr client) +ProcLookupColor(ClientPtr client) { ColormapPtr pcmp; REQUEST(xLookupColorReq); @@ -3072,17 +3064,16 @@ ProcLookupColor(register ClientPtr client) } int -ProcCreateCursor (register ClientPtr client) +ProcCreateCursor (ClientPtr client) { - CursorPtr pCursor; - - register PixmapPtr src; - register PixmapPtr msk; + CursorPtr pCursor; + PixmapPtr src; + PixmapPtr msk; unsigned char * srcbits; unsigned char * mskbits; unsigned short width, height; long n; - CursorMetricRec cm; + CursorMetricRec cm; REQUEST(xCreateCursorReq); @@ -3137,7 +3128,7 @@ ProcCreateCursor (register ClientPtr client) XYPixmap, 1, (pointer)srcbits); if ( msk == (PixmapPtr)NULL) { - register unsigned char *bits = mskbits; + unsigned char *bits = mskbits; while (--n >= 0) *bits++ = ~0; } @@ -3162,7 +3153,7 @@ ProcCreateCursor (register ClientPtr client) } int -ProcCreateGlyphCursor (register ClientPtr client) +ProcCreateGlyphCursor (ClientPtr client) { CursorPtr pCursor; int res; @@ -3186,7 +3177,7 @@ ProcCreateGlyphCursor (register ClientPtr client) int -ProcFreeCursor (register ClientPtr client) +ProcFreeCursor (ClientPtr client) { CursorPtr pCursor; REQUEST(xResourceReq); @@ -3207,7 +3198,7 @@ ProcFreeCursor (register ClientPtr client) } int -ProcQueryBestSize (register ClientPtr client) +ProcQueryBestSize (ClientPtr client) { xQueryBestSizeReply reply; DrawablePtr pDraw; @@ -3244,7 +3235,7 @@ ProcQueryBestSize (register ClientPtr client) int -ProcSetScreenSaver (register ClientPtr client) +ProcSetScreenSaver (ClientPtr client) { int blankingOption, exposureOption; REQUEST(xSetScreenSaverReq); @@ -3300,7 +3291,7 @@ ProcSetScreenSaver (register ClientPtr client) } int -ProcGetScreenSaver(register ClientPtr client) +ProcGetScreenSaver(ClientPtr client) { xGetScreenSaverReply rep; @@ -3317,7 +3308,7 @@ ProcGetScreenSaver(register ClientPtr client) } int -ProcChangeHosts(register ClientPtr client) +ProcChangeHosts(ClientPtr client) { REQUEST(xChangeHostsReq); int result; @@ -3341,7 +3332,7 @@ ProcChangeHosts(register ClientPtr client) } int -ProcListHosts(register ClientPtr client) +ProcListHosts(ClientPtr client) { xListHostsReply reply; int len, nHosts, result; @@ -3372,7 +3363,7 @@ ProcListHosts(register ClientPtr client) } int -ProcChangeAccessControl(register ClientPtr client) +ProcChangeAccessControl(ClientPtr client) { int result; REQUEST(xSetAccessControlReq); @@ -3389,8 +3380,30 @@ ProcChangeAccessControl(register ClientPtr client) return (result); } +/********************* + * CloseDownRetainedResources + * + * Find all clients that are gone and have terminated in RetainTemporary + * and destroy their resources. + *********************/ + +static void +CloseDownRetainedResources(void) +{ + int i; + ClientPtr client; + + for (i=1; icloseDownMode == RetainTemporary) + && (client->clientGone)) + CloseDownClient(client); + } +} + int -ProcKillClient(register ClientPtr client) +ProcKillClient(ClientPtr client) { REQUEST(xResourceReq); ClientPtr killclient; @@ -3422,7 +3435,7 @@ ProcKillClient(register ClientPtr client) } int -ProcSetFontPath(register ClientPtr client) +ProcSetFontPath(ClientPtr client) { unsigned char *ptr; unsigned long nbytes, total; @@ -3457,7 +3470,7 @@ ProcSetFontPath(register ClientPtr client) } int -ProcGetFontPath(register ClientPtr client) +ProcGetFontPath(ClientPtr client) { xGetFontPathReply reply; int stringLens, numpaths; @@ -3479,7 +3492,7 @@ ProcGetFontPath(register ClientPtr client) } int -ProcChangeCloseDownMode(register ClientPtr client) +ProcChangeCloseDownMode(ClientPtr client) { REQUEST(xSetCloseDownModeReq); @@ -3498,7 +3511,7 @@ ProcChangeCloseDownMode(register ClientPtr client) } } -int ProcForceScreenSaver(register ClientPtr client) +int ProcForceScreenSaver(ClientPtr client) { REQUEST(xForceScreenSaverReq); @@ -3514,7 +3527,7 @@ int ProcForceScreenSaver(register ClientPtr client) return client->noClientException; } -int ProcNoOperation(register ClientPtr client) +int ProcNoOperation(ClientPtr client) { REQUEST_AT_LEAST_SIZE(xReq); @@ -3557,7 +3570,7 @@ InitProcVectors(void) char dispatchExceptionAtReset = DE_RESET; void -CloseDownClient(register ClientPtr client) +CloseDownClient(ClientPtr client) { Bool really_close_down = client->clientGone || client->closeDownMode == DestroyAll; @@ -3657,28 +3670,6 @@ KillAllClients() } } -/********************* - * CloseDownRetainedResources - * - * Find all clients that are gone and have terminated in RetainTemporary - * and destroy their resources. - *********************/ - -void -CloseDownRetainedResources() -{ - register int i; - register ClientPtr client; - - for (i=1; icloseDownMode == RetainTemporary) - && (client->clientGone)) - CloseDownClient(client); - } -} - extern int clientPrivateLen; extern unsigned *clientPrivateSizes; extern unsigned totalClientSize; @@ -3738,11 +3729,11 @@ void InitClient(ClientPtr client, int i, pointer ospriv) int InitClientPrivates(ClientPtr client) { - register char *ptr; + char *ptr; DevUnion *ppriv; - register unsigned *sizes; - register unsigned size; - register int i; + unsigned *sizes; + unsigned size; + int i; if (totalClientSize == sizeof(ClientRec)) ppriv = (DevUnion *)NULL; @@ -3792,8 +3783,8 @@ InitClientPrivates(ClientPtr client) ClientPtr NextAvailableClient(pointer ospriv) { - register int i; - register ClientPtr client; + int i; + ClientPtr client; xReq data; i = nextFreeClientID; @@ -3834,10 +3825,10 @@ ClientPtr NextAvailableClient(pointer ospriv) } int -ProcInitialConnection(register ClientPtr client) +ProcInitialConnection(ClientPtr client) { REQUEST(xReq); - register xConnClientPrefix *prefix; + xConnClientPrefix *prefix; int whichbyte = 1; prefix = (xConnClientPrefix *)((char *)stuff + sz_xReq); @@ -3861,10 +3852,10 @@ ProcInitialConnection(register ClientPtr client) } int -SendConnSetup(register ClientPtr client, char *reason) +SendConnSetup(ClientPtr client, char *reason) { - register xWindowRoot *root; - register int i; + xWindowRoot *root; + int i; int numScreens; char* lConnectionInfo; xConnSetupPrefix* lconnSetupPrefix; @@ -3919,8 +3910,8 @@ SendConnSetup(register ClientPtr client, char *reason) for (i=0; icurrentInputMask = WindowTable[i]->eventMask | wOtherEventMasks (WindowTable[i]); @@ -3961,10 +3952,10 @@ SendConnSetup(register ClientPtr client, char *reason) } int -ProcEstablishConnection(register ClientPtr client) +ProcEstablishConnection(ClientPtr client) { char *reason, *auth_proto, *auth_string; - register xConnClientPrefix *prefix; + xConnClientPrefix *prefix; REQUEST(xReq); prefix = (xConnClientPrefix *)((char *)stuff + sz_xReq); @@ -4013,7 +4004,7 @@ SendErrorToClient(ClientPtr client, unsigned majorCode, unsigned minorCode, void DeleteWindowFromAnySelections(WindowPtr pWin) { - register int i; + int i; for (i = 0; i< NumCurrentSelections; i++) if (CurrentSelections[i].pWin == pWin) @@ -4037,7 +4028,7 @@ DeleteWindowFromAnySelections(WindowPtr pWin) static void DeleteClientFromAnySelections(ClientPtr client) { - register int i; + int i; for (i = 0; i< NumCurrentSelections; i++) if (CurrentSelections[i].client == client) diff --git a/dix/dixfonts.c b/dix/dixfonts.c index 5f087a31a..62ad575c9 100644 --- a/dix/dixfonts.c +++ b/dix/dixfonts.c @@ -1145,9 +1145,9 @@ static XID clearGC[] = { CT_NONE }; #define clearGCmask (GCClipMask) int -doPolyText(ClientPtr client, register PTclosurePtr c) +doPolyText(ClientPtr client, PTclosurePtr c) { - register FontPtr pFont = c->pGC->font, oldpFont; + FontPtr pFont = c->pGC->font, oldpFont; Font fid, oldfid; int err = Success, lgerr; /* err is in X error, not font error, space */ enum { NEVER_SLEPT, START_SLEEP, SLEEPING } client_state = NEVER_SLEPT; @@ -1447,7 +1447,7 @@ PolyText(ClientPtr client, DrawablePtr pDraw, GC *pGC, unsigned char *pElt, #undef FontShiftSize int -doImageText(ClientPtr client, register ITclosurePtr c) +doImageText(ClientPtr client, ITclosurePtr c) { int err = Success, lgerr; /* err is in X error, not font error, space */ FontPathElementPtr fpe; diff --git a/dix/dixutils.c b/dix/dixutils.c index e530360fe..44d82c944 100644 --- a/dix/dixutils.c +++ b/dix/dixutils.c @@ -168,7 +168,7 @@ ISOLatin1ToLower (unsigned char source) _X_EXPORT void CopyISOLatin1Lowered(unsigned char *dest, unsigned char *source, int length) { - register int i; + int i; for (i = 0; i < length; i++, source++, dest++) *dest = ISOLatin1ToLower (*source); @@ -392,8 +392,8 @@ AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode, void DeleteWindowFromAnySaveSet(WindowPtr pWin) { - register int i; - register ClientPtr client; + int i; + ClientPtr client; for (i = 0; i< currentMaxClients; i++) { @@ -434,7 +434,7 @@ static Bool handlerDeleted; void BlockHandler(pointer pTimeout, pointer pReadmask) { - register int i, j; + int i, j; ++inHandler; for (i = 0; i < screenInfo.numScreens; i++) @@ -468,7 +468,7 @@ BlockHandler(pointer pTimeout, pointer pReadmask) void WakeupHandler(int result, pointer pReadmask) { - register int i, j; + int i, j; ++inHandler; for (i = numHandlers - 1; i >= 0; i--) @@ -882,9 +882,7 @@ static CallbackFuncsRec default_cbfuncs = _DeleteCallbackList }; -/* ===== Public Procedures ===== */ - -Bool +static Bool CreateCallbackList(CallbackListPtr *pcbl, CallbackFuncsPtr cbfuncs) { CallbackListPtr cbl; @@ -916,6 +914,8 @@ CreateCallbackList(CallbackListPtr *pcbl, CallbackFuncsPtr cbfuncs) return TRUE; } +/* ===== Public Procedures ===== */ + _X_EXPORT Bool AddCallback(CallbackListPtr *pcbl, CallbackProcPtr callback, pointer data) { diff --git a/dix/events.c b/dix/events.c index 0053f42d4..e008e3613 100644 --- a/dix/events.c +++ b/dix/events.c @@ -133,7 +133,7 @@ of the copyright holder. #ifdef XKB #include -#include +#include extern Bool XkbFilterEvents(ClientPtr, int, xEvent *); #endif @@ -156,7 +156,7 @@ extern Mask xevieFilters[128]; extern int xevieEventSent; extern int xevieKBEventSent; int xeviegrabState = 0; -xEvent *xeviexE; +static xEvent *xeviexE; #endif #include @@ -761,8 +761,8 @@ CheckPhysLimits( static void CheckVirtualMotion( - register QdEventPtr qe, - register WindowPtr pWin) + QdEventPtr qe, + WindowPtr pWin) { #ifdef PANORAMIX if(!noPanoramiXExtension) { @@ -875,7 +875,7 @@ ChangeToCursor(CursorPtr cursor) /* returns true if b is a descendent of a */ Bool -IsParent(register WindowPtr a, register WindowPtr b) +IsParent(WindowPtr a, WindowPtr b) { for (b = b->parent; b; b = b->parent) if (b == a) return TRUE; @@ -885,8 +885,8 @@ IsParent(register WindowPtr a, register WindowPtr b) static void PostNewCursor(void) { - register WindowPtr win; - register GrabPtr grab = inputInfo.pointer->grab; + WindowPtr win; + GrabPtr grab = inputInfo.pointer->grab; if (syncEvents.playingEvents) return; @@ -952,7 +952,7 @@ XineramaGetCursorScreen() #define TIMESLOP (5 * 60 * 1000) /* 5 minutes */ static void -MonthChangedOrBadTime(register xEvent *xE) +MonthChangedOrBadTime(xEvent *xE) { /* If the ddx/OS is careless about not processing timestamped events from * different sources in sorted order, then it's possible for time to go @@ -971,7 +971,7 @@ MonthChangedOrBadTime(register xEvent *xE) lastDeviceEventTime = currentTime; } void -NoticeEventTime(register xEvent *xE) +NoticeEventTime(xEvent *xE) { if (!syncEvents.playingEvents) NoticeTime(xE); @@ -984,8 +984,8 @@ NoticeEventTime(register xEvent *xE) void EnqueueEvent(xEvent *xE, DeviceIntPtr device, int count) { - register QdEventPtr tail = *syncEvents.pendtail; - register QdEventPtr qe; + QdEventPtr tail = *syncEvents.pendtail; + QdEventPtr qe; xEvent *qxE; NoticeTime(xE); @@ -1059,8 +1059,8 @@ EnqueueEvent(xEvent *xE, DeviceIntPtr device, int count) static void PlayReleasedEvents(void) { - register QdEventPtr *prev, qe; - register DeviceIntPtr dev; + QdEventPtr *prev, qe; + DeviceIntPtr dev; prev = &syncEvents.pending; while ( (qe = *prev) ) @@ -1104,7 +1104,7 @@ PlayReleasedEvents(void) } static void -FreezeThaw(register DeviceIntPtr dev, Bool frozen) +FreezeThaw(DeviceIntPtr dev, Bool frozen) { dev->sync.frozen = frozen; if (frozen) @@ -1116,13 +1116,13 @@ FreezeThaw(register DeviceIntPtr dev, Bool frozen) void ComputeFreezes() { - register DeviceIntPtr replayDev = syncEvents.replayDev; - register int i; + DeviceIntPtr replayDev = syncEvents.replayDev; + int i; WindowPtr w; - register xEvent *xE; + xEvent *xE; int count; GrabPtr grab; - register DeviceIntPtr dev; + DeviceIntPtr dev; for (dev = inputInfo.devices; dev; dev = dev->next) FreezeThaw(dev, dev->sync.other || (dev->sync.state >= FROZEN)); @@ -1198,10 +1198,10 @@ ScreenRestructured (ScreenPtr pScreen) #endif void -CheckGrabForSyncs(register DeviceIntPtr thisDev, Bool thisMode, Bool otherMode) +CheckGrabForSyncs(DeviceIntPtr thisDev, Bool thisMode, Bool otherMode) { - register GrabPtr grab = thisDev->grab; - register DeviceIntPtr dev; + GrabPtr grab = thisDev->grab; + DeviceIntPtr dev; if (thisMode == GrabModeSync) thisDev->sync.state = FROZEN_NO_EVENT; @@ -1232,7 +1232,7 @@ CheckGrabForSyncs(register DeviceIntPtr thisDev, Bool thisMode, Bool otherMode) } void -ActivatePointerGrab(register DeviceIntPtr mouse, register GrabPtr grab, +ActivatePointerGrab(DeviceIntPtr mouse, GrabPtr grab, TimeStamp time, Bool autoGrab) { WindowPtr oldWin = (mouse->grab) ? mouse->grab->window @@ -1260,10 +1260,10 @@ ActivatePointerGrab(register DeviceIntPtr mouse, register GrabPtr grab, } void -DeactivatePointerGrab(register DeviceIntPtr mouse) +DeactivatePointerGrab(DeviceIntPtr mouse) { - register GrabPtr grab = mouse->grab; - register DeviceIntPtr dev; + GrabPtr grab = mouse->grab; + DeviceIntPtr dev; mouse->valuator->motionHintWindow = NullWindow; mouse->grab = NullGrab; @@ -1284,7 +1284,7 @@ DeactivatePointerGrab(register DeviceIntPtr mouse) } void -ActivateKeyboardGrab(register DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, Bool passive) +ActivateKeyboardGrab(DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, Bool passive) { WindowPtr oldWin; @@ -1310,11 +1310,11 @@ ActivateKeyboardGrab(register DeviceIntPtr keybd, GrabPtr grab, TimeStamp time, } void -DeactivateKeyboardGrab(register DeviceIntPtr keybd) +DeactivateKeyboardGrab(DeviceIntPtr keybd) { - register GrabPtr grab = keybd->grab; - register DeviceIntPtr dev; - register WindowPtr focusWin = keybd->focus ? keybd->focus->win + GrabPtr grab = keybd->grab; + DeviceIntPtr dev; + WindowPtr focusWin = keybd->focus ? keybd->focus->win : sprite.win; if (focusWin == FollowKeyboardWin) @@ -1338,7 +1338,7 @@ AllowSome(ClientPtr client, TimeStamp time, DeviceIntPtr thisDev, int newState) { Bool thisGrabbed, otherGrabbed, othersFrozen, thisSynced; TimeStamp grabTime; - register DeviceIntPtr dev; + DeviceIntPtr dev; thisGrabbed = thisDev->grab && SameClient(thisDev->grab, client); thisSynced = FALSE; @@ -1442,7 +1442,7 @@ AllowSome(ClientPtr client, TimeStamp time, DeviceIntPtr thisDev, int newState) } int -ProcAllowEvents(register ClientPtr client) +ProcAllowEvents(ClientPtr client) { TimeStamp time; DeviceIntPtr mouse = inputInfo.pointer; @@ -1487,7 +1487,7 @@ ProcAllowEvents(register ClientPtr client) void ReleaseActiveGrabs(ClientPtr client) { - register DeviceIntPtr dev; + DeviceIntPtr dev; Bool done; /* XXX CloseDownClient should remove passive grabs before @@ -1589,12 +1589,12 @@ TryClientEvents (ClientPtr client, xEvent *pEvents, int count, Mask mask, } int -DeliverEventsToWindow(register WindowPtr pWin, xEvent *pEvents, int count, +DeliverEventsToWindow(WindowPtr pWin, xEvent *pEvents, int count, Mask filter, GrabPtr grab, int mskidx) { int deliveries = 0, nondeliveries = 0; int attempt; - register InputClients *other; + InputClients *other; ClientPtr client = NullClient; Mask deliveryMask = 0; /* If a grab occurs due to a button press, then this mask is the mask of the grab. */ @@ -1708,10 +1708,10 @@ XineramaTryClientEventsResult( #endif int -MaybeDeliverEventsToClient(register WindowPtr pWin, xEvent *pEvents, +MaybeDeliverEventsToClient(WindowPtr pWin, xEvent *pEvents, int count, Mask filter, ClientPtr dontClient) { - register OtherClients *other; + OtherClients *other; if (pWin->eventMask & filter) @@ -1799,8 +1799,8 @@ FixUpEventFromWindow( } int -DeliverDeviceEvents(register WindowPtr pWin, register xEvent *xE, GrabPtr grab, - register WindowPtr stopAt, DeviceIntPtr dev, int count) +DeliverDeviceEvents(WindowPtr pWin, xEvent *xE, GrabPtr grab, + WindowPtr stopAt, DeviceIntPtr dev, int count) { Window child = None; int type = xE->u.u.type; @@ -1809,7 +1809,7 @@ DeliverDeviceEvents(register WindowPtr pWin, register xEvent *xE, GrabPtr grab, if (type & EXTENSION_EVENT_BASE) { - register OtherInputMasks *inputMasks; + OtherInputMasks *inputMasks; int mskidx = dev->id; inputMasks = wOtherInputMasks(pWin); @@ -1863,8 +1863,8 @@ DeliverDeviceEvents(register WindowPtr pWin, register xEvent *xE, GrabPtr grab, /* not useful for events that propagate up the tree or extension events */ _X_EXPORT int -DeliverEvents(register WindowPtr pWin, register xEvent *xE, int count, - register WindowPtr otherParent) +DeliverEvents(WindowPtr pWin, xEvent *xE, int count, + WindowPtr otherParent) { Mask filter; int deliveries; @@ -1929,7 +1929,7 @@ PointInBorderSize(WindowPtr pWin, int x, int y) static WindowPtr XYToWindow(int x, int y) { - register WindowPtr pWin; + WindowPtr pWin; BoxRec box; spriteTraceGood = 1; /* root window still there */ @@ -2092,9 +2092,9 @@ void ReinitializeRootWindow(WindowPtr win, int xoff, int yoff) #endif void -DefineInitialRootWindow(register WindowPtr win) +DefineInitialRootWindow(WindowPtr win) { - register ScreenPtr pScreen = win->drawable.pScreen; + ScreenPtr pScreen = win->drawable.pScreen; sprite.hotPhys.pScreen = pScreen; sprite.hotPhys.x = pScreen->width / 2; @@ -2411,13 +2411,13 @@ BorderSizeNotEmpty(WindowPtr pWin) static Bool CheckPassiveGrabsOnWindow( WindowPtr pWin, - register DeviceIntPtr device, - register xEvent *xE, + DeviceIntPtr device, + xEvent *xE, int count) { - register GrabPtr grab = wPassiveGrabs(pWin); + GrabPtr grab = wPassiveGrabs(pWin); GrabRec tempGrab; - register xEvent *dxE; + xEvent *dxE; if (!grab) return FALSE; @@ -2513,12 +2513,12 @@ tried. PRH */ Bool -CheckDeviceGrabs(register DeviceIntPtr device, register xEvent *xE, +CheckDeviceGrabs(DeviceIntPtr device, xEvent *xE, int checkFirst, int count) { - register int i; - register WindowPtr pWin = NULL; - register FocusClassPtr focus = device->focus; + int i; + WindowPtr pWin = NULL; + FocusClassPtr focus = device->focus; if (((xE->u.u.type == ButtonPress) #if defined(XINPUT) && defined(XKB) @@ -2585,13 +2585,13 @@ DeliverFocusedEvent(DeviceIntPtr keybd, xEvent *xE, WindowPtr window, int count) } void -DeliverGrabbedEvent(register xEvent *xE, register DeviceIntPtr thisDev, +DeliverGrabbedEvent(xEvent *xE, DeviceIntPtr thisDev, Bool deactivateGrab, int count) { - register GrabPtr grab = thisDev->grab; + GrabPtr grab = thisDev->grab; int deliveries = 0; - register DeviceIntPtr dev; - register xEvent *dxE; + DeviceIntPtr dev; + xEvent *dxE; if (grab->ownerEvents) { @@ -2668,19 +2668,19 @@ DeliverGrabbedEvent(register xEvent *xE, register DeviceIntPtr thisDev, void #ifdef XKB -CoreProcessKeyboardEvent (register xEvent *xE, register DeviceIntPtr keybd, int count) +CoreProcessKeyboardEvent (xEvent *xE, DeviceIntPtr keybd, int count) #else -ProcessKeyboardEvent (register xEvent *xE, register DeviceIntPtr keybd, int count) +ProcessKeyboardEvent (xEvent *xE, DeviceIntPtr keybd, int count) #endif { int key, bit; - register BYTE *kptr; - register int i; - register CARD8 modifiers; - register CARD16 mask; + BYTE *kptr; + int i; + CARD8 modifiers; + CARD16 mask; GrabPtr grab = keybd->grab; Bool deactivateGrab = FALSE; - register KeyClassPtr keyc = keybd->key; + KeyClassPtr keyc = keybd->key; #ifdef XEVIE static Window rootWin = 0; @@ -2832,11 +2832,11 @@ drawable.id:0; CoreProcessKeyEvent to be called, as in for example Mouse Keys. */ void -FixKeyState (register xEvent *xE, register DeviceIntPtr keybd) +FixKeyState (xEvent *xE, DeviceIntPtr keybd) { int key, bit; - register BYTE *kptr; - register KeyClassPtr keyc = keybd->key; + BYTE *kptr; + KeyClassPtr keyc = keybd->key; key = xE->u.u.detail; kptr = &keyc->down[key >> 3]; @@ -2863,14 +2863,14 @@ FixKeyState (register xEvent *xE, register DeviceIntPtr keybd) void #ifdef XKB -CoreProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count) +CoreProcessPointerEvent (xEvent *xE, DeviceIntPtr mouse, int count) #else -ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count) +ProcessPointerEvent (xEvent *xE, DeviceIntPtr mouse, int count) #endif { - register GrabPtr grab = mouse->grab; + GrabPtr grab = mouse->grab; Bool deactivateGrab = FALSE; - register ButtonClassPtr butc = mouse->button; + ButtonClassPtr butc = mouse->button; #ifdef XKB XkbSrvInfoPtr xkbi= inputInfo.keyboard->key->xkbInfo; #endif @@ -2914,8 +2914,8 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count } if (xE->u.u.type != MotionNotify) { - register int key; - register BYTE *kptr; + int key; + BYTE *kptr; int bit; XE_KBPTR.rootX = sprite.hot.x; @@ -2976,10 +2976,10 @@ ProcessPointerEvent (register xEvent *xE, register DeviceIntPtr mouse, int count void RecalculateDeliverableEvents(pWin) - register WindowPtr pWin; + WindowPtr pWin; { - register OtherClients *others; - register WindowPtr pChild; + OtherClients *others; + WindowPtr pChild; pChild = pWin; while (1) @@ -3018,8 +3018,8 @@ RecalculateDeliverableEvents(pWin) int OtherClientGone(pointer value, XID id) { - register OtherClientsPtr other, prev; - register WindowPtr pWin = (WindowPtr)value; + OtherClientsPtr other, prev; + WindowPtr pWin = (WindowPtr)value; prev = 0; for (other = wOtherClients(pWin); other; other = other->next) @@ -3045,7 +3045,7 @@ OtherClientGone(pointer value, XID id) } int -EventSelectForWindow(register WindowPtr pWin, register ClientPtr client, Mask mask) +EventSelectForWindow(WindowPtr pWin, ClientPtr client, Mask mask) { Mask check; OtherClients * others; @@ -3117,10 +3117,10 @@ maskSet: } int -EventSuppressForWindow(register WindowPtr pWin, register ClientPtr client, +EventSuppressForWindow(WindowPtr pWin, ClientPtr client, Mask mask, Bool *checkOptional) { - register int i, free; + int i, free; if (mask & ~PropagateMask) { @@ -3174,8 +3174,8 @@ EventSuppressForWindow(register WindowPtr pWin, register ClientPtr client, static WindowPtr CommonAncestor( - register WindowPtr a, - register WindowPtr b) + WindowPtr a, + WindowPtr b) { for (b = b->parent; b; b = b->parent) if (IsParent(b, a)) return b; @@ -3187,14 +3187,14 @@ EnterLeaveEvent( int type, int mode, int detail, - register WindowPtr pWin, + WindowPtr pWin, Window child) { xEvent event; - register DeviceIntPtr keybd = inputInfo.keyboard; + DeviceIntPtr keybd = inputInfo.keyboard; WindowPtr focus; - register DeviceIntPtr mouse = inputInfo.pointer; - register GrabPtr grab = mouse->grab; + DeviceIntPtr mouse = inputInfo.pointer; + GrabPtr grab = mouse->grab; Mask mask; if ((pWin == mouse->valuator->motionHintWindow) && @@ -3278,7 +3278,7 @@ EnterNotifies(WindowPtr ancestor, WindowPtr child, int mode, int detail) static void LeaveNotifies(WindowPtr child, WindowPtr ancestor, int mode, int detail) { - register WindowPtr pWin; + WindowPtr pWin; if (ancestor == child) return; @@ -3318,7 +3318,7 @@ DoEnterLeaveEvents(WindowPtr fromWin, WindowPtr toWin, int mode) } static void -FocusEvent(DeviceIntPtr dev, int type, int mode, int detail, register WindowPtr pWin) +FocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin) { xEvent event; @@ -3388,7 +3388,7 @@ FocusOutEvents( int mode, int detail, Bool doAncestor) { - register WindowPtr pWin; + WindowPtr pWin; for (pWin = child; pWin != ancestor; pWin = pWin->parent) FocusEvent(dev, FocusOut, mode, detail, pWin); @@ -3531,7 +3531,7 @@ SetInputFocus( Time ctime, Bool followOK) { - register FocusClassPtr focus; + FocusClassPtr focus; WindowPtr focusWin; int mode, rc; TimeStamp time; @@ -3579,7 +3579,7 @@ SetInputFocus( else { int depth = 0; - register WindowPtr pWin; + WindowPtr pWin; for (pWin = focusWin; pWin; pWin = pWin->parent) depth++; if (depth > focus->traceSize) @@ -3745,7 +3745,7 @@ int ProcChangeActivePointerGrab(ClientPtr client) { DeviceIntPtr device = inputInfo.pointer; - register GrabPtr grab = device->grab; + GrabPtr grab = device->grab; CursorPtr newCursor, oldCursor; REQUEST(xChangeActivePointerGrabReq); TimeStamp time; @@ -3807,12 +3807,12 @@ ProcUngrabPointer(ClientPtr client) } int -GrabDevice(register ClientPtr client, register DeviceIntPtr dev, +GrabDevice(ClientPtr client, DeviceIntPtr dev, unsigned this_mode, unsigned other_mode, Window grabWindow, unsigned ownerEvents, Time ctime, Mask mask, CARD8 *status) { WindowPtr pWin; - register GrabPtr grab; + GrabPtr grab; TimeStamp time; int rc; @@ -4433,7 +4433,7 @@ CheckCursorConfinement(WindowPtr pWin) Mask EventMaskForClient(WindowPtr pWin, ClientPtr client) { - register OtherClientsPtr other; + OtherClientsPtr other; if (wClient (pWin) == client) return pWin->eventMask; diff --git a/dix/extension.c b/dix/extension.c index 29cae8676..88dff15e2 100644 --- a/dix/extension.c +++ b/dix/extension.c @@ -66,8 +66,6 @@ SOFTWARE. #define LAST_EVENT 128 #define LAST_ERROR 255 -ScreenProcEntry AuxillaryScreenProcs[MAXSCREENS]; - static ExtensionEntry **extensions = (ExtensionEntry **)NULL; int lastEvent = EXTENSION_EVENT_BASE; @@ -81,11 +79,11 @@ extern unsigned totalExtensionSize; static void InitExtensionPrivates(ExtensionEntry *ext) { - register char *ptr; + char *ptr; DevUnion *ppriv; - register unsigned *sizes; - register unsigned size; - register int i; + unsigned *sizes; + unsigned size; + int i; if (totalExtensionSize == sizeof(ExtensionEntry)) ppriv = (DevUnion *)NULL; @@ -115,7 +113,7 @@ AddExtension(char *name, int NumEvents, int NumErrors, unsigned short (*MinorOpcodeProc)(ClientPtr c3)) { int i; - register ExtensionEntry *ext, **newexts; + ExtensionEntry *ext, **newexts; if (!MainProc || !SwappedMainProc || !CloseDownProc || !MinorOpcodeProc) return((ExtensionEntry *) NULL); @@ -282,7 +280,7 @@ MinorOpcodeOfRequest(ClientPtr client) void CloseDownExtensions() { - register int i,j; + int i,j; for (i = NumExtensions - 1; i >= 0; i--) { @@ -298,21 +296,8 @@ CloseDownExtensions() extensions = (ExtensionEntry **)NULL; lastEvent = EXTENSION_EVENT_BASE; lastError = FirstExtensionError; - for (i=0; inum) - { - spentry->num--; - xfree(spentry->procList[spentry->num].name); - } - xfree(spentry->procList); - spentry->procList = (ProcEntryPtr)NULL; - } } - int ProcQueryExtension(ClientPtr client) { @@ -363,7 +348,7 @@ ProcListExtensions(ClientPtr client) if ( NumExtensions ) { - register int i, j; + int i, j; for (i=0; inoClientException); } - -ExtensionLookupProc -LookupProc(char *name, GCPtr pGC) -{ - register int i; - register ScreenProcEntry *spentry; - spentry = &AuxillaryScreenProcs[pGC->pScreen->myNum]; - if (spentry->num) - { - for (i = 0; i < spentry->num; i++) - if (strcmp(name, spentry->procList[i].name) == 0) - return(spentry->procList[i].proc); - } - return (ExtensionLookupProc)NULL; -} - -Bool -RegisterProc(char *name, GC *pGC, ExtensionLookupProc proc) -{ - return RegisterScreenProc(name, pGC->pScreen, proc); -} - -Bool -RegisterScreenProc(char *name, ScreenPtr pScreen, ExtensionLookupProc proc) -{ - register ScreenProcEntry *spentry; - register ProcEntryPtr procEntry = (ProcEntryPtr)NULL; - char *newname; - int i; - - spentry = &AuxillaryScreenProcs[pScreen->myNum]; - /* first replace duplicates */ - if (spentry->num) - { - for (i = 0; i < spentry->num; i++) - if (strcmp(name, spentry->procList[i].name) == 0) - { - procEntry = &spentry->procList[i]; - break; - } - } - if (procEntry) - procEntry->proc = proc; - else - { - newname = (char *)xalloc(strlen(name)+1); - if (!newname) - return FALSE; - procEntry = (ProcEntryPtr) - xrealloc(spentry->procList, - sizeof(ProcEntryRec) * (spentry->num+1)); - if (!procEntry) - { - xfree(newname); - return FALSE; - } - spentry->procList = procEntry; - procEntry += spentry->num; - procEntry->name = newname; - strcpy(newname, name); - procEntry->proc = proc; - spentry->num++; - } - return TRUE; -} - #ifdef XSERVER_DTRACE void LoadExtensionNames(char **RequestNames) { int i; diff --git a/dix/gc.c b/dix/gc.c index 5106fcda2..7a76dd99d 100644 --- a/dix/gc.c +++ b/dix/gc.c @@ -69,7 +69,7 @@ extern FontPtr defaultFont; static Bool CreateDefaultTile(GCPtr pGC); -unsigned char DefaultDash[2] = {4, 4}; +static unsigned char DefaultDash[2] = {4, 4}; _X_EXPORT void ValidateGC(DrawablePtr pDraw, GC *pGC) @@ -144,12 +144,12 @@ ValidateGC(DrawablePtr pDraw, GC *pGC) assert(pUnion); _var = (_type)pUnion->ptr; pUnion++; } _X_EXPORT int -dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC32, ChangeGCValPtr pUnion) +dixChangeGC(ClientPtr client, GC *pGC, BITS32 mask, CARD32 *pC32, ChangeGCValPtr pUnion) { - register BITS32 index2; - register int error = 0; - PixmapPtr pPixmap; - BITS32 maskQ; + BITS32 index2; + int error = 0; + PixmapPtr pPixmap; + BITS32 maskQ; assert( (pC32 && !pUnion) || (!pC32 && pUnion) ); pGC->serialNumber |= GC_CHANGE_SERIAL_BIT; @@ -522,7 +522,7 @@ dixChangeGC(ClientPtr client, register GC *pGC, register BITS32 mask, CARD32 *pC /* Publically defined entry to ChangeGC. Just calls dixChangeGC and tells * it that all of the entries are constants or IDs */ _X_EXPORT int -ChangeGC(register GC *pGC, register BITS32 mask, XID *pval) +ChangeGC(GC *pGC, BITS32 mask, XID *pval) { return (dixChangeGC(NullClient, pGC, mask, pval, NULL)); } @@ -548,7 +548,7 @@ NOTE: 32 bits long */ _X_EXPORT int -DoChangeGC(register GC *pGC, register BITS32 mask, XID *pval, int fPointer) +DoChangeGC(GC *pGC, BITS32 mask, XID *pval, int fPointer) { if (fPointer) /* XXX might be a problem on 64 bit big-endian servers */ @@ -572,11 +572,11 @@ static GCPtr AllocateGC(ScreenPtr pScreen) { GCPtr pGC; - register char *ptr; - register DevUnion *ppriv; - register unsigned *sizes; - register unsigned size; - register int i; + char *ptr; + DevUnion *ppriv; + unsigned *sizes; + unsigned size; + int i; pGC = (GCPtr)xalloc(pScreen->totalGCSize); if (pGC) @@ -602,7 +602,7 @@ AllocateGC(ScreenPtr pScreen) _X_EXPORT GCPtr CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus) { - register GCPtr pGC; + GCPtr pGC; pGC = AllocateGC(pDrawable->pScreen); if (!pGC) @@ -724,11 +724,11 @@ CreateDefaultTile (GCPtr pGC) } _X_EXPORT int -CopyGC(register GC *pgcSrc, register GC *pgcDst, register BITS32 mask) +CopyGC(GC *pgcSrc, GC *pgcDst, BITS32 mask) { - register BITS32 index2; - BITS32 maskQ; - int error = 0; + BITS32 index2; + BITS32 maskQ; + int error = 0; if (pgcSrc == pgcDst) return Success; @@ -907,17 +907,6 @@ FreeGC(pointer value, XID gid) return(Success); } -void -SetGCMask(GCPtr pGC, Mask selectMask, Mask newDataMask) -{ - pGC->stateChanges = (~selectMask & pGC->stateChanges) | - (selectMask & newDataMask); - if (selectMask & newDataMask) - pGC->serialNumber |= GC_CHANGE_SERIAL_BIT; -} - - - /* CreateScratchGC(pScreen, depth) like CreateGC, but doesn't do the default tile or stipple, since we can't create them without already having a GC. any code @@ -934,7 +923,7 @@ go with CreateGC() or ChangeGC().) _X_EXPORT GCPtr CreateScratchGC(ScreenPtr pScreen, unsigned depth) { - register GCPtr pGC; + GCPtr pGC; pGC = AllocateGC(pScreen); if (!pGC) @@ -986,8 +975,8 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth) void FreeGCperDepth(int screenNum) { - register int i; - register ScreenPtr pScreen; + int i; + ScreenPtr pScreen; GCPtr *ppGC; pScreen = screenInfo.screens[screenNum]; @@ -1002,8 +991,8 @@ FreeGCperDepth(int screenNum) Bool CreateGCperDepth(int screenNum) { - register int i; - register ScreenPtr pScreen; + int i; + ScreenPtr pScreen; DepthPtr pDepth; GCPtr *ppGC; @@ -1035,7 +1024,7 @@ CreateGCperDepth(int screenNum) Bool CreateDefaultStipple(int screenNum) { - register ScreenPtr pScreen; + ScreenPtr pScreen; XID tmpval[3]; xRectangle rect; CARD16 w, h; @@ -1077,10 +1066,10 @@ FreeDefaultStipple(int screenNum) } _X_EXPORT int -SetDashes(register GCPtr pGC, unsigned offset, unsigned ndash, unsigned char *pdash) +SetDashes(GCPtr pGC, unsigned offset, unsigned ndash, unsigned char *pdash) { - register long i; - register unsigned char *p, *indash; + long i; + unsigned char *p, *indash; BITS32 maskQ = 0; i = ndash; @@ -1135,8 +1124,8 @@ SetDashes(register GCPtr pGC, unsigned offset, unsigned ndash, unsigned char *pd _X_EXPORT int VerifyRectOrder(int nrects, xRectangle *prects, int ordering) { - register xRectangle *prectP, *prectN; - register int i; + xRectangle *prectP, *prectN; + int i; switch(ordering) { @@ -1220,10 +1209,10 @@ SetClipRects(GCPtr pGC, int xOrigin, int yOrigin, int nrects, you use it often enough it will become real.) */ _X_EXPORT GCPtr -GetScratchGC(register unsigned depth, register ScreenPtr pScreen) +GetScratchGC(unsigned depth, ScreenPtr pScreen) { - register int i; - register GCPtr pGC; + int i; + GCPtr pGC; for (i=0; i<=pScreen->numDepths; i++) if ( pScreen->GCperDepth[i]->depth == depth && @@ -1269,10 +1258,10 @@ mark it as available. if not, free it for real */ _X_EXPORT void -FreeScratchGC(register GCPtr pGC) +FreeScratchGC(GCPtr pGC) { - register ScreenPtr pScreen = pGC->pScreen; - register int i; + ScreenPtr pScreen = pGC->pScreen; + int i; for (i=0; i<=pScreen->numDepths; i++) { diff --git a/dix/getevents.c b/dix/getevents.c index 935112d85..3f636bc80 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -44,7 +44,7 @@ #ifdef XKB #include -#include +#include extern Bool XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies); #endif diff --git a/dix/glyphcurs.c b/dix/glyphcurs.c index c1c545fa9..70b1ff8f7 100644 --- a/dix/glyphcurs.c +++ b/dix/glyphcurs.c @@ -74,10 +74,10 @@ cursor metrics. */ int -ServerBitsFromGlyph(FontPtr pfont, unsigned ch, register CursorMetricPtr cm, unsigned char **ppbits) +ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned char **ppbits) { - register ScreenPtr pScreen; - register GCPtr pGC; + ScreenPtr pScreen; + GCPtr pGC; xRectangle rect; PixmapPtr ppix; long nby; @@ -140,7 +140,7 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, register CursorMetricPtr cm, uns Bool -CursorMetricsFromGlyph(register FontPtr pfont, unsigned ch, register CursorMetricPtr cm) +CursorMetricsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm) { CharInfoPtr pci; unsigned long nglyphs; diff --git a/dix/grabs.c b/dix/grabs.c index 0c2b05e89..714fea3e5 100644 --- a/dix/grabs.c +++ b/dix/grabs.c @@ -128,7 +128,7 @@ FreeGrab(GrabPtr pGrab) int DeletePassiveGrab(pointer value, XID id) { - register GrabPtr g, prev; + GrabPtr g, prev; GrabPtr pGrab = (GrabPtr)value; /* it is OK if the grab isn't found */ @@ -153,8 +153,8 @@ DeletePassiveGrab(pointer value, XID id) static Mask * DeleteDetailFromMask(Mask *pDetailMask, unsigned short detail) { - register Mask *mask; - register int i; + Mask *mask; + int i; mask = (Mask *)xalloc(sizeof(Mask) * MasksPerDetailMask); if (mask) @@ -305,7 +305,7 @@ AddPassiveGrabToList(GrabPtr pGrab) Bool DeletePassiveGrabFromList(GrabPtr pMinuendGrab) { - register GrabPtr grab; + GrabPtr grab; GrabPtr *deletes, *adds; Mask ***updates, **details; int i, ndels, nadds, nups; diff --git a/dix/privates.c b/dix/privates.c index 8aab32d0e..cc4b01601 100644 --- a/dix/privates.c +++ b/dix/privates.c @@ -464,7 +464,7 @@ AllocateWindowPrivateIndex() } _X_EXPORT Bool -AllocateWindowPrivate(register ScreenPtr pScreen, int index2, unsigned amount) +AllocateWindowPrivate(ScreenPtr pScreen, int index2, unsigned amount) { unsigned oldamount; @@ -514,7 +514,7 @@ AllocateGCPrivateIndex() } _X_EXPORT Bool -AllocateGCPrivate(register ScreenPtr pScreen, int index2, unsigned amount) +AllocateGCPrivate(ScreenPtr pScreen, int index2, unsigned amount) { unsigned oldamount; @@ -563,7 +563,7 @@ AllocatePixmapPrivateIndex() } _X_EXPORT Bool -AllocatePixmapPrivate(register ScreenPtr pScreen, int index2, unsigned amount) +AllocatePixmapPrivate(ScreenPtr pScreen, int index2, unsigned amount) { unsigned oldamount; diff --git a/dix/property.c b/dix/property.c index 74d548d8e..8deb62180 100644 --- a/dix/property.c +++ b/dix/property.c @@ -76,7 +76,7 @@ static void PrintPropertys(WindowPtr pWin) { PropertyPtr pProp; - register int j; + int j; pProp = pWin->userProps; while (pProp) @@ -110,7 +110,7 @@ ProcRotateProperties(ClientPtr client) int i, j, delta, rc; REQUEST(xRotatePropertiesReq); WindowPtr pWin; - register Atom * atoms; + Atom * atoms; PropertyPtr * props; /* array of pointer */ PropertyPtr pProp; xEvent event; @@ -652,7 +652,7 @@ ProcListProperties(ClientPtr client) } int -ProcDeleteProperty(register ClientPtr client) +ProcDeleteProperty(ClientPtr client) { WindowPtr pWin; REQUEST(xDeletePropertyReq); diff --git a/dix/resource.c b/dix/resource.c index edf32ff34..81269c3b2 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -257,7 +257,7 @@ CreateNewResourceClass() return next; } -ClientResourceRec clientTable[MAXCLIENTS]; +static ClientResourceRec clientTable[MAXCLIENTS]; /***************** * InitClientResources @@ -268,7 +268,7 @@ ClientResourceRec clientTable[MAXCLIENTS]; Bool InitClientResources(ClientPtr client) { - register int i, j; + int i, j; if (client == serverClient) { @@ -325,7 +325,7 @@ InitClientResources(ClientPtr client) static int -Hash(int client, register XID id) +Hash(int client, XID id) { id &= RESOURCE_ID_MASK; switch (clientTable[client].hashsize) @@ -348,12 +348,12 @@ Hash(int client, register XID id) static XID AvailableID( - register int client, - register XID id, - register XID maxid, - register XID goodid) + int client, + XID id, + XID maxid, + XID goodid) { - register ResourcePtr res; + ResourcePtr res; if ((goodid >= id) && (goodid <= maxid)) return goodid; @@ -371,10 +371,10 @@ AvailableID( _X_EXPORT void GetXIDRange(int client, Bool server, XID *minp, XID *maxp) { - register XID id, maxid; - register ResourcePtr *resp; - register ResourcePtr res; - register int i; + XID id, maxid; + ResourcePtr *resp; + ResourcePtr res; + int i; XID goodid; id = (Mask)client << CLIENTOFFSET; @@ -447,7 +447,7 @@ GetXIDList(ClientPtr pClient, unsigned count, XID *pids) */ _X_EXPORT XID -FakeClientID(register int client) +FakeClientID(int client) { XID id, maxid; @@ -471,8 +471,8 @@ _X_EXPORT Bool AddResource(XID id, RESTYPE type, pointer value) { int client; - register ClientResourceRec *rrec; - register ResourcePtr res, *head; + ClientResourceRec *rrec; + ResourcePtr res, *head; #ifdef XSERVER_DTRACE XSERVER_RESOURCE_ALLOC(id, type, value, TypeNameString(type)); @@ -510,10 +510,10 @@ AddResource(XID id, RESTYPE type, pointer value) static void RebuildTable(int client) { - register int j; - register ResourcePtr res, next; + int j; + ResourcePtr res, next; ResourcePtr **tails, *resources; - register ResourcePtr **tptr, *rptr; + ResourcePtr **tptr, *rptr; /* * For now, preserve insertion order, since some ddx layers depend @@ -560,9 +560,9 @@ _X_EXPORT void FreeResource(XID id, RESTYPE skipDeleteFuncType) { int cid; - register ResourcePtr res; - register ResourcePtr *prev, *head; - register int *eltptr; + ResourcePtr res; + ResourcePtr *prev, *head; + int *eltptr; int elements; Bool gotOne = FALSE; @@ -615,8 +615,8 @@ _X_EXPORT void FreeResourceByType(XID id, RESTYPE type, Bool skipFree) { int cid; - register ResourcePtr res; - register ResourcePtr *prev, *head; + ResourcePtr res; + ResourcePtr *prev, *head; if (((cid = CLIENT_ID(id)) < MAXCLIENTS) && clientTable[cid].buckets) { head = &clientTable[cid].resources[Hash(cid, id)]; @@ -662,7 +662,7 @@ _X_EXPORT Bool ChangeResourceValue (XID id, RESTYPE rtype, pointer value) { int cid; - register ResourcePtr res; + ResourcePtr res; if (((cid = CLIENT_ID(id)) < MAXCLIENTS) && clientTable[cid].buckets) { @@ -693,10 +693,10 @@ FindClientResourcesByType( FindResType func, pointer cdata ){ - register ResourcePtr *resources; - register ResourcePtr this, next; + ResourcePtr *resources; + ResourcePtr this, next; int i, elements; - register int *eltptr; + int *eltptr; if (!client) client = serverClient; @@ -724,10 +724,10 @@ FindAllClientResources( FindAllRes func, pointer cdata ){ - register ResourcePtr *resources; - register ResourcePtr this, next; + ResourcePtr *resources; + ResourcePtr this, next; int i, elements; - register int *eltptr; + int *eltptr; if (!client) client = serverClient; @@ -817,8 +817,8 @@ FreeClientNeverRetainResources(ClientPtr client) void FreeClientResources(ClientPtr client) { - register ResourcePtr *resources; - register ResourcePtr this; + ResourcePtr *resources; + ResourcePtr this; int j; /* This routine shouldn't be called with a null client, but just in @@ -880,7 +880,7 @@ FreeAllResources() } _X_EXPORT Bool -LegalNewID(XID id, register ClientPtr client) +LegalNewID(XID id, ClientPtr client) { #ifdef PANORAMIX @@ -911,7 +911,7 @@ _X_EXPORT pointer SecurityLookupIDByType(ClientPtr client, XID id, RESTYPE rtype, Mask mode) { int cid; - register ResourcePtr res; + ResourcePtr res; pointer retval = NULL; if (((cid = CLIENT_ID(id)) < MAXCLIENTS) && @@ -938,7 +938,7 @@ _X_EXPORT pointer SecurityLookupIDByClass(ClientPtr client, XID id, RESTYPE classes, Mask mode) { int cid; - register ResourcePtr res = NULL; + ResourcePtr res = NULL; pointer retval = NULL; if (((cid = CLIENT_ID(id)) < MAXCLIENTS) && diff --git a/dix/swaprep.c b/dix/swaprep.c index 08ae6eb1a..7d3251ae3 100644 --- a/dix/swaprep.c +++ b/dix/swaprep.c @@ -73,10 +73,10 @@ static void SwapFont(xQueryFontReply *pr, Bool hasGlyphs); * \param size size in bytes */ _X_EXPORT void -Swap32Write(ClientPtr pClient, int size, register CARD32 *pbuf) +Swap32Write(ClientPtr pClient, int size, CARD32 *pbuf) { - register int i; - register char n; + int i; + char n; size >>= 2; for(i = 0; i < size; i++) @@ -97,7 +97,7 @@ CopySwap32Write(ClientPtr pClient, int size, CARD32 *pbuf) { int bufsize = size; CARD32 *pbufT; - register CARD32 *from, *to, *fromLast, *toLast; + CARD32 *from, *to, *fromLast, *toLast; CARD32 tmpbuf[1]; /* Allocate as big a buffer as we can... */ @@ -145,7 +145,7 @@ CopySwap16Write(ClientPtr pClient, int size, short *pbuf) { int bufsize = size; short *pbufT; - register short *from, *to, *fromLast, *toLast; + short *from, *to, *fromLast, *toLast; short tmpbuf[2]; /* Allocate as big a buffer as we can... */ @@ -189,7 +189,7 @@ CopySwap16Write(ClientPtr pClient, int size, short *pbuf) void SGenericReply(ClientPtr pClient, int size, xGenericReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); (void)WriteToClient(pClient, size, (char *) pRep); @@ -200,7 +200,7 @@ void SGetWindowAttributesReply(ClientPtr pClient, int size, xGetWindowAttributesReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -218,7 +218,7 @@ SGetWindowAttributesReply(ClientPtr pClient, int size, void SGetGeometryReply(ClientPtr pClient, int size, xGetGeometryReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->root, n); @@ -233,7 +233,7 @@ SGetGeometryReply(ClientPtr pClient, int size, xGetGeometryReply *pRep) void SQueryTreeReply(ClientPtr pClient, int size, xQueryTreeReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -246,7 +246,7 @@ SQueryTreeReply(ClientPtr pClient, int size, xQueryTreeReply *pRep) void SInternAtomReply(ClientPtr pClient, int size, xInternAtomReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->atom, n); @@ -256,7 +256,7 @@ SInternAtomReply(ClientPtr pClient, int size, xInternAtomReply *pRep) void SGetAtomNameReply(ClientPtr pClient, int size, xGetAtomNameReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -268,7 +268,7 @@ SGetAtomNameReply(ClientPtr pClient, int size, xGetAtomNameReply *pRep) void SGetPropertyReply(ClientPtr pClient, int size, xGetPropertyReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -281,7 +281,7 @@ SGetPropertyReply(ClientPtr pClient, int size, xGetPropertyReply *pRep) void SListPropertiesReply(ClientPtr pClient, int size, xListPropertiesReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -293,7 +293,7 @@ void SGetSelectionOwnerReply(ClientPtr pClient, int size, xGetSelectionOwnerReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->owner, n); @@ -304,7 +304,7 @@ SGetSelectionOwnerReply(ClientPtr pClient, int size, void SQueryPointerReply(ClientPtr pClient, int size, xQueryPointerReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->root, n); @@ -317,10 +317,10 @@ SQueryPointerReply(ClientPtr pClient, int size, xQueryPointerReply *pRep) (void)WriteToClient(pClient, size, (char *) pRep); } -void +static void SwapTimecoord(xTimecoord* pCoord) { - register char n; + char n; swapl(&pCoord->time, n); swaps(&pCoord->x, n); @@ -346,7 +346,7 @@ SwapTimeCoordWrite(ClientPtr pClient, int size, xTimecoord *pRep) void SGetMotionEventsReply(ClientPtr pClient, int size, xGetMotionEventsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -357,7 +357,7 @@ SGetMotionEventsReply(ClientPtr pClient, int size, xGetMotionEventsReply *pRep) void STranslateCoordsReply(ClientPtr pClient, int size, xTranslateCoordsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->child, n); @@ -369,7 +369,7 @@ STranslateCoordsReply(ClientPtr pClient, int size, xTranslateCoordsReply *pRep) void SGetInputFocusReply(ClientPtr pClient, int size, xGetInputFocusReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->focus, n); @@ -380,7 +380,7 @@ SGetInputFocusReply(ClientPtr pClient, int size, xGetInputFocusReply *pRep) void SQueryKeymapReply(ClientPtr pClient, int size, xQueryKeymapReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -390,7 +390,7 @@ SQueryKeymapReply(ClientPtr pClient, int size, xQueryKeymapReply *pRep) static void SwapCharInfo(xCharInfo *pInfo) { - register char n; + char n; swaps(&pInfo->leftSideBearing, n); swaps(&pInfo->rightSideBearing, n); @@ -403,7 +403,7 @@ SwapCharInfo(xCharInfo *pInfo) static void SwapFontInfo(xQueryFontReply *pr) { - register char n; + char n; swaps(&pr->minCharOrByte2, n); swaps(&pr->maxCharOrByte2, n); @@ -423,7 +423,7 @@ SwapFont(xQueryFontReply *pr, Bool hasGlyphs) xCharInfo * pxci; unsigned nchars, nprops; char *pby; - register char n; + char n; swaps(&pr->sequenceNumber, n); swapl(&pr->length, n); @@ -458,7 +458,7 @@ SQueryFontReply(ClientPtr pClient, int size, xQueryFontReply *pRep) void SQueryTextExtentsReply(ClientPtr pClient, int size, xQueryTextExtentsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->fontAscent, n); @@ -474,7 +474,7 @@ SQueryTextExtentsReply(ClientPtr pClient, int size, xQueryTextExtentsReply *pRep void SListFontsReply(ClientPtr pClient, int size, xListFontsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -493,7 +493,7 @@ SListFontsWithInfoReply(ClientPtr pClient, int size, void SGetFontPathReply(ClientPtr pClient, int size, xGetFontPathReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -504,7 +504,7 @@ SGetFontPathReply(ClientPtr pClient, int size, xGetFontPathReply *pRep) void SGetImageReply(ClientPtr pClient, int size, xGetImageReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -517,7 +517,7 @@ void SListInstalledColormapsReply(ClientPtr pClient, int size, xListInstalledColormapsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -531,7 +531,7 @@ SAllocColorReply(pClient, size, pRep) int size; xAllocColorReply *pRep; { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->red, n); @@ -544,7 +544,7 @@ SAllocColorReply(pClient, size, pRep) void SAllocNamedColorReply(ClientPtr pClient, int size, xAllocNamedColorReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->pixel, n); @@ -560,7 +560,7 @@ SAllocNamedColorReply(ClientPtr pClient, int size, xAllocNamedColorReply *pRep) void SAllocColorCellsReply(ClientPtr pClient, int size, xAllocColorCellsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -573,7 +573,7 @@ SAllocColorCellsReply(ClientPtr pClient, int size, xAllocColorCellsReply *pRep) void SAllocColorPlanesReply(ClientPtr pClient, int size, xAllocColorPlanesReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -584,10 +584,10 @@ SAllocColorPlanesReply(ClientPtr pClient, int size, xAllocColorPlanesReply *pRep (void)WriteToClient(pClient, size, (char *) pRep); } -void +static void SwapRGB(xrgb *prgb) { - register char n; + char n; swaps(&prgb->red, n); swaps(&prgb->green, n); @@ -613,7 +613,7 @@ SQColorsExtend(ClientPtr pClient, int size, xrgb *prgb) void SQueryColorsReply(ClientPtr pClient, int size, xQueryColorsReply* pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -624,7 +624,7 @@ SQueryColorsReply(ClientPtr pClient, int size, xQueryColorsReply* pRep) void SLookupColorReply(ClientPtr pClient, int size, xLookupColorReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->exactRed, n); @@ -639,7 +639,7 @@ SLookupColorReply(ClientPtr pClient, int size, xLookupColorReply *pRep) void SQueryBestSizeReply(ClientPtr pClient, int size, xQueryBestSizeReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->width, n); @@ -650,7 +650,7 @@ SQueryBestSizeReply(ClientPtr pClient, int size, xQueryBestSizeReply *pRep) void SListExtensionsReply(ClientPtr pClient, int size, xListExtensionsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -661,7 +661,7 @@ void SGetKeyboardMappingReply(ClientPtr pClient, int size, xGetKeyboardMappingReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -672,7 +672,7 @@ void SGetPointerMappingReply(ClientPtr pClient, int size, xGetPointerMappingReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -683,7 +683,7 @@ void SGetModifierMappingReply(ClientPtr pClient, int size, xGetModifierMappingReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -693,7 +693,7 @@ SGetModifierMappingReply(ClientPtr pClient, int size, void SGetKeyboardControlReply(ClientPtr pClient, int size, xGetKeyboardControlReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -706,7 +706,7 @@ SGetKeyboardControlReply(ClientPtr pClient, int size, xGetKeyboardControlReply * void SGetPointerControlReply(ClientPtr pClient, int size, xGetPointerControlReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->accelNumerator, n); @@ -718,7 +718,7 @@ SGetPointerControlReply(ClientPtr pClient, int size, xGetPointerControlReply *pR void SGetScreenSaverReply(ClientPtr pClient, int size, xGetScreenSaverReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swaps(&pRep->timeout, n); @@ -734,7 +734,7 @@ SLHostsExtend(ClientPtr pClient, int size, char *buf) while (bufT < endbuf) { xHostEntry *host = (xHostEntry *) bufT; int len = host->length; - register char n; + char n; swaps (&host->length, n); bufT += sizeof (xHostEntry) + (((len + 3) >> 2) << 2); } @@ -744,7 +744,7 @@ SLHostsExtend(ClientPtr pClient, int size, char *buf) void SListHostsReply(ClientPtr pClient, int size, xListHostsReply *pRep) { - register char n; + char n; swaps(&pRep->sequenceNumber, n); swapl(&pRep->length, n); @@ -1159,6 +1159,58 @@ SKeymapNotifyEvent(xEvent *from, xEvent *to) *to = *from; } +static void +SwapConnSetup(xConnSetup *pConnSetup, xConnSetup *pConnSetupT) +{ + cpswapl(pConnSetup->release, pConnSetupT->release); + cpswapl(pConnSetup->ridBase, pConnSetupT->ridBase); + cpswapl(pConnSetup->ridMask, pConnSetupT->ridMask); + cpswapl(pConnSetup->motionBufferSize, pConnSetupT->motionBufferSize); + cpswaps(pConnSetup->nbytesVendor, pConnSetupT->nbytesVendor); + cpswaps(pConnSetup->maxRequestSize, pConnSetupT->maxRequestSize); + pConnSetupT->minKeyCode = pConnSetup->minKeyCode; + pConnSetupT->maxKeyCode = pConnSetup->maxKeyCode; + pConnSetupT->numRoots = pConnSetup->numRoots; + pConnSetupT->numFormats = pConnSetup->numFormats; + pConnSetupT->imageByteOrder = pConnSetup->imageByteOrder; + pConnSetupT->bitmapBitOrder = pConnSetup->bitmapBitOrder; + pConnSetupT->bitmapScanlineUnit = pConnSetup->bitmapScanlineUnit; + pConnSetupT->bitmapScanlinePad = pConnSetup->bitmapScanlinePad; +} + +static void +SwapWinRoot(xWindowRoot *pRoot, xWindowRoot *pRootT) +{ + cpswapl(pRoot->windowId, pRootT->windowId); + cpswapl(pRoot->defaultColormap, pRootT->defaultColormap); + cpswapl(pRoot->whitePixel, pRootT->whitePixel); + cpswapl(pRoot->blackPixel, pRootT->blackPixel); + cpswapl(pRoot->currentInputMask, pRootT->currentInputMask); + cpswaps(pRoot->pixWidth, pRootT->pixWidth); + cpswaps(pRoot->pixHeight, pRootT->pixHeight); + cpswaps(pRoot->mmWidth, pRootT->mmWidth); + cpswaps(pRoot->mmHeight, pRootT->mmHeight); + cpswaps(pRoot->minInstalledMaps, pRootT->minInstalledMaps); + cpswaps(pRoot->maxInstalledMaps, pRootT->maxInstalledMaps); + cpswapl(pRoot->rootVisualID, pRootT->rootVisualID); + pRootT->backingStore = pRoot->backingStore; + pRootT->saveUnders = pRoot->saveUnders; + pRootT->rootDepth = pRoot->rootDepth; + pRootT->nDepths = pRoot->nDepths; +} + +static void +SwapVisual(xVisualType *pVis, xVisualType *pVisT) +{ + cpswapl(pVis->visualID, pVisT->visualID); + pVisT->class = pVis->class; + pVisT->bitsPerRGB = pVis->bitsPerRGB; + cpswaps(pVis->colormapEntries, pVisT->colormapEntries); + cpswapl(pVis->redMask, pVisT->redMask); + cpswapl(pVis->greenMask, pVisT->greenMask); + cpswapl(pVis->blueMask, pVisT->blueMask); +} + _X_EXPORT void SwapConnSetupInfo( char *pInfo, @@ -1210,7 +1262,6 @@ SwapConnSetupInfo( } } - void WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo) { @@ -1227,58 +1278,6 @@ WriteSConnectionInfo(ClientPtr pClient, unsigned long size, char *pInfo) DEALLOCATE_LOCAL(pInfoTBase); } -void -SwapConnSetup(xConnSetup *pConnSetup, xConnSetup *pConnSetupT) -{ - cpswapl(pConnSetup->release, pConnSetupT->release); - cpswapl(pConnSetup->ridBase, pConnSetupT->ridBase); - cpswapl(pConnSetup->ridMask, pConnSetupT->ridMask); - cpswapl(pConnSetup->motionBufferSize, pConnSetupT->motionBufferSize); - cpswaps(pConnSetup->nbytesVendor, pConnSetupT->nbytesVendor); - cpswaps(pConnSetup->maxRequestSize, pConnSetupT->maxRequestSize); - pConnSetupT->minKeyCode = pConnSetup->minKeyCode; - pConnSetupT->maxKeyCode = pConnSetup->maxKeyCode; - pConnSetupT->numRoots = pConnSetup->numRoots; - pConnSetupT->numFormats = pConnSetup->numFormats; - pConnSetupT->imageByteOrder = pConnSetup->imageByteOrder; - pConnSetupT->bitmapBitOrder = pConnSetup->bitmapBitOrder; - pConnSetupT->bitmapScanlineUnit = pConnSetup->bitmapScanlineUnit; - pConnSetupT->bitmapScanlinePad = pConnSetup->bitmapScanlinePad; -} - -void -SwapWinRoot(xWindowRoot *pRoot, xWindowRoot *pRootT) -{ - cpswapl(pRoot->windowId, pRootT->windowId); - cpswapl(pRoot->defaultColormap, pRootT->defaultColormap); - cpswapl(pRoot->whitePixel, pRootT->whitePixel); - cpswapl(pRoot->blackPixel, pRootT->blackPixel); - cpswapl(pRoot->currentInputMask, pRootT->currentInputMask); - cpswaps(pRoot->pixWidth, pRootT->pixWidth); - cpswaps(pRoot->pixHeight, pRootT->pixHeight); - cpswaps(pRoot->mmWidth, pRootT->mmWidth); - cpswaps(pRoot->mmHeight, pRootT->mmHeight); - cpswaps(pRoot->minInstalledMaps, pRootT->minInstalledMaps); - cpswaps(pRoot->maxInstalledMaps, pRootT->maxInstalledMaps); - cpswapl(pRoot->rootVisualID, pRootT->rootVisualID); - pRootT->backingStore = pRoot->backingStore; - pRootT->saveUnders = pRoot->saveUnders; - pRootT->rootDepth = pRoot->rootDepth; - pRootT->nDepths = pRoot->nDepths; -} - -void -SwapVisual(xVisualType *pVis, xVisualType *pVisT) -{ - cpswapl(pVis->visualID, pVisT->visualID); - pVisT->class = pVis->class; - pVisT->bitsPerRGB = pVis->bitsPerRGB; - cpswaps(pVis->colormapEntries, pVisT->colormapEntries); - cpswapl(pVis->redMask, pVisT->redMask); - cpswapl(pVis->greenMask, pVisT->greenMask); - cpswapl(pVis->blueMask, pVisT->blueMask); -} - _X_EXPORT void SwapConnSetupPrefix(xConnSetupPrefix *pcspFrom, xConnSetupPrefix *pcspTo) { diff --git a/dix/swapreq.c b/dix/swapreq.c index a6a211515..ad60d17da 100644 --- a/dix/swapreq.c +++ b/dix/swapreq.c @@ -63,9 +63,9 @@ SOFTWARE. /* Byte swap a list of longs */ _X_EXPORT void -SwapLongs (register CARD32 *list, register unsigned long count) +SwapLongs (CARD32 *list, unsigned long count) { - register char n; + char n; while (count >= 8) { swapl(list+0, n); @@ -89,9 +89,9 @@ SwapLongs (register CARD32 *list, register unsigned long count) /* Byte swap a list of shorts */ _X_EXPORT void -SwapShorts (register short *list, register unsigned long count) +SwapShorts (short *list, unsigned long count) { - register char n; + char n; while (count >= 16) { swaps(list+0, n); @@ -124,9 +124,9 @@ SwapShorts (register short *list, register unsigned long count) /* The following is used for all requests that have no fields to be swapped (except "length") */ int -SProcSimpleReq(register ClientPtr client) +SProcSimpleReq(ClientPtr client) { - register char n; + char n; REQUEST(xReq); swaps(&stuff->length, n); @@ -137,9 +137,9 @@ SProcSimpleReq(register ClientPtr client) only a single 32-bit field to be swapped, coming right after the "length" field */ int -SProcResourceReq(register ClientPtr client) +SProcResourceReq(ClientPtr client) { - register char n; + char n; REQUEST(xResourceReq); swaps(&stuff->length, n); @@ -149,9 +149,9 @@ SProcResourceReq(register ClientPtr client) } int -SProcCreateWindow(register ClientPtr client) +SProcCreateWindow(ClientPtr client) { - register char n; + char n; REQUEST(xCreateWindowReq); swaps(&stuff->length, n); @@ -171,9 +171,9 @@ SProcCreateWindow(register ClientPtr client) } int -SProcChangeWindowAttributes(register ClientPtr client) +SProcChangeWindowAttributes(ClientPtr client) { - register char n; + char n; REQUEST(xChangeWindowAttributesReq); swaps(&stuff->length, n); @@ -185,9 +185,9 @@ SProcChangeWindowAttributes(register ClientPtr client) } int -SProcReparentWindow(register ClientPtr client) +SProcReparentWindow(ClientPtr client) { - register char n; + char n; REQUEST(xReparentWindowReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xReparentWindowReq); @@ -199,9 +199,9 @@ SProcReparentWindow(register ClientPtr client) } int -SProcConfigureWindow(register ClientPtr client) +SProcConfigureWindow(ClientPtr client) { - register char n; + char n; REQUEST(xConfigureWindowReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xConfigureWindowReq); @@ -214,9 +214,9 @@ SProcConfigureWindow(register ClientPtr client) int -SProcInternAtom(register ClientPtr client) +SProcInternAtom(ClientPtr client) { - register char n; + char n; REQUEST(xInternAtomReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xInternAtomReq); @@ -225,9 +225,9 @@ SProcInternAtom(register ClientPtr client) } int -SProcChangeProperty(register ClientPtr client) +SProcChangeProperty(ClientPtr client) { - register char n; + char n; REQUEST(xChangePropertyReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xChangePropertyReq); @@ -249,9 +249,9 @@ SProcChangeProperty(register ClientPtr client) } int -SProcDeleteProperty(register ClientPtr client) +SProcDeleteProperty(ClientPtr client) { - register char n; + char n; REQUEST(xDeletePropertyReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xDeletePropertyReq); @@ -262,9 +262,9 @@ SProcDeleteProperty(register ClientPtr client) } int -SProcGetProperty(register ClientPtr client) +SProcGetProperty(ClientPtr client) { - register char n; + char n; REQUEST(xGetPropertyReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGetPropertyReq); @@ -277,9 +277,9 @@ SProcGetProperty(register ClientPtr client) } int -SProcSetSelectionOwner(register ClientPtr client) +SProcSetSelectionOwner(ClientPtr client) { - register char n; + char n; REQUEST(xSetSelectionOwnerReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xSetSelectionOwnerReq); @@ -290,9 +290,9 @@ SProcSetSelectionOwner(register ClientPtr client) } int -SProcConvertSelection(register ClientPtr client) +SProcConvertSelection(ClientPtr client) { - register char n; + char n; REQUEST(xConvertSelectionReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xConvertSelectionReq); @@ -305,9 +305,9 @@ SProcConvertSelection(register ClientPtr client) } int -SProcSendEvent(register ClientPtr client) +SProcSendEvent(ClientPtr client) { - register char n; + char n; xEvent eventT; EventSwapPtr proc; REQUEST(xSendEventReq); @@ -327,9 +327,9 @@ SProcSendEvent(register ClientPtr client) } int -SProcGrabPointer(register ClientPtr client) +SProcGrabPointer(ClientPtr client) { - register char n; + char n; REQUEST(xGrabPointerReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGrabPointerReq); @@ -342,9 +342,9 @@ SProcGrabPointer(register ClientPtr client) } int -SProcGrabButton(register ClientPtr client) +SProcGrabButton(ClientPtr client) { - register char n; + char n; REQUEST(xGrabButtonReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGrabButtonReq); @@ -357,9 +357,9 @@ SProcGrabButton(register ClientPtr client) } int -SProcUngrabButton(register ClientPtr client) +SProcUngrabButton(ClientPtr client) { - register char n; + char n; REQUEST(xUngrabButtonReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xUngrabButtonReq); @@ -369,9 +369,9 @@ SProcUngrabButton(register ClientPtr client) } int -SProcChangeActivePointerGrab(register ClientPtr client) +SProcChangeActivePointerGrab(ClientPtr client) { - register char n; + char n; REQUEST(xChangeActivePointerGrabReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xChangeActivePointerGrabReq); @@ -382,9 +382,9 @@ SProcChangeActivePointerGrab(register ClientPtr client) } int -SProcGrabKeyboard(register ClientPtr client) +SProcGrabKeyboard(ClientPtr client) { - register char n; + char n; REQUEST(xGrabKeyboardReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGrabKeyboardReq); @@ -394,9 +394,9 @@ SProcGrabKeyboard(register ClientPtr client) } int -SProcGrabKey(register ClientPtr client) +SProcGrabKey(ClientPtr client) { - register char n; + char n; REQUEST(xGrabKeyReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGrabKeyReq); @@ -406,9 +406,9 @@ SProcGrabKey(register ClientPtr client) } int -SProcUngrabKey(register ClientPtr client) +SProcUngrabKey(ClientPtr client) { - register char n; + char n; REQUEST(xUngrabKeyReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xUngrabKeyReq); @@ -418,9 +418,9 @@ SProcUngrabKey(register ClientPtr client) } int -SProcGetMotionEvents(register ClientPtr client) +SProcGetMotionEvents(ClientPtr client) { - register char n; + char n; REQUEST(xGetMotionEventsReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGetMotionEventsReq); @@ -431,9 +431,9 @@ SProcGetMotionEvents(register ClientPtr client) } int -SProcTranslateCoords(register ClientPtr client) +SProcTranslateCoords(ClientPtr client) { - register char n; + char n; REQUEST(xTranslateCoordsReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xTranslateCoordsReq); @@ -445,9 +445,9 @@ SProcTranslateCoords(register ClientPtr client) } int -SProcWarpPointer(register ClientPtr client) +SProcWarpPointer(ClientPtr client) { - register char n; + char n; REQUEST(xWarpPointerReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xWarpPointerReq); @@ -463,9 +463,9 @@ SProcWarpPointer(register ClientPtr client) } int -SProcSetInputFocus(register ClientPtr client) +SProcSetInputFocus(ClientPtr client) { - register char n; + char n; REQUEST(xSetInputFocusReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xSetInputFocusReq); @@ -475,9 +475,9 @@ SProcSetInputFocus(register ClientPtr client) } int -SProcOpenFont(register ClientPtr client) +SProcOpenFont(ClientPtr client) { - register char n; + char n; REQUEST(xOpenFontReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xOpenFontReq); @@ -487,9 +487,9 @@ SProcOpenFont(register ClientPtr client) } int -SProcListFonts(register ClientPtr client) +SProcListFonts(ClientPtr client) { - register char n; + char n; REQUEST(xListFontsReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xListFontsReq); @@ -499,9 +499,9 @@ SProcListFonts(register ClientPtr client) } int -SProcListFontsWithInfo(register ClientPtr client) +SProcListFontsWithInfo(ClientPtr client) { - register char n; + char n; REQUEST(xListFontsWithInfoReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xListFontsWithInfoReq); @@ -511,9 +511,9 @@ SProcListFontsWithInfo(register ClientPtr client) } int -SProcSetFontPath(register ClientPtr client) +SProcSetFontPath(ClientPtr client) { - register char n; + char n; REQUEST(xSetFontPathReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xSetFontPathReq); @@ -522,9 +522,9 @@ SProcSetFontPath(register ClientPtr client) } int -SProcCreatePixmap(register ClientPtr client) +SProcCreatePixmap(ClientPtr client) { - register char n; + char n; REQUEST(xCreatePixmapReq); swaps(&stuff->length, n); @@ -537,9 +537,9 @@ SProcCreatePixmap(register ClientPtr client) } int -SProcCreateGC(register ClientPtr client) +SProcCreateGC(ClientPtr client) { - register char n; + char n; REQUEST(xCreateGCReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xCreateGCReq); @@ -551,9 +551,9 @@ SProcCreateGC(register ClientPtr client) } int -SProcChangeGC(register ClientPtr client) +SProcChangeGC(ClientPtr client) { - register char n; + char n; REQUEST(xChangeGCReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xChangeGCReq); @@ -564,9 +564,9 @@ SProcChangeGC(register ClientPtr client) } int -SProcCopyGC(register ClientPtr client) +SProcCopyGC(ClientPtr client) { - register char n; + char n; REQUEST(xCopyGCReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCopyGCReq); @@ -577,9 +577,9 @@ SProcCopyGC(register ClientPtr client) } int -SProcSetDashes(register ClientPtr client) +SProcSetDashes(ClientPtr client) { - register char n; + char n; REQUEST(xSetDashesReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xSetDashesReq); @@ -591,9 +591,9 @@ SProcSetDashes(register ClientPtr client) } int -SProcSetClipRectangles(register ClientPtr client) +SProcSetClipRectangles(ClientPtr client) { - register char n; + char n; REQUEST(xSetClipRectanglesReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xSetClipRectanglesReq); @@ -605,9 +605,9 @@ SProcSetClipRectangles(register ClientPtr client) } int -SProcClearToBackground(register ClientPtr client) +SProcClearToBackground(ClientPtr client) { - register char n; + char n; REQUEST(xClearAreaReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xClearAreaReq); @@ -620,9 +620,9 @@ SProcClearToBackground(register ClientPtr client) } int -SProcCopyArea(register ClientPtr client) +SProcCopyArea(ClientPtr client) { - register char n; + char n; REQUEST(xCopyAreaReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCopyAreaReq); @@ -639,9 +639,9 @@ SProcCopyArea(register ClientPtr client) } int -SProcCopyPlane(register ClientPtr client) +SProcCopyPlane(ClientPtr client) { - register char n; + char n; REQUEST(xCopyPlaneReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCopyPlaneReq); @@ -661,9 +661,9 @@ SProcCopyPlane(register ClientPtr client) /* The following routine is used for all Poly drawing requests (except FillPoly, which uses a different request format) */ int -SProcPoly(register ClientPtr client) +SProcPoly(ClientPtr client) { - register char n; + char n; REQUEST(xPolyPointReq); swaps(&stuff->length, n); @@ -678,9 +678,9 @@ SProcPoly(register ClientPtr client) is longer than xPolyPointReq, and we don't want to swap the difference as shorts! */ int -SProcFillPoly(register ClientPtr client) +SProcFillPoly(ClientPtr client) { - register char n; + char n; REQUEST(xFillPolyReq); swaps(&stuff->length, n); @@ -692,9 +692,9 @@ SProcFillPoly(register ClientPtr client) } int -SProcPutImage(register ClientPtr client) +SProcPutImage(ClientPtr client) { - register char n; + char n; REQUEST(xPutImageReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xPutImageReq); @@ -710,9 +710,9 @@ SProcPutImage(register ClientPtr client) } int -SProcGetImage(register ClientPtr client) +SProcGetImage(ClientPtr client) { - register char n; + char n; REQUEST(xGetImageReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xGetImageReq); @@ -728,9 +728,9 @@ SProcGetImage(register ClientPtr client) /* ProcPolyText used for both PolyText8 and PolyText16 */ int -SProcPolyText(register ClientPtr client) +SProcPolyText(ClientPtr client) { - register char n; + char n; REQUEST(xPolyTextReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xPolyTextReq); @@ -744,9 +744,9 @@ SProcPolyText(register ClientPtr client) /* ProcImageText used for both ImageText8 and ImageText16 */ int -SProcImageText(register ClientPtr client) +SProcImageText(ClientPtr client) { - register char n; + char n; REQUEST(xImageTextReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xImageTextReq); @@ -758,9 +758,9 @@ SProcImageText(register ClientPtr client) } int -SProcCreateColormap(register ClientPtr client) +SProcCreateColormap(ClientPtr client) { - register char n; + char n; REQUEST(xCreateColormapReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCreateColormapReq); @@ -772,9 +772,9 @@ SProcCreateColormap(register ClientPtr client) int -SProcCopyColormapAndFree(register ClientPtr client) +SProcCopyColormapAndFree(ClientPtr client) { - register char n; + char n; REQUEST(xCopyColormapAndFreeReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCopyColormapAndFreeReq); @@ -785,9 +785,9 @@ SProcCopyColormapAndFree(register ClientPtr client) } int -SProcAllocColor(register ClientPtr client) +SProcAllocColor(ClientPtr client) { - register char n; + char n; REQUEST(xAllocColorReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xAllocColorReq); @@ -799,9 +799,9 @@ SProcAllocColor(register ClientPtr client) } int -SProcAllocNamedColor(register ClientPtr client) +SProcAllocNamedColor(ClientPtr client) { - register char n; + char n; REQUEST(xAllocNamedColorReq); swaps(&stuff->length, n); @@ -812,9 +812,9 @@ SProcAllocNamedColor(register ClientPtr client) } int -SProcAllocColorCells(register ClientPtr client) +SProcAllocColorCells(ClientPtr client) { - register char n; + char n; REQUEST(xAllocColorCellsReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xAllocColorCellsReq); @@ -825,9 +825,9 @@ SProcAllocColorCells(register ClientPtr client) } int -SProcAllocColorPlanes(register ClientPtr client) +SProcAllocColorPlanes(ClientPtr client) { - register char n; + char n; REQUEST(xAllocColorPlanesReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xAllocColorPlanesReq); @@ -840,9 +840,9 @@ SProcAllocColorPlanes(register ClientPtr client) } int -SProcFreeColors(register ClientPtr client) +SProcFreeColors(ClientPtr client) { - register char n; + char n; REQUEST(xFreeColorsReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xFreeColorsReq); @@ -856,7 +856,7 @@ SProcFreeColors(register ClientPtr client) _X_EXPORT void SwapColorItem(xColorItem *pItem) { - register char n; + char n; swapl(&pItem->pixel, n); swaps(&pItem->red, n); @@ -865,9 +865,9 @@ SwapColorItem(xColorItem *pItem) } int -SProcStoreColors(register ClientPtr client) +SProcStoreColors(ClientPtr client) { - register char n; + char n; long count; xColorItem *pItem; @@ -882,9 +882,9 @@ SProcStoreColors(register ClientPtr client) } int -SProcStoreNamedColor (register ClientPtr client) +SProcStoreNamedColor (ClientPtr client) { - register char n; + char n; REQUEST(xStoreNamedColorReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xStoreNamedColorReq); @@ -895,9 +895,9 @@ SProcStoreNamedColor (register ClientPtr client) } int -SProcQueryColors (register ClientPtr client) +SProcQueryColors (ClientPtr client) { - register char n; + char n; REQUEST(xQueryColorsReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xQueryColorsReq); @@ -907,9 +907,9 @@ SProcQueryColors (register ClientPtr client) } int -SProcLookupColor (register ClientPtr client) +SProcLookupColor (ClientPtr client) { - register char n; + char n; REQUEST(xLookupColorReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xLookupColorReq); @@ -919,9 +919,9 @@ SProcLookupColor (register ClientPtr client) } int -SProcCreateCursor (register ClientPtr client) +SProcCreateCursor (ClientPtr client) { - register char n; + char n; REQUEST(xCreateCursorReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCreateCursorReq); @@ -940,9 +940,9 @@ SProcCreateCursor (register ClientPtr client) } int -SProcCreateGlyphCursor (register ClientPtr client) +SProcCreateGlyphCursor (ClientPtr client) { - register char n; + char n; REQUEST(xCreateGlyphCursorReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xCreateGlyphCursorReq); @@ -962,9 +962,9 @@ SProcCreateGlyphCursor (register ClientPtr client) int -SProcRecolorCursor (register ClientPtr client) +SProcRecolorCursor (ClientPtr client) { - register char n; + char n; REQUEST(xRecolorCursorReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xRecolorCursorReq); @@ -979,9 +979,9 @@ SProcRecolorCursor (register ClientPtr client) } int -SProcQueryBestSize (register ClientPtr client) +SProcQueryBestSize (ClientPtr client) { - register char n; + char n; REQUEST(xQueryBestSizeReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xQueryBestSizeReq); @@ -993,9 +993,9 @@ SProcQueryBestSize (register ClientPtr client) } int -SProcQueryExtension (register ClientPtr client) +SProcQueryExtension (ClientPtr client) { - register char n; + char n; REQUEST(xQueryExtensionReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xQueryExtensionReq); @@ -1004,9 +1004,9 @@ SProcQueryExtension (register ClientPtr client) } int -SProcChangeKeyboardMapping (register ClientPtr client) +SProcChangeKeyboardMapping (ClientPtr client) { - register char n; + char n; REQUEST(xChangeKeyboardMappingReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xChangeKeyboardMappingReq); @@ -1016,9 +1016,9 @@ SProcChangeKeyboardMapping (register ClientPtr client) int -SProcChangeKeyboardControl (register ClientPtr client) +SProcChangeKeyboardControl (ClientPtr client) { - register char n; + char n; REQUEST(xChangeKeyboardControlReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xChangeKeyboardControlReq); @@ -1028,9 +1028,9 @@ SProcChangeKeyboardControl (register ClientPtr client) } int -SProcChangePointerControl (register ClientPtr client) +SProcChangePointerControl (ClientPtr client) { - register char n; + char n; REQUEST(xChangePointerControlReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xChangePointerControlReq); @@ -1042,9 +1042,9 @@ SProcChangePointerControl (register ClientPtr client) int -SProcSetScreenSaver (register ClientPtr client) +SProcSetScreenSaver (ClientPtr client) { - register char n; + char n; REQUEST(xSetScreenSaverReq); swaps(&stuff->length, n); REQUEST_SIZE_MATCH(xSetScreenSaverReq); @@ -1054,9 +1054,9 @@ SProcSetScreenSaver (register ClientPtr client) } int -SProcChangeHosts (register ClientPtr client) +SProcChangeHosts (ClientPtr client) { - register char n; + char n; REQUEST(xChangeHostsReq); swaps(&stuff->length, n); @@ -1066,9 +1066,9 @@ SProcChangeHosts (register ClientPtr client) } -int SProcRotateProperties (register ClientPtr client) +int SProcRotateProperties (ClientPtr client) { - register char n; + char n; REQUEST(xRotatePropertiesReq); swaps(&stuff->length, n); REQUEST_AT_LEAST_SIZE(xRotatePropertiesReq); @@ -1080,9 +1080,9 @@ int SProcRotateProperties (register ClientPtr client) } int -SProcNoOperation(register ClientPtr client) +SProcNoOperation(ClientPtr client) { - register char n; + char n; REQUEST(xReq); swaps(&stuff->length, n); return ((* ProcVector[X_NoOperation])(client)); @@ -1091,7 +1091,7 @@ SProcNoOperation(register ClientPtr client) void SwapConnClientPrefix(xConnClientPrefix *pCCP) { - register char n; + char n; swaps(&pCCP->majorVersion, n); swaps(&pCCP->minorVersion, n); diff --git a/dix/window.c b/dix/window.c index 02496f53e..e4f1ae1eb 100644 --- a/dix/window.c +++ b/dix/window.c @@ -220,10 +220,10 @@ PrintWindowTree(void) #endif _X_EXPORT int -TraverseTree(register WindowPtr pWin, VisitWindowProcPtr func, pointer data) +TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data) { - register int result; - register WindowPtr pChild; + int result; + WindowPtr pChild; if (!(pChild = pWin)) return(WT_NOMATCH); @@ -269,7 +269,7 @@ Bool enableBackingStore = FALSE; Bool disableSaveUnders = FALSE; static void -SetWindowToDefaults(register WindowPtr pWin) +SetWindowToDefaults(WindowPtr pWin) { pWin->prevSib = NullWindow; pWin->firstChild = NullWindow; @@ -297,10 +297,6 @@ SetWindowToDefaults(register WindowPtr pWin) pWin->deliverableEvents = 0; pWin->dontPropagate = 0; pWin->forcedBS = FALSE; -#ifdef NEED_DBE_BUF_BITS - pWin->srcBuffer = DBE_FRONT_BUFFER; - pWin->dstBuffer = DBE_FRONT_BUFFER; -#endif #ifdef COMPOSITE pWin->redirectDraw = 0; #endif @@ -313,8 +309,8 @@ MakeRootTile(WindowPtr pWin) GCPtr pGC; unsigned char back[128]; int len = BitmapBytePad(sizeof(long)); - register unsigned char *from, *to; - register int i, j; + unsigned char *from, *to; + int i, j; pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4, pScreen->rootDepth); @@ -353,11 +349,11 @@ WindowPtr AllocateWindow(ScreenPtr pScreen) { WindowPtr pWin; - register char *ptr; - register DevUnion *ppriv; - register unsigned *sizes; - register unsigned size; - register int i; + char *ptr; + DevUnion *ppriv; + unsigned *sizes; + unsigned size; + int i; pWin = (WindowPtr)xalloc(pScreen->totalWindowSize); if (pWin) @@ -537,10 +533,10 @@ InitRootWindow(WindowPtr pWin) * window from which the region came. */ -void -ClippedRegionFromBox(register WindowPtr pWin, RegionPtr Rgn, - register int x, register int y, - register int w, register int h) +static void +ClippedRegionFromBox(WindowPtr pWin, RegionPtr Rgn, + int x, int y, + int w, int h) { ScreenPtr pScreen; BoxRec box; @@ -577,7 +573,7 @@ RegisterRealChildHeadProc (RealChildHeadProc proc) WindowPtr -RealChildHead(register WindowPtr pWin) +RealChildHead(WindowPtr pWin) { if (realChildHeadProc) { return realChildHeadProc (pWin); @@ -597,19 +593,19 @@ RealChildHead(register WindowPtr pWin) *****/ _X_EXPORT WindowPtr -CreateWindow(Window wid, register WindowPtr pParent, int x, int y, unsigned w, - unsigned h, unsigned bw, unsigned class, register Mask vmask, XID *vlist, +CreateWindow(Window wid, WindowPtr pParent, int x, int y, unsigned w, + unsigned h, unsigned bw, unsigned class, Mask vmask, XID *vlist, int depth, ClientPtr client, VisualID visual, int *error) { - register WindowPtr pWin; + WindowPtr pWin; WindowPtr pHead; - register ScreenPtr pScreen; + ScreenPtr pScreen; xEvent event; int idepth, ivisual; Bool fOK; DepthPtr pDepth; PixmapFormatRec *format; - register WindowOptPtr ancwopt; + WindowOptPtr ancwopt; if (class == CopyFromParent) class = pParent->drawable.class; @@ -832,9 +828,29 @@ CreateWindow(Window wid, register WindowPtr pParent, int x, int y, unsigned w, } static void -FreeWindowResources(register WindowPtr pWin) +DisposeWindowOptional (WindowPtr pWin) { - register ScreenPtr pScreen = pWin->drawable.pScreen; + if (!pWin->optional) + return; + /* + * everything is peachy. Delete the optional record + * and clean up + */ + if (pWin->optional->cursor) + { + FreeCursor (pWin->optional->cursor, (Cursor)0); + pWin->cursorIsNone = FALSE; + } + else + pWin->cursorIsNone = TRUE; + xfree (pWin->optional); + pWin->optional = NULL; +} + +static void +FreeWindowResources(WindowPtr pWin) +{ + ScreenPtr pScreen = pWin->drawable.pScreen; DeleteWindowFromAnySaveSet(pWin); DeleteWindowFromAnySelections(pWin); @@ -865,7 +881,7 @@ FreeWindowResources(register WindowPtr pWin) static void CrushTree(WindowPtr pWin) { - register WindowPtr pChild, pSib, pParent; + WindowPtr pChild, pSib, pParent; UnrealizeWindowProcPtr UnrealizeWindow; xEvent event; @@ -922,8 +938,8 @@ CrushTree(WindowPtr pWin) int DeleteWindow(pointer value, XID wid) { - register WindowPtr pParent; - register WindowPtr pWin = (WindowPtr)value; + WindowPtr pParent; + WindowPtr pWin = (WindowPtr)value; xEvent event; UnmapWindow(pWin, FALSE); @@ -955,7 +971,7 @@ DeleteWindow(pointer value, XID wid) } void -DestroySubwindows(register WindowPtr pWin, ClientPtr client) +DestroySubwindows(WindowPtr pWin, ClientPtr client) { /* XXX * The protocol is quite clear that each window should be @@ -982,10 +998,10 @@ DestroySubwindows(register WindowPtr pWin, ClientPtr client) *****/ _X_EXPORT int -ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) +ChangeWindowAttributes(WindowPtr pWin, Mask vmask, XID *vlist, ClientPtr client) { - register Mask index2; - register XID *pVlist; + Mask index2; + XID *pVlist; PixmapPtr pPixmap; Pixmap pixID; CursorPtr pCursor, pOldCursor; @@ -995,9 +1011,9 @@ ChangeWindowAttributes(register WindowPtr pWin, Mask vmask, XID *vlist, ClientPt ColormapPtr pCmap; xEvent xE; int result; - register ScreenPtr pScreen; + ScreenPtr pScreen; Mask vmaskCopy = 0; - register Mask tmask; + Mask tmask; unsigned int val; int error; Bool checkOptional = FALSE; @@ -1516,7 +1532,7 @@ PatchUp: *****/ void -GetWindowAttributes(register WindowPtr pWin, ClientPtr client, xGetWindowAttributesReply *wa) +GetWindowAttributes(WindowPtr pWin, ClientPtr client, xGetWindowAttributesReply *wa) { wa->type = X_Reply; wa->bitGravity = pWin->bitGravity; @@ -1552,9 +1568,9 @@ GetWindowAttributes(register WindowPtr pWin, ClientPtr client, xGetWindowAttribu _X_EXPORT WindowPtr -MoveWindowInStack(register WindowPtr pWin, register WindowPtr pNextSib) +MoveWindowInStack(WindowPtr pWin, WindowPtr pNextSib) { - register WindowPtr pParent = pWin->parent; + WindowPtr pParent = pWin->parent; WindowPtr pFirstChange = pWin; /* highest window where list changes */ if (pWin->nextSib != pNextSib) @@ -1636,7 +1652,7 @@ MoveWindowInStack(register WindowPtr pWin, register WindowPtr pNextSib) } _X_EXPORT RegionPtr -CreateUnclippedWinSize (register WindowPtr pWin) +CreateUnclippedWinSize (WindowPtr pWin) { RegionPtr pRgn; BoxRec box; @@ -1664,7 +1680,7 @@ CreateUnclippedWinSize (register WindowPtr pWin) } _X_EXPORT void -SetWinSize (register WindowPtr pWin) +SetWinSize (WindowPtr pWin) { #ifdef COMPOSITE if (pWin->redirectDraw) @@ -1703,7 +1719,7 @@ SetWinSize (register WindowPtr pWin) } _X_EXPORT void -SetBorderSize (register WindowPtr pWin) +SetBorderSize (WindowPtr pWin) { int bw; @@ -1755,9 +1771,9 @@ SetBorderSize (register WindowPtr pWin) */ _X_EXPORT void -GravityTranslate (register int x, register int y, int oldx, int oldy, +GravityTranslate (int x, int y, int oldx, int oldy, int dw, int dh, unsigned gravity, - register int *destx, register int *desty) + int *destx, int *desty) { switch (gravity) { case NorthGravity: @@ -1805,10 +1821,10 @@ GravityTranslate (register int x, register int y, int oldx, int oldy, /* XXX need to retile border on each window with ParentRelative origin */ _X_EXPORT void -ResizeChildrenWinSize(register WindowPtr pWin, int dx, int dy, int dw, int dh) +ResizeChildrenWinSize(WindowPtr pWin, int dx, int dy, int dw, int dh) { - register ScreenPtr pScreen; - register WindowPtr pSib, pChild; + ScreenPtr pScreen; + WindowPtr pSib, pChild; Bool resized = (dw || dh); pScreen = pWin->drawable.pScreen; @@ -1900,10 +1916,10 @@ ResizeChildrenWinSize(register WindowPtr pWin, int dx, int dy, int dw, int dh) static int IsSiblingAboveMe( - register WindowPtr pMe, - register WindowPtr pSib) + WindowPtr pMe, + WindowPtr pSib) { - register WindowPtr pWin; + WindowPtr pWin; pWin = pMe->parent->firstChild; while (pWin) @@ -1919,8 +1935,8 @@ IsSiblingAboveMe( static BoxPtr WindowExtents( - register WindowPtr pWin, - register BoxPtr pBox) + WindowPtr pWin, + BoxPtr pBox) { pBox->x1 = pWin->drawable.x - wBorderWidth (pWin); pBox->y1 = pWin->drawable.y - wBorderWidth (pWin); @@ -1936,7 +1952,7 @@ WindowExtents( static RegionPtr MakeBoundingRegion ( - register WindowPtr pWin, + WindowPtr pWin, BoxPtr pBox) { RegionPtr pRgn; @@ -1962,7 +1978,7 @@ ShapeOverlap ( BoxPtr pSibBox) { RegionPtr pWinRgn, pSibRgn; - register ScreenPtr pScreen; + ScreenPtr pScreen; Bool ret; if (!IS_SHAPED(pWin) && !IS_SHAPED(pSib)) @@ -1982,11 +1998,11 @@ static Bool AnyWindowOverlapsMe( WindowPtr pWin, WindowPtr pHead, - register BoxPtr box) + BoxPtr box) { - register WindowPtr pSib; + WindowPtr pSib; BoxRec sboxrec; - register BoxPtr sbox; + BoxPtr sbox; for (pSib = pWin->prevSib; pSib != pHead; pSib = pSib->prevSib) { @@ -2007,11 +2023,11 @@ AnyWindowOverlapsMe( static Bool IOverlapAnyWindow( WindowPtr pWin, - register BoxPtr box) + BoxPtr box) { - register WindowPtr pSib; + WindowPtr pSib; BoxRec sboxrec; - register BoxPtr sbox; + BoxPtr sbox; for (pSib = pWin->nextSib; pSib; pSib = pSib->nextSib) { @@ -2059,8 +2075,8 @@ IOverlapAnyWindow( static WindowPtr WhereDoIGoInTheStack( - register WindowPtr pWin, - register WindowPtr pSib, + WindowPtr pWin, + WindowPtr pSib, short x, short y, unsigned short w, @@ -2068,7 +2084,7 @@ WhereDoIGoInTheStack( int smode) { BoxRec box; - register ScreenPtr pScreen; + ScreenPtr pScreen; WindowPtr pHead, pFirst; if ((pWin == pWin->parent->firstChild) && @@ -2165,8 +2181,8 @@ WhereDoIGoInTheStack( static void ReflectStackChange( - register WindowPtr pWin, - register WindowPtr pSib, + WindowPtr pWin, + WindowPtr pSib, VTKind kind) { /* Note that pSib might be NULL */ @@ -2218,17 +2234,17 @@ ReflectStackChange( *****/ int -ConfigureWindow(register WindowPtr pWin, register Mask mask, XID *vlist, ClientPtr client) +ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client) { #define RESTACK_WIN 0 #define MOVE_WIN 1 #define RESIZE_WIN 2 #define REBORDER_WIN 3 - register WindowPtr pSib = NullWindow; - register WindowPtr pParent = pWin->parent; + WindowPtr pSib = NullWindow; + WindowPtr pParent = pWin->parent; Window sibwid = 0; Mask index2, tmask; - register XID *pVlist; + XID *pVlist; short x, y, beforeX, beforeY; unsigned short w = pWin->drawable.width, h = pWin->drawable.height, @@ -2505,7 +2521,7 @@ ActuallyDoSomething: int CirculateWindow(WindowPtr pParent, int direction, ClientPtr client) { - register WindowPtr pWin, pHead, pFirst; + WindowPtr pWin, pHead, pFirst; xEvent event; BoxRec box; @@ -2575,14 +2591,14 @@ CompareWIDs( *****/ int -ReparentWindow(register WindowPtr pWin, register WindowPtr pParent, +ReparentWindow(WindowPtr pWin, WindowPtr pParent, int x, int y, ClientPtr client) { WindowPtr pPrev, pPriorParent; Bool WasMapped = (Bool)(pWin->mapped); xEvent event; int bw = wBorderWidth (pWin); - register ScreenPtr pScreen; + ScreenPtr pScreen; pScreen = pWin->drawable.pScreen; if (TraverseTree(pWin, CompareWIDs, (pointer)&pParent->drawable.id) == WT_STOPWALKING) @@ -2669,7 +2685,7 @@ ReparentWindow(register WindowPtr pWin, register WindowPtr pParent, static void RealizeTree(WindowPtr pWin) { - register WindowPtr pChild; + WindowPtr pChild; RealizeWindowProcPtr Realize; Realize = pWin->drawable.pScreen->RealizeWindow; @@ -2699,6 +2715,30 @@ RealizeTree(WindowPtr pWin) } } +static WindowPtr windowDisableMapUnmapEvents; + +void +DisableMapUnmapEvents(WindowPtr pWin) +{ + assert (windowDisableMapUnmapEvents == NULL); + + windowDisableMapUnmapEvents = pWin; +} + +void +EnableMapUnmapEvents(WindowPtr pWin) +{ + assert (windowDisableMapUnmapEvents != NULL); + + windowDisableMapUnmapEvents = NULL; +} + +static Bool +MapUnmapEventsEnabled(WindowPtr pWin) +{ + return pWin != windowDisableMapUnmapEvents; +} + /***** * MapWindow * If some other client has selected SubStructureReDirect on the parent @@ -2708,11 +2748,11 @@ RealizeTree(WindowPtr pWin) *****/ _X_EXPORT int -MapWindow(register WindowPtr pWin, ClientPtr client) +MapWindow(WindowPtr pWin, ClientPtr client) { - register ScreenPtr pScreen; + ScreenPtr pScreen; - register WindowPtr pParent; + WindowPtr pParent; #ifdef DO_SAVE_UNDERS Bool dosave = FALSE; #endif @@ -2828,18 +2868,18 @@ MapWindow(register WindowPtr pWin, ClientPtr client) *****/ void -MapSubwindows(register WindowPtr pParent, ClientPtr client) +MapSubwindows(WindowPtr pParent, ClientPtr client) { - register WindowPtr pWin; - WindowPtr pFirstMapped = NullWindow; + WindowPtr pWin; + WindowPtr pFirstMapped = NullWindow; #ifdef DO_SAVE_UNDERS - WindowPtr pFirstSaveUndered = NullWindow; + WindowPtr pFirstSaveUndered = NullWindow; #endif - register ScreenPtr pScreen; - register Mask parentRedirect; - register Mask parentNotify; - xEvent event; - Bool anyMarked; + ScreenPtr pScreen; + Mask parentRedirect; + Mask parentNotify; + xEvent event; + Bool anyMarked; #ifdef DO_SAVE_UNDERS Bool dosave = FALSE; #endif @@ -2948,7 +2988,7 @@ UnrealizeTree( WindowPtr pWin, Bool fromConfigure) { - register WindowPtr pChild; + WindowPtr pChild; UnrealizeWindowProcPtr Unrealize; MarkUnrealizedWindowProcPtr MarkUnrealizedWindow; @@ -3007,9 +3047,9 @@ UnrealizeTree( *****/ _X_EXPORT int -UnmapWindow(register WindowPtr pWin, Bool fromConfigure) +UnmapWindow(WindowPtr pWin, Bool fromConfigure) { - register WindowPtr pParent; + WindowPtr pParent; xEvent event; Bool wasRealized = (Bool)pWin->realized; Bool wasViewable = (Bool)pWin->viewable; @@ -3066,9 +3106,9 @@ UnmapWindow(register WindowPtr pWin, Bool fromConfigure) *****/ void -UnmapSubwindows(register WindowPtr pWin) +UnmapSubwindows(WindowPtr pWin) { - register WindowPtr pChild, pHead; + WindowPtr pChild, pHead; xEvent event; Bool wasRealized = (Bool)pWin->realized; Bool wasViewable = (Bool)pWin->viewable; @@ -3157,10 +3197,10 @@ UnmapSubwindows(register WindowPtr pWin) void -HandleSaveSet(register ClientPtr client) +HandleSaveSet(ClientPtr client) { - register WindowPtr pParent, pWin; - register int j; + WindowPtr pParent, pWin; + int j; for (j=0; jnumSaved; j++) { @@ -3197,27 +3237,12 @@ HandleSaveSet(register ClientPtr client) client->saveSet = (SaveSetElt *)NULL; } -/** - * - * \param x,y in root - * \param box "return" value - */ -Bool -VisibleBoundingBoxFromPoint(register WindowPtr pWin, int x, int y, BoxPtr box) -{ - if (!pWin->realized) - return (FALSE); - if (POINT_IN_REGION(pWin->drawable.pScreen, &pWin->clipList, x, y, box)) - return(TRUE); - return(FALSE); -} - /** * * \param x,y in root */ Bool -PointInWindowIsVisible(register WindowPtr pWin, int x, int y) +PointInWindowIsVisible(WindowPtr pWin, int x, int y) { BoxRec box; @@ -3236,9 +3261,9 @@ PointInWindowIsVisible(register WindowPtr pWin, int x, int y) _X_EXPORT RegionPtr -NotClippedByChildren(register WindowPtr pWin) +NotClippedByChildren(WindowPtr pWin) { - register ScreenPtr pScreen; + ScreenPtr pScreen; RegionPtr pReg; pScreen = pWin->drawable.pScreen; @@ -3320,30 +3345,6 @@ SendVisibilityNotify(WindowPtr pWin) DeliverEvents(pWin, &event, 1, NullWindow); } -static WindowPtr windowDisableMapUnmapEvents; - -void -DisableMapUnmapEvents(WindowPtr pWin) -{ - assert (windowDisableMapUnmapEvents == NULL); - - windowDisableMapUnmapEvents = pWin; -} - -void -EnableMapUnmapEvents(WindowPtr pWin) -{ - assert (windowDisableMapUnmapEvents != NULL); - - windowDisableMapUnmapEvents = NULL; -} - -Bool -MapUnmapEventsEnabled(WindowPtr pWin) -{ - return pWin != windowDisableMapUnmapEvents; -} - #define RANDOM_WIDTH 32 #ifndef NOLOGOHACK @@ -3584,7 +3585,7 @@ TileScreenSaver(int i, int kind) */ _X_EXPORT WindowPtr -FindWindowWithOptional (register WindowPtr w) +FindWindowWithOptional (WindowPtr w) { do w = w->parent; @@ -3601,10 +3602,10 @@ FindWindowWithOptional (register WindowPtr w) */ _X_EXPORT void -CheckWindowOptionalNeed (register WindowPtr w) +CheckWindowOptionalNeed (WindowPtr w) { - register WindowOptPtr optional; - register WindowOptPtr parentOptional; + WindowOptPtr optional; + WindowOptPtr parentOptional; if (!w->parent) return; @@ -3655,10 +3656,10 @@ CheckWindowOptionalNeed (register WindowPtr w) */ _X_EXPORT Bool -MakeWindowOptional (register WindowPtr pWin) +MakeWindowOptional (WindowPtr pWin) { - register WindowOptPtr optional; - register WindowOptPtr parentOptional; + WindowOptPtr optional; + WindowOptPtr parentOptional; if (pWin->optional) return TRUE; @@ -3696,41 +3697,6 @@ MakeWindowOptional (register WindowPtr pWin) return TRUE; } -void -DisposeWindowOptional (register WindowPtr pWin) -{ - if (!pWin->optional) - return; - /* - * everything is peachy. Delete the optional record - * and clean up - */ - /* - * TOG changed this code to: - * - * if (pWin->cursorIsNone == FALSE) - * FreeCursor (pWin->optional->cursor, (Cursor)0); - * pWin->cursorIsNone = TRUE; - * - * This is blatently wrong; windows without optionals can have - * two different cursor values, either None or sharing their - * parents cursor. This difference is controlled by the - * cursorIsNone value; when TRUE, the window has no cursor, - * when false, it shares its cursor with its parent; TOG - * made it impossible for a window to have a cursor without - * an optional record. - */ - if (pWin->optional->cursor) - { - FreeCursor (pWin->optional->cursor, (Cursor)0); - pWin->cursorIsNone = FALSE; - } - else - pWin->cursorIsNone = TRUE; - xfree (pWin->optional); - pWin->optional = NULL; -} - #ifndef NOLOGOHACK static void DrawLogo(WindowPtr pWin) diff --git a/hw/dmx/dmxclient.h b/hw/dmx/dmxclient.h index 586b82990..657a1275f 100644 --- a/hw/dmx/dmxclient.h +++ b/hw/dmx/dmxclient.h @@ -126,7 +126,7 @@ typedef XID KeySym64; #undef KeySym #endif -/* These are in exglobals.h, but that conflicts with X11/extensions/XKBsrv.h */ +/* These are in exglobals.h, but that conflicts with xkbsrv.h */ extern int ProximityIn; extern int ProximityOut; extern int DeviceValuator; @@ -144,7 +144,7 @@ extern int ChangeDeviceNotify; #ifndef XKB_IN_SERVER #define XKB_IN_SERVER #endif -#include +#include #undef XPointer #endif #include diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index 3bf6bad2b..857f04f6d 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -42,7 +42,7 @@ #endif #ifdef XKB -#include +#include #endif #include diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index b66906380..50aa67341 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -56,6 +56,7 @@ XORG_LIBS = \ parser/libxf86config.a \ dixmods/libdixmods.la \ modes/libxf86modes.a \ + ramdac/libramdac.a \ ddc/libddc.a \ i2c/libi2c.a \ @XORG_LIBS@ diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c index 7617bf78a..9740b0732 100644 --- a/hw/xfree86/common/xf86Bus.c +++ b/hw/xfree86/common/xf86Bus.c @@ -1791,6 +1791,15 @@ convertRange2Host(int entityIndex, resRange *pRange) } } +static void +xf86ConvertListToHost(int entityIndex, resPtr list) +{ + while (list) { + convertRange2Host(entityIndex, &list->val); + list = list->next; + } +} + /* * xf86RegisterResources() -- attempts to register listed resources. * If list is NULL it tries to obtain resources implicitly. Function @@ -2836,18 +2845,7 @@ xf86IsSubsetOf(resRange range, resPtr list) return ret; } -Bool -xf86IsListSubsetOf(resPtr list, resPtr BaseList) -{ - while (list) { - if (! xf86IsSubsetOf(list->val,BaseList)) - return FALSE; - list = list->next; - } - return TRUE; -} - -resPtr +static resPtr findIntersect(resRange Range, resPtr list) { resRange range; @@ -3071,15 +3069,6 @@ xf86NoSharedResources(int screenIndex,resType res) return TRUE; } -void -xf86ConvertListToHost(int entityIndex, resPtr list) -{ - while (list) { - convertRange2Host(entityIndex, &list->val); - list = list->next; - } -} - _X_EXPORT void xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg) { diff --git a/hw/xfree86/common/xf86Bus.h b/hw/xfree86/common/xf86Bus.h index b638e9026..8d7195994 100644 --- a/hw/xfree86/common/xf86Bus.h +++ b/hw/xfree86/common/xf86Bus.h @@ -141,12 +141,9 @@ int xf86AllocateEntity(void); BusType StringToBusType(const char* busID, const char **retID); memType ChkConflict(resRange *rgp, resPtr res, xf86State state); Bool xf86IsSubsetOf(resRange range, resPtr list); -Bool xf86IsListSubsetOf(resPtr list, resPtr BaseList); resPtr xf86ExtractTypeFromList(resPtr list, unsigned long type); -resPtr findIntersect(resRange Range, resPtr list); resPtr xf86FindIntersect(resRange Range, resPtr list); void RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment, Bool useEstimated); -void xf86ConvertListToHost(int entityIndex, resPtr list); #endif /* _XF86_BUS_H */ diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index c0e21dd5e..4db844e19 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -75,7 +75,7 @@ extern DeviceAssocRec mouse_assoc; #ifdef XKB #undef XKB_IN_SERVER #define XKB_IN_SERVER -#include +#include #endif #ifdef RENDER @@ -538,25 +538,6 @@ xf86DriverlistFromCompile(void) return driverlist; } - -char ** -xf86InputDriverlistFromCompile(void) -{ - static char **driverlist = NULL; - static Bool generated = FALSE; - - /* This string is modified in-place */ - static char drivernames[] = IDRIVERS; - - if (!generated) { - generated = TRUE; - driverlist = GenerateDriverlist("input", drivernames); - } - - return driverlist; -} - - /* * xf86ConfigError -- * Print a READABLE ErrorMessage!!! All information that is @@ -2504,17 +2485,8 @@ xf86HandleConfigFile(Bool autoconfig) return CONFIG_OK; } - -/* These make the equivalent parser functions visible to the common layer. */ -Bool -xf86PathIsAbsolute(const char *path) -{ - return (xf86pathIsAbsolute(path) != 0); -} - Bool xf86PathIsSafe(const char *path) { return (xf86pathIsSafe(path) != 0); } - diff --git a/hw/xfree86/common/xf86Config.h b/hw/xfree86/common/xf86Config.h index 0786ec6fe..3787ba21e 100644 --- a/hw/xfree86/common/xf86Config.h +++ b/hw/xfree86/common/xf86Config.h @@ -53,7 +53,6 @@ char ** xf86ModulelistFromConfig(pointer **); char ** xf86DriverlistFromConfig(void); char ** xf86DriverlistFromCompile(void); char ** xf86InputDriverlistFromConfig(void); -char ** xf86InputDriverlistFromCompile(void); Bool xf86BuiltinInputDriver(const char *); ConfigStatus xf86HandleConfigFile(Bool); diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index f71486c9d..4b482dfdc 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -68,7 +68,7 @@ static int nDevToConfig = 0, CurrentDriver; _X_EXPORT xf86MonPtr ConfiguredMonitor; Bool xf86DoConfigurePass1 = TRUE; -Bool foundMouse = FALSE; +static Bool foundMouse = FALSE; #if defined(__UNIXOS2__) #define DFLT_MOUSE_DEV "mouse$" diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c index 204457fb1..43db1ee1a 100644 --- a/hw/xfree86/common/xf86DGA.c +++ b/hw/xfree86/common/xf86DGA.c @@ -43,7 +43,7 @@ #include "servermd.h" #include "micmap.h" #ifdef XKB -#include +#include #endif #include "xf86Xinput.h" @@ -51,11 +51,14 @@ static unsigned long DGAGeneration = 0; static int DGAScreenIndex = -1; +static int mieq_installed = 0; static Bool DGACloseScreen(int i, ScreenPtr pScreen); static void DGADestroyColormap(ColormapPtr pmap); static void DGAInstallColormap(ColormapPtr pmap); static void DGAUninstallColormap(ColormapPtr pmap); +static void DGAHandleEvent(int screen_num, xEvent *event, + DeviceIntPtr device, int nevents); static void DGACopyModeInfo( @@ -96,7 +99,6 @@ typedef struct { Bool grabKeyboard; } DGAScreenRec, *DGAScreenPtr; - _X_EXPORT Bool DGAInit( ScreenPtr pScreen, @@ -146,7 +148,6 @@ DGAInit( modes[i].flags &= ~DGA_PIXMAP_AVAILABLE; #endif - pScreen->devPrivates[DGAScreenIndex].ptr = (pointer)pScreenPriv; pScreenPriv->CloseScreen = pScreen->CloseScreen; pScreen->CloseScreen = DGACloseScreen; @@ -157,11 +158,6 @@ DGAInit( pScreenPriv->UninstallColormap = pScreen->UninstallColormap; pScreen->UninstallColormap = DGAUninstallColormap; - /* - * This is now set in InitOutput(). - * - pScrn->SetDGAMode = xf86SetDGAMode; - */ return TRUE; } @@ -247,12 +243,22 @@ FreeMarkedVisuals(ScreenPtr pScreen) } } - static Bool DGACloseScreen(int i, ScreenPtr pScreen) { DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); + if (XDGAEventBase) { + OsBlockSignals(); + ProcessInputEvents(); + mieqSetHandler(*XDGAEventBase + MotionNotify, NULL); + mieqSetHandler(*XDGAEventBase + ButtonPress, NULL); + mieqSetHandler(*XDGAEventBase + ButtonRelease, NULL); + mieqSetHandler(*XDGAEventBase + KeyPress, NULL); + mieqSetHandler(*XDGAEventBase + KeyRelease, NULL); + OsReleaseSignals(); + } + FreeMarkedVisuals(pScreen); pScreen->CloseScreen = pScreenPriv->CloseScreen; @@ -462,6 +468,15 @@ DGASetInputMode(int index, Bool keyboard, Bool mouse) { pScreenPriv->grabMouse = mouse; pScreenPriv->grabKeyboard = keyboard; + + if (!mieq_installed) { + mieqSetHandler(*XDGAEventBase + MotionNotify, DGAHandleEvent); + mieqSetHandler(*XDGAEventBase + ButtonPress, DGAHandleEvent); + mieqSetHandler(*XDGAEventBase + ButtonRelease, DGAHandleEvent); + mieqSetHandler(*XDGAEventBase + KeyPress, DGAHandleEvent); + mieqSetHandler(*XDGAEventBase + KeyRelease, DGAHandleEvent); + mieq_installed = 1; + } } } @@ -903,21 +918,93 @@ DGAVTSwitch(void) return TRUE; } - -/* We have the power to steal or modify events that are about to get queued */ - Bool -DGAStealKeyEvent(int index, xEvent *e) +DGAStealKeyEvent(int index, int key_code, int is_down) { -} + DGAScreenPtr pScreenPriv; + dgaEvent de; + + if(DGAScreenIndex < 0) /* no DGA */ + return FALSE; + + pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); + + if(!pScreenPriv || !pScreenPriv->grabKeyboard) /* no direct mode */ + return FALSE; + + de.u.u.type = *XDGAEventBase + (is_down ? KeyPress : KeyRelease); + de.u.u.detail = key_code; + de.u.event.time = GetTimeInMillis(); + mieqEnqueue (inputInfo.keyboard, (xEvent *) &de); + + return TRUE; +} static int DGAMouseX, DGAMouseY; Bool -DGAStealMouseEvent(int index, xEvent *e, int dx, int dy) +DGAStealMotionEvent(int index, int dx, int dy) { + DGAScreenPtr pScreenPriv; + dgaEvent de; + + if(DGAScreenIndex < 0) /* no DGA */ + return FALSE; + + pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); + + if(!pScreenPriv || !pScreenPriv->grabMouse) /* no direct mode */ + return FALSE; + + DGAMouseX += dx; + if (DGAMouseX < 0) + DGAMouseX = 0; + else if (DGAMouseX > screenInfo.screens[index]->width) + DGAMouseX = screenInfo.screens[index]->width; + DGAMouseY += dy; + if (DGAMouseY < 0) + DGAMouseY = 0; + else if (DGAMouseY > screenInfo.screens[index]->height) + DGAMouseY = screenInfo.screens[index]->height; + de.u.u.type = *XDGAEventBase + MotionNotify; + de.u.u.detail = 0; + de.u.event.time = GetTimeInMillis(); + de.u.event.dx = dx; + de.u.event.dy = dy; + de.u.event.pad1 = DGAMouseX; + de.u.event.pad2 = DGAMouseY; + mieqEnqueue (inputInfo.pointer, (xEvent *) &de); + return TRUE; } +Bool +DGAStealButtonEvent(int index, int button, int is_down) +{ + DGAScreenPtr pScreenPriv; + dgaEvent de; + + if (DGAScreenIndex < 0) + return FALSE; + + pScreenPriv = DGA_GET_SCREEN_PRIV(screenInfo.screens[index]); + + if (!pScreenPriv || !pScreenPriv->grabMouse) + return FALSE; + + de.u.u.type = *XDGAEventBase + (is_down ? ButtonPress : ButtonRelease); + de.u.u.detail = button; + de.u.event.time = GetTimeInMillis(); + de.u.event.dx = 0; + de.u.event.dy = 0; + de.u.event.pad1 = DGAMouseX; + de.u.event.pad2 = DGAMouseY; + mieqEnqueue (inputInfo.pointer, (xEvent *) &de); + + return TRUE; +} + +/* We have the power to steal or modify events that are about to get queued */ + Bool DGAIsDgaEvent (xEvent *e) { @@ -1124,39 +1211,6 @@ DGAProcessPointerEvent (ScreenPtr pScreen, dgaEvent *de, DeviceIntPtr mouse) } } -Bool -DGADeliverEvent (ScreenPtr pScreen, xEvent *e) -{ - dgaEvent *de = (dgaEvent *) e; - DGAScreenPtr pScreenPriv; - int coreEquiv; - - /* no DGA */ - if (DGAScreenIndex < 0 || XDGAEventBase == 0) - return FALSE; - pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); - - /* DGA not initialized on this screen */ - if (!pScreenPriv) - return FALSE; - - coreEquiv = de->u.u.type - *XDGAEventBase; - /* Not a DGA event */ - if (coreEquiv < KeyPress || coreEquiv > MotionNotify) - return FALSE; - - switch (coreEquiv) { - case KeyPress: - case KeyRelease: - DGAProcessKeyboardEvent (pScreen, de, inputInfo.keyboard); - break; - default: - DGAProcessPointerEvent (pScreen, de, inputInfo.pointer); - break; - } - return TRUE; -} - _X_EXPORT Bool DGAOpenFramebuffer( int index, @@ -1215,3 +1269,35 @@ DGAGetOldDGAMode(int index) return 0; } +static void +DGAHandleEvent(int screen_num, xEvent *event, DeviceIntPtr device, int nevents) +{ + dgaEvent *de = (dgaEvent *) event; + ScreenPtr pScreen = screenInfo.screens[screen_num]; + DGAScreenPtr pScreenPriv; + int coreEquiv; + + /* no DGA */ + if (DGAScreenIndex < 0 || XDGAEventBase == 0) + return; + pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); + + /* DGA not initialized on this screen */ + if (!pScreenPriv) + return; + + coreEquiv = de->u.u.type - *XDGAEventBase; + /* Not a DGA event; shouldn't happen, but you never know. */ + if (coreEquiv < KeyPress || coreEquiv > MotionNotify) + return; + + switch (coreEquiv) { + case KeyPress: + case KeyRelease: + DGAProcessKeyboardEvent (pScreen, de, inputInfo.keyboard); + break; + default: + DGAProcessPointerEvent (pScreen, de, inputInfo.pointer); + break; + } +} diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 05e62f184..3610c17c0 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -126,9 +126,9 @@ extern Bool noXkbExtension; */ #ifdef USE_VT_SYSREQ -Bool VTSysreqToggle = FALSE; +static Bool VTSysreqToggle = FALSE; #endif /* !USE_VT_SYSREQ */ -Bool VTSwitchEnabled = TRUE; /* Allows run-time disabling for +_X_EXPORT Bool VTSwitchEnabled = TRUE; /* Allows run-time disabling for *BSD and for avoiding VT switches when using the DRI automatic full screen mode.*/ diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c index 9b23710bb..b41fe6e5f 100644 --- a/hw/xfree86/common/xf86Globals.c +++ b/hw/xfree86/common/xf86Globals.c @@ -146,7 +146,6 @@ _X_EXPORT confDRIRec xf86ConfigDRI = {0, }; XF86ConfigPtr xf86configptr = NULL; Bool xf86Resetting = FALSE; Bool xf86Initialising = FALSE; -Bool xf86ProbeFailed = FALSE; Bool xf86DoProbe = FALSE; Bool xf86DoConfigure = FALSE; DriverPtr *xf86DriverList = NULL; diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 93c89fd5f..913735bc9 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -2981,3 +2981,16 @@ xf86IsUnblank(int mode) return TRUE; } } + +_X_EXPORT void +xf86MotionHistoryAllocate(LocalDevicePtr local) +{ + AllocateMotionHistory(local->dev); +} + +_X_EXPORT int +xf86GetMotionEvents(DeviceIntPtr pDev, xTimecoord *buff, unsigned long start, + unsigned long stop, ScreenPtr pScreen) +{ + return GetMotionHistory(pDev, buff, start, stop, pScreen); +} diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h index 9279dbd7b..59ce8da86 100644 --- a/hw/xfree86/common/xf86Priv.h +++ b/hw/xfree86/common/xf86Priv.h @@ -100,7 +100,6 @@ extern int xf86NumModuleInfos; extern int xf86NumDrivers; extern Bool xf86Resetting; extern Bool xf86Initialising; -extern Bool xf86ProbeFailed; extern int xf86NumScreens; extern pciVideoPtr *xf86PciVideoInfo; extern xf86CurrentAccessRec xf86CurrentAccess; @@ -155,7 +154,6 @@ extern int pciTestMultiDeviceCard(int bus, int dev, int func, PCITAG** pTag); /* xf86Config.c */ -Bool xf86PathIsAbsolute(const char *path); Bool xf86PathIsSafe(const char *path); /* xf86DefaultModes */ diff --git a/hw/xfree86/common/xf86XKB.c b/hw/xfree86/common/xf86XKB.c index 399eb02d9..b805885bd 100644 --- a/hw/xfree86/common/xf86XKB.c +++ b/hw/xfree86/common/xf86XKB.c @@ -73,7 +73,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #define XF86_OS_PRIVS #include "xf86_OSlib.h" -#include +#include void xf86InitXkb(void) diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 16e330d43..17ffed899 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -90,6 +90,10 @@ #include "mi.h" +#ifdef XFreeXDGA +#include "dgaproc.h" +#endif + xEvent *xf86Events = NULL; static Bool @@ -128,6 +132,9 @@ xf86ProcessCommonOptions(LocalDevicePtr local, } else { xf86Msg(X_CONFIG, "%s: doesn't report drag events\n", local->name); } + + /* Backwards compatibility. */ + local->history_size = GetMotionHistorySize(); } /*********************************************************************** @@ -395,10 +402,12 @@ xf86PostMotionEvent(DeviceIntPtr device, { va_list var; int i = 0, nevents = 0; + int dx, dy; Bool drag = xf86SendDragEvents(device); int *valuators = NULL; int flags = 0; xEvent *xE = NULL; + int index; if (is_absolute) flags = POINTER_ABSOLUTE; @@ -412,6 +421,24 @@ xf86PostMotionEvent(DeviceIntPtr device, valuators[i] = va_arg(var, int); va_end(var); +#if XFreeXDGA + if (first_valuator == 0 && num_valuators >= 2) { + if (miPointerGetScreen(inputInfo.pointer)) { + index = miPointerGetScreen(inputInfo.pointer)->myNum; + if (is_absolute) { + dx = valuators[0] - device->valuator->lastx; + dy = valuators[1] - device->valuator->lasty; + } + else { + dx = valuators[0]; + dy = valuators[1]; + } + if (DGAStealMotionEvent(index, dx, dy)) + goto out; + } + } +#endif + if (!xf86Events) xf86Events = (xEvent *)xcalloc(sizeof(xEvent), GetMaximumEventsNum()); if (!xf86Events) @@ -430,6 +457,7 @@ xf86PostMotionEvent(DeviceIntPtr device, } } +out: xfree(valuators); } @@ -476,6 +504,15 @@ xf86PostButtonEvent(DeviceIntPtr device, va_list var; int *valuators = NULL; int i = 0, nevents = 0; + int index; + +#if XFreeXDGA + if (miPointerGetScreen(inputInfo.pointer)) { + index = miPointerGetScreen(inputInfo.pointer)->myNum; + if (DGAStealButtonEvent(index, button, is_down)) + return; + } +#endif valuators = xcalloc(sizeof(int), num_valuators); @@ -552,6 +589,15 @@ xf86PostKeyboardEvent(DeviceIntPtr device, int is_down) { int nevents = 0, i = 0; + int index; + +#if XFreeXDGA + if (miPointerGetScreen(inputInfo.pointer)) { + index = miPointerGetScreen(inputInfo.pointer)->myNum; + if (DGAStealKeyEvent(index, key_code, is_down)) + return; + } +#endif if (!xf86Events) xf86Events = (xEvent *)xcalloc(sizeof(xEvent), GetMaximumEventsNum()); diff --git a/hw/xfree86/common/xf86Xinput.h b/hw/xfree86/common/xf86Xinput.h index fe65643ce..b2bc8dec1 100644 --- a/hw/xfree86/common/xf86Xinput.h +++ b/hw/xfree86/common/xf86Xinput.h @@ -86,6 +86,9 @@ #define XI_PRIVATE(dev) \ (((LocalDevicePtr)((dev)->public.devicePrivate))->private) +/* Stupid API backwards-compatibility. */ +#define TS_Raw 60 +#define TS_Scaled 61 #ifdef XINPUT /* This holds the input driver entry and module information. */ @@ -144,6 +147,7 @@ typedef struct _LocalDeviceRec { InputDriverPtr drv; pointer module; pointer options; + unsigned int history_size; } LocalDeviceRec, *LocalDevicePtr, InputInfoRec, *InputInfoPtr; typedef struct _DeviceAssocRec @@ -191,6 +195,10 @@ InputInfoPtr xf86AllocateInput(InputDriverPtr drv, int flags); InputDriverPtr xf86LookupInputDriver(const char *name); InputInfoPtr xf86LookupInput(const char *name); void xf86DeleteInput(InputInfoPtr pInp, int flags); +void xf86MotionHistoryAllocate(LocalDevicePtr local); +int xf86GetMotionEvents(DeviceIntPtr dev, xTimecoord *buff, + unsigned long start, unsigned long stop, + ScreenPtr pScreen); /* xf86Option.c */ void xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts, diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index 3e908b86a..2b097d2db 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -110,7 +110,7 @@ static void xf86XVAdjustFrame(int index, int x, int y, int flags); static Bool xf86XVInitAdaptors(ScreenPtr, XF86VideoAdaptorPtr*, int); -int XF86XVWindowIndex = -1; +static int XF86XVWindowIndex = -1; int XF86XvScreenIndex = -1; static unsigned long XF86XVGeneration = 0; static unsigned long PortResource = 0; diff --git a/hw/xfree86/ddc/xf86DDC.c b/hw/xfree86/ddc/xf86DDC.c index 4ce585c9f..21984bc04 100644 --- a/hw/xfree86/ddc/xf86DDC.c +++ b/hw/xfree86/ddc/xf86DDC.c @@ -15,52 +15,6 @@ static const OptionInfoRec *DDCAvailableOptions(void *unused); -#if DDC_MODULE - -static MODULESETUPPROTO(ddcSetup); - -static XF86ModuleVersionInfo ddcVersRec = -{ - "ddc", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - 1, 0, 0, - ABI_CLASS_VIDEODRV, /* needs the video driver ABI */ - ABI_VIDEODRV_VERSION, - MOD_CLASS_NONE, - {0,0,0,0} -}; - -_X_EXPORT XF86ModuleData ddcModuleData = { &ddcVersRec, ddcSetup, NULL }; - -ModuleInfoRec DDC = { - 1, - "DDC", - NULL, - 0, - DDCAvailableOptions, -}; - -static pointer -ddcSetup(pointer module, pointer opts, int *errmaj, int *errmin) -{ - static Bool setupDone = FALSE; - - if (!setupDone) { - setupDone = TRUE; - xf86AddModuleInfo(&DDC, module); - } - /* - * The return value must be non-NULL on success even though there - * is no TearDownProc. - */ - return (pointer)1; -} - -#endif - #define RETRIES 4 static unsigned char *EDIDRead_DDC1( @@ -337,6 +291,12 @@ DDCRead_DDC2(int scrnIndex, I2CBusPtr pBus, int start, int len) unsigned char *R_Buffer; int i; + /* + * Slow down the bus so that older monitors don't + * miss things. + */ + pBus->RiseFallTime = 20; + if (!(dev = xf86I2CFindDev(pBus, 0x00A0))) { dev = xf86CreateI2CDevRec(); dev->DevName = "ddc2"; @@ -344,7 +304,6 @@ DDCRead_DDC2(int scrnIndex, I2CBusPtr pBus, int start, int len) dev->ByteTimeout = 2200; /* VESA DDC spec 3 p. 43 (+10 %) */ dev->StartTimeout = 550; dev->BitTimeout = 40; - dev->ByteTimeout = 40; dev->AcknTimeout = 40; dev->pI2CBus = pBus; diff --git a/hw/xfree86/dixmods/extmod/dgaproc.h b/hw/xfree86/dixmods/extmod/dgaproc.h index 5e424afb2..aaea4e20c 100644 --- a/hw/xfree86/dixmods/extmod/dgaproc.h +++ b/hw/xfree86/dixmods/extmod/dgaproc.h @@ -120,8 +120,9 @@ int DGAGetOldDGAMode(int Index); int DGAGetModeInfo(int Index, XDGAModePtr mode, int num); Bool DGAVTSwitch(void); -Bool DGAStealMouseEvent(int Index, xEvent *e, int dx, int dy); -Bool DGAStealKeyEvent(int Index, xEvent *e); +Bool DGAStealButtonEvent(int Index, int button, int is_down); +Bool DGAStealMotionEvent(int Index, int dx, int dy); +Bool DGAStealKeyEvent(int Index, int key_code, int is_down); Bool DGAIsDgaEvent (xEvent *e); Bool DGADeliverEvent (ScreenPtr pScreen, xEvent *e); diff --git a/hw/xfree86/dixmods/xkbKillSrv.c b/hw/xfree86/dixmods/xkbKillSrv.c index 415873ad0..b3399db4a 100644 --- a/hw/xfree86/dixmods/xkbKillSrv.c +++ b/hw/xfree86/dixmods/xkbKillSrv.c @@ -40,7 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include #include "xf86.h" diff --git a/hw/xfree86/dixmods/xkbPrivate.c b/hw/xfree86/dixmods/xkbPrivate.c index e6d4f0fc0..e0cd21739 100644 --- a/hw/xfree86/dixmods/xkbPrivate.c +++ b/hw/xfree86/dixmods/xkbPrivate.c @@ -12,7 +12,7 @@ #include #include "windowstr.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include "xf86.h" diff --git a/hw/xfree86/dixmods/xkbVT.c b/hw/xfree86/dixmods/xkbVT.c index a1cdc7016..e6d69e2eb 100644 --- a/hw/xfree86/dixmods/xkbVT.c +++ b/hw/xfree86/dixmods/xkbVT.c @@ -40,7 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include #include "xf86.h" diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c index c183e2a1f..7bd07c003 100644 --- a/hw/xfree86/dri/dri.c +++ b/hw/xfree86/dri/dri.c @@ -71,6 +71,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "mipointer.h" #include "xf86_OSproc.h" +#define PCI_BUS_NO_DOMAIN(bus) ((bus) & 0xffu) + #if !defined(PANORAMIX) extern Bool noPanoramiXExtension; #endif @@ -2202,8 +2204,8 @@ DRICreatePCIBusID(pciVideoPtr PciInfo) tag = pciTag(PciInfo->bus, PciInfo->device, PciInfo->func); domain = xf86GetPciDomain(tag); - snprintf(busID, 20, "pci:%04x:%02x:%02x.%d", domain, PciInfo->bus, - PciInfo->device, PciInfo->func); + snprintf(busID, 20, "pci:%04x:%02x:%02x.%d", domain, + PCI_BUS_NO_DOMAIN(PciInfo->bus), PciInfo->device, PciInfo->func); return busID; } diff --git a/hw/xfree86/i2c/uda1380_module.c b/hw/xfree86/i2c/uda1380_module.c index 384458326..895f8c6f2 100644 --- a/hw/xfree86/i2c/uda1380_module.c +++ b/hw/xfree86/i2c/uda1380_module.c @@ -12,7 +12,7 @@ static XF86ModuleVersionInfo uda1380VersRec = MODULEVENDORSTRING, MODINFOSTRING1, MODINFOSTRING2, - XF86_VERSION_CURRENT, + XORG_VERSION_CURRENT, 1, 0, 0, ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */ ABI_VIDEODRV_VERSION, diff --git a/hw/xfree86/i2c/xf86i2cmodule.c b/hw/xfree86/i2c/xf86i2cmodule.c deleted file mode 100644 index 3c6d313c7..000000000 --- a/hw/xfree86/i2c/xf86i2cmodule.c +++ /dev/null @@ -1,36 +0,0 @@ -/* (c) Itai Nahshon - * - * This code is derived from and inspired by the I2C driver - * from the Linux kernel. - * (c) 1998 Gerd Knorr - */ - -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include "xf86Module.h" - -static MODULESETUPPROTO(i2cSetup); - -static XF86ModuleVersionInfo i2cVersRec = -{ - "i2c", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - 1, 2, 0, - ABI_CLASS_VIDEODRV, /* This needs the video driver ABI */ - ABI_VIDEODRV_VERSION, - MOD_CLASS_NONE, - {0,0,0,0} -}; - -_X_EXPORT XF86ModuleData i2cModuleData = { &i2cVersRec, i2cSetup, NULL }; - -static pointer -i2cSetup(pointer module, pointer opts, int *errmaj, int *errmin) { -/* ErrorF("i2cSetup\n"); */ - return (pointer)1; -} diff --git a/hw/xfree86/loader/Makefile.am b/hw/xfree86/loader/Makefile.am index ceb66a231..ef9ab9ab3 100644 --- a/hw/xfree86/loader/Makefile.am +++ b/hw/xfree86/loader/Makefile.am @@ -2,7 +2,8 @@ noinst_LIBRARIES = libloader.a INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser -I$(srcdir)/../dixmods/extmod \ -I$(srcdir)/../vbe -I$(top_srcdir)/miext/cw -I$(srcdir)/../int10 \ - -I$(srcdir)/../ddc -I$(srcdir)/../i2c -I$(srcdir)/../modes + -I$(srcdir)/../ddc -I$(srcdir)/../i2c -I$(srcdir)/../modes \ + -I$(srcdir)/../ramdac #AM_LDFLAGS = -r AM_CFLAGS = -DIN_LOADER $(DIX_CFLAGS) $(XORG_CFLAGS) diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c index 6957f063e..2991c18fa 100644 --- a/hw/xfree86/loader/dixsym.c +++ b/hw/xfree86/loader/dixsym.c @@ -87,7 +87,7 @@ #endif #include "selection.h" #ifdef XKB -#include +#include extern int XkbDfltRepeatDelay, XkbDfltRepeatInterval; #endif diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index ddd624c2a..774a4c4a0 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -189,101 +189,6 @@ _LoaderListPop(int handle) return 0; } -/* - * _LoaderHandleToName() will return the name of the first module with a - * given handle. This requires getting the last module on the LIFO with - * the given handle. - */ -char * -_LoaderHandleToName(int handle) -{ - loaderPtr item = listHead; - loaderPtr aritem = NULL; - loaderPtr lastitem = NULL; - - if (handle < 0) { - return "(built-in)"; - } - while (item) { - if (item->handle == handle) { - if (strchr(item->name, ':') == NULL) - aritem = item; - else - lastitem = item; - } - item = item->next; - } - - if (aritem) - return aritem->name; - - if (lastitem) - return lastitem->name; - - return 0; -} - -/* - * _LoaderHandleToCanonicalName() will return the cname of the first module - * with a given handle. This requires getting the last module on the LIFO with - * the given handle. - */ -char * -_LoaderHandleToCanonicalName(int handle) -{ - loaderPtr item = listHead; - loaderPtr lastitem = NULL; - - if (handle < 0) { - return "(built-in)"; - } - while (item) { - if (item->handle == handle) { - lastitem = item; - } - item = item->next; - } - - if (lastitem) - return lastitem->cname; - - return NULL; -} - -/* - * _LoaderModuleToName() will return the name of the first module with a - * given handle. This requires getting the last module on the LIFO with - * the given handle. - */ -char * -_LoaderModuleToName(int module) -{ - loaderPtr item = listHead; - loaderPtr aritem = NULL; - loaderPtr lastitem = NULL; - - if (module < 0) { - return "(built-in)"; - } - while (item) { - if (item->module == module) { - if (strchr(item->name, ':') == NULL) - aritem = item; - else - lastitem = item; - } - item = item->next; - } - - if (aritem) - return aritem->name; - - if (lastitem) - return lastitem->name; - - return 0; -} - /* These four are just ABI stubs */ _X_EXPORT void LoaderRefSymbols(const char *sym0, ...) @@ -450,35 +355,14 @@ LoaderUnload(int handle) return 0; } -void -LoaderDuplicateSymbol(const char *symbol, const int handle) -{ - ErrorF("Duplicate symbol %s in %s\n", symbol, - listHead ? listHead->name : "(built-in)"); - ErrorF("Also defined in %s\n", _LoaderHandleToName(handle)); - FatalError("Module load failure\n"); -} - unsigned long LoaderOptions = 0; -void -LoaderResetOptions(void) -{ - LoaderOptions = 0; -} - void LoaderSetOptions(unsigned long opts) { LoaderOptions |= opts; } -void -LoaderClearOptions(unsigned long opts) -{ - LoaderOptions &= ~opts; -} - _X_EXPORT int LoaderGetABIVersion(const char *abiclass) { diff --git a/hw/xfree86/loader/loaderProcs.h b/hw/xfree86/loader/loaderProcs.h index ecbd6762d..b71ad4590 100644 --- a/hw/xfree86/loader/loaderProcs.h +++ b/hw/xfree86/loader/loaderProcs.h @@ -97,9 +97,6 @@ void LoadFont(FontModule *); void UnloadModule(ModuleDescPtr); void UnloadSubModule(ModuleDescPtr); void UnloadDriver(ModuleDescPtr); -void FreeModuleDesc(ModuleDescPtr mod); -ModuleDescPtr NewModuleDesc(const char *); -ModuleDescPtr AddSibling(ModuleDescPtr head, ModuleDescPtr new); void LoaderSetPath(const char *path); void LoaderSortExtensions(void); @@ -108,7 +105,6 @@ unsigned long LoaderGetModuleVersion(ModuleDescPtr mod); void LoaderResetOptions(void); void LoaderSetOptions(unsigned long); -void LoaderClearOptions(unsigned long); /* Options for LoaderSetOptions */ #define LDR_OPT_ABI_MISMATCH_NONFATAL 0x0001 diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index e4892123b..db12da466 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -745,6 +745,13 @@ CheckVersion(const char *module, XF86ModuleVersionInfo * data, return TRUE; } +static ModuleDescPtr +AddSibling(ModuleDescPtr head, ModuleDescPtr new) +{ + new->sib = head; + return (new); +} + _X_EXPORT ModuleDescPtr LoadSubModule(ModuleDescPtr parent, const char *module, const char **subdirlist, const char **patternlist, @@ -775,35 +782,28 @@ LoadSubModule(ModuleDescPtr parent, const char *module, return submod; } -ModuleDescPtr -LoadSubModuleLocal(ModuleDescPtr parent, const char *module, - const char **subdirlist, const char **patternlist, - pointer options, const XF86ModReqInfo * modreq, - int *errmaj, int *errmin) +static ModuleDescPtr +NewModuleDesc(const char *name) { - ModuleDescPtr submod; + ModuleDescPtr mdp = xalloc(sizeof(ModuleDesc)); - xf86MsgVerb(X_INFO, 3, "Loading local sub module \"%s\"\n", module); - - if (PathIsAbsolute(module)) - { - xf86Msg(X_ERROR, - "LoadSubModule: Absolute module path not permitted: \"%s\"\n", - module); - if (errmaj) - *errmaj = LDR_BADUSAGE; - if (errmin) - *errmin = 0; - return NULL; + if (mdp) { + mdp->child = NULL; + mdp->sib = NULL; + mdp->parent = NULL; + mdp->demand_next = NULL; + mdp->name = xstrdup(name); + mdp->filename = NULL; + mdp->identifier = NULL; + mdp->client_id = 0; + mdp->in_use = 0; + mdp->handle = -1; + mdp->SetupProc = NULL; + mdp->TearDownProc = NULL; + mdp->TearDownData = NULL; } - submod = doLoadModule(module, NULL, subdirlist, patternlist, options, - modreq, errmaj, errmin, 0); - if (submod && submod != (ModuleDescPtr) 1) { - parent->child = AddSibling(parent->child, submod); - submod->parent = parent; - } - return submod; + return (mdp); } _X_EXPORT ModuleDescPtr @@ -841,6 +841,7 @@ DuplicateModule(ModuleDescPtr mod, ModuleDescPtr parent) static const char *compiled_in_modules[] = { "ddc", "i2c", + "ramdac", NULL }; @@ -861,14 +862,14 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, PatternPtr patterns = NULL; int noncanonical = 0; char *m = NULL; - char **cim; + const char **cim; xf86MsgVerb(X_INFO, 3, "LoadModule: \"%s\"", module); for (cim = compiled_in_modules; *cim; cim++) if (!strcmp (module, *cim)) { - xf86MsgVerb(X_INFO, 3, "Module alread ybuilt-in"); + xf86MsgVerb(X_INFO, 3, "Module already built-in\n"); return (ModuleDescPtr) 1; } @@ -1098,26 +1099,12 @@ LoadModule(const char *module, const char *path, const char **subdirlist, modreq, errmaj, errmin, LD_FLAG_GLOBAL); } -ModuleDescPtr -LoadDriver(const char *module, const char *path, int handle, pointer options, - int *errmaj, int *errmin) -{ - return LoadModule(module, path, NULL, NULL, options, NULL, errmaj, - errmin); -} - void UnloadModule(ModuleDescPtr mod) { UnloadModuleOrDriver(mod); } -void -UnloadDriver(ModuleDescPtr mod) -{ - UnloadModuleOrDriver(mod); -} - static void UnloadModuleOrDriver(ModuleDescPtr mod) { @@ -1167,7 +1154,7 @@ UnloadSubModule(ModuleDescPtr mod) xfree(mod); } -void +static void FreeModuleDesc(ModuleDescPtr head) { ModuleDescPtr sibs, prev; @@ -1176,7 +1163,7 @@ FreeModuleDesc(ModuleDescPtr head) return; /* * only free it if it's not marked as in use. In use means that it may - * be unloaded someday, and UnloadModule or UnloadDriver will free it + * be unloaded someday, and UnloadModule will free it */ if (head->in_use) return; @@ -1191,38 +1178,6 @@ FreeModuleDesc(ModuleDescPtr head) } } -ModuleDescPtr -NewModuleDesc(const char *name) -{ - ModuleDescPtr mdp = xalloc(sizeof(ModuleDesc)); - - if (mdp) { - mdp->child = NULL; - mdp->sib = NULL; - mdp->parent = NULL; - mdp->demand_next = NULL; - mdp->name = xstrdup(name); - mdp->filename = NULL; - mdp->identifier = NULL; - mdp->client_id = 0; - mdp->in_use = 0; - mdp->handle = -1; - mdp->SetupProc = NULL; - mdp->TearDownProc = NULL; - mdp->TearDownData = NULL; - } - - return (mdp); -} - -ModuleDescPtr -AddSibling(ModuleDescPtr head, ModuleDescPtr new) -{ - new->sib = head; - return (new); - -} - static void RemoveChild(ModuleDescPtr child) { diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c index 6337265a8..5175f01f9 100644 --- a/hw/xfree86/loader/xf86sym.c +++ b/hw/xfree86/loader/xf86sym.c @@ -1170,6 +1170,7 @@ _X_HIDDEN void *xfree86LookupTab[] = { SYMVAR(pciNumBuses) /* modes */ + SYMVAR(xf86CrtcConfigPrivateIndex) SYMFUNC(xf86CrtcConfigInit) SYMFUNC(xf86CrtcConfigPrivateIndex) SYMFUNC(xf86CrtcCreate) @@ -1220,6 +1221,11 @@ _X_HIDDEN void *xfree86LookupTab[] = { SYMFUNC(xf86RandR12SetConfig) SYMFUNC(xf86RandR12SetRotations) #endif + SYMFUNC(xf86_cursors_init) + SYMFUNC(xf86_reload_cursors) + SYMFUNC(xf86_show_cursors) + SYMFUNC(xf86_hide_cursors) + SYMFUNC(xf86_cursors_fini) SYMFUNC(xf86DoEDID_DDC1) SYMFUNC(xf86DoEDID_DDC2) diff --git a/hw/xfree86/modes/Makefile.am b/hw/xfree86/modes/Makefile.am index e0b613666..1f82068b3 100644 --- a/hw/xfree86/modes/Makefile.am +++ b/hw/xfree86/modes/Makefile.am @@ -3,6 +3,7 @@ noinst_LIBRARIES = libxf86modes.a libxf86modes_a_SOURCES = \ xf86Crtc.c \ xf86Crtc.h \ + xf86Cursors.c \ xf86cvt.c \ xf86DiDGA.c \ xf86EdidModes.c \ @@ -16,7 +17,8 @@ libxf86modes_a_SOURCES = \ INCLUDES = $(XORG_INCS) -I$(srcdir)/../ddc -I$(srcdir)/../i2c \ -I$(srcdir)/../loader -I$(srcdir)/../rac -I$(srcdir)/../parser \ -I$(srcdir)/../scanpci -I$(srcdir)/../vbe -I$(srcdir)/../int10 \ - -I$(srcdir)/../vgahw -I$(srcdir)/../dixmods/extmod + -I$(srcdir)/../vgahw -I$(srcdir)/../ramdac \ + -I$(srcdir)/../dixmods/extmod sdk_HEADERS = \ xf86Crtc.h \ diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 279449688..7d86b6606 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -312,7 +312,13 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, { xf86OutputPtr output = xf86_config->output[i]; if (output->crtc == crtc) + { output->funcs->commit(output); +#ifdef RANDR_12_INTERFACE + if (output->randr_output) + RRPostPendingProperties (output->randr_output); +#endif + } } /* XXX free adjustedmode */ @@ -565,6 +571,36 @@ xf86CrtcCreateScreenResources (ScreenPtr screen) return TRUE; } +/* + * Clean up config on server reset + */ +static Bool +xf86CrtcCloseScreen (int index, ScreenPtr screen) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn); + int o, c; + + screen->CloseScreen = config->CloseScreen; + + xf86RotateCloseScreen (screen); + + for (o = 0; o < config->num_output; o++) + { + xf86OutputPtr output = config->output[o]; + + output->crtc = NULL; + output->randr_output = NULL; + } + for (c = 0; c < config->num_crtc; c++) + { + xf86CrtcPtr crtc = config->crtc[c]; + + crtc->randr_crtc = NULL; + } + return screen->CloseScreen (index, screen); +} + /* * Called at ScreenInit time to set up */ @@ -596,6 +632,10 @@ xf86CrtcScreenInit (ScreenPtr screen) /* Wrap CreateScreenResources so we can initialize the RandR code */ config->CreateScreenResources = screen->CreateScreenResources; screen->CreateScreenResources = xf86CrtcCreateScreenResources; + + config->CloseScreen = screen->CloseScreen; + screen->CloseScreen = xf86CrtcCloseScreen; + return TRUE; } @@ -1158,7 +1198,10 @@ xf86ProbeOutputModes (ScrnInfoPtr scrn, int maxX, int maxY) output->status = (*output->funcs->detect)(output); if (output->status == XF86OutputStatusDisconnected) + { + xf86OutputSetEDID (output, NULL); continue; + } memset (&mon_rec, '\0', sizeof (mon_rec)); @@ -1552,6 +1595,8 @@ xf86InitialConfiguration (ScrnInfoPtr scrn, Bool canGrow) { crtc->desiredMode = *mode; crtc->desiredRotation = output->initial_rotation; + crtc->desiredX = output->initial_x; + crtc->desiredY = output->initial_y; crtc->enabled = TRUE; crtc->x = output->initial_x; crtc->y = output->initial_y; @@ -1776,7 +1821,12 @@ xf86SetSingleMode (ScrnInfoPtr pScrn, DisplayModePtr desired, Rotation rotation) if (!xf86CrtcSetMode (crtc, crtc_mode, rotation, 0, 0)) ok = FALSE; else + { crtc->desiredMode = *crtc_mode; + crtc->desiredRotation = rotation; + crtc->desiredX = 0; + crtc->desiredY = 0; + } } xf86DisableUnusedFunctions(pScrn); return ok; @@ -1886,7 +1936,7 @@ xf86OutputSetEDIDProperty (xf86OutputPtr output, void *data, int data_len) if (data_len != 0) { RRChangeOutputProperty(output->randr_output, edid_atom, XA_INTEGER, 8, - PropModeReplace, data_len, data, FALSE); + PropModeReplace, data_len, data, FALSE, TRUE); } else { RRDeleteOutputProperty(output->randr_output, edid_atom); } diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h index 6152ae4c9..42daf6079 100644 --- a/hw/xfree86/modes/xf86Crtc.h +++ b/hw/xfree86/modes/xf86Crtc.h @@ -28,6 +28,7 @@ #include "xf86Rename.h" #endif #include "xf86Modes.h" +#include "xf86Cursor.h" #include "damage.h" /* Compat definitions for older X Servers. */ @@ -37,6 +38,9 @@ #ifndef M_T_DRIVER #define M_T_DRIVER 0x40 #endif +#ifndef HARDWARE_CURSOR_ARGB +#define HARDWARE_CURSOR_ARGB 0x00004000 +#endif typedef struct _xf86Crtc xf86CrtcRec, *xf86CrtcPtr; typedef struct _xf86Output xf86OutputRec, *xf86OutputPtr; @@ -154,6 +158,42 @@ typedef struct _xf86CrtcFuncs { void (*shadow_destroy) (xf86CrtcPtr crtc, PixmapPtr pPixmap, void *data); + /** + * Set cursor colors + */ + void + (*set_cursor_colors) (xf86CrtcPtr crtc, int bg, int fg); + + /** + * Set cursor position + */ + void + (*set_cursor_position) (xf86CrtcPtr crtc, int x, int y); + + /** + * Show cursor + */ + void + (*show_cursor) (xf86CrtcPtr crtc); + + /** + * Hide cursor + */ + void + (*hide_cursor) (xf86CrtcPtr crtc); + + /** + * Load monochrome image + */ + void + (*load_cursor_image) (xf86CrtcPtr crtc, CARD8 *image); + + /** + * Load ARGB image + */ + void + (*load_cursor_argb) (xf86CrtcPtr crtc, CARD32 *image); + /** * Clean up driver-specific bits of the crtc */ @@ -174,12 +214,6 @@ struct _xf86Crtc { */ Bool enabled; - /** Track whether cursor is within CRTC range */ - Bool cursorInRange; - - /** Track state of cursor associated with this CRTC */ - Bool cursorShown; - /** * Active mode * @@ -232,6 +266,19 @@ struct _xf86Crtc { #else void *randr_crtc; #endif + + /** + * Current cursor is ARGB + */ + Bool cursor_argb; + /** + * Track whether cursor is within CRTC range + */ + Bool cursor_in_range; + /** + * Track state of cursor associated with this CRTC + */ + Bool cursor_shown; }; typedef struct _xf86OutputFuncs { @@ -482,7 +529,8 @@ typedef struct _xf86CrtcConfig { int maxWidth, maxHeight; /* For crtc-based rotation */ - DamagePtr rotationDamage; + DamagePtr rotation_damage; + Bool rotation_damage_registered; /* DGA */ unsigned int dga_flags; @@ -495,6 +543,15 @@ typedef struct _xf86CrtcConfig { const xf86CrtcConfigFuncsRec *funcs; CreateScreenResourcesProcPtr CreateScreenResources; + + CloseScreenProcPtr CloseScreen; + + /* Cursor information */ + xf86CursorInfoPtr cursor_info; + CursorPtr cursor; + CARD8 *cursor_image; + Bool cursor_on; + CARD32 cursor_fg, cursor_bg; } xf86CrtcConfigRec, *xf86CrtcConfigPtr; extern int xf86CrtcConfigPrivateIndex; @@ -538,6 +595,12 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, Bool xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation); +/* + * Clean up rotation during CloseScreen + */ +void +xf86RotateCloseScreen (ScreenPtr pScreen); + /** * Return whether any output is assigned to the crtc */ @@ -637,4 +700,41 @@ xf86ConnectorGetName(xf86ConnectorType connector); Bool xf86SetDesiredModes (ScrnInfoPtr pScrn); +/** + * Initialize the CRTC-based cursor code. CRTC function vectors must + * contain relevant cursor setting functions. + * + * Driver should call this from ScreenInit function + */ +Bool +xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags); + +/** + * Called when anything on the screen is reconfigured. + * + * Reloads cursor images as needed, then adjusts cursor positions. + * + * Driver should call this from crtc commit function. + */ +void +xf86_reload_cursors (ScreenPtr screen); + +/** + * Called from EnterVT to turn the cursors back on + */ +void +xf86_show_cursors (ScrnInfoPtr scrn); + +/** + * Called by the driver to turn cursors off + */ +void +xf86_hide_cursors (ScrnInfoPtr scrn); + +/** + * Clean up CRTC-based cursor code. Driver must call this at CloseScreen time. + */ +void +xf86_cursors_fini (ScreenPtr screen); + #endif /* _XF86CRTC_H_ */ diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c new file mode 100644 index 000000000..009cccf89 --- /dev/null +++ b/hw/xfree86/modes/xf86Cursors.c @@ -0,0 +1,607 @@ +/* + * Copyright © 2007 Keith Packard + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting documentation, and + * that the name of the copyright holders not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. The copyright holders make no representations + * about the suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO + * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#ifdef HAVE_XORG_CONFIG_H +#include +#else +#ifdef HAVE_CONFIG_H +#include +#endif +#endif + +#include +#include +#include + +#include "xf86.h" +#include "xf86DDC.h" +#include "xf86Crtc.h" +#include "xf86Modes.h" +#include "xf86RandR12.h" +#include "X11/extensions/render.h" +#define DPMS_SERVER +#include "X11/extensions/dpms.h" +#include "X11/Xatom.h" +#ifdef RENDER +#include "picturestr.h" +#endif +#include "cursorstr.h" + +/* + * Given a screen coordinate, rotate back to a cursor source coordinate + */ +static void +xf86_crtc_rotate_coord (Rotation rotation, + int width, + int height, + int x_dst, + int y_dst, + int *x_src, + int *y_src) +{ + if (rotation & RR_Reflect_X) + x_dst = width - x_dst - 1; + if (rotation & RR_Reflect_Y) + y_dst = height - y_dst - 1; + + switch (rotation & 0xf) { + case RR_Rotate_0: + *x_src = x_dst; + *y_src = y_dst; + break; + case RR_Rotate_90: + *x_src = height - y_dst - 1; + *y_src = x_dst; + break; + case RR_Rotate_180: + *x_src = width - x_dst - 1; + *y_src = height - y_dst - 1; + break; + case RR_Rotate_270: + *x_src = y_dst; + *y_src = width - x_dst - 1; + break; + } +} + +/* + * Convert an x coordinate to a position within the cursor bitmap + */ +static int +cursor_bitpos (int flags, int x, Bool mask) +{ + if (flags & HARDWARE_CURSOR_SWAP_SOURCE_AND_MASK) + mask = !mask; + if (flags & HARDWARE_CURSOR_NIBBLE_SWAPPED) + x = (x & ~3) | (3 - (x & 3)); + if (flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST) + x = (x & ~7) | (7 - (x & 7)); + if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1) + x = (x << 1) + mask; + else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_8) + x = ((x & ~7) << 1) | (mask << 3) | (x & 7); + else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_16) + x = ((x & ~15) << 1) | (mask << 4) | (x & 15); + else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_32) + x = ((x & ~31) << 1) | (mask << 5) | (x & 31); + else if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64) + x = ((x & ~63) << 1) | (mask << 6) | (x & 63); + return x; +} + +/* + * Fetch one bit from a cursor bitmap + */ +static CARD8 +get_bit (CARD8 *image, int stride, int flags, int x, int y, Bool mask) +{ + x = cursor_bitpos (flags, x, mask); + image += y * stride; + return (image[(x >> 3)] >> (x & 7)) & 1; +} + +/* + * Set one bit in a cursor bitmap + */ +static void +set_bit (CARD8 *image, int stride, int flags, int x, int y, Bool mask) +{ + x = cursor_bitpos (flags, x, mask); + image += y * stride; + image[(x >> 3)] |= 1 << (x & 7); +} + +/* + * Load a two color cursor into a driver that supports only ARGB cursors + */ +static void +xf86_crtc_convert_cursor_to_argb (xf86CrtcPtr crtc, unsigned char *src) +{ + ScrnInfoPtr scrn = crtc->scrn; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + CARD32 *cursor_image = (CARD32 *) xf86_config->cursor_image; + int x, y; + int xin, yin; + int stride = cursor_info->MaxWidth >> 2; + int flags = cursor_info->Flags; + CARD32 bits; + +#ifdef ARGB_CURSOR + crtc->cursor_argb = FALSE; +#endif + + for (y = 0; y < cursor_info->MaxHeight; y++) + for (x = 0; x < cursor_info->MaxWidth; x++) + { + xf86_crtc_rotate_coord (crtc->rotation, + cursor_info->MaxWidth, + cursor_info->MaxHeight, + x, y, &xin, &yin); + if (get_bit (src, stride, flags, xin, yin, TRUE) == + ((flags & HARDWARE_CURSOR_INVERT_MASK) == 0)) + { + if (get_bit (src, stride, flags, xin, yin, FALSE)) + bits = xf86_config->cursor_fg; + else + bits = xf86_config->cursor_bg; + } + else + bits = 0; + cursor_image[y * cursor_info->MaxWidth + x] = bits; + } + crtc->funcs->load_cursor_argb (crtc, cursor_image); +} + +/* + * Set the colors for a two-color cursor (ignore for ARGB cursors) + */ +static void +xf86_set_cursor_colors (ScrnInfoPtr scrn, int bg, int fg) +{ + ScreenPtr screen = scrn->pScreen; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + CursorPtr cursor = xf86_config->cursor; + int c; + CARD8 *bits = cursor ? cursor->devPriv[screen->myNum] : NULL; + + /* Save ARGB versions of these colors */ + xf86_config->cursor_fg = (CARD32) fg | 0xff000000; + xf86_config->cursor_bg = (CARD32) bg | 0xff000000; + + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled && !crtc->cursor_argb) + { + if (crtc->funcs->load_cursor_image) + crtc->funcs->set_cursor_colors (crtc, bg, fg); + else if (bits) + xf86_crtc_convert_cursor_to_argb (crtc, bits); + } + } +} + +static void +xf86_crtc_hide_cursor (xf86CrtcPtr crtc) +{ + if (crtc->cursor_shown) + { + crtc->funcs->hide_cursor (crtc); + crtc->cursor_shown = FALSE; + } +} + +void +xf86_hide_cursors (ScrnInfoPtr scrn) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + xf86_config->cursor_on = FALSE; + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled) + xf86_crtc_hide_cursor (crtc); + } +} + +static void +xf86_crtc_show_cursor (xf86CrtcPtr crtc) +{ + if (!crtc->cursor_shown && crtc->cursor_in_range) + { + crtc->funcs->show_cursor (crtc); + crtc->cursor_shown = TRUE; + } +} + +void +xf86_show_cursors (ScrnInfoPtr scrn) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + xf86_config->cursor_on = TRUE; + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled) + xf86_crtc_show_cursor (crtc); + } +} + +static void +xf86_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y) +{ + ScrnInfoPtr scrn = crtc->scrn; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + DisplayModePtr mode = &crtc->mode; + int x_temp; + int y_temp; + Bool in_range; + + /* + * Move to crtc coordinate space + */ + x -= crtc->x; + y -= crtc->y; + + /* + * Rotate + */ + switch ((crtc->rotation) & 0xf) { + case RR_Rotate_0: + break; + case RR_Rotate_90: + x_temp = y; + y_temp = mode->VDisplay - cursor_info->MaxWidth - x; + x = x_temp; + y = y_temp; + break; + case RR_Rotate_180: + x_temp = mode->HDisplay - cursor_info->MaxWidth - x; + y_temp = mode->VDisplay - cursor_info->MaxHeight - y; + x = x_temp; + y = y_temp; + break; + case RR_Rotate_270: + x_temp = mode->HDisplay - cursor_info->MaxHeight - y; + y_temp = x; + x = x_temp; + y = y_temp; + break; + } + + /* + * Reflect + */ + if (crtc->rotation & RR_Reflect_X) + x = mode->HDisplay - cursor_info->MaxWidth - x; + if (crtc->rotation & RR_Reflect_Y) + y = mode->VDisplay - cursor_info->MaxHeight - y; + + /* + * Disable the cursor when it is outside the viewport + */ + in_range = TRUE; + if (x >= mode->HDisplay || y >= mode->VDisplay || + x <= -cursor_info->MaxWidth || y <= -cursor_info->MaxHeight) + { + in_range = FALSE; + x = 0; + y = 0; + } + + crtc->cursor_in_range = in_range; + + if (in_range) + { + crtc->funcs->set_cursor_position (crtc, x, y); + xf86_crtc_show_cursor (crtc); + } + else + xf86_crtc_hide_cursor (crtc); +} + +static void +xf86_set_cursor_position (ScrnInfoPtr scrn, int x, int y) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + /* undo what xf86HWCurs did to the coordinates */ + x += scrn->frameX0; + y += scrn->frameY0; + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled) + xf86_crtc_set_cursor_position (crtc, x, y); + } +} + +/* + * Load a two-color cursor into a crtc, performing rotation as needed + */ +static void +xf86_crtc_load_cursor_image (xf86CrtcPtr crtc, CARD8 *src) +{ + ScrnInfoPtr scrn = crtc->scrn; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + CARD8 *cursor_image; + +#ifdef ARGB_CURSOR + crtc->cursor_argb = FALSE; +#endif + + if (crtc->rotation == RR_Rotate_0) + cursor_image = src; + else + { + int x, y; + int xin, yin; + int stride = cursor_info->MaxWidth >> 2; + int flags = cursor_info->Flags; + + cursor_image = xf86_config->cursor_image; + memset(cursor_image, 0, cursor_info->MaxWidth * stride); + + for (y = 0; y < cursor_info->MaxHeight; y++) + for (x = 0; x < cursor_info->MaxWidth; x++) + { + xf86_crtc_rotate_coord (crtc->rotation, + cursor_info->MaxWidth, + cursor_info->MaxHeight, + x, y, &xin, &yin); + if (get_bit(src, stride, flags, xin, yin, FALSE)) + set_bit(cursor_image, stride, flags, x, y, FALSE); + if (get_bit(src, stride, flags, xin, yin, TRUE)) + set_bit(cursor_image, stride, flags, x, y, TRUE); + } + } + crtc->funcs->load_cursor_image (crtc, cursor_image); +} + +/* + * Load a cursor image into all active CRTCs + */ +static void +xf86_load_cursor_image (ScrnInfoPtr scrn, unsigned char *src) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled) + { + if (crtc->funcs->load_cursor_image) + xf86_crtc_load_cursor_image (crtc, src); + else if (crtc->funcs->load_cursor_argb) + xf86_crtc_convert_cursor_to_argb (crtc, src); + } + } +} + +static Bool +xf86_use_hw_cursor (ScreenPtr screen, CursorPtr cursor) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + + xf86_config->cursor = cursor; + + if (cursor->bits->width > cursor_info->MaxWidth || + cursor->bits->height> cursor_info->MaxHeight) + return FALSE; + + return TRUE; +} + +static Bool +xf86_use_hw_cursor_argb (ScreenPtr screen, CursorPtr cursor) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + + xf86_config->cursor = cursor; + + /* Make sure ARGB support is available */ + if ((cursor_info->Flags & HARDWARE_CURSOR_ARGB) == 0) + return FALSE; + + if (cursor->bits->width > cursor_info->MaxWidth || + cursor->bits->height> cursor_info->MaxHeight) + return FALSE; + + return TRUE; +} + +static void +xf86_crtc_load_cursor_argb (xf86CrtcPtr crtc, CursorPtr cursor) +{ + ScrnInfoPtr scrn = crtc->scrn; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info = xf86_config->cursor_info; + CARD32 *cursor_image = (CARD32 *) xf86_config->cursor_image; + CARD32 *cursor_source = (CARD32 *) cursor->bits->argb; + int x, y; + int xin, yin; + CARD32 bits; + int source_width = cursor->bits->width; + int source_height = cursor->bits->height; + int image_width = cursor_info->MaxWidth; + int image_height = cursor_info->MaxHeight; + + for (y = 0; y < image_height; y++) + for (x = 0; x < image_width; x++) + { + xf86_crtc_rotate_coord (crtc->rotation, image_width, image_height, + x, y, &xin, &yin); + if (xin < source_width && yin < source_height) + bits = cursor_source[yin * source_width + xin]; + else + bits = 0; + cursor_image[y * image_width + x] = bits; + } + + crtc->funcs->load_cursor_argb (crtc, cursor_image); +} + +static void +xf86_load_cursor_argb (ScrnInfoPtr scrn, CursorPtr cursor) +{ + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + for (c = 0; c < xf86_config->num_crtc; c++) + { + xf86CrtcPtr crtc = xf86_config->crtc[c]; + + if (crtc->enabled) + xf86_crtc_load_cursor_argb (crtc, cursor); + } +} + +Bool +xf86_cursors_init (ScreenPtr screen, int max_width, int max_height, int flags) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + xf86CursorInfoPtr cursor_info; + + cursor_info = xf86CreateCursorInfoRec(); + if (!cursor_info) + return FALSE; + + xf86_config->cursor_image = xalloc (max_width * max_height * 4); + + if (!xf86_config->cursor_image) + { + xf86DestroyCursorInfoRec (cursor_info); + return FALSE; + } + + xf86_config->cursor_info = cursor_info; + + cursor_info->MaxWidth = max_width; + cursor_info->MaxHeight = max_height; + cursor_info->Flags = flags; + + cursor_info->SetCursorColors = xf86_set_cursor_colors; + cursor_info->SetCursorPosition = xf86_set_cursor_position; + cursor_info->LoadCursorImage = xf86_load_cursor_image; + cursor_info->HideCursor = xf86_hide_cursors; + cursor_info->ShowCursor = xf86_show_cursors; + cursor_info->UseHWCursor = xf86_use_hw_cursor; +#ifdef ARGB_CURSOR + if (flags & HARDWARE_CURSOR_ARGB) + { + cursor_info->UseHWCursorARGB = xf86_use_hw_cursor_argb; + cursor_info->LoadCursorARGB = xf86_load_cursor_argb; + } +#endif + + xf86_config->cursor = NULL; + xf86_hide_cursors (scrn); + + return xf86InitCursor (screen, cursor_info); +} + +/** + * Called when anything on the screen is reconfigured. + * + * Reloads cursor images as needed, then adjusts cursor positions + */ + +void +xf86_reload_cursors (ScreenPtr screen) +{ + ScrnInfoPtr scrn; + xf86CrtcConfigPtr xf86_config; + xf86CursorInfoPtr cursor_info; + CursorPtr cursor; + int x, y; + + /* initial mode setting will not have set a screen yet */ + if (!screen) + return; + scrn = xf86Screens[screen->myNum]; + xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + + /* make sure the cursor code has been initialized */ + cursor_info = xf86_config->cursor_info; + if (!cursor_info) + return; + + cursor = xf86_config->cursor; + GetSpritePosition (&x, &y); + if (!(cursor_info->Flags & HARDWARE_CURSOR_UPDATE_UNHIDDEN)) + (*cursor_info->HideCursor)(scrn); + + if (cursor) + { +#ifdef ARGB_CURSOR + if (cursor->bits->argb && cursor_info->LoadCursorARGB) + (*cursor_info->LoadCursorARGB) (scrn, cursor); + else +#endif + (*cursor_info->LoadCursorImage)(cursor_info->pScrn, + cursor->devPriv[screen->myNum]); + + (*cursor_info->SetCursorPosition)(cursor_info->pScrn, x, y); + (*cursor_info->ShowCursor)(cursor_info->pScrn); + } +} + +/** + * Clean up CRTC-based cursor code + */ +void +xf86_cursors_fini (ScreenPtr screen) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + + if (xf86_config->cursor_info) + { + xf86DestroyCursorInfoRec (xf86_config->cursor_info); + xf86_config->cursor_info = NULL; + } + if (xf86_config->cursor_image) + { + xfree (xf86_config->cursor_image); + xf86_config->cursor_image = NULL; + } +} diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index ce780b6ef..6f52ee2d9 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -556,6 +556,56 @@ xf86RandR12GetOriginalVirtualSize(ScrnInfoPtr pScrn, int *x, int *y) } #if RANDR_12_INTERFACE + +#define FLAG_BITS (RR_HSyncPositive | \ + RR_HSyncNegative | \ + RR_VSyncPositive | \ + RR_VSyncNegative | \ + RR_Interlace | \ + RR_DoubleScan | \ + RR_CSync | \ + RR_CSyncPositive | \ + RR_CSyncNegative | \ + RR_HSkewPresent | \ + RR_BCast | \ + RR_PixelMultiplex | \ + RR_DoubleClock | \ + RR_ClockDivideBy2) + +static Bool +xf86RandRModeMatches (RRModePtr randr_mode, + DisplayModePtr mode) +{ +#if 0 + if (match_name) + { + /* check for same name */ + int len = strlen (mode->name); + if (randr_mode->mode.nameLength != len) return FALSE; + if (memcmp (randr_mode->name, mode->name, len) != 0) return FALSE; + } +#endif + + /* check for same timings */ + if (randr_mode->mode.dotClock / 1000 != mode->Clock) return FALSE; + if (randr_mode->mode.width != mode->HDisplay) return FALSE; + if (randr_mode->mode.hSyncStart != mode->HSyncStart) return FALSE; + if (randr_mode->mode.hSyncEnd != mode->HSyncEnd) return FALSE; + if (randr_mode->mode.hTotal != mode->HTotal) return FALSE; + if (randr_mode->mode.hSkew != mode->HSkew) return FALSE; + if (randr_mode->mode.height != mode->VDisplay) return FALSE; + if (randr_mode->mode.vSyncStart != mode->VSyncStart) return FALSE; + if (randr_mode->mode.vSyncEnd != mode->VSyncEnd) return FALSE; + if (randr_mode->mode.vTotal != mode->VTotal) return FALSE; + + /* check for same flags (using only the XF86 valid flag bits) */ + if ((randr_mode->mode.modeFlags & FLAG_BITS) != (mode->Flags & FLAG_BITS)) + return FALSE; + + /* everything matches */ + return TRUE; +} + static Bool xf86RandR12CrtcNotify (RRCrtcPtr randr_crtc) { @@ -594,12 +644,15 @@ xf86RandR12CrtcNotify (RRCrtcPtr randr_crtc) * We make copies of modes, so pointer equality * isn't sufficient */ - for (j = 0; j < randr_output->numModes; j++) + for (j = 0; j < randr_output->numModes + randr_output->numUserModes; j++) { - DisplayModePtr outMode = randr_output->modes[j]->devPrivate; - if (xf86ModesEqual(mode, outMode)) + RRModePtr m = (j < randr_output->numModes ? + randr_output->modes[j] : + randr_output->userModes[j-randr_output->numModes]); + + if (xf86RandRModeMatches (m, mode)) { - randr_mode = randr_output->modes[j]; + randr_mode = m; break; } } @@ -611,6 +664,39 @@ xf86RandR12CrtcNotify (RRCrtcPtr randr_crtc) return ret; } +/* + * Convert a RandR mode to a DisplayMode + */ +static void +xf86RandRModeConvert (ScrnInfoPtr scrn, + RRModePtr randr_mode, + DisplayModePtr mode) +{ + mode->prev = NULL; + mode->next = NULL; + mode->name = NULL; + mode->status = MODE_OK; + mode->type = 0; + + mode->Clock = randr_mode->mode.dotClock / 1000; + + mode->HDisplay = randr_mode->mode.width; + mode->HSyncStart = randr_mode->mode.hSyncStart; + mode->HSyncEnd = randr_mode->mode.hSyncEnd; + mode->HTotal = randr_mode->mode.hTotal; + mode->HSkew = randr_mode->mode.hSkew; + + mode->VDisplay = randr_mode->mode.height; + mode->VSyncStart = randr_mode->mode.vSyncStart; + mode->VSyncEnd = randr_mode->mode.vSyncEnd; + mode->VTotal = randr_mode->mode.vTotal; + mode->VScan = 0; + + mode->Flags = randr_mode->mode.modeFlags & FLAG_BITS; + + xf86SetModeCrtc (mode, scrn->adjustFlags); +} + static Bool xf86RandR12CrtcSet (ScreenPtr pScreen, RRCrtcPtr randr_crtc, @@ -624,16 +710,15 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); xf86CrtcPtr crtc = randr_crtc->devPrivate; - DisplayModePtr mode = randr_mode ? randr_mode->devPrivate : NULL; Bool changed = FALSE; int o, ro; xf86CrtcPtr *save_crtcs; Bool save_enabled = crtc->enabled; save_crtcs = ALLOCATE_LOCAL(config->num_crtc * sizeof (xf86CrtcPtr)); - if ((mode != NULL) != crtc->enabled) + if ((randr_mode != NULL) != crtc->enabled) changed = TRUE; - else if (mode && !xf86ModesEqual (&crtc->mode, mode)) + else if (randr_mode && !xf86RandRModeMatches (randr_mode, &crtc->mode)) changed = TRUE; if (rotation != crtc->rotation) @@ -667,11 +752,14 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, /* XXX need device-independent mode setting code through an API */ if (changed) { - crtc->enabled = mode != NULL; + crtc->enabled = randr_mode != NULL; - if (mode) + if (randr_mode) { - if (!xf86CrtcSetMode (crtc, mode, rotation, x, y)) + DisplayModeRec mode; + + xf86RandRModeConvert (pScrn, randr_mode, &mode); + if (!xf86CrtcSetMode (crtc, &mode, rotation, x, y)) { crtc->enabled = save_enabled; for (o = 0; o < config->num_output; o++) @@ -685,7 +773,7 @@ xf86RandR12CrtcSet (ScreenPtr pScreen, /* * Save the last successful setting for EnterVT */ - crtc->desiredMode = *mode; + crtc->desiredMode = mode; crtc->desiredRotation = rotation; crtc->desiredX = x; crtc->desiredY = y; @@ -728,6 +816,26 @@ xf86RandR12OutputSetProperty (ScreenPtr pScreen, return output->funcs->set_property(output, property, value); } +static Bool +xf86RandR12OutputValidateMode (ScreenPtr pScreen, + RROutputPtr randr_output, + RRModePtr randr_mode) +{ + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + xf86OutputPtr output = randr_output->devPrivate; + DisplayModeRec mode; + + xf86RandRModeConvert (pScrn, randr_mode, &mode); + if (output->funcs->mode_valid (output, &mode) != MODE_OK) + return FALSE; + return TRUE; +} + +static void +xf86RandR12ModeDestroy (ScreenPtr pScreen, RRModePtr randr_mode) +{ +} + /** * Given a list of xf86 modes and a RandR Output object, construct * RandR modes and assign them to the output @@ -774,7 +882,6 @@ xf86RROutputSetModes (RROutputPtr randr_output, DisplayModePtr modes) rrmode = RRModeGet (&modeInfo, mode->name); if (rrmode) { - rrmode->devPrivate = mode; rrmodes[nmode++] = rrmode; npreferred += pref; } @@ -904,8 +1011,7 @@ xf86RandR12CreateObjects12 (ScreenPtr pScreen) { xf86CrtcPtr crtc = config->crtc[c]; - crtc->randr_crtc = RRCrtcCreate (crtc); - RRCrtcAttachScreen (crtc->randr_crtc, pScreen); + crtc->randr_crtc = RRCrtcCreate (pScreen, crtc); RRCrtcGammaSetSize (crtc->randr_crtc, 256); } /* @@ -915,13 +1021,13 @@ xf86RandR12CreateObjects12 (ScreenPtr pScreen) { xf86OutputPtr output = config->output[o]; - output->randr_output = RROutputCreate (output->name, + output->randr_output = RROutputCreate (pScreen, output->name, strlen (output->name), output); - RROutputAttachScreen (output->randr_output, pScreen); if (output->funcs->create_resources != NULL) output->funcs->create_resources(output); + RRPostPendingProperties (output->randr_output); } return TRUE; } @@ -958,6 +1064,8 @@ xf86RandR12Init12 (ScreenPtr pScreen) rp->rrCrtcSet = xf86RandR12CrtcSet; rp->rrCrtcSetGamma = xf86RandR12CrtcSetGamma; rp->rrOutputSetProperty = xf86RandR12OutputSetProperty; + rp->rrOutputValidateMode = xf86RandR12OutputValidateMode; + rp->rrModeDestroy = xf86RandR12ModeDestroy; rp->rrSetConfig = NULL; pScrn->PointerMoved = xf86RandR12PointerMoved; if (!xf86RandR12CreateObjects12 (pScreen)) diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index 6826b6277..e8fafd073 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -251,9 +251,13 @@ xf86RotatePrepare (ScreenPtr pScreen) crtc->rotatedData, crtc->mode.HDisplay, crtc->mode.VDisplay); - /* Hook damage to screen pixmap */ - DamageRegister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, - xf86_config->rotationDamage); + if (!xf86_config->rotation_damage_registered) + { + /* Hook damage to screen pixmap */ + DamageRegister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, + xf86_config->rotation_damage); + xf86_config->rotation_damage_registered = TRUE; + } xf86CrtcDamageShadow (crtc); } @@ -265,7 +269,7 @@ xf86RotateRedisplay(ScreenPtr pScreen) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); - DamagePtr damage = xf86_config->rotationDamage; + DamagePtr damage = xf86_config->rotation_damage; RegionPtr region; if (!damage) @@ -317,6 +321,58 @@ xf86RotateWakeupHandler(pointer data, int i, pointer LastSelectMask) { } +static void +xf86RotateDestroy (xf86CrtcPtr crtc) +{ + ScrnInfoPtr pScrn = crtc->scrn; + ScreenPtr pScreen = pScrn->pScreen; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); + int c; + + /* Free memory from rotation */ + if (crtc->rotatedPixmap || crtc->rotatedData) + { + crtc->funcs->shadow_destroy (crtc, crtc->rotatedPixmap, crtc->rotatedData); + crtc->rotatedPixmap = NULL; + crtc->rotatedData = NULL; + } + + for (c = 0; c < xf86_config->num_crtc; c++) + if (crtc->rotatedPixmap || crtc->rotatedData) + return; + + /* + * Clean up damage structures when no crtcs are rotated + */ + if (xf86_config->rotation_damage) + { + /* Free damage structure */ + if (xf86_config->rotation_damage_registered) + { + DamageUnregister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, + xf86_config->rotation_damage); + xf86_config->rotation_damage_registered = FALSE; + } + DamageDestroy (xf86_config->rotation_damage); + xf86_config->rotation_damage = NULL; + /* Free block/wakeup handler */ + RemoveBlockAndWakeupHandlers (xf86RotateBlockHandler, + xf86RotateWakeupHandler, + (pointer) pScreen); + } +} + +void +xf86RotateCloseScreen (ScreenPtr screen) +{ + ScrnInfoPtr scrn = xf86Screens[screen->myNum]; + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); + int c; + + for (c = 0; c < xf86_config->num_crtc; c++) + xf86RotateDestroy (xf86_config->crtc[c]); +} + Bool xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation) { @@ -326,26 +382,7 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation) if (rotation == RR_Rotate_0) { - /* Free memory from rotation */ - if (crtc->rotatedPixmap || crtc->rotatedData) - { - crtc->funcs->shadow_destroy (crtc, crtc->rotatedPixmap, crtc->rotatedData); - crtc->rotatedPixmap = NULL; - crtc->rotatedData = NULL; - } - - if (xf86_config->rotationDamage) - { - /* Free damage structure */ - DamageUnregister (&(*pScreen->GetScreenPixmap)(pScreen)->drawable, - xf86_config->rotationDamage); - DamageDestroy (xf86_config->rotationDamage); - xf86_config->rotationDamage = NULL; - /* Free block/wakeup handler */ - RemoveBlockAndWakeupHandlers (xf86RotateBlockHandler, - xf86RotateWakeupHandler, - (pointer) pScreen); - } + xf86RotateDestroy (crtc); } else { @@ -382,13 +419,13 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation) xf86CrtcDamageShadow (crtc); } - if (!xf86_config->rotationDamage) + if (!xf86_config->rotation_damage) { /* Create damage structure */ - xf86_config->rotationDamage = DamageCreate (NULL, NULL, + xf86_config->rotation_damage = DamageCreate (NULL, NULL, DamageReportNone, TRUE, pScreen, pScreen); - if (!xf86_config->rotationDamage) + if (!xf86_config->rotation_damage) goto bail2; /* Assign block/wakeup handler */ @@ -402,8 +439,8 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation) if (0) { bail3: - DamageDestroy (xf86_config->rotationDamage); - xf86_config->rotationDamage = NULL; + DamageDestroy (xf86_config->rotation_damage); + xf86_config->rotation_damage = NULL; bail2: if (shadow || shadowData) diff --git a/hw/xfree86/os-support/shared/libc_wrapper.c b/hw/xfree86/os-support/shared/libc_wrapper.c index 4c4af4c24..a459d5d70 100644 --- a/hw/xfree86/os-support/shared/libc_wrapper.c +++ b/hw/xfree86/os-support/shared/libc_wrapper.c @@ -628,7 +628,7 @@ typedef struct _xf86_file_ { char* fname; } XF86FILE_priv; -XF86FILE_priv stdhnd[3] = { +static XF86FILE_priv stdhnd[3] = { { 0, XF86FILE_magic, NULL, "$stdinp$" }, { 0, XF86FILE_magic, NULL, "$stdout$" }, { 0, XF86FILE_magic, NULL, "$stderr$" } diff --git a/hw/xfree86/parser/DRI.c b/hw/xfree86/parser/DRI.c index dc75cd23f..18644bcc7 100644 --- a/hw/xfree86/parser/DRI.c +++ b/hw/xfree86/parser/DRI.c @@ -48,7 +48,21 @@ static xf86ConfigSymTabRec DRITab[] = #define CLEANUP xf86freeBuffersList -XF86ConfBuffersPtr +static void +xf86freeBuffersList (XF86ConfBuffersPtr ptr) +{ + XF86ConfBuffersPtr prev; + + while (ptr) { + TestFree (ptr->buf_flags); + TestFree (ptr->buf_comment); + prev = ptr; + ptr = ptr->list.next; + xf86conffree (prev); + } +} + +static XF86ConfBuffersPtr xf86parseBuffers (void) { int token; @@ -169,18 +183,3 @@ xf86freeDRI (XF86ConfDRIPtr ptr) TestFree (ptr->dri_comment); xf86conffree (ptr); } - -void -xf86freeBuffersList (XF86ConfBuffersPtr ptr) -{ - XF86ConfBuffersPtr prev; - - while (ptr) { - TestFree (ptr->buf_flags); - TestFree (ptr->buf_comment); - prev = ptr; - ptr = ptr->list.next; - xf86conffree (prev); - } -} - diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 7ab70d1a8..4adea1ade 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -441,15 +441,6 @@ xf86uLongToString(unsigned long i) return s; } -void -xf86debugListOptions(XF86OptionPtr Options) -{ - while (Options) { - ErrorF("Option: %s Value: %s\n",Options->opt_name,Options->opt_val); - Options = Options->list.next; - } -} - XF86OptionPtr xf86parseOption(XF86OptionPtr head) { diff --git a/hw/xfree86/parser/Layout.c b/hw/xfree86/parser/Layout.c index b9f4e9e6a..5d1348acb 100644 --- a/hw/xfree86/parser/Layout.c +++ b/hw/xfree86/parser/Layout.c @@ -382,24 +382,7 @@ xf86printLayoutSection (FILE * cf, XF86ConfLayoutPtr ptr) } } -void -xf86freeLayoutList (XF86ConfLayoutPtr ptr) -{ - XF86ConfLayoutPtr prev; - - while (ptr) - { - TestFree (ptr->lay_identifier); - TestFree (ptr->lay_comment); - xf86freeAdjacencyList (ptr->lay_adjacency_lst); - xf86freeInputrefList (ptr->lay_input_lst); - prev = ptr; - ptr = ptr->list.next; - xf86conffree (prev); - } -} - -void +static void xf86freeAdjacencyList (XF86ConfAdjacencyPtr ptr) { XF86ConfAdjacencyPtr prev; @@ -419,7 +402,7 @@ xf86freeAdjacencyList (XF86ConfAdjacencyPtr ptr) } -void +static void xf86freeInputrefList (XF86ConfInputrefPtr ptr) { XF86ConfInputrefPtr prev; @@ -435,6 +418,23 @@ xf86freeInputrefList (XF86ConfInputrefPtr ptr) } +void +xf86freeLayoutList (XF86ConfLayoutPtr ptr) +{ + XF86ConfLayoutPtr prev; + + while (ptr) + { + TestFree (ptr->lay_identifier); + TestFree (ptr->lay_comment); + xf86freeAdjacencyList (ptr->lay_adjacency_lst); + xf86freeInputrefList (ptr->lay_input_lst); + prev = ptr; + ptr = ptr->list.next; + xf86conffree (prev); + } +} + #define CheckScreen(str, ptr)\ if (str[0] != '\0') \ { \ diff --git a/hw/xfree86/parser/Module.c b/hw/xfree86/parser/Module.c index f3ed9d19f..81eff18ae 100644 --- a/hw/xfree86/parser/Module.c +++ b/hw/xfree86/parser/Module.c @@ -83,7 +83,7 @@ static xf86ConfigSymTabRec ModuleTab[] = #define CLEANUP xf86freeModules -XF86LoadPtr +static XF86LoadPtr xf86parseModuleSubSection (XF86LoadPtr head, char *name) { int token; diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c index 9dd0b1b1c..4bff4b23b 100644 --- a/hw/xfree86/parser/Monitor.c +++ b/hw/xfree86/parser/Monitor.c @@ -124,7 +124,21 @@ static xf86ConfigSymTabRec ModeTab[] = #define CLEANUP xf86freeModeLineList -XF86ConfModeLinePtr +static void +xf86freeModeLineList (XF86ConfModeLinePtr ptr) +{ + XF86ConfModeLinePtr prev; + while (ptr) + { + TestFree (ptr->ml_identifier); + TestFree (ptr->ml_comment); + prev = ptr; + ptr = ptr->list.next; + xf86conffree (prev); + } +} + +static XF86ConfModeLinePtr xf86parseModeLine (void) { int token; @@ -253,7 +267,7 @@ xf86parseModeLine (void) return (ptr); } -XF86ConfModeLinePtr +static XF86ConfModeLinePtr xf86parseVerboseMode (void) { int token, token2; @@ -830,20 +844,6 @@ xf86freeModesList (XF86ConfModesPtr ptr) } } -void -xf86freeModeLineList (XF86ConfModeLinePtr ptr) -{ - XF86ConfModeLinePtr prev; - while (ptr) - { - TestFree (ptr->ml_identifier); - TestFree (ptr->ml_comment); - prev = ptr; - ptr = ptr->list.next; - xf86conffree (prev); - } -} - XF86ConfMonitorPtr xf86findMonitor (const char *ident, XF86ConfMonitorPtr p) { diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c index b7a64b035..79e1d24ef 100644 --- a/hw/xfree86/parser/Screen.c +++ b/hw/xfree86/parser/Screen.c @@ -83,7 +83,7 @@ static xf86ConfigSymTabRec DisplayTab[] = #define CLEANUP xf86freeDisplayList -XF86ConfDisplayPtr +static XF86ConfDisplayPtr xf86parseDisplaySubSection (void) { int token; diff --git a/hw/xfree86/parser/Vendor.c b/hw/xfree86/parser/Vendor.c index 3e9358b3b..d1e608067 100644 --- a/hw/xfree86/parser/Vendor.c +++ b/hw/xfree86/parser/Vendor.c @@ -75,7 +75,7 @@ static xf86ConfigSymTabRec VendorSubTab[] = #define CLEANUP xf86freeVendorSubList -XF86ConfVendSubPtr +static XF86ConfVendSubPtr xf86parseVendorSubSection (void) { int has_ident = FALSE; @@ -242,16 +242,3 @@ xf86freeVendorSubList (XF86ConfVendSubPtr ptr) xf86conffree (prev); } } - -XF86ConfVendorPtr -xf86findVendor (const char *name, XF86ConfVendorPtr list) -{ - while (list) - { - if (xf86nameCompare (list->vnd_identifier, name) == 0) - return (list); - list = list->list.next; - } - return (NULL); -} - diff --git a/hw/xfree86/parser/Video.c b/hw/xfree86/parser/Video.c index fa0ff7833..a8912cf44 100644 --- a/hw/xfree86/parser/Video.c +++ b/hw/xfree86/parser/Video.c @@ -74,7 +74,23 @@ static xf86ConfigSymTabRec VideoPortTab[] = #define CLEANUP xf86freeVideoPortList -XF86ConfVideoPortPtr +static void +xf86freeVideoPortList (XF86ConfVideoPortPtr ptr) +{ + XF86ConfVideoPortPtr prev; + + while (ptr) + { + TestFree (ptr->vp_identifier); + TestFree (ptr->vp_comment); + xf86optionListFree (ptr->vp_option_lst); + prev = ptr; + ptr = ptr->list.next; + xf86conffree (prev); + } +} + +static XF86ConfVideoPortPtr xf86parseVideoPortSubSection (void) { int has_ident = FALSE; @@ -266,22 +282,6 @@ xf86freeVideoAdaptorList (XF86ConfVideoAdaptorPtr ptr) } } -void -xf86freeVideoPortList (XF86ConfVideoPortPtr ptr) -{ - XF86ConfVideoPortPtr prev; - - while (ptr) - { - TestFree (ptr->vp_identifier); - TestFree (ptr->vp_comment); - xf86optionListFree (ptr->vp_option_lst); - prev = ptr; - ptr = ptr->list.next; - xf86conffree (prev); - } -} - XF86ConfVideoAdaptorPtr xf86findVideoAdaptor (const char *ident, XF86ConfVideoAdaptorPtr p) { diff --git a/hw/xfree86/parser/configProcs.h b/hw/xfree86/parser/configProcs.h index 0b989054b..3c9ce7a83 100644 --- a/hw/xfree86/parser/configProcs.h +++ b/hw/xfree86/parser/configProcs.h @@ -49,30 +49,23 @@ int xf86validateInput (XF86ConfigPtr p); XF86ConfLayoutPtr xf86parseLayoutSection(void); void xf86printLayoutSection(FILE *cf, XF86ConfLayoutPtr ptr); void xf86freeLayoutList(XF86ConfLayoutPtr ptr); -void xf86freeAdjacencyList(XF86ConfAdjacencyPtr ptr); -void xf86freeInputrefList(XF86ConfInputrefPtr ptr); int xf86validateLayout(XF86ConfigPtr p); /* Module.c */ -XF86LoadPtr xf86parseModuleSubSection(XF86LoadPtr head, char *name); XF86ConfModulePtr xf86parseModuleSection(void); void xf86printModuleSection(FILE *cf, XF86ConfModulePtr ptr); XF86LoadPtr xf86addNewLoadDirective(XF86LoadPtr head, char *name, int type, XF86OptionPtr opts); void xf86freeModules(XF86ConfModulePtr ptr); /* Monitor.c */ -XF86ConfModeLinePtr xf86parseModeLine(void); -XF86ConfModeLinePtr xf86parseVerboseMode(void); XF86ConfMonitorPtr xf86parseMonitorSection(void); XF86ConfModesPtr xf86parseModesSection(void); void xf86printMonitorSection(FILE *cf, XF86ConfMonitorPtr ptr); void xf86printModesSection(FILE *cf, XF86ConfModesPtr ptr); void xf86freeMonitorList(XF86ConfMonitorPtr ptr); void xf86freeModesList(XF86ConfModesPtr ptr); -void xf86freeModeLineList(XF86ConfModeLinePtr ptr); int xf86validateMonitor(XF86ConfigPtr p, XF86ConfScreenPtr screen); /* Pointer.c */ XF86ConfInputPtr xf86parsePointerSection(void); /* Screen.c */ -XF86ConfDisplayPtr xf86parseDisplaySubSection(void); XF86ConfScreenPtr xf86parseScreenSection(void); void xf86printScreenSection(FILE *cf, XF86ConfScreenPtr ptr); void xf86freeScreenList(XF86ConfScreenPtr ptr); @@ -82,34 +75,25 @@ void xf86freeModeList(XF86ModePtr ptr); int xf86validateScreen(XF86ConfigPtr p); /* Vendor.c */ XF86ConfVendorPtr xf86parseVendorSection(void); -XF86ConfVendSubPtr xf86parseVendorSubSection (void); void xf86freeVendorList(XF86ConfVendorPtr p); void xf86printVendorSection(FILE * cf, XF86ConfVendorPtr ptr); void xf86freeVendorSubList (XF86ConfVendSubPtr ptr); /* Video.c */ -XF86ConfVideoPortPtr xf86parseVideoPortSubSection(void); XF86ConfVideoAdaptorPtr xf86parseVideoAdaptorSection(void); void xf86printVideoAdaptorSection(FILE *cf, XF86ConfVideoAdaptorPtr ptr); void xf86freeVideoAdaptorList(XF86ConfVideoAdaptorPtr ptr); -void xf86freeVideoPortList(XF86ConfVideoPortPtr ptr); -/* read.c */ -int xf86validateConfig(XF86ConfigPtr p); /* scan.c */ -unsigned int xf86strToUL(char *str); int xf86getToken(xf86ConfigSymTabRec *tab); int xf86getSubToken(char **comment); int xf86getSubTokenWithTab(char **comment, xf86ConfigSymTabRec *tab); void xf86unGetToken(int token); char *xf86tokenString(void); void xf86parseError(char *format, ...); -void xf86parseWarning(char *format, ...); void xf86validationError(char *format, ...); void xf86setSection(char *section); int xf86getStringToken(xf86ConfigSymTabRec *tab); /* write.c */ /* DRI.c */ -XF86ConfBuffersPtr xf86parseBuffers (void); -void xf86freeBuffersList (XF86ConfBuffersPtr ptr); XF86ConfDRIPtr xf86parseDRISection (void); void xf86printDRISection (FILE * cf, XF86ConfDRIPtr ptr); void xf86freeDRI (XF86ConfDRIPtr ptr); diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c index b6b3bc377..9f79696ac 100644 --- a/hw/xfree86/parser/read.c +++ b/hw/xfree86/parser/read.c @@ -73,6 +73,25 @@ static xf86ConfigSymTabRec TopLevelTab[] = #define CLEANUP xf86freeConfig +/* + * This function resolves name references and reports errors if the named + * objects cannot be found. + */ +static int +xf86validateConfig (XF86ConfigPtr p) +{ + if (!xf86validateDevice (p)) + return FALSE; + if (!xf86validateScreen (p)) + return FALSE; + if (!xf86validateInput (p)) + return FALSE; + if (!xf86validateLayout (p)) + return FALSE; + + return (TRUE); +} + XF86ConfigPtr xf86readConfigFile (void) { @@ -218,25 +237,6 @@ xf86readConfigFile (void) #undef CLEANUP -/* - * This function resolves name references and reports errors if the named - * objects cannot be found. - */ -int -xf86validateConfig (XF86ConfigPtr p) -{ - if (!xf86validateDevice (p)) - return FALSE; - if (!xf86validateScreen (p)) - return FALSE; - if (!xf86validateInput (p)) - return FALSE; - if (!xf86validateLayout (p)) - return FALSE; - - return (TRUE); -} - /* * adds an item to the end of the linked list. Any record whose first field * is a GenericListRec can be cast to this type and used with this function. diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index f81c45afe..68e7ec650 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -116,7 +116,7 @@ extern char *__XOS2RedirRoot(char *path); * A portable, but restricted, version of strtoul(). It only understands * hex, octal, and decimal. But it's good enough for our needs. */ -unsigned int +static unsigned int xf86strToUL (char *str) { int base = 10; @@ -921,20 +921,6 @@ xf86parseError (char *format,...) ErrorF ("\n"); } -void -xf86parseWarning (char *format,...) -{ - va_list ap; - - ErrorF ("Parse warning on line %d of section %s in file %s\n\t", - configLineNo, configSection, configPath); - va_start (ap, format); - VErrorF (format, ap); - va_end (ap); - - ErrorF ("\n"); -} - void xf86validationError (char *format,...) { diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h index a6829273c..89de97bbb 100644 --- a/hw/xfree86/parser/xf86Parser.h +++ b/hw/xfree86/parser/xf86Parser.h @@ -469,7 +469,6 @@ XF86ConfModeLinePtr xf86findModeLine(const char *ident, XF86ConfModeLinePtr p); XF86ConfScreenPtr xf86findScreen(const char *ident, XF86ConfScreenPtr p); XF86ConfInputPtr xf86findInput(const char *ident, XF86ConfInputPtr p); XF86ConfInputPtr xf86findInputByDriver(const char *driver, XF86ConfInputPtr p); -XF86ConfVendorPtr xf86findVendor(const char *name, XF86ConfVendorPtr list); XF86ConfVideoAdaptorPtr xf86findVideoAdaptor(const char *ident, XF86ConfVideoAdaptorPtr p); diff --git a/hw/xfree86/ramdac/Makefile.am b/hw/xfree86/ramdac/Makefile.am index 8d944455f..2b84cb4dd 100644 --- a/hw/xfree86/ramdac/Makefile.am +++ b/hw/xfree86/ramdac/Makefile.am @@ -1,8 +1,6 @@ -module_LTLIBRARIES = libramdac.la +noinst_LIBRARIES = libramdac.a -libramdac_la_LDFLAGS = -avoid-version - -libramdac_la_SOURCES = xf86RamDacMod.c xf86RamDac.c xf86RamDacCmap.c \ +libramdac_a_SOURCES = xf86RamDac.c xf86RamDacCmap.c \ xf86Cursor.c xf86HWCurs.c IBM.c BT.c TI.c \ xf86BitOrder.c diff --git a/hw/xfree86/ramdac/xf86Cursor.h b/hw/xfree86/ramdac/xf86Cursor.h index 08cca6b96..469f48f01 100644 --- a/hw/xfree86/ramdac/xf86Cursor.h +++ b/hw/xfree86/ramdac/xf86Cursor.h @@ -44,5 +44,8 @@ void xf86ForceHWCursor (ScreenPtr pScreen, Bool on); #define HARDWARE_CURSOR_NIBBLE_SWAPPED 0x00000800 #define HARDWARE_CURSOR_SHOW_TRANSPARENT 0x00001000 #define HARDWARE_CURSOR_UPDATE_UNHIDDEN 0x00002000 +#ifdef ARGB_CURSOR +#define HARDWARE_CURSOR_ARGB 0x00004000 +#endif #endif /* _XF86CURSOR_H */ diff --git a/hw/xfree86/ramdac/xf86RamDacMod.c b/hw/xfree86/ramdac/xf86RamDacMod.c deleted file mode 100644 index b4187a953..000000000 --- a/hw/xfree86/ramdac/xf86RamDacMod.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 1998 by Alan Hourihane, Wigan, England. - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Alan Hourihane not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Alan Hourihane makes no representations - * about the suitability of this software for any purpose. It is provided - * "as is" without express or implied warranty. - * - * ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL ALAN HOURIHANE BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - * - * Authors: Alan Hourihane, - * - * Generic RAMDAC module. - */ - -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include "xf86Module.h" - -static XF86ModuleVersionInfo VersRec = { - "ramdac", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - 0, 1, 0, - ABI_CLASS_VIDEODRV, - ABI_VIDEODRV_VERSION, - MOD_CLASS_NONE, - {0, 0, 0, 0} -}; - -_X_EXPORT XF86ModuleData ramdacModuleData = { &VersRec, NULL, NULL }; diff --git a/hw/xfree86/x86emu/prim_ops.c b/hw/xfree86/x86emu/prim_ops.c index 461e09e3e..b9e7257ca 100644 --- a/hw/xfree86/x86emu/prim_ops.c +++ b/hw/xfree86/x86emu/prim_ops.c @@ -2082,7 +2082,7 @@ Implements the IMUL instruction and side effects. void imul_long_direct(u32 *res_lo, u32* res_hi,u32 d, u32 s) { #ifdef __HAS_LONG_LONG__ - s64 res = (s32)d * (s32)s; + s64 res = (s64)(s32)d * (s32)s; *res_lo = (u32)res; *res_hi = (u32)(res >> 32); @@ -2174,7 +2174,7 @@ Implements the MUL instruction and side effects. void mul_long(u32 s) { #ifdef __HAS_LONG_LONG__ - u64 res = (u32)M.x86.R_EAX * (u32)s; + u64 res = (u64)M.x86.R_EAX * s; M.x86.R_EAX = (u32)res; M.x86.R_EDX = (u32)(res >> 32); diff --git a/hw/xfree86/xf4bpp/Makefile.am b/hw/xfree86/xf4bpp/Makefile.am index 8fddb6b6a..5eab92f6f 100644 --- a/hw/xfree86/xf4bpp/Makefile.am +++ b/hw/xfree86/xf4bpp/Makefile.am @@ -20,7 +20,6 @@ libxf4bpp_la_SOURCES = \ ppcPixmap.c \ ppcPntWin.c \ ppcPolyPnt.c \ - ppcPolyRec.c \ ppcQuery.c \ ppcRslvC.c \ ppcSetSp.c \ diff --git a/hw/xfree86/xf4bpp/offscreen.c b/hw/xfree86/xf4bpp/offscreen.c index f35bde7dd..654be829d 100644 --- a/hw/xfree86/xf4bpp/offscreen.c +++ b/hw/xfree86/xf4bpp/offscreen.c @@ -300,25 +300,6 @@ DoMono } } -void -xf4bppOffDrawMonoImage( pWin, data, x, y, w, h, fg, alu, planes ) -WindowPtr pWin; /* GJA */ -unsigned char *data; -int x, y, w, h ; -unsigned long int fg ; -int alu ; -unsigned long int planes; -{ - - if ( ( alu == GXnoop ) || !( planes &= VGA_ALLPLANES ) ) - return ; - - DoMono( pWin, w, x, y, (const unsigned char *) data, h, - w, ( ( w + 31 ) & ~31 ) >> 3, h, 0, 0, alu, - (int)planes, (int)fg) ; - -} - void xf4bppOffFillStipple( pWin, pStipple, fg, alu, planes, x, y, w, h, xSrc, ySrc ) WindowPtr pWin; /* GJA */ diff --git a/hw/xfree86/xf4bpp/ppcGC.c b/hw/xfree86/xf4bpp/ppcGC.c index 8153051f0..81441efd7 100644 --- a/hw/xfree86/xf4bpp/ppcGC.c +++ b/hw/xfree86/xf4bpp/ppcGC.c @@ -90,10 +90,9 @@ SOFTWARE. | GCFunction | GCPlaneMask | GCFillStyle | GC_CALL_VALIDATE_BIT \ | GCClipXOrigin | GCClipYOrigin | GCClipMask | GCSubwindowMode ) +static void xf4bppValidateGC(GCPtr, unsigned long, DrawablePtr); +static void xf4bppDestroyGC(GC *); -/* GJA -- we modified the following function to get rid of - * the records in file vgaData.c - */ static GCFuncs vgaGCFuncs = { xf4bppValidateGC, (void (*)(GCPtr, unsigned long))NoopDDA, @@ -196,7 +195,7 @@ register GCPtr pGC ; return TRUE ; } -void +static void xf4bppDestroyGC( pGC ) register GC *pGC ; @@ -292,7 +291,7 @@ return 0 ; CT_other ==> pCompositeClip is the pixmap bounding box */ -void +static void xf4bppValidateGC( pGC, changes, pDrawable ) GCPtr pGC; unsigned long changes; diff --git a/hw/xfree86/xf4bpp/ppcPolyRec.c b/hw/xfree86/xf4bpp/ppcPolyRec.c deleted file mode 100644 index d7f866232..000000000 --- a/hw/xfree86/xf4bpp/ppcPolyRec.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright IBM Corporation 1987,1988,1989 - * - * All Rights Reserved - * - * Permission to use, copy, modify, and distribute this software and its - * documentation for any purpose and without fee is hereby granted, - * provided that the above copyright notice appear in all copies and that - * both that copyright notice and this permission notice appear in - * supporting documentation, and that the name of IBM not be - * used in advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * - * IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR - * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, - * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - * -*/ -/*********************************************************** - -Copyright (c) 1987 X Consortium - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the X Consortium shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from the X Consortium. - - -Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Digital not be -used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING -ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL -DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR -ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, -WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - -******************************************************************/ -/* $XConsortium: ppcPolyRec.c /main/4 1996/02/21 17:58:11 kaleb $ */ - -#ifdef HAVE_XORG_CONFIG_H -#include -#endif - -#include "xf4bpp.h" - -void -xf4bppPolyRectangle(pDraw, pGC, nrects, pRects) - DrawablePtr pDraw; - GCPtr pGC; - int nrects; - xRectangle *pRects; -{ - int i; - xRectangle *pR = pRects; - xRectangle *tmprects, *tmprectsinit; - int lw, fs, ss; - - if ( ! ( tmprectsinit = tmprects = (xRectangle *)ALLOCATE_LOCAL( ( sizeof ( xRectangle ) * nrects ) << 2 ) ) ) - return; - - lw = pGC->lineWidth; - ss = lw >> 1; /* skinny side of line */ - fs = ( lw + 1 ) >> 1; /* fat side of line */ - - for (i=0; ix = pR->x - ss; - tmprects->y = pR->y - ss; - tmprects->width = pR->width + lw; - tmprects->height = lw; - tmprects++; - - tmprects->x = pR->x - ss; - tmprects->y = pR->y + fs; - tmprects->width = lw; - tmprects->height = pR->height - lw; - tmprects++; - - tmprects->x = pR->x + pR->width - ss; - tmprects->y = pR->y + fs; - tmprects->width = lw; - tmprects->height = pR->height - lw; - tmprects++; - - tmprects->x = pR->x - ss; - tmprects->y = pR->y + pR->height - ss; - tmprects->width = pR->width + lw; - tmprects->height = lw; - tmprects++; - - pR++; - } - - (* pGC->ops->PolyFillRect)( pDraw, pGC, nrects << 2, tmprectsinit ); - - DEALLOCATE_LOCAL( tmprectsinit ); - return ; -} diff --git a/hw/xfree86/xf4bpp/xf4bpp.h b/hw/xfree86/xf4bpp/xf4bpp.h index 8d2da35a5..01512a8fb 100644 --- a/hw/xfree86/xf4bpp/xf4bpp.h +++ b/hw/xfree86/xf4bpp/xf4bpp.h @@ -149,14 +149,6 @@ void xf4bppTilePixmapFS( Bool xf4bppCreateGC( GCPtr ); -void xf4bppDestroyGC( - GC * -); -void xf4bppValidateGC( - GCPtr, - unsigned long, - DrawablePtr -); /* ppcGetSp.c */ void xf4bppGetSpans( diff --git a/hw/xgl/egl/kinput.c b/hw/xgl/egl/kinput.c index b374bf580..5fd23f568 100644 --- a/hw/xgl/egl/kinput.c +++ b/hw/xgl/egl/kinput.c @@ -41,7 +41,7 @@ #ifdef XKB #define XKB_IN_SERVER -#include +#include #endif static DeviceIntPtr pKdKeyboard, pKdPointer; diff --git a/hw/xgl/glx/xglx.c b/hw/xgl/glx/xglx.c index 57cb84702..92974f0d4 100644 --- a/hw/xgl/glx/xglx.c +++ b/hw/xgl/glx/xglx.c @@ -50,7 +50,7 @@ #ifdef XKB #include -#include +#include #include extern Bool diff --git a/hw/xnest/Display.c b/hw/xnest/Display.c index 57f3a688f..1ec0609d9 100644 --- a/hw/xnest/Display.c +++ b/hw/xnest/Display.c @@ -39,7 +39,7 @@ XVisualInfo *xnestVisuals; int xnestNumVisuals; int xnestDefaultVisualIndex; Colormap *xnestDefaultColormaps; -int xnestNumDefaultColormaps; +static int xnestNumDefaultColormaps; int *xnestDepths; int xnestNumDepths; XPixmapFormatValues *xnestPixmapFormats; diff --git a/hw/xnest/Keyboard.c b/hw/xnest/Keyboard.c index 0dacae70b..bb3cb1376 100644 --- a/hw/xnest/Keyboard.c +++ b/hw/xnest/Keyboard.c @@ -36,7 +36,7 @@ is" without express or implied warranty. #ifdef XKB #include -#include +#include #include extern Bool diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index e6870e702..e66b4f743 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -49,7 +49,7 @@ Window xnestScreenSaverWindows[MAXSCREENS]; extern void GlxWrapInitVisuals(miInitVisualsProcPtr *); #endif -int xnestScreenGeneration = -1; +static int xnestScreenGeneration = -1; ScreenPtr xnestScreen(Window window) diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c index 39a5eda7f..9457c9cc7 100644 --- a/hw/xwin/InitOutput.c +++ b/hw/xwin/InitOutput.c @@ -44,7 +44,7 @@ from The Open Group. #include #endif #if defined(XKB) && defined(WIN32) -#include +#include #endif #ifdef RELOCATE_PROJECTROOT #include diff --git a/hw/xwin/winconfig.c b/hw/xwin/winconfig.c index e3d18083e..2c1877172 100644 --- a/hw/xwin/winconfig.c +++ b/hw/xwin/winconfig.c @@ -40,7 +40,7 @@ #ifndef XKB_IN_SERVER #define XKB_IN_SERVER #endif -#include +#include #endif #ifdef XWIN_XF86CONFIG diff --git a/hw/xwin/winkeybd.c b/hw/xwin/winkeybd.c index 164e39160..d574f2053 100644 --- a/hw/xwin/winkeybd.c +++ b/hw/xwin/winkeybd.c @@ -44,7 +44,7 @@ #ifndef XKB_IN_SERVER #define XKB_IN_SERVER #endif -#include +#include #endif static Bool g_winKeyState[NUM_KEYCODES]; diff --git a/include/dix.h b/include/dix.h index 13f3c05ff..798d617a9 100644 --- a/include/dix.h +++ b/include/dix.h @@ -81,59 +81,6 @@ SOFTWARE. return(BadIDChoice);\ } -/* - * We think that most hardware implementations of DBE will want - * LookupID*(dbe_back_buffer_id) to return the window structure that the - * id is a back buffer for. Since both front and back buffers will - * return the same structure, you need to be able to distinguish - * somewhere what kind of buffer (front/back) was being asked for, so - * that ddx can render to the right place. That's the problem that the - * following code solves. Note: we couldn't embed this in the LookupID* - * functions because the VALIDATE_DRAWABLE_AND_GC macro often circumvents - * those functions by checking a one-element cache. That's why we're - * mucking with VALIDATE_DRAWABLE_AND_GC. - * - * If you put -DNEED_DBE_BUF_BITS into PervasiveDBEDefines, the window - * structure will have two additional bits defined, srcBuffer and - * dstBuffer, and their values will be maintained via the macros - * SET_DBE_DSTBUF and SET_DBE_SRCBUF (below). If you also - * put -DNEED_DBE_BUF_VALIDATE into PervasiveDBEDefines, the function - * DbeValidateBuffer will be called any time the bits change to give you - * a chance to do some setup. See the DBE code for more details on this - * function. We put in these levels of conditionality so that you can do - * just what you need to do, and no more. If neither of these defines - * are used, the bits won't be there, and VALIDATE_DRAWABLE_AND_GC will - * be unchanged. dpw - */ - -#if defined(NEED_DBE_BUF_BITS) -#define SET_DBE_DSTBUF(_pDraw, _drawID) \ - SET_DBE_BUF(_pDraw, _drawID, dstBuffer, TRUE) -#define SET_DBE_SRCBUF(_pDraw, _drawID) \ - SET_DBE_BUF(_pDraw, _drawID, srcBuffer, FALSE) -#if defined (NEED_DBE_BUF_VALIDATE) -#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \ - if (_pDraw->type == DRAWABLE_WINDOW)\ - {\ - int thisbuf = (_pDraw->id == _drawID);\ - if (thisbuf != ((WindowPtr)_pDraw)->_whichBuffer)\ - {\ - ((WindowPtr)_pDraw)->_whichBuffer = thisbuf;\ - DbeValidateBuffer((WindowPtr)_pDraw, _drawID, _dstbuf);\ - }\ - } -#else /* want buffer bits, but don't need to call DbeValidateBuffer */ -#define SET_DBE_BUF(_pDraw, _drawID, _whichBuffer, _dstbuf) \ - if (_pDraw->type == DRAWABLE_WINDOW)\ - {\ - ((WindowPtr)_pDraw)->_whichBuffer = (_pDraw->id == _drawID);\ - } -#endif /* NEED_DBE_BUF_VALIDATE */ -#else /* don't want buffer bits in window */ -#define SET_DBE_DSTBUF(_pDraw, _drawID) /**/ -#define SET_DBE_SRCBUF(_pDraw, _drawID) /**/ -#endif /* NEED_DBE_BUF_BITS */ - #define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, pGC, client)\ if ((stuff->gc == INVALID) || (client->lastGCID != stuff->gc) ||\ (client->lastDrawableID != drawID))\ @@ -158,7 +105,6 @@ SOFTWARE. pGC = client->lastGC;\ pDraw = client->lastDrawable;\ }\ - SET_DBE_DSTBUF(pDraw, drawID);\ if (pGC->serialNumber != pDraw->serialNumber)\ ValidateGC(pDraw, pGC); @@ -220,8 +166,6 @@ extern int dixDestroyPixmap( pointer /*value*/, XID /*pid*/); -extern void CloseDownRetainedResources(void); - extern void InitClient( ClientPtr /*client*/, int /*i*/, @@ -243,25 +187,10 @@ extern void DeleteWindowFromAnySelections( extern void MarkClientException( ClientPtr /*client*/); -extern int GetGeometry( - ClientPtr /*client*/, - xGetGeometryReply* /* wa */); - extern int SendConnSetup( ClientPtr /*client*/, char* /*reason*/); -extern int DoGetImage( - ClientPtr /*client*/, - int /*format*/, - Drawable /*drawable*/, - int /*x*/, - int /*y*/, - int /*width*/, - int /*height*/, - Mask /*planemask*/, - xGetImageReply ** /*im_return*/); - #if defined(DDXBEFORERESET) extern void ddxBeforeReset (void); #endif @@ -630,10 +559,6 @@ typedef struct _CallbackProcs { DeleteCallbackListProcPtr DeleteCallbackList; } CallbackFuncsRec, *CallbackFuncsPtr; -extern Bool CreateCallbackList( - CallbackListPtr * /*pcbl*/, - CallbackFuncsPtr /*cbfuncs*/); - extern Bool AddCallback( CallbackListPtr * /*pcbl*/, CallbackProcPtr /*callback*/, diff --git a/include/exevents.h b/include/exevents.h index 7fbaddbb5..69d4abc4c 100644 --- a/include/exevents.h +++ b/include/exevents.h @@ -148,10 +148,6 @@ extern void DeleteWindowFromAnyExtEvents( WindowPtr /* pWin */, Bool /* freeResources */); -extern void DeleteDeviceFromAnyExtEvents( - WindowPtr /* pWin */, - DeviceIntPtr /* dev */); - extern int MaybeSendDeviceMotionNotifyHint ( deviceKeyButtonPointer * /* pEvents */, Mask /* mask */); @@ -164,11 +160,6 @@ extern void CheckDeviceGrabAndHintWindow ( ClientPtr /* client */, Mask /* deliveryMask */); -extern Mask DeviceEventMaskForClient( - DeviceIntPtr /* dev */, - WindowPtr /* pWin */, - ClientPtr /* client */); - extern void MaybeStopDeviceHint( DeviceIntPtr /* dev */, ClientPtr /* client */); @@ -179,13 +170,6 @@ extern int DeviceEventSuppressForWindow( Mask /* mask */, int /* maskndx */); -void FindInterestedChildren( - DeviceIntPtr /* dev */, - WindowPtr /* p1 */, - Mask /* mask */, - xEvent * /* ev */, - int /* count */); - void SendEventToAllWindows( DeviceIntPtr /* dev */, Mask /* mask */, diff --git a/include/extinit.h b/include/extinit.h index 2087d74d6..e616b6d93 100644 --- a/include/extinit.h +++ b/include/extinit.h @@ -37,93 +37,6 @@ XInputExtensionInit( void ); - -int -ProcIDispatch ( - ClientPtr /* client */ - ); - -int -SProcIDispatch( - ClientPtr /* client */ - ); - -void -SReplyIDispatch ( - ClientPtr /* client */, - int /* len */, - xGrabDeviceReply * /* rep */ - ); - -void -SEventIDispatch ( - xEvent * /* from */, - xEvent * /* to */ - ); - -void -SEventDeviceValuator ( - deviceValuator * /* from */, - deviceValuator * /* to */ - ); - -void -SEventFocus ( - deviceFocus * /* from */, - deviceFocus * /* to */ - ); - -void -SDeviceStateNotifyEvent ( - deviceStateNotify * /* from */, - deviceStateNotify * /* to */ - ); - -void -SDeviceKeyStateNotifyEvent ( - deviceKeyStateNotify * /* from */, - deviceKeyStateNotify * /* to */ - ); - -void -SDeviceButtonStateNotifyEvent ( - deviceButtonStateNotify * /* from */, - deviceButtonStateNotify * /* to */ - ); - -void -SChangeDeviceNotifyEvent ( - changeDeviceNotify * /* from */, - changeDeviceNotify * /* to */ - ); - -void -SDeviceMappingNotifyEvent ( - deviceMappingNotify * /* from */, - deviceMappingNotify * /* to */ - ); - -void -SDevicePresenceNotifyEvent ( - devicePresenceNotify * /* from */, - devicePresenceNotify * /* to */ - ); - -void -FixExtensionEvents ( - ExtensionEntry * /* extEntry */ - ); - -void -RestoreExtensionEvents ( - void - ); - -void -IResetProc( - ExtensionEntry * /* unused */ - ); - void AssignTypeAndName ( DeviceIntPtr /* dev */, @@ -131,41 +44,9 @@ AssignTypeAndName ( char * /* name */ ); -void -MakeDeviceTypeAtoms ( - void -); - DeviceIntPtr LookupDeviceIntRec ( CARD8 /* id */ ); -void -SetExclusiveAccess ( - Mask /* mask */ - ); - -void -AllowPropagateSuppress ( - Mask /* mask */ - ); - -Mask -GetNextExtEventMask ( - void -); - -void -SetMaskForExtEvent( - Mask /* mask */, - int /* event */ - ); - -void -SetEventInfo( - Mask /* mask */, - int /* constant */ - ); - #endif /* EXTINIT_H */ diff --git a/include/extnsionst.h b/include/extnsionst.h index 38d4bd7d9..28ae1d539 100644 --- a/include/extnsionst.h +++ b/include/extnsionst.h @@ -85,32 +85,11 @@ extern void NotImplemented ( /* FIXME: this may move to another file... */ xEvent *, xEvent *); -typedef void (* ExtensionLookupProc)( -#ifdef EXTENSION_PROC_ARGS - EXTENSION_PROC_ARGS -#else - /* args no longer indeterminate */ - char *name, - GCPtr pGC -#endif -); - -typedef struct _ProcEntry { - char *name; - ExtensionLookupProc proc; -} ProcEntryRec, *ProcEntryPtr; - -typedef struct _ScreenProcEntry { - int num; - ProcEntryPtr procList; -} ScreenProcEntry; - #define SetGCVector(pGC, VectorElement, NewRoutineAddress, Atom) \ pGC->VectorElement = NewRoutineAddress; #define GetGCValue(pGC, GCElement) (pGC->GCElement) - extern ExtensionEntry *AddExtension( char* /*name*/, int /*NumEvents*/, @@ -128,20 +107,6 @@ extern Bool AddExtensionAlias( extern ExtensionEntry *CheckExtension(const char *extname); extern ExtensionEntry *GetExtensionEntry(int major); -extern ExtensionLookupProc LookupProc( - char* /*name*/, - GCPtr /*pGC*/); - -extern Bool RegisterProc( - char* /*name*/, - GCPtr /*pGC*/, - ExtensionLookupProc /*proc*/); - -extern Bool RegisterScreenProc( - char* /*name*/, - ScreenPtr /*pScreen*/, - ExtensionLookupProc /*proc*/); - extern void DeclareExtensionSecurity( char * /*extname*/, Bool /*secure*/); diff --git a/include/gc.h b/include/gc.h index 6c7add620..3b7e38e02 100644 --- a/include/gc.h +++ b/include/gc.h @@ -126,11 +126,6 @@ extern int FreeGC( pointer /*pGC*/, XID /*gid*/); -extern void SetGCMask( - GCPtr /*pGC*/, - Mask /*selectMask*/, - Mask /*newDataMask*/); - extern GCPtr CreateScratchGC( ScreenPtr /*pScreen*/, unsigned /*depth*/); diff --git a/include/globals.h b/include/globals.h index 821b12bdb..e23ce7798 100644 --- a/include/globals.h +++ b/include/globals.h @@ -44,10 +44,6 @@ extern Bool DPMSCapableFlag; #endif #ifdef PANORAMIX -extern Bool PanoramiXMapped; -extern Bool PanoramiXVisibilityNotifySent; -extern Bool PanoramiXWindowExposureSent; -extern Bool PanoramiXOneExposeRequest; extern Bool PanoramiXExtensionDisabledHack; #endif diff --git a/include/inputstr.h b/include/inputstr.h index ada94e6b4..8f4e9b9d1 100644 --- a/include/inputstr.h +++ b/include/inputstr.h @@ -62,7 +62,7 @@ SOFTWARE. #define EMASKSIZE MAX_DEVICES -extern int CoreDevicePrivatesIndex, CoreDevicePrivatesGeneration; +extern int CoreDevicePrivatesIndex; /* Kludge: OtherClients and InputClients must be compatible, see code */ diff --git a/include/os.h b/include/os.h index d4eed220f..7399436fb 100644 --- a/include/os.h +++ b/include/os.h @@ -348,12 +348,6 @@ extern void InitAuthorization(char * /*filename*/); extern void RegisterAuthorizations(void); -extern XID AuthorizationToID ( - unsigned short name_length, - char *name, - unsigned short data_length, - char *data); - extern int AuthorizationFromID ( XID id, unsigned short *name_lenp, @@ -402,14 +396,6 @@ extern int ddxProcessArgument(int /*argc*/, char * /*argv*/ [], int /*i*/); extern void ddxUseMsg(void); -/* - * idiom processing stuff - */ - -extern xReqPtr PeekNextRequest(xReqPtr req, ClientPtr client, Bool readmore); - -extern void SkipRequests(xReqPtr req, ClientPtr client, int numskipped); - /* int ReqLen(xReq *req, ClientPtr client) * Given a pointer to a *complete* request, return its length in bytes. * Note that if the request is a big request (as defined in the Big diff --git a/include/swaprep.h b/include/swaprep.h index 8a9dcf036..bebd3a814 100644 --- a/include/swaprep.h +++ b/include/swaprep.h @@ -91,9 +91,6 @@ extern void SQueryPointerReply( int /* size */, xQueryPointerReply * /* pRep */); -extern void SwapTimecoord( - xTimecoord * /* pCoord */); - extern void SwapTimeCoordWrite( ClientPtr /* pClient */, int /* size */, @@ -174,9 +171,6 @@ extern void SAllocColorPlanesReply( int /* size */, xAllocColorPlanesReply * /* pRep */); -extern void SwapRGB( - xrgb * /* prgb */); - extern void SQColorsExtend( ClientPtr /* pClient */, int /* size */, @@ -255,18 +249,6 @@ extern void WriteSConnectionInfo( unsigned long /* size */, char * /* pInfo */); -extern void SwapConnSetup( - xConnSetup * /* pConnSetup */, - xConnSetup * /* pConnSetupT */); - -extern void SwapWinRoot( - xWindowRoot * /* pRoot */, - xWindowRoot * /* pRootT */); - -extern void SwapVisual( - xVisualType * /* pVis */, - xVisualType * /* pVisT */); - extern void SwapConnSetupPrefix( xConnSetupPrefix * /* pcspFrom */, xConnSetupPrefix * /* pcspTo */); diff --git a/include/window.h b/include/window.h index bddeb252b..cd8c5b283 100644 --- a/include/window.h +++ b/include/window.h @@ -93,14 +93,6 @@ extern Bool CreateRootWindow( extern void InitRootWindow( WindowPtr /*pWin*/); -extern void ClippedRegionFromBox( - WindowPtr /*pWin*/, - RegionPtr /*Rgn*/, - int /*x*/, - int /*y*/, - int /*w*/, - int /*h*/); - typedef WindowPtr (* RealChildHeadProc) (WindowPtr pWin); void RegisterRealChildHeadProc (RealChildHeadProc proc); @@ -205,12 +197,6 @@ extern void UnmapSubwindows( extern void HandleSaveSet( ClientPtr /*client*/); -extern Bool VisibleBoundingBoxFromPoint( - WindowPtr /*pWin*/, - int /*x*/, - int /*y*/, - BoxPtr /*box*/); - extern Bool PointInWindowIsVisible( WindowPtr /*pWin*/, int /*x*/, @@ -235,9 +221,6 @@ extern void CheckWindowOptionalNeed( extern Bool MakeWindowOptional( WindowPtr /*pWin*/); -extern void DisposeWindowOptional( - WindowPtr /*pWin*/); - extern WindowPtr MoveWindowInStack( WindowPtr /*pWin*/, WindowPtr /*pNextSib*/); @@ -271,7 +254,5 @@ extern void DisableMapUnmapEvents( WindowPtr /* pWin */ ); extern void EnableMapUnmapEvents( WindowPtr /* pWin */ ); -extern Bool MapUnmapEventsEnabled( - WindowPtr /* pWin */ ); #endif /* WINDOW_H */ diff --git a/include/windowstr.h b/include/windowstr.h index a37dc6b75..9fd6d768c 100644 --- a/include/windowstr.h +++ b/include/windowstr.h @@ -129,12 +129,6 @@ typedef struct _Window { unsigned viewable:1; /* realized && InputOutput */ unsigned dontPropagate:3;/* index into DontPropagateMasks */ unsigned forcedBS:1; /* system-supplied backingStore */ -#ifdef NEED_DBE_BUF_BITS -#define DBE_FRONT_BUFFER 1 -#define DBE_BACK_BUFFER 0 - unsigned dstBuffer:1; /* destination buffer for rendering */ - unsigned srcBuffer:1; /* source buffer for rendering */ -#endif #ifdef COMPOSITE unsigned redirectDraw:1; /* rendering is redirected from here */ #endif diff --git a/include/xkbsrv.h b/include/xkbsrv.h new file mode 100644 index 000000000..5edee539b --- /dev/null +++ b/include/xkbsrv.h @@ -0,0 +1,1022 @@ +/************************************************************ +Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of Silicon Graphics not be +used in advertising or publicity pertaining to distribution +of the software without specific prior written permission. +Silicon Graphics makes no representation about the suitability +of this software for any purpose. It is provided "as is" +without any express or implied warranty. + +SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +THE USE OR PERFORMANCE OF THIS SOFTWARE. + +********************************************************/ + +#ifndef _XKBSRV_H_ +#define _XKBSRV_H_ + +#ifdef XKB_IN_SERVER +#define XkbAllocClientMap SrvXkbAllocClientMap +#define XkbAllocServerMap SrvXkbAllocServerMap +#define XkbChangeTypesOfKey SrvXkbChangeTypesOfKey +#define XkbCopyKeyTypes SrvXkbCopyKeyTypes +#define XkbFreeClientMap SrvXkbFreeClientMap +#define XkbFreeServerMap SrvXkbFreeServerMap +#define XkbKeyTypesForCoreSymbols SrvXkbKeyTypesForCoreSymbols +#define XkbApplyCompatMapToKey SrvXkbApplyCompatMapToKey +#define XkbResizeKeyActions SrvXkbResizeKeyActions +#define XkbResizeKeySyms SrvXkbResizeKeySyms +#define XkbResizeKeyType SrvXkbResizeKeyType +#define XkbAllocCompatMap SrvXkbAllocCompatMap +#define XkbAllocControls SrvXkbAllocControls +#define XkbAllocIndicatorMaps SrvXkbAllocIndicatorMaps +#define XkbAllocKeyboard SrvXkbAllocKeyboard +#define XkbAllocNames SrvXkbAllocNames +#define XkbFreeCompatMap SrvXkbFreeCompatMap +#define XkbFreeKeyboard SrvXkbFreeKeyboard +#define XkbFreeNames SrvXkbFreeNames +#define XkbLatchModifiers SrvXkbLatchModifiers +#define XkbLatchGroup SrvXkbLatchGroup +#define XkbVirtualModsToReal SrvXkbVirtualModsToReal +#define XkbChangeKeycodeRange SrvXkbChangeKeycodeRange +#define XkbApplyVirtualModChanges SrvXkbApplyVirtualModChanges +#endif + +#include +#include +#include "inputstr.h" + +typedef struct _XkbInterest { + DeviceIntPtr dev; + ClientPtr client; + XID resource; + struct _XkbInterest * next; + CARD16 extDevNotifyMask; + CARD16 stateNotifyMask; + CARD16 namesNotifyMask; + CARD32 ctrlsNotifyMask; + CARD8 compatNotifyMask; + BOOL bellNotifyMask; + BOOL actionMessageMask; + CARD16 accessXNotifyMask; + CARD32 iStateNotifyMask; + CARD32 iMapNotifyMask; + CARD16 altSymsNotifyMask; + CARD32 autoCtrls; + CARD32 autoCtrlValues; +} XkbInterestRec,*XkbInterestPtr; + +typedef struct _XkbRadioGroup { + CARD8 flags; + CARD8 nMembers; + CARD8 dfltDown; + CARD8 currentDown; + CARD8 members[XkbRGMaxMembers]; +} XkbRadioGroupRec, *XkbRadioGroupPtr; + +typedef struct _XkbEventCause { + CARD8 kc; + CARD8 event; + CARD8 mjr; + CARD8 mnr; + ClientPtr client; +} XkbEventCauseRec,*XkbEventCausePtr; +#define XkbSetCauseKey(c,k,e) { (c)->kc= (k),(c)->event= (e),\ + (c)->mjr= (c)->mnr= 0; \ + (c)->client= NULL; } +#define XkbSetCauseReq(c,j,n,cl) { (c)->kc= (c)->event= 0,\ + (c)->mjr= (j),(c)->mnr= (n);\ + (c)->client= (cl); } +#define XkbSetCauseCoreReq(c,e,cl) XkbSetCauseReq(c,e,0,cl) +#define XkbSetCauseXkbReq(c,e,cl) XkbSetCauseReq(c,XkbReqCode,e,cl) +#define XkbSetCauseUnknown(c) XkbSetCauseKey(c,0,0) + +#define _OFF_TIMER 0 +#define _KRG_WARN_TIMER 1 +#define _KRG_TIMER 2 +#define _SK_TIMEOUT_TIMER 3 +#define _ALL_TIMEOUT_TIMER 4 + +#define _BEEP_NONE 0 +#define _BEEP_FEATURE_ON 1 +#define _BEEP_FEATURE_OFF 2 +#define _BEEP_FEATURE_CHANGE 3 +#define _BEEP_SLOW_WARN 4 +#define _BEEP_SLOW_PRESS 5 +#define _BEEP_SLOW_ACCEPT 6 +#define _BEEP_SLOW_REJECT 7 +#define _BEEP_SLOW_RELEASE 8 +#define _BEEP_STICKY_LATCH 9 +#define _BEEP_STICKY_LOCK 10 +#define _BEEP_STICKY_UNLOCK 11 +#define _BEEP_LED_ON 12 +#define _BEEP_LED_OFF 13 +#define _BEEP_LED_CHANGE 14 +#define _BEEP_BOUNCE_REJECT 15 + +typedef struct _XkbSrvInfo { + XkbStateRec prev_state; + XkbStateRec state; + XkbDescPtr desc; + + DeviceIntPtr device; + KbdCtrlProcPtr kbdProc; + + XkbRadioGroupPtr radioGroups; + CARD8 nRadioGroups; + CARD8 clearMods; + CARD8 setMods; + INT16 groupChange; + + CARD16 dfltPtrDelta; + + double mouseKeysCurve; + double mouseKeysCurveFactor; + INT16 mouseKeysDX; + INT16 mouseKeysDY; + CARD8 mouseKeysFlags; + Bool mouseKeysAccel; + CARD8 mouseKeysCounter; + + CARD8 lockedPtrButtons; + CARD8 shiftKeyCount; + KeyCode mouseKey; + KeyCode inactiveKey; + KeyCode slowKey; + KeyCode repeatKey; + CARD8 krgTimerActive; + CARD8 beepType; + CARD8 beepCount; + + CARD32 flags; + CARD32 lastPtrEventTime; + CARD32 lastShiftEventTime; + OsTimerPtr beepTimer; + OsTimerPtr mouseKeyTimer; + OsTimerPtr slowKeysTimer; + OsTimerPtr bounceKeysTimer; + OsTimerPtr repeatKeyTimer; + OsTimerPtr krgTimer; +} XkbSrvInfoRec, *XkbSrvInfoPtr; + +#define XkbSLI_IsDefault (1L<<0) +#define XkbSLI_HasOwnState (1L<<1) + +typedef struct _XkbSrvLedInfo { + CARD16 flags; + CARD16 class; + CARD16 id; + union { + KbdFeedbackPtr kf; + LedFeedbackPtr lf; + } fb; + + CARD32 physIndicators; + CARD32 autoState; + CARD32 explicitState; + CARD32 effectiveState; + + CARD32 mapsPresent; + CARD32 namesPresent; + XkbIndicatorMapPtr maps; + Atom * names; + + CARD32 usesBase; + CARD32 usesLatched; + CARD32 usesLocked; + CARD32 usesEffective; + CARD32 usesCompat; + CARD32 usesControls; + + CARD32 usedComponents; +} XkbSrvLedInfoRec, *XkbSrvLedInfoPtr; + +/* + * Settings for xkbClientFlags field (used by DIX) + * These flags _must_ not overlap with XkbPCF_* + */ +#define _XkbClientInitialized (1<<15) + +#define _XkbWantsDetectableAutoRepeat(c)\ + ((c)->xkbClientFlags&XkbPCF_DetectableAutoRepeatMask) + +/* + * Settings for flags field + */ +#define _XkbStateNotifyInProgress (1<<0) + +typedef struct +{ + ProcessInputProc processInputProc; + ProcessInputProc realInputProc; + DeviceUnwrapProc unwrapProc; +} xkbDeviceInfoRec, *xkbDeviceInfoPtr; + +#define WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \ + device->public.processInputProc = proc; \ + oldprocs->processInputProc = \ + oldprocs->realInputProc = device->public.realInputProc; \ + device->public.realInputProc = proc; \ + oldprocs->unwrapProc = device->unwrapProc; \ + device->unwrapProc = unwrapproc; + +#define COND_WRAP_PROCESS_INPUT_PROC(device, oldprocs, proc, unwrapproc) \ + if (device->public.processInputProc == device->public.realInputProc)\ + device->public.processInputProc = proc; \ + oldprocs->processInputProc = \ + oldprocs->realInputProc = device->public.realInputProc; \ + device->public.realInputProc = proc; \ + oldprocs->unwrapProc = device->unwrapProc; \ + device->unwrapProc = unwrapproc; + +#define UNWRAP_PROCESS_INPUT_PROC(device, oldprocs) \ + device->public.processInputProc = oldprocs->processInputProc; \ + device->public.realInputProc = oldprocs->realInputProc; \ + device->unwrapProc = oldprocs->unwrapProc; + +#define XKBDEVICEINFO(dev) ((xkbDeviceInfoPtr) (dev)->devPrivates[xkbDevicePrivateIndex].ptr) + +/***====================================================================***/ + + +/***====================================================================***/ + +#define XkbAX_KRGMask (XkbSlowKeysMask|XkbBounceKeysMask) +#define XkbAllFilteredEventsMask \ + (XkbAccessXKeysMask|XkbRepeatKeysMask|XkbMouseKeysAccelMask|XkbAX_KRGMask) + +/***====================================================================***/ + +extern int XkbReqCode; +extern int XkbEventBase; +extern int XkbDisableLockActions; +extern char * XkbBaseDirectory; +extern char * XkbBinDirectory; +extern char * XkbInitialMap; +extern unsigned int XkbXIUnsupported; + +extern Bool noXkbExtension; + +extern pointer XkbLastRepeatEvent; + +extern CARD32 xkbDebugFlags; + +#define _XkbAlloc(s) xalloc((s)) +#define _XkbCalloc(n,s) Xcalloc((n)*(s)) +#define _XkbRealloc(o,s) Xrealloc((o),(s)) +#define _XkbTypedAlloc(t) ((t *)xalloc(sizeof(t))) +#define _XkbTypedCalloc(n,t) ((t *)Xcalloc((n)*sizeof(t))) +#define _XkbTypedRealloc(o,n,t) \ + ((o)?(t *)Xrealloc((o),(n)*sizeof(t)):_XkbTypedCalloc(n,t)) +#define _XkbClearElems(a,f,l,t) bzero(&(a)[f],((l)-(f)+1)*sizeof(t)) +#define _XkbFree(p) Xfree(p) + +#define _XkbLibError(c,l,d) \ + { _XkbErrCode= (c); _XkbErrLocation= (l); _XkbErrData= (d); } +#define _XkbErrCode2(a,b) ((XID)((((unsigned int)(a))<<24)|((b)&0xffffff))) +#define _XkbErrCode3(a,b,c) _XkbErrCode2(a,(((unsigned int)(b))<<16)|(c)) +#define _XkbErrCode4(a,b,c,d) _XkbErrCode3(a,b,((((unsigned int)(c))<<8)|(d))) + +extern int DeviceKeyPress,DeviceKeyRelease; +extern int DeviceButtonPress,DeviceButtonRelease; + +#ifdef XINPUT +#define _XkbIsPressEvent(t) (((t)==KeyPress)||((t)==DeviceKeyPress)) +#define _XkbIsReleaseEvent(t) (((t)==KeyRelease)||((t)==DeviceKeyRelease)) +#else +#define _XkbIsPressEvent(t) ((t)==KeyPress) +#define _XkbIsReleaseEvent(t) ((t)==KeyRelease) +#endif + +#define _XkbCoreKeycodeInRange(c,k) (((k)>=(c)->curKeySyms.minKeyCode)&&\ + ((k)<=(c)->curKeySyms.maxKeyCode)) +#define _XkbCoreNumKeys(c) ((c)->curKeySyms.maxKeyCode-\ + (c)->curKeySyms.minKeyCode+1) + +#define XConvertCase(s,l,u) XkbConvertCase(s,l,u) +#undef IsKeypadKey +#define IsKeypadKey(s) XkbKSIsKeypad(s) + +#define Status int +#define XPointer pointer +#define Display struct _XDisplay + +#ifndef True +#define True 1 +#define False 0 +#endif + +#ifndef PATH_MAX +#ifdef MAXPATHLEN +#define PATH_MAX MAXPATHLEN +#else +#define PATH_MAX 1024 +#endif +#endif + +_XFUNCPROTOBEGIN + +extern void XkbUseMsg( + void +); + +extern int XkbProcessArguments( + int /* argc */, + char ** /* argv */, + int /* i */ +); + +extern void XkbSetExtension(DeviceIntPtr device, ProcessInputProc proc); + +extern void XkbFreeCompatMap( + XkbDescPtr /* xkb */, + unsigned int /* which */, + Bool /* freeMap */ +); + +extern void XkbFreeNames( + XkbDescPtr /* xkb */, + unsigned int /* which */, + Bool /* freeMap */ +); + +extern DeviceIntPtr _XkbLookupAnyDevice( + int /* id */, + int * /* why_rtrn */ +); + +extern DeviceIntPtr _XkbLookupKeyboard( + int /* id */, + int * /* why_rtrn */ +); + +extern DeviceIntPtr _XkbLookupBellDevice( + int /* id */, + int * /* why_rtrn */ +); + +extern DeviceIntPtr _XkbLookupLedDevice( + int /* id */, + int * /* why_rtrn */ +); + +extern DeviceIntPtr _XkbLookupButtonDevice( + int /* id */, + int * /* why_rtrn */ +); + +extern XkbDescPtr XkbAllocKeyboard( + void +); + +extern Status XkbAllocClientMap( + XkbDescPtr /* xkb */, + unsigned int /* which */, + unsigned int /* nTypes */ +); + +extern Status XkbAllocServerMap( + XkbDescPtr /* xkb */, + unsigned int /* which */, + unsigned int /* nNewActions */ +); + +extern void XkbFreeClientMap( + XkbDescPtr /* xkb */, + unsigned int /* what */, + Bool /* freeMap */ +); + +extern void XkbFreeServerMap( + XkbDescPtr /* xkb */, + unsigned int /* what */, + Bool /* freeMap */ +); + +extern Status XkbAllocIndicatorMaps( + XkbDescPtr /* xkb */ +); + +extern Status XkbAllocCompatMap( + XkbDescPtr /* xkb */, + unsigned int /* which */, + unsigned int /* nInterpret */ +); + +extern Status XkbAllocNames( + XkbDescPtr /* xkb */, + unsigned int /* which */, + int /* nTotalRG */, + int /* nTotalAliases */ +); + +extern Status XkbAllocControls( + XkbDescPtr /* xkb */, + unsigned int /* which*/ +); + +extern Status XkbCopyKeyTypes( + XkbKeyTypePtr /* from */, + XkbKeyTypePtr /* into */, + int /* num_types */ +); + +extern Status XkbResizeKeyType( + XkbDescPtr /* xkb */, + int /* type_ndx */, + int /* map_count */, + Bool /* want_preserve */, + int /* new_num_lvls */ +); + +extern void XkbFreeKeyboard( + XkbDescPtr /* xkb */, + unsigned int /* which */, + Bool /* freeDesc */ +); + +extern void XkbSetActionKeyMods( + XkbDescPtr /* xkb */, + XkbAction * /* act */, + unsigned int /* mods */ +); + +extern Bool XkbCheckActionVMods( + XkbDescPtr /* xkb */, + XkbAction * /* act */, + unsigned int /* changed */ +); + +extern unsigned int XkbMaskForVMask( + XkbDescPtr /* xkb */, + unsigned int /* vmask */ +); + +extern Bool XkbVirtualModsToReal( + XkbDescPtr /* xkb */, + unsigned int /* virtua_mask */, + unsigned int * /* mask_rtrn */ +); + +extern unsigned int XkbAdjustGroup( + int /* group */, + XkbControlsPtr /* ctrls */ +); + +extern KeySym *XkbResizeKeySyms( + XkbDescPtr /* xkb */, + int /* key */, + int /* needed */ +); + +extern XkbAction *XkbResizeKeyActions( + XkbDescPtr /* xkb */, + int /* key */, + int /* needed */ +); + +extern void XkbUpdateKeyTypesFromCore( + DeviceIntPtr /* pXDev */, + KeyCode /* first */, + CARD8 /* num */, + XkbChangesPtr /* pChanges */ +); + +extern void XkbUpdateDescActions( + XkbDescPtr /* xkb */, + KeyCode /* first */, + CARD8 /* num */, + XkbChangesPtr /* changes */ +); + +extern void XkbUpdateActions( + DeviceIntPtr /* pXDev */, + KeyCode /* first */, + CARD8 /* num */, + XkbChangesPtr /* pChanges */, + unsigned int * /* needChecksRtrn */, + XkbEventCausePtr /* cause */ +); + +extern void XkbUpdateCoreDescription( + DeviceIntPtr /* keybd */, + Bool /* resize */ +); + +extern void XkbApplyMappingChange( + DeviceIntPtr /* pXDev */, + CARD8 /* request */, + KeyCode /* firstKey */, + CARD8 /* num */, + ClientPtr /* client */ +); + +extern void XkbSetIndicators( + DeviceIntPtr /* pXDev */, + CARD32 /* affect */, + CARD32 /* values */, + XkbEventCausePtr /* cause */ +); + +extern void XkbUpdateIndicators( + DeviceIntPtr /* keybd */, + CARD32 /* changed */, + Bool /* check_edevs */, + XkbChangesPtr /* pChanges */, + XkbEventCausePtr /* cause */ +); + +extern XkbSrvLedInfoPtr XkbAllocSrvLedInfo( + DeviceIntPtr /* dev */, + KbdFeedbackPtr /* kf */, + LedFeedbackPtr /* lf */, + unsigned int /* needed_parts */ +); + +extern XkbSrvLedInfoPtr XkbFindSrvLedInfo( + DeviceIntPtr /* dev */, + unsigned int /* class */, + unsigned int /* id */, + unsigned int /* needed_parts */ +); + +extern void XkbApplyLedNameChanges( + DeviceIntPtr /* dev */, + XkbSrvLedInfoPtr /* sli */, + unsigned int /* changed_names */, + xkbExtensionDeviceNotify * /* ed */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern void XkbApplyLedMapChanges( + DeviceIntPtr /* dev */, + XkbSrvLedInfoPtr /* sli */, + unsigned int /* changed_maps */, + xkbExtensionDeviceNotify * /* ed */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern void XkbApplyLedStateChanges( + DeviceIntPtr /* dev */, + XkbSrvLedInfoPtr /* sli */, + unsigned int /* changed_leds */, + xkbExtensionDeviceNotify * /* ed */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern void XkbFlushLedEvents( + DeviceIntPtr /* dev */, + DeviceIntPtr /* kbd */, + XkbSrvLedInfoPtr /* sli */, + xkbExtensionDeviceNotify * /* ed */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern unsigned int XkbIndicatorsToUpdate( + DeviceIntPtr /* dev */, + unsigned long /* state_changes */, + Bool /* enabled_ctrl_changes */ +); + +extern void XkbComputeDerivedState( + XkbSrvInfoPtr /* xkbi */ +); + +extern void XkbCheckSecondaryEffects( + XkbSrvInfoPtr /* xkbi */, + unsigned int /* which */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern void XkbCheckIndicatorMaps( + DeviceIntPtr /* dev */, + XkbSrvLedInfoPtr /* sli */, + unsigned int /* which */ +); + +extern unsigned int XkbStateChangedFlags( + XkbStatePtr /* old */, + XkbStatePtr /* new */ +); + +extern void XkbSendStateNotify( + DeviceIntPtr /* kbd */, + xkbStateNotify * /* pSN */ +); + +extern void XkbSendMapNotify( + DeviceIntPtr /* kbd */, + xkbMapNotify * /* ev */ +); + +extern int XkbComputeControlsNotify( + DeviceIntPtr /* kbd */, + XkbControlsPtr /* old */, + XkbControlsPtr /* new */, + xkbControlsNotify * /* pCN */, + Bool /* forceCtrlProc */ +); + +extern void XkbSendControlsNotify( + DeviceIntPtr /* kbd */, + xkbControlsNotify * /* ev */ +); + +extern void XkbSendCompatMapNotify( + DeviceIntPtr /* kbd */, + xkbCompatMapNotify * /* ev */ +); + +extern void XkbHandleBell( + BOOL /* force */, + BOOL /* eventOnly */, + DeviceIntPtr /* kbd */, + CARD8 /* percent */, + pointer /* ctrl */, + CARD8 /* class */, + Atom /* name */, + WindowPtr /* pWin */, + ClientPtr /* pClient */ +); + +extern void XkbSendAccessXNotify( + DeviceIntPtr /* kbd */, + xkbAccessXNotify * /* pEv */ +); + +extern void XkbSendNamesNotify( + DeviceIntPtr /* kbd */, + xkbNamesNotify * /* ev */ +); + +extern void XkbSendCompatNotify( + DeviceIntPtr /* kbd */, + xkbCompatMapNotify * /* ev */ +); + +extern void XkbSendActionMessage( + DeviceIntPtr /* kbd */, + xkbActionMessage * /* ev */ +); + +extern void XkbSendExtensionDeviceNotify( + DeviceIntPtr /* kbd */, + ClientPtr /* client */, + xkbExtensionDeviceNotify * /* ev */ +); + +extern void XkbSendNotification( + DeviceIntPtr /* kbd */, + XkbChangesPtr /* pChanges */, + XkbEventCausePtr /* cause */ +); + +extern void XkbProcessKeyboardEvent( + struct _xEvent * /* xE */, + DeviceIntPtr /* keybd */, + int /* count */ +); + +extern void XkbHandleActions( + DeviceIntPtr /* dev */, + DeviceIntPtr /* kbd */, + struct _xEvent * /* xE */, + int /* count */ +); + +extern Bool XkbEnableDisableControls( + XkbSrvInfoPtr /* xkbi */, + unsigned long /* change */, + unsigned long /* newValues */, + XkbChangesPtr /* changes */, + XkbEventCausePtr /* cause */ +); + +extern void AccessXInit( + DeviceIntPtr /* dev */ +); + +extern Bool AccessXFilterPressEvent( + register struct _xEvent * /* xE */, + register DeviceIntPtr /* keybd */, + int /* count */ +); + +extern Bool AccessXFilterReleaseEvent( + register struct _xEvent * /* xE */, + register DeviceIntPtr /* keybd */, + int /* count */ +); + +extern void AccessXCancelRepeatKey( + XkbSrvInfoPtr /* xkbi */, + KeyCode /* key */ +); + +extern void AccessXComputeCurveFactor( + XkbSrvInfoPtr /* xkbi */, + XkbControlsPtr /* ctrls */ +); + +extern XkbInterestPtr XkbFindClientResource( + DevicePtr /* inDev */, + ClientPtr /* client */ +); + +extern XkbInterestPtr XkbAddClientResource( + DevicePtr /* inDev */, + ClientPtr /* client */, + XID /* id */ +); + +extern int XkbRemoveResourceClient( + DevicePtr /* inDev */, + XID /* id */ +); + +extern int XkbDDXInitDevice( + DeviceIntPtr /* dev */ +); + +extern int XkbDDXAccessXBeep( + DeviceIntPtr /* dev */, + unsigned int /* what */, + unsigned int /* which */ +); + +extern void XkbDDXKeyClick( + DeviceIntPtr /* dev */, + int /* keycode */, + int /* synthetic */ +); + +extern int XkbDDXUsesSoftRepeat( + DeviceIntPtr /* dev */ +); + +extern void XkbDDXKeybdCtrlProc( + DeviceIntPtr /* dev */, + KeybdCtrl * /* ctrl */ +); + +extern void XkbDDXChangeControls( + DeviceIntPtr /* dev */, + XkbControlsPtr /* old */, + XkbControlsPtr /* new */ +); + +extern void XkbDDXUpdateDeviceIndicators( + DeviceIntPtr /* dev */, + XkbSrvLedInfoPtr /* sli */, + CARD32 /* newState */ +); + +extern void XkbDDXFakePointerButton( + int /* event */, + int /* button */ +); + +extern void XkbDDXFakePointerMotion( + unsigned int /* flags */, + int /* x */, + int /* y */ +); + +extern void XkbDDXFakeDeviceButton( + DeviceIntPtr /* dev */, + Bool /* press */, + int /* button */ +); + +extern int XkbDDXTerminateServer( + DeviceIntPtr /* dev */, + KeyCode /* key */, + XkbAction * /* act */ +); + +extern int XkbDDXSwitchScreen( + DeviceIntPtr /* dev */, + KeyCode /* key */, + XkbAction * /* act */ +); + +extern int XkbDDXPrivate( + DeviceIntPtr /* dev */, + KeyCode /* key */, + XkbAction * /* act */ +); + +extern void XkbDisableComputedAutoRepeats( + DeviceIntPtr /* pXDev */, + unsigned int /* key */ +); + +extern void XkbSetRepeatKeys( + DeviceIntPtr /* pXDev */, + int /* key */, + int /* onoff */ +); + +extern int XkbLatchModifiers( + DeviceIntPtr /* pXDev */, + CARD8 /* mask */, + CARD8 /* latches */ +); + +extern int XkbLatchGroup( + DeviceIntPtr /* pXDev */, + int /* group */ +); + +extern void XkbClearAllLatchesAndLocks( + DeviceIntPtr /* dev */, + XkbSrvInfoPtr /* xkbi */, + Bool /* genEv */, + XkbEventCausePtr /* cause */ +); + +extern void XkbSetRulesDflts( + char * /* rulesFile */, + char * /* model */, + char * /* layout */, + char * /* variant */, + char * /* options */ +); + +extern void XkbInitDevice( + DeviceIntPtr /* pXDev */ +); + +extern Bool XkbInitKeyboardDeviceStruct( + DeviceIntPtr /* pXDev */, + XkbComponentNamesPtr /* pNames */, + KeySymsPtr /* pSyms */, + CARD8 /* pMods */[], + BellProcPtr /* bellProc */, + KbdCtrlProcPtr /* ctrlProc */ +); + +extern int SProcXkbDispatch( + ClientPtr /* client */ +); + +extern XkbGeometryPtr XkbLookupNamedGeometry( + DeviceIntPtr /* dev */, + Atom /* name */, + Bool * /* shouldFree */ +); + +extern char * _XkbDupString( + char * /* str */ +); + +extern void XkbConvertCase( + KeySym /* sym */, + KeySym * /* lower */, + KeySym * /* upper */ +); + +extern Status XkbChangeKeycodeRange( + XkbDescPtr /* xkb */, + int /* minKC */, + int /* maxKC */, + XkbChangesPtr /* changes */ +); + +extern int XkbFinishDeviceInit( + DeviceIntPtr /* pXDev */ +); + +extern void XkbFreeSrvLedInfo( + XkbSrvLedInfoPtr /* sli */ +); + +extern void XkbFreeInfo( + XkbSrvInfoPtr /* xkbi */ +); + +extern Status XkbChangeTypesOfKey( + XkbDescPtr /* xkb */, + int /* key */, + int /* nGroups */, + unsigned int /* groups */, + int * /* newTypesIn */, + XkbMapChangesPtr /* changes */ +); + +extern int XkbKeyTypesForCoreSymbols( + XkbDescPtr /* xkb */, + int /* map_width */, + KeySym * /* core_syms */, + unsigned int /* protected */, + int * /* types_inout */, + KeySym * /* xkb_syms_rtrn */ +); + +extern Bool XkbApplyCompatMapToKey( + XkbDescPtr /* xkb */, + KeyCode /* key */, + XkbChangesPtr /* changes */ +); + +extern Bool XkbApplyVirtualModChanges( + XkbDescPtr /* xkb */, + unsigned int /* changed */, + XkbChangesPtr /* changes */ +); + +extern void XkbSendNewKeyboardNotify( + DeviceIntPtr /* kbd */, + xkbNewKeyboardNotify * /* pNKN */ +); + +#ifdef XKBSRV_NEED_FILE_FUNCS + +#include +#include +#include + +#define _XkbListKeymaps 0 +#define _XkbListKeycodes 1 +#define _XkbListTypes 2 +#define _XkbListCompat 3 +#define _XkbListSymbols 4 +#define _XkbListGeometry 5 +#define _XkbListNumComponents 6 + +typedef struct _XkbSrvListInfo { + int szPool; + int nPool; + char * pool; + + int maxRtrn; + int nTotal; + + char * pattern[_XkbListNumComponents]; + int nFound[_XkbListNumComponents]; +} XkbSrvListInfoRec,*XkbSrvListInfoPtr; + +extern Status XkbDDXList( + DeviceIntPtr /* dev */, + XkbSrvListInfoPtr /* listing */, + ClientPtr /* client */ +); + +extern unsigned int XkbDDXLoadKeymapByNames( + DeviceIntPtr /* keybd */, + XkbComponentNamesPtr /* names */, + unsigned int /* want */, + unsigned int /* need */, + XkbFileInfoPtr /* finfoRtrn */, + char * /* keymapNameRtrn */, + int /* keymapNameRtrnLen */ +); + +extern Bool XkbDDXNamesFromRules( + DeviceIntPtr /* keybd */, + char * /* rules */, + XkbRF_VarDefsPtr /* defs */, + XkbComponentNamesPtr /* names */ +); + +extern Bool XkbDDXApplyConfig( + XPointer /* cfg_in */, + XkbSrvInfoPtr /* xkbi */ +); + +extern XPointer XkbDDXPreloadConfig( + char ** /* rulesFileRtrn */, + XkbRF_VarDefsPtr /* defs */, + XkbComponentNamesPtr /* names */, + DeviceIntPtr /* dev */ +); + +extern int _XkbStrCaseCmp( + char * /* str1 */, + char * /* str2 */ +); + +#endif /* XKBSRV_NEED_FILE_FUNCS */ + +_XFUNCPROTOEND + +#define XkbAtomGetString(d,s) NameForAtom(s) + +#endif /* _XKBSRV_H_ */ diff --git a/mi/mi.h b/mi/mi.h index 8d9d120bd..c71c9b7c0 100644 --- a/mi/mi.h +++ b/mi/mi.h @@ -85,18 +85,6 @@ extern RegionPtr miCopyArea( int /*yOut*/ ); -extern void miOpqStipDrawable( - DrawablePtr /*pDraw*/, - GCPtr /*pGC*/, - RegionPtr /*prgnSrc*/, - MiBits * /*pbits*/, - int /*srcx*/, - int /*w*/, - int /*h*/, - int /*dstx*/, - int /*dsty*/ -); - extern RegionPtr miCopyPlane( DrawablePtr /*pSrcDrawable*/, DrawablePtr /*pDstDrawable*/, @@ -144,15 +132,6 @@ extern void miRecolorCursor( /* midash.c */ -extern miDashPtr miDashLine( - int /*npt*/, - DDXPointPtr /*ppt*/, - unsigned int /*nDash*/, - unsigned char * /*pDash*/, - unsigned int /*offset*/, - int * /*pnseg*/ -); - extern void miStepDash( int /*dist*/, int * /*pDashIndex*/, @@ -186,6 +165,9 @@ extern void mieqProcessInputEvents( void ); +typedef void (*mieqHandler)(int, xEventPtr, DeviceIntPtr, int); +void mieqSetHandler(int event, mieqHandler handler); + /* miexpose.c */ extern RegionPtr miHandleExposures( @@ -323,16 +305,6 @@ extern void miPolySegment( /* mipolytext.c */ -extern int miPolyText( - DrawablePtr /*pDraw*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - char * /*chars*/, - FontEncoding /*fontEncoding*/ -); - extern int miPolyText8( DrawablePtr /*pDraw*/, GCPtr /*pGC*/, @@ -351,16 +323,6 @@ extern int miPolyText16( unsigned short * /*chars*/ ); -extern int miImageText( - DrawablePtr /*pDraw*/, - GCPtr /*pGC*/, - int /*x*/, - int /*y*/, - int /*count*/, - char * /*chars*/, - FontEncoding /*fontEncoding*/ -); - extern void miImageText8( DrawablePtr /*pDraw*/, GCPtr /*pGC*/, @@ -400,10 +362,6 @@ extern Bool miRectAlloc( int /*n*/ ); -extern void miSetExtents( - RegionPtr /*pReg*/ -); - extern int miFindMaxBand( RegionPtr /*prgn*/ ); @@ -414,7 +372,6 @@ extern Bool miValidRegion( ); #endif -extern Bool miRegionDataCopy(RegionPtr dst, RegionPtr src); extern Bool miRegionBroken(RegionPtr pReg); /* miscrinit.c */ @@ -429,11 +386,6 @@ extern Bool miModifyPixmapHeader( pointer /*pPixData*/ ); -extern Bool miCloseScreen( - int /*index*/, - ScreenPtr /*pScreen*/ -); - extern Bool miCreateScreenResources( ScreenPtr /*pScreen*/ ); diff --git a/mi/miarc.c b/mi/miarc.c index 2b3a0cbbc..2bbbb0e7f 100644 --- a/mi/miarc.c +++ b/mi/miarc.c @@ -246,7 +246,7 @@ typedef struct _miPolyArc { static CARD32 gcvals[6]; static void fillSpans(DrawablePtr pDrawable, GCPtr pGC); -static void newFinalSpan(int y, register int xmin, register int xmax); +static void newFinalSpan(int y, int xmin, int xmax); static void drawArc(xArc *tarc, int l, int a0, int a1, miArcFacePtr right, miArcFacePtr left); static void drawZeroArc(DrawablePtr pDraw, GCPtr pGC, xArc *tarc, int lw, @@ -284,7 +284,7 @@ miArcSegment( { int l = pGC->lineWidth; int a0, a1, startAngle, endAngle; - miArcFacePtr temp; + miArcFacePtr temp; if (!l) l = 1; @@ -425,15 +425,8 @@ static unsigned long lrustamp; static arcCacheRec *lastCacheHit = &arcCache[0]; static RESTYPE cacheType; -/* - * External so it can be called when low on memory. - * Call with a zero ID in that case. - */ -/*ARGSUSED*/ -int -miFreeArcCache (data, id) - pointer data; - XID id; +static int +miFreeArcCache (pointer data, XID id) { int k; arcCacheRec *cent; @@ -461,11 +454,11 @@ miComputeCircleSpans( xArc *parc, miArcSpanData *spdata) { - register miArcSpan *span; + miArcSpan *span; int doinner; - register int x, y, e; + int x, y, e; int xk, yk, xm, ym, dx, dy; - register int slw, inslw; + int slw, inslw; int inx = 0, iny, ine = 0; int inxk = 0, inyk = 0, inxm = 0, inym = 0; @@ -529,7 +522,7 @@ miComputeEllipseSpans( xArc *parc, miArcSpanData *spdata) { - register miArcSpan *span; + miArcSpan *span; double w, h, r, xorg; double Hs, Hf, WH, K, Vk, Nk, Fk, Vr, N, Nc, Z, rs; double A, T, b, d, x, y, t, inx, outx = 0.0, hepp, hepm; @@ -859,13 +852,13 @@ tailX( static miArcSpanData * miComputeWideEllipse( - int lw, - register xArc *parc, - Bool *mustFree) + int lw, + xArc *parc, + Bool *mustFree) { - register miArcSpanData *spdata; - register arcCacheRec *cent, *lruent; - register int k; + miArcSpanData *spdata; + arcCacheRec *cent, *lruent; + int k; arcCacheRec fakeent; if (!lw) @@ -943,14 +936,14 @@ miFillWideEllipse( xArc *parc) { DDXPointPtr points; - register DDXPointPtr pts; + DDXPointPtr pts; int *widths; - register int *wids; + int *wids; miArcSpanData *spdata; Bool mustFree; - register miArcSpan *span; - register int xorg, yorgu, yorgl; - register int n; + miArcSpan *span; + int xorg, yorgu, yorgl; + int n; yorgu = parc->height + pGC->lineWidth; n = (sizeof(int) * 2) * yorgu; @@ -1077,20 +1070,20 @@ miPolyArc(pDraw, pGC, narcs, parcs) int narcs; xArc *parcs; { - register int i; - xArc *parc; - int xMin, xMax, yMin, yMax; - int pixmapWidth = 0, pixmapHeight = 0; - int xOrg = 0, yOrg = 0; - int width; - Bool fTricky; - DrawablePtr pDrawTo; - CARD32 fg, bg; - GCPtr pGCTo; - miPolyArcPtr polyArcs; - int cap[2], join[2]; - int iphase; - int halfWidth; + int i; + xArc *parc; + int xMin, xMax, yMin, yMax; + int pixmapWidth = 0, pixmapHeight = 0; + int xOrg = 0, yOrg = 0; + int width; + Bool fTricky; + DrawablePtr pDrawTo; + CARD32 fg, bg; + GCPtr pGCTo; + miPolyArcPtr polyArcs; + int cap[2], join[2]; + int iphase; + int halfWidth; width = pGC->lineWidth; if(width == 0 && pGC->lineStyle == LineSolid) @@ -3136,12 +3129,12 @@ struct finalSpanChunk { static struct finalSpanChunk *chunks; -struct finalSpan * -realAllocSpan () +static struct finalSpan * +realAllocSpan (void) { - register struct finalSpanChunk *newChunk; - register struct finalSpan *span; - register int i; + struct finalSpanChunk *newChunk; + struct finalSpan *span; + int i; newChunk = (struct finalSpanChunk *) xalloc (sizeof (struct finalSpanChunk)); if (!newChunk) @@ -3179,14 +3172,14 @@ fillSpans ( DrawablePtr pDrawable, GCPtr pGC) { - register struct finalSpan *span; - register DDXPointPtr xSpan; - register int *xWidth; - register int i; - register struct finalSpan **f; - register int spany; - DDXPointPtr xSpans; - int *xWidths; + struct finalSpan *span; + DDXPointPtr xSpan; + int *xWidth; + int i; + struct finalSpan **f; + int spany; + DDXPointPtr xSpans; + int *xWidths; if (nspans == 0) return; @@ -3280,13 +3273,13 @@ realFindSpan (int y) static void newFinalSpan ( int y, - register int xmin, - register int xmax) + int xmin, + int xmax) { - register struct finalSpan *x; - register struct finalSpan **f; - struct finalSpan *oldx; - struct finalSpan *prev; + struct finalSpan *x; + struct finalSpan **f; + struct finalSpan *oldx; + struct finalSpan *prev; f = findSpan (y); if (!f) diff --git a/mi/mibitblt.c b/mi/mibitblt.c index bf0e29ac0..e61855a93 100644 --- a/mi/mibitblt.c +++ b/mi/mibitblt.c @@ -76,12 +76,12 @@ extern int ffs(int); _X_EXPORT RegionPtr miCopyArea(pSrcDrawable, pDstDrawable, pGC, xIn, yIn, widthSrc, heightSrc, xOut, yOut) - register DrawablePtr pSrcDrawable; - register DrawablePtr pDstDrawable; - GCPtr pGC; - int xIn, yIn; - int widthSrc, heightSrc; - int xOut, yOut; + DrawablePtr pSrcDrawable; + DrawablePtr pDstDrawable; + GCPtr pGC; + int xIn, yIn; + int widthSrc, heightSrc; + int xOut, yOut; { DDXPointPtr ppt, pptFirst; unsigned int *pwidthFirst, *pwidth, *pbits; @@ -400,13 +400,9 @@ miGetPlane( * Note how the clipped out bits of the bitmap are always the background * color so that the stipple never causes FillRect to draw them. */ -void -miOpqStipDrawable(pDraw, pGC, prgnSrc, pbits, srcx, w, h, dstx, dsty) - DrawablePtr pDraw; - GCPtr pGC; - RegionPtr prgnSrc; - MiBits *pbits; - int srcx, w, h, dstx, dsty; +static void +miOpqStipDrawable(DrawablePtr pDraw, GCPtr pGC, RegionPtr prgnSrc, + MiBits *pbits, int srcx, int w, int h, int dstx, int dsty) { int oldfill, i; unsigned long oldfg; diff --git a/mi/mibstore.c b/mi/mibstore.c index 6653c2345..70839ce31 100644 --- a/mi/mibstore.c +++ b/mi/mibstore.c @@ -152,11 +152,11 @@ static void miBSClearBackingRegion(WindowPtr pWin, RegionPtr pRgn); #define copyData(src,dst,n,morecopy) \ { \ - register short *srcCopy = (short *)(src); \ - register short *dstCopy = (short *)(dst); \ - register int i; \ - register int bsx = pBackingStore->x; \ - register int bsy = pBackingStore->y; \ + short *srcCopy = (short *)(src); \ + short *dstCopy = (short *)(dst); \ + int i; \ + int bsx = pBackingStore->x; \ + int bsy = pBackingStore->y; \ for (i = n; --i >= 0; ) \ { \ *dstCopy++ = *srcCopy++ - bsx; \ @@ -1010,7 +1010,7 @@ miBSSetSpans(pDrawable, pGC, psrc, ppt, pwidth, nspans, fSorted) DrawablePtr pDrawable; GCPtr pGC; char *psrc; - register DDXPointPtr ppt; + DDXPointPtr ppt; int *pwidth; int nspans; int fSorted; @@ -1150,8 +1150,8 @@ miBSDoCopy( } *boxes; /* Array of box/drawable pairs covering * source box. */ int *sequence; /* Sequence of boxes to move */ - register int i, j, k, l, y; - register BoxPtr pBox; + int i, j, k, l, y; + BoxPtr pBox; int dx, dy, nrects; Bool graphicsExposures; CopyPlaneProcPtr pixCopyProc; @@ -1591,7 +1591,7 @@ static RegionPtr miBSCopyPlane (pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty, plane) DrawablePtr pSrc; DrawablePtr pDst; - register GC *pGC; + GC *pGC; int srcx, srcy; int w, @@ -1901,9 +1901,9 @@ miBSPolyArc(pDrawable, pGC, narcs, parcs) static void miBSFillPolygon(pDrawable, pGC, shape, mode, count, pPts) DrawablePtr pDrawable; - register GCPtr pGC; + GCPtr pGC; int shape, mode; - register int count; + int count; DDXPointPtr pPts; { DDXPointPtr pPtsCopy; @@ -2546,8 +2546,8 @@ static void miBSAllocate(pWin) WindowPtr pWin; { - register miBSWindowPtr pBackingStore; - register ScreenPtr pScreen; + miBSWindowPtr pBackingStore; + ScreenPtr pScreen; if (pWin->drawable.pScreen->backingStoreSupport == NotUseful) return; @@ -2648,7 +2648,7 @@ miBSFree(pWin) WindowPtr pWin; { miBSWindowPtr pBackingStore; - register ScreenPtr pScreen; + ScreenPtr pScreen; pScreen = pWin->drawable.pScreen; @@ -2792,9 +2792,9 @@ miResizeBackingStore( */ static void miBSSaveDoomedAreas(pWin, pObscured, dx, dy) - register WindowPtr pWin; - RegionPtr pObscured; - int dx, dy; + WindowPtr pWin; + RegionPtr pObscured; + int dx, dy; { miBSWindowPtr pBackingStore; ScreenPtr pScreen; @@ -2899,14 +2899,14 @@ miBSSaveDoomedAreas(pWin, pObscured, dx, dy) */ static RegionPtr miBSRestoreAreas(pWin, prgnExposed) - register WindowPtr pWin; + WindowPtr pWin; RegionPtr prgnExposed; { PixmapPtr pBackingPixmap; miBSWindowPtr pBackingStore; RegionPtr prgnSaved; RegionPtr prgnRestored; - register ScreenPtr pScreen; + ScreenPtr pScreen; RegionPtr exposures = prgnExposed; pScreen = pWin->drawable.pScreen; @@ -3097,15 +3097,15 @@ miBSTranslateBackingStore(pWin, windx, windy, oldClip, oldx, oldy) int oldx; /* old window position */ int oldy; { - register miBSWindowPtr pBackingStore; - register RegionPtr pSavedRegion; - register RegionPtr newSaved, doomed; - register ScreenPtr pScreen; - BoxRec extents; - int scrdx; /* bit translation distance on screen */ - int scrdy; - int dx; /* distance window moved on screen */ - int dy; + miBSWindowPtr pBackingStore; + RegionPtr pSavedRegion; + RegionPtr newSaved, doomed; + ScreenPtr pScreen; + BoxRec extents; + int scrdx; /* bit translation distance on screen */ + int scrdy; + int dx; /* distance window moved on screen */ + int dy; pScreen = pWin->drawable.pScreen; pBackingStore = (miBSWindowPtr)(pWin->backStorage); @@ -3815,9 +3815,9 @@ miBSExposeCopy (pSrc, pDst, pGC, prgnExposed, srcx, srcy, dstx, dsty, plane) miBSWindowPtr pBackingStore; CopyPlaneProcPtr copyProc; GCPtr pScratchGC; - register BoxPtr pBox; - register int i; - register int dx, dy; + BoxPtr pBox; + int i; + int dx, dy; BITS32 gcMask; if (!REGION_NOTEMPTY(pGC->pScreen, prgnExposed)) diff --git a/mi/micmap.c b/mi/micmap.c index 987affe96..977c587a0 100644 --- a/mi/micmap.c +++ b/mi/micmap.c @@ -125,8 +125,8 @@ miResolveColor(unsigned short *pred, unsigned short *pgreen, _X_EXPORT Bool miInitializeColormap(ColormapPtr pmap) { - register unsigned i; - register VisualPtr pVisual; + unsigned i; + VisualPtr pVisual; unsigned lim, maxent, shift; pVisual = pmap->pVisual; @@ -211,13 +211,13 @@ _X_EXPORT int miExpandDirectColors(ColormapPtr pmap, int ndef, xColorItem *indefs, xColorItem *outdefs) { - register int red, green, blue; - int maxred, maxgreen, maxblue; - int stepred, stepgreen, stepblue; - VisualPtr pVisual; - register int pixel; - register int nresult; - register int i; + int red, green, blue; + int maxred, maxgreen, maxblue; + int stepred, stepgreen, stepblue; + VisualPtr pVisual; + int pixel; + int nresult; + int i; pVisual = pmap->pVisual; diff --git a/mi/midash.c b/mi/midash.c index 6dd161a39..912fb0389 100644 --- a/mi/midash.c +++ b/mi/midash.c @@ -54,196 +54,6 @@ SOFTWARE. static miDashPtr CheckDashStorage(miDashPtr *ppseg, int nseg, int *pnsegMax); -/* return a list of DashRec. there will be an extra -entry at the end holding the last point of the polyline. - this means that the code that actually draws dashes can -get a pair of points for every dash. only the point in the last -dash record is useful; the other fields are not used. - nseg is the number of segments, not the number of points. - -example: - - dash1.start - dash2.start - dash3.start - last-point - -defines a list of segments - (dash1.pt, dash2.pt) - (dash2.pt, dash3.pt) - (dash3.pt, last-point) -and nseg == 3. - -NOTE: - EVEN_DASH == ~ODD_DASH - -NOTE ALSO: - miDashLines may return 0 segments, going from pt[0] to pt[0] with one dash. -*/ - -miDashPtr -miDashLine(npt, ppt, nDash, pDash, offset, pnseg) -int npt; -DDXPointPtr ppt; -unsigned int nDash; -unsigned char *pDash; -unsigned int offset; -int *pnseg; -{ - DDXPointRec pt1, pt2; - int lenCur; /* npt used from this dash */ - int lenMax; /* npt in this dash */ - int iDash = 0; /* index of current dash */ - int which; /* EVEN_DASH or ODD_DASH */ - miDashPtr pseg; /* list of dash segments */ - miDashPtr psegBase; /* start of list */ - int nseg = 0; /* number of dashes so far */ - int nsegMax = 0; /* num segs we can fit in this list */ - - int x, y, len; - int adx, ady, signdx, signdy; - int du, dv, e1, e2, e, base_e = 0; - - lenCur = offset; - which = EVEN_DASH; - while(lenCur >= pDash[iDash]) - { - lenCur -= pDash[iDash]; - iDash++; - if (iDash >= nDash) - iDash = 0; - which = ~which; - } - lenMax = pDash[iDash]; - - psegBase = (miDashPtr)NULL; - pt2 = ppt[0]; /* just in case there is only one point */ - - while(--npt) - { - if (PtEqual(ppt[0], ppt[1])) - { - ppt++; - continue; /* no duplicated points in polyline */ - } - pt1 = *ppt++; - pt2 = *ppt; - - adx = pt2.x - pt1.x; - ady = pt2.y - pt1.y; - signdx = sign(adx); - signdy = sign(ady); - adx = abs(adx); - ady = abs(ady); - - if (adx > ady) - { - du = adx; - dv = ady; - len = adx; - } - else - { - du = ady; - dv = adx; - len = ady; - } - - e1 = dv * 2; - e2 = e1 - 2*du; - e = e1 - du; - x = pt1.x; - y = pt1.y; - - nseg++; - pseg = CheckDashStorage(&psegBase, nseg, &nsegMax); - if (!pseg) - return (miDashPtr)NULL; - pseg->pt = pt1; - pseg->e1 = e1; - pseg->e2 = e2; - base_e = pseg->e = e; - pseg->which = which; - pseg->newLine = 1; - - while (len--) - { - if (adx > ady) - { - /* X_AXIS */ - if (((signdx > 0) && (e < 0)) || - ((signdx <=0) && (e <=0)) - ) - { - e += e1; - } - else - { - y += signdy; - e += e2; - } - x += signdx; - } - else - { - /* Y_AXIS */ - if (((signdx > 0) && (e < 0)) || - ((signdx <=0) && (e <=0)) - ) - { - e +=e1; - } - else - { - x += signdx; - e += e2; - } - y += signdy; - } - - lenCur++; - if (lenCur >= lenMax && (len || npt <= 1)) - { - nseg++; - pseg = CheckDashStorage(&psegBase, nseg, &nsegMax); - if (!pseg) - return (miDashPtr)NULL; - pseg->pt.x = x; - pseg->pt.y = y; - pseg->e1 = e1; - pseg->e2 = e2; - pseg->e = e; - which = ~which; - pseg->which = which; - pseg->newLine = 0; - - /* move on to next dash */ - iDash++; - if (iDash >= nDash) - iDash = 0; - lenMax = pDash[iDash]; - lenCur = 0; - } - } /* while len-- */ - } /* while --npt */ - - if (lenCur == 0 && nseg != 0) - { - nseg--; - which = ~which; - } - *pnseg = nseg; - pseg = CheckDashStorage(&psegBase, nseg+1, &nsegMax); - if (!pseg) - return (miDashPtr)NULL; - pseg->pt = pt2; - pseg->e = base_e; - pseg->which = which; - pseg->newLine = 0; - return psegBase; -} - - #define NSEGDELTA 16 /* returns a pointer to the pseg[nseg-1], growing the storage as @@ -251,8 +61,7 @@ necessary. this interface seems unnecessarily cumbersome. */ -static -miDashPtr +static miDashPtr CheckDashStorage( miDashPtr *ppseg, /* base pointer */ int nseg, /* number of segment we want to write to */ diff --git a/mi/mieq.c b/mi/mieq.c index 507cdd337..5bd87ebdb 100644 --- a/mi/mieq.c +++ b/mi/mieq.c @@ -74,6 +74,7 @@ typedef struct _EventQueue { EventRec events[QUEUE_SIZE]; /* static allocation for signals */ ScreenPtr pEnqueueScreen; /* screen events are being delivered to */ ScreenPtr pDequeueScreen; /* screen events are being dispatched to */ + mieqHandler handlers[128]; /* custom event handler */ } EventQueueRec, *EventQueuePtr; static EventQueueRec miEventQueue; @@ -81,11 +82,15 @@ static EventQueueRec miEventQueue; Bool mieqInit() { + int i; + miEventQueue.head = miEventQueue.tail = 0; miEventQueue.lastEventTime = GetTimeInMillis (); miEventQueue.lastMotion = FALSE; miEventQueue.pEnqueueScreen = screenInfo.screens[0]; miEventQueue.pDequeueScreen = miEventQueue.pEnqueueScreen; + for (i = 0; i < 128; i++) + miEventQueue.handlers[i] = NULL; SetInputCheck(&miEventQueue.head, &miEventQueue.tail); return TRUE; } @@ -178,6 +183,16 @@ mieqSwitchScreen(ScreenPtr pScreen, Bool fromDIX) miEventQueue.pDequeueScreen = pScreen; } +void +mieqSetHandler(int event, mieqHandler handler) +{ + if (handler && miEventQueue.handlers[event]) + ErrorF("mieq: warning: overriding existing handler %p with %p for " + "event %d\n", miEventQueue.handlers[event], handler, event); + + miEventQueue.handlers[event] = handler; +} + /* Call this from ProcessInputEvents(). */ void mieqProcessInputEvents() @@ -215,6 +230,15 @@ mieqProcessInputEvents() else ++miEventQueue.head; + /* If someone's registered a custom event handler, let them + * steal it. */ + if (miEventQueue.handlers[e->event->u.u.type]) { + miEventQueue.handlers[e->event->u.u.type](miEventQueue.pDequeueScreen->myNum, + e->event, dev, + e->nevents); + return; + } + /* If this is a core event, make sure our keymap, et al, is * changed to suit. */ if (e->event[0].u.u.type == KeyPress || diff --git a/mi/miexpose.c b/mi/miexpose.c index 1ca5fc965..df04bd291 100644 --- a/mi/miexpose.c +++ b/mi/miexpose.c @@ -130,15 +130,15 @@ exposing is done by the backing store's GraphicsExpose function, of course. _X_EXPORT RegionPtr miHandleExposures(pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, plane) - register DrawablePtr pSrcDrawable; - register DrawablePtr pDstDrawable; + DrawablePtr pSrcDrawable; + DrawablePtr pDstDrawable; GCPtr pGC; int srcx, srcy; int width, height; int dstx, dsty; unsigned long plane; { - register ScreenPtr pscr; + ScreenPtr pscr; RegionPtr prgnSrcClip; /* drawable-relative source clip */ RegionRec rgnSrcRec; RegionPtr prgnDstClip; /* drawable-relative dest clip */ @@ -387,9 +387,9 @@ miSendGraphicsExpose (client, pRgn, drawable, major, minor) if (pRgn && !REGION_NIL(pRgn)) { xEvent *pEvent; - register xEvent *pe; - register BoxPtr pBox; - register int i; + xEvent *pe; + BoxPtr pBox; + int i; int numRects; numRects = REGION_NUM_RECTS(pRgn); @@ -431,12 +431,12 @@ void miSendExposures(pWin, pRgn, dx, dy) WindowPtr pWin; RegionPtr pRgn; - register int dx, dy; + int dx, dy; { - register BoxPtr pBox; + BoxPtr pBox; int numRects; - register xEvent *pEvent, *pe; - register int i; + xEvent *pEvent, *pe; + int i; pBox = REGION_RECTS(pRgn); numRects = REGION_NUM_RECTS(pRgn); @@ -493,7 +493,7 @@ miSendExposures(pWin, pRgn, dx, dy) _X_EXPORT void miWindowExposures(pWin, prgn, other_exposed) WindowPtr pWin; - register RegionPtr prgn, other_exposed; + RegionPtr prgn, other_exposed; { RegionPtr exposures = prgn; if (pWin->backStorage && prgn) @@ -629,7 +629,7 @@ tossGC ( _X_EXPORT void miPaintWindow(pWin, prgn, what) -register WindowPtr pWin; +WindowPtr pWin; RegionPtr prgn; int what; { @@ -657,10 +657,10 @@ int what; BoxRec box; WindowPtr pBgWin; GCPtr pGC; - register int i; - register BoxPtr pbox; - register ScreenPtr pScreen = pWin->drawable.pScreen; - register xRectangle *prect; + int i; + BoxPtr pbox; + ScreenPtr pScreen = pWin->drawable.pScreen; + xRectangle *prect; int numRects; gcmask = 0; diff --git a/mi/mifillarc.c b/mi/mifillarc.c index 66063166a..c561b1f5b 100644 --- a/mi/mifillarc.c +++ b/mi/mifillarc.c @@ -54,8 +54,8 @@ Author: Bob Scheifler, MIT X Consortium _X_EXPORT void miFillArcSetup(arc, info) - register xArc *arc; - register miFillArcRec *info; + xArc *arc; + miFillArcRec *info; { info->y = arc->height >> 1; info->dy = arc->height & 1; @@ -107,10 +107,8 @@ miFillArcSetup(arc, info) } } -void -miFillArcDSetup(arc, info) - register xArc *arc; - register miFillArcDRec *info; +static void +miFillArcDSetup(xArc *arc, miFillArcDRec *info) { /* h^2 * (2x - 2xorg)^2 = w^2 * h^2 - w^2 * (2y - 2yorg)^2 */ /* even: xorg = yorg = 0 odd: xorg = .5, yorg = -.5 */ @@ -141,13 +139,13 @@ miFillArcDSetup(arc, info) static void miGetArcEdge( - register xArc *arc, - register miSliceEdgePtr edge, + xArc *arc, + miSliceEdgePtr edge, int k, Bool top, Bool left ) { - register int xady, y; + int xady, y; y = arc->height >> 1; if (!(arc->width & 1)) @@ -188,15 +186,9 @@ miGetArcEdge( } } -void -miEllipseAngleToSlope (angle, width, height, dxp, dyp, d_dxp, d_dyp) - int angle; - int width; - int height; - int *dxp; - int *dyp; - double *d_dxp; - double *d_dyp; +static void +miEllipseAngleToSlope (int angle, int width, int height, int *dxp, int *dyp, + double *d_dxp, double *d_dyp) { int dx, dy; double d_dx, d_dy, scale; @@ -271,13 +263,13 @@ miEllipseAngleToSlope (angle, width, height, dxp, dyp, d_dxp, d_dyp) static void miGetPieEdge( - register xArc *arc, - register int angle, - register miSliceEdgePtr edge, + xArc *arc, + int angle, + miSliceEdgePtr edge, Bool top, Bool left ) { - register int k; + int k; int dx, dy; miEllipseAngleToSlope (angle, arc->width, arc->height, &dx, &dy, 0, 0); @@ -316,11 +308,11 @@ miGetPieEdge( _X_EXPORT void miFillArcSliceSetup(arc, slice, pGC) - register xArc *arc; - register miArcSliceRec *slice; + xArc *arc; + miArcSliceRec *slice; GCPtr pGC; { - register int angle1, angle2; + int angle1, angle2; angle1 = arc->angle1; if (arc->angle2 < 0) @@ -550,14 +542,14 @@ miFillEllipseI( GCPtr pGC, xArc *arc ) { - register int x, y, e; + int x, y, e; int yk, xk, ym, xm, dx, dy, xorg, yorg; int slw; miFillArcRec info; DDXPointPtr points; - register DDXPointPtr pts; + DDXPointPtr pts; int *widths; - register int *wids; + int *wids; points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * arc->height); if (!points) @@ -593,14 +585,14 @@ miFillEllipseD( GCPtr pGC, xArc *arc ) { - register int x, y; + int x, y; int xorg, yorg, dx, dy, slw; double e, yk, xk, ym, xm; miFillArcDRec info; DDXPointPtr points; - register DDXPointPtr pts; + DDXPointPtr pts; int *widths; - register int *wids; + int *wids; points = (DDXPointPtr)ALLOCATE_LOCAL(sizeof(DDXPointRec) * arc->height); if (!points) @@ -659,14 +651,14 @@ miFillArcSliceI( xArc *arc ) { int yk, xk, ym, xm, dx, dy, xorg, yorg, slw; - register int x, y, e; + int x, y, e; miFillArcRec info; miArcSliceRec slice; int ya, xl, xr, xc; DDXPointPtr points; - register DDXPointPtr pts; + DDXPointPtr pts; int *widths; - register int *wids; + int *wids; miFillArcSetup(arc, &info); miFillArcSliceSetup(arc, &slice, pGC); @@ -721,16 +713,16 @@ miFillArcSliceD( GCPtr pGC, xArc *arc ) { - register int x, y; + int x, y; int dx, dy, xorg, yorg, slw; double e, yk, xk, ym, xm; miFillArcDRec info; miArcSliceRec slice; int ya, xl, xr, xc; DDXPointPtr points; - register DDXPointPtr pts; + DDXPointPtr pts; int *widths; - register int *wids; + int *wids; miFillArcDSetup(arc, &info); miFillArcSliceSetup(arc, &slice, pGC); @@ -790,8 +782,8 @@ miPolyFillArc(pDraw, pGC, narcs, parcs) int narcs; xArc *parcs; { - register int i; - register xArc *arc; + int i; + xArc *arc; for(i = narcs, arc = parcs; --i >= 0; arc++) { diff --git a/mi/mifillarc.h b/mi/mifillarc.h index 53f6f23ea..3e3bb9858 100644 --- a/mi/mifillarc.h +++ b/mi/mifillarc.h @@ -176,35 +176,11 @@ typedef struct _miArcSlice { #define miFillInArcLower(slw) (((iny + dy) != 0) && \ ((slw > 1) || (ine != inxk))) -extern int miFreeArcCache( - pointer /*data*/, - XID /*id*/ -); - -extern struct finalSpan *realAllocSpan( - void -); - extern void miFillArcSetup( xArc * /*arc*/, miFillArcRec * /*info*/ ); -extern void miFillArcDSetup( - xArc * /*arc*/, - miFillArcDRec * /*info*/ -); - -extern void miEllipseAngleToSlope( - int /*angle*/, - int /*width*/, - int /*height*/, - int * /*dxp*/, - int * /*dyp*/, - double * /*d_dxp*/, - double * /*d_dyp*/ -); - extern void miFillArcSliceSetup( xArc * /*arc*/, miArcSliceRec * /*slice*/, diff --git a/mi/mifillrct.c b/mi/mifillrct.c index 78e89d69c..ca7e86445 100644 --- a/mi/mifillrct.c +++ b/mi/mifillrct.c @@ -74,16 +74,16 @@ miPolyFillRect(pDrawable, pGC, nrectFill, prectInit) xRectangle *prectInit; /* Pointer to first rectangle to fill */ { int i; - register int height; - register int width; - register xRectangle *prect; - int xorg; - register int yorg; - int maxheight; - DDXPointPtr pptFirst; - register DDXPointPtr ppt; - int *pwFirst; - register int *pw; + int height; + int width; + xRectangle *prect; + int xorg; + int yorg; + int maxheight; + DDXPointPtr pptFirst; + DDXPointPtr ppt; + int *pwFirst; + int *pw; if (pGC->miTranslate) { diff --git a/mi/mifpolycon.c b/mi/mifpolycon.c index 57229f639..7bc1bb278 100644 --- a/mi/mifpolycon.c +++ b/mi/mifpolycon.c @@ -55,7 +55,7 @@ SOFTWARE. #include "pixmapstr.h" #include "mifpoly.h" -static int GetFPolyYBounds(register SppPointPtr pts, int n, double yFtrans, +static int GetFPolyYBounds(SppPointPtr pts, int n, double yFtrans, int *by, int *ty); #ifdef ICEILTEMPDECL @@ -101,7 +101,7 @@ miFillSppPoly(dst, pgc, count, ptsIn, xTrans, yTrans, xFtrans, yFtrans) *width, *FirstWidth, /* output buffer */ *Marked; /* set if this vertex has been used */ - register int left, right, /* indices to first endpoints */ + int left, right, /* indices to first endpoints */ nextleft, nextright; /* indices to second endpoints */ DDXPointPtr ptsOut, @@ -251,13 +251,13 @@ miFillSppPoly(dst, pgc, count, ptsIn, xTrans, yTrans, xFtrans, yFtrans) static int GetFPolyYBounds( - register SppPointPtr pts, + SppPointPtr pts, int n, double yFtrans, int *by, int *ty) { - register SppPointPtr ptMin; + SppPointPtr ptMin; double ymin, ymax; SppPointPtr ptsStart = pts; diff --git a/mi/miglblt.c b/mi/miglblt.c index db299a8ae..4db3eb62f 100644 --- a/mi/miglblt.c +++ b/mi/miglblt.c @@ -92,18 +92,18 @@ miPolyGlyphBlt(pDrawable, pGC, x, y, nglyph, ppci, pglyphBase) { int width, height; PixmapPtr pPixmap; - int nbyLine; /* bytes per line of padded pixmap */ + int nbyLine; /* bytes per line of padded pixmap */ FontPtr pfont; GCPtr pGCtmp; - register int i; - register int j; - unsigned char *pbits; /* buffer for PutImage */ - register unsigned char *pb; /* temp pointer into buffer */ - register CharInfoPtr pci; /* currect char info */ - register unsigned char *pglyph; /* pointer bits in glyph */ - int gWidth, gHeight; /* width and height of glyph */ - register int nbyGlyphWidth; /* bytes per scanline of glyph */ - int nbyPadGlyph; /* server padded line of glyph */ + int i; + int j; + unsigned char *pbits; /* buffer for PutImage */ + unsigned char *pb; /* temp pointer into buffer */ + CharInfoPtr pci; /* currect char info */ + unsigned char *pglyph; /* pointer bits in glyph */ + int gWidth, gHeight; /* width and height of glyph */ + int nbyGlyphWidth; /* bytes per scanline of glyph */ + int nbyPadGlyph; /* server padded line of glyph */ XID gcvals[3]; diff --git a/mi/miline.h b/mi/miline.h index 7028485f0..b97b8cf9d 100644 --- a/mi/miline.h +++ b/mi/miline.h @@ -109,7 +109,7 @@ extern void miSetZeroLineBias( } #define SWAPINT(i, j) \ -{ register int _t = i; i = j; j = _t; } +{ int _t = i; i = j; j = _t; } #define SWAPPT(i, j) \ { DDXPointRec _t; _t = i; i = j; j = _t; } diff --git a/mi/mioverlay.c b/mi/mioverlay.c index c02ea2dc5..9701001d6 100644 --- a/mi/mioverlay.c +++ b/mi/mioverlay.c @@ -54,8 +54,8 @@ typedef struct { } miOverlayScreenRec, *miOverlayScreenPtr; static unsigned long miOverlayGeneration = 0; -int miOverlayWindowIndex = -1; -int miOverlayScreenIndex = -1; +static int miOverlayWindowIndex = -1; +static int miOverlayScreenIndex = -1; static void RebuildTree(WindowPtr); static Bool HasUnderlayChildren(WindowPtr); @@ -1019,7 +1019,7 @@ miOverlayMoveWindow( static void miOverlayWindowExposures( WindowPtr pWin, - register RegionPtr prgn, + RegionPtr prgn, RegionPtr other_exposed ){ RegionPtr exposures = prgn; @@ -1106,7 +1106,7 @@ miOverlayRecomputeExposures ( WindowPtr pWin, pointer value ){ - register ScreenPtr pScreen; + ScreenPtr pScreen; miOverlayTwoRegions *pValid = (miOverlayTwoRegions*)value; miOverlayTreePtr pTree = MIOVERLAY_GET_WINDOW_TREE(pWin); @@ -1161,10 +1161,10 @@ miOverlayResizeWindow( DDXPointRec oldpt; RegionPtr oldRegion = NULL, oldRegion2 = NULL; WindowPtr pFirstChange; - register WindowPtr pChild; + WindowPtr pChild; RegionPtr gravitate[StaticGravity + 1]; RegionPtr gravitate2[StaticGravity + 1]; - register unsigned g; + unsigned g; int nx, ny; /* destination x,y */ int newx, newy; /* new inner window position */ RegionPtr pRegion = NULL; @@ -1669,7 +1669,7 @@ miOverlayChangeBorderWidth( unsigned int width ){ int oldwidth; - register ScreenPtr pScreen; + ScreenPtr pScreen; Bool WasViewable = (Bool)(pWin->viewable); Bool HadBorder; #ifdef DO_SAVE_UNDERS diff --git a/mi/mipointer.c b/mi/mipointer.c index b94feaa91..b86a26a97 100644 --- a/mi/mipointer.c +++ b/mi/mipointer.c @@ -1,8 +1,3 @@ -/* - * mipointer.c - */ - - /* Copyright 1989, 1998 The Open Group @@ -409,6 +404,27 @@ miPointerAbsoluteCursor (int x, int y, unsigned long time) miPointerSetPosition(inputInfo.pointer, &x, &y, time); } +/* Move the pointer on the current screen, and update the sprite. */ +static void +miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y, + unsigned long time) +{ + SetupScreen(pScreen); + + if (pDev && (pDev->coreEvents || pDev == inputInfo.pointer) && + !pScreenPriv->waitForUpdate && pScreen == miPointer.pSpriteScreen) + { + miPointer.devx = x; + miPointer.devy = y; + if(!miPointer.pCursor->bits->emptyMask) + (*pScreenPriv->spriteFuncs->MoveCursor) (pScreen, x, y); + } + + miPointer.x = x; + miPointer.y = y; + miPointer.pScreen = pScreen; +} + _X_EXPORT void miPointerSetPosition(DeviceIntPtr pDev, int *x, int *y, unsigned long time) { @@ -499,24 +515,3 @@ miPointerMove (ScreenPtr pScreen, int x, int y, unsigned long time) for (i = 0; i < nevents; i++) mieqEnqueue(inputInfo.pointer, &events[i]); } - -/* Move the pointer on the current screen, and update the sprite. */ -void -miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y, - unsigned long time) -{ - SetupScreen(pScreen); - - if (pDev && (pDev->coreEvents || pDev == inputInfo.pointer) && - !pScreenPriv->waitForUpdate && pScreen == miPointer.pSpriteScreen) - { - miPointer.devx = x; - miPointer.devy = y; - if(!miPointer.pCursor->bits->emptyMask) - (*pScreenPriv->spriteFuncs->MoveCursor) (pScreen, x, y); - } - - miPointer.x = x; - miPointer.y = y; - miPointer.pScreen = pScreen; -} diff --git a/mi/mipointer.h b/mi/mipointer.h index 30e89444b..1bce42c26 100644 --- a/mi/mipointer.h +++ b/mi/mipointer.h @@ -1,9 +1,3 @@ -/* - * mipointer.h - * - */ - - /* Copyright 1989, 1998 The Open Group @@ -172,15 +166,6 @@ extern void miPointerSetPosition( extern void miPointerUpdateSprite( DeviceIntPtr pDev); -/* Moves the sprite to x, y on the current screen, and updates the event - * history. */ -extern void miPointerMoved( - DeviceIntPtr pDev, - ScreenPtr pScreen, - int x, - int y, - unsigned long time); - extern int miPointerScreenIndex; #endif /* MIPOINTER_H */ diff --git a/mi/mipoly.c b/mi/mipoly.c index b514b5ed2..ea0406f88 100644 --- a/mi/mipoly.c +++ b/mi/mipoly.c @@ -70,14 +70,14 @@ SOFTWARE. _X_EXPORT void miFillPolygon(dst, pgc, shape, mode, count, pPts) DrawablePtr dst; - register GCPtr pgc; + GCPtr pgc; int shape, mode; - register int count; + int count; DDXPointPtr pPts; { int i; - register int xorg, yorg; - register DDXPointPtr ppt; + int xorg, yorg; + DDXPointPtr ppt; if (count == 0) return; diff --git a/mi/mipoly.h b/mi/mipoly.h index 8e04f6737..c1bab4943 100644 --- a/mi/mipoly.h +++ b/mi/mipoly.h @@ -180,14 +180,6 @@ typedef struct _ScanLineListBlock { /* mipolyutil.c */ -extern Bool miInsertEdgeInET( - EdgeTable * /*ET*/, - EdgeTableEntry * /*ETE*/, - int /*scanline*/, - ScanLineListBlock ** /*SLLBlock*/, - int * /*iSLLBlock*/ -); - extern Bool miCreateETandAET( int /*count*/, DDXPointPtr /*pts*/, diff --git a/mi/mipolycon.c b/mi/mipolycon.c index b5ab89364..e2d666e51 100644 --- a/mi/mipolycon.c +++ b/mi/mipolycon.c @@ -78,9 +78,9 @@ miFillConvexPoly(dst, pgc, count, ptsIn) int count; /* number of points */ DDXPointPtr ptsIn; /* the points */ { - register int xl = 0, xr = 0; /* x vals of left and right edges */ - register int dl = 0, dr = 0; /* decision variables */ - register int ml = 0, m1l = 0;/* left edge slope and slope+1 */ + int xl = 0, xr = 0; /* x vals of left and right edges */ + int dl = 0, dr = 0; /* decision variables */ + int ml = 0, m1l = 0;/* left edge slope and slope+1 */ int mr = 0, m1r = 0; /* right edge slope and slope+1 */ int incr1l = 0, incr2l = 0; /* left edge error increments */ int incr1r = 0, incr2r = 0; /* right edge error increments */ @@ -221,7 +221,7 @@ miFillConvexPoly(dst, pgc, count, ptsIn) static int getPolyYBounds(DDXPointPtr pts, int n, int *by, int *ty) { - register DDXPointPtr ptMin; + DDXPointPtr ptMin; int ymin, ymax; DDXPointPtr ptsStart = pts; diff --git a/mi/mipolygen.c b/mi/mipolygen.c index 34da21f9e..0d2ecc430 100644 --- a/mi/mipolygen.c +++ b/mi/mipolygen.c @@ -72,12 +72,12 @@ miFillGeneralPoly(dst, pgc, count, ptsIn) int count; /* number of points */ DDXPointPtr ptsIn; /* the points */ { - register EdgeTableEntry *pAET; /* the Active Edge Table */ - register int y; /* the current scanline */ - register int nPts = 0; /* number of pts in buffer */ - register EdgeTableEntry *pWETE; /* Winding Edge Table */ - register ScanLineList *pSLL; /* Current ScanLineList */ - register DDXPointPtr ptsOut; /* ptr to output buffers */ + EdgeTableEntry *pAET; /* the Active Edge Table */ + int y; /* the current scanline */ + int nPts = 0; /* number of pts in buffer */ + EdgeTableEntry *pWETE; /* Winding Edge Table */ + ScanLineList *pSLL; /* Current ScanLineList */ + DDXPointPtr ptsOut; /* ptr to output buffers */ int *width; DDXPointRec FirstPoint[NUMPTSTOBUFFER]; /* the output buffers */ int FirstWidth[NUMPTSTOBUFFER]; diff --git a/mi/mipolypnt.c b/mi/mipolypnt.c index 245bda317..afe3f724a 100644 --- a/mi/mipolypnt.c +++ b/mi/mipolypnt.c @@ -70,7 +70,7 @@ miPolyPoint(pDrawable, pGC, mode, npt, pptInit) XID fsOld, fsNew; int *pwidthInit, *pwidth; int i; - register xPoint *ppt; + xPoint *ppt; /* make pointlist origin relative */ if (mode == CoordModePrevious) diff --git a/mi/mipolytext.c b/mi/mipolytext.c index 6af02e046..82b16f7d2 100644 --- a/mi/mipolytext.c +++ b/mi/mipolytext.c @@ -66,30 +66,6 @@ SOFTWARE. #include "dixfontstr.h" #include "mi.h" -int -miPolyText(pDraw, pGC, x, y, count, chars, fontEncoding) - DrawablePtr pDraw; - GCPtr pGC; - int x, y; - int count; - char *chars; - FontEncoding fontEncoding; -{ - unsigned long n, i; - int w; - CharInfoPtr charinfo[255]; /* encoding only has 1 byte for count */ - - GetGlyphs(pGC->font, (unsigned long)count, (unsigned char *)chars, - fontEncoding, &n, charinfo); - w = 0; - for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth; - if (n != 0) - (*pGC->ops->PolyGlyphBlt)( - pDraw, pGC, x, y, n, charinfo, FONTGLYPHS(pGC->font)); - return x+w; -} - - _X_EXPORT int miPolyText8(pDraw, pGC, x, y, count, chars) DrawablePtr pDraw; @@ -112,7 +88,6 @@ miPolyText8(pDraw, pGC, x, y, count, chars) return x+w; } - _X_EXPORT int miPolyText16(pDraw, pGC, x, y, count, chars) DrawablePtr pDraw; @@ -136,31 +111,6 @@ miPolyText16(pDraw, pGC, x, y, count, chars) return x+w; } - -int -miImageText(pDraw, pGC, x, y, count, chars, fontEncoding) - DrawablePtr pDraw; - GCPtr pGC; - int x, y; - int count; - char *chars; - FontEncoding fontEncoding; -{ - unsigned long n, i; - FontPtr font = pGC->font; - int w; - CharInfoPtr charinfo[255]; - - GetGlyphs(font, (unsigned long)count, (unsigned char *)chars, - fontEncoding, &n, charinfo); - w = 0; - for (i=0; i < n; i++) w += charinfo[i]->metrics.characterWidth; - if (n !=0 ) - (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, FONTGLYPHS(font)); - return x+w; -} - - _X_EXPORT void miImageText8(pDraw, pGC, x, y, count, chars) DrawablePtr pDraw; @@ -179,7 +129,6 @@ miImageText8(pDraw, pGC, x, y, count, chars) (*pGC->ops->ImageGlyphBlt)(pDraw, pGC, x, y, n, charinfo, FONTGLYPHS(font)); } - _X_EXPORT void miImageText16(pDraw, pGC, x, y, count, chars) DrawablePtr pDraw; diff --git a/mi/mipolyutil.c b/mi/mipolyutil.c index 5443ba5c3..6ec860a25 100644 --- a/mi/mipolyutil.c +++ b/mi/mipolyutil.c @@ -73,16 +73,12 @@ SOFTWARE. * bucket. Finally, we can insert it. * */ -Bool -miInsertEdgeInET(ET, ETE, scanline, SLLBlock, iSLLBlock) - EdgeTable *ET; - EdgeTableEntry *ETE; - int scanline; - ScanLineListBlock **SLLBlock; - int *iSLLBlock; +static Bool +miInsertEdgeInET(EdgeTable *ET, EdgeTableEntry *ETE, int scanline, + ScanLineListBlock **SLLBlock, int *iSLLBlock) { - register EdgeTableEntry *start, *prev; - register ScanLineList *pSLL, *pPrevSLL; + EdgeTableEntry *start, *prev; + ScanLineList *pSLL, *pPrevSLL; ScanLineListBlock *tmpSLLBlock; /* @@ -166,15 +162,15 @@ miInsertEdgeInET(ET, ETE, scanline, SLLBlock, iSLLBlock) Bool miCreateETandAET(count, pts, ET, AET, pETEs, pSLLBlock) - register int count; - register DDXPointPtr pts; + int count; + DDXPointPtr pts; EdgeTable *ET; EdgeTableEntry *AET; - register EdgeTableEntry *pETEs; + EdgeTableEntry *pETEs; ScanLineListBlock *pSLLBlock; { - register DDXPointPtr top, bottom; - register DDXPointPtr PrevPt, CurrPt; + DDXPointPtr top, bottom; + DDXPointPtr PrevPt, CurrPt; int iSLLBlock = 0; int dy; @@ -262,10 +258,10 @@ miCreateETandAET(count, pts, ET, AET, pETEs, pSLLBlock) void miloadAET(AET, ETEs) - register EdgeTableEntry *AET, *ETEs; + EdgeTableEntry *AET, *ETEs; { - register EdgeTableEntry *pPrevAET; - register EdgeTableEntry *tmp; + EdgeTableEntry *pPrevAET; + EdgeTableEntry *tmp; pPrevAET = AET; AET = AET->next; @@ -310,11 +306,11 @@ miloadAET(AET, ETEs) */ void micomputeWAET(AET) - register EdgeTableEntry *AET; + EdgeTableEntry *AET; { - register EdgeTableEntry *pWETE; - register int inside = 1; - register int isInside = 0; + EdgeTableEntry *pWETE; + int inside = 1; + int isInside = 0; AET->nextWETE = (EdgeTableEntry *)NULL; pWETE = AET; @@ -349,12 +345,12 @@ micomputeWAET(AET) int miInsertionSort(AET) - register EdgeTableEntry *AET; + EdgeTableEntry *AET; { - register EdgeTableEntry *pETEchase; - register EdgeTableEntry *pETEinsert; - register EdgeTableEntry *pETEchaseBackTMP; - register int changed = 0; + EdgeTableEntry *pETEchase; + EdgeTableEntry *pETEinsert; + EdgeTableEntry *pETEchaseBackTMP; + int changed = 0; AET = AET->next; while (AET) @@ -386,9 +382,9 @@ miInsertionSort(AET) */ void miFreeStorage(pSLLBlock) - register ScanLineListBlock *pSLLBlock; + ScanLineListBlock *pSLLBlock; { - register ScanLineListBlock *tmpSLLBlock; + ScanLineListBlock *tmpSLLBlock; while (pSLLBlock) { diff --git a/mi/mipushpxl.c b/mi/mipushpxl.c index 6526aa02b..3695f30da 100644 --- a/mi/mipushpxl.c +++ b/mi/mipushpxl.c @@ -85,11 +85,11 @@ miPushPixels(pGC, pBitMap, pDrawable, dx, dy, xOrg, yOrg) int dx, dy, xOrg, yOrg; { int h, dxDivPPW, ibEnd; - MiBits *pwLineStart; - register MiBits *pw, *pwEnd; - register MiBits msk; - register int ib, w; - register int ipt; /* index into above arrays */ + MiBits *pwLineStart; + MiBits *pw, *pwEnd; + MiBits msk; + int ib, w; + int ipt; /* index into above arrays */ Bool fInBox; DDXPointRec pt[NPT], ptThisLine; int width[NPT]; diff --git a/mi/miregion.c b/mi/miregion.c index 0db46dcf5..e980ad18e 100644 --- a/mi/miregion.c +++ b/mi/miregion.c @@ -221,14 +221,14 @@ _X_EXPORT BoxRec miEmptyBox = {0, 0, 0, 0}; _X_EXPORT RegDataRec miEmptyData = {0, 0}; RegDataRec miBrokenData = {0, 0}; -RegionRec miBrokenRegion = { { 0, 0, 0, 0 }, &miBrokenData }; +static RegionRec miBrokenRegion = { { 0, 0, 0, 0 }, &miBrokenData }; _X_EXPORT void miPrintRegion(rgn) RegionPtr rgn; { int num, size; - register int i; + int i; BoxPtr rects; num = REGION_NUM_RECTS(rgn); @@ -275,7 +275,7 @@ Bool miValidRegion(reg) RegionPtr reg; { - register int i, numRects; + int i, numRects; if ((reg->extents.x1 > reg->extents.x2) || (reg->extents.y1 > reg->extents.y2)) @@ -289,7 +289,7 @@ miValidRegion(reg) return (!reg->data); else { - register BoxPtr pboxP, pboxN; + BoxPtr pboxP, pboxN; BoxRec box; pboxP = REGION_RECTS(reg); @@ -331,7 +331,7 @@ miRegionCreate(rect, size) BoxPtr rect; int size; { - register RegionPtr pReg; + RegionPtr pReg; pReg = (RegionPtr)xalloc(sizeof(RegionRec)); if (!pReg) @@ -414,7 +414,7 @@ miRegionBreak (pReg) _X_EXPORT Bool miRectAlloc( - register RegionPtr pRgn, + RegionPtr pRgn, int n) { RegDataPtr data; @@ -455,8 +455,8 @@ miRectAlloc( _X_EXPORT Bool miRegionCopy(dst, src) - register RegionPtr dst; - register RegionPtr src; + RegionPtr dst; + RegionPtr src; { good(dst); good(src); @@ -508,14 +508,14 @@ miRegionCopy(dst, src) */ INLINE static int miCoalesce ( - register RegionPtr pReg, /* Region to coalesce */ + RegionPtr pReg, /* Region to coalesce */ int prevStart, /* Index of start of previous band */ int curStart) /* Index of start of current band */ { - register BoxPtr pPrevBox; /* Current box in previous band */ - register BoxPtr pCurBox; /* Current box in current band */ - register int numRects; /* Number rectangles in both bands */ - register int y2; /* Bottom of current band */ + BoxPtr pPrevBox; /* Current box in previous band */ + BoxPtr pCurBox; /* Current box in current band */ + int numRects; /* Number rectangles in both bands */ + int y2; /* Bottom of current band */ /* * Figure out how many rectangles are in the band. */ @@ -592,14 +592,14 @@ miCoalesce ( INLINE static Bool miAppendNonO ( - register RegionPtr pReg, - register BoxPtr r, - BoxPtr rEnd, - register int y1, - register int y2) + RegionPtr pReg, + BoxPtr r, + BoxPtr rEnd, + int y1, + int y2) { - register BoxPtr pNextRect; - register int newRects; + BoxPtr pNextRect; + int newRects; newRects = rEnd - r; @@ -691,25 +691,25 @@ miRegionOp( /* in region 2 ? */ Bool *pOverlap) { - register BoxPtr r1; /* Pointer into first region */ - register BoxPtr r2; /* Pointer into 2d region */ - BoxPtr r1End; /* End of 1st region */ - BoxPtr r2End; /* End of 2d region */ - short ybot; /* Bottom of intersection */ - short ytop; /* Top of intersection */ - RegDataPtr oldData; /* Old data for newReg */ - int prevBand; /* Index of start of - * previous band in newReg */ - int curBand; /* Index of start of current - * band in newReg */ - register BoxPtr r1BandEnd; /* End of current band in r1 */ - register BoxPtr r2BandEnd; /* End of current band in r2 */ - short top; /* Top of non-overlapping band */ - short bot; /* Bottom of non-overlapping band*/ - register int r1y1; /* Temps for r1->y1 and r2->y1 */ - register int r2y1; - int newSize; - int numRects; + BoxPtr r1; /* Pointer into first region */ + BoxPtr r2; /* Pointer into 2d region */ + BoxPtr r1End; /* End of 1st region */ + BoxPtr r2End; /* End of 2d region */ + short ybot; /* Bottom of intersection */ + short ytop; /* Top of intersection */ + RegDataPtr oldData; /* Old data for newReg */ + int prevBand; /* Index of start of + * previous band in newReg */ + int curBand; /* Index of start of current + * band in newReg */ + BoxPtr r1BandEnd; /* End of current band in r1 */ + BoxPtr r2BandEnd; /* End of current band in r2 */ + short top; /* Top of non-overlapping band */ + short bot; /* Bottom of non-overlapping band*/ + int r1y1; /* Temps for r1->y1 and r2->y1 */ + int r2y1; + int newSize; + int numRects; /* * Break any region computed from a broken region @@ -913,11 +913,11 @@ miRegionOp( * *----------------------------------------------------------------------- */ -void +static void miSetExtents (pReg) - register RegionPtr pReg; + RegionPtr pReg; { - register BoxPtr pBox, pBoxEnd; + BoxPtr pBox, pBoxEnd; if (!pReg->data) return; @@ -974,18 +974,18 @@ miSetExtents (pReg) /*ARGSUSED*/ static Bool miIntersectO ( - register RegionPtr pReg, - register BoxPtr r1, + RegionPtr pReg, + BoxPtr r1, BoxPtr r1End, - register BoxPtr r2, + BoxPtr r2, BoxPtr r2End, short y1, short y2, Bool *pOverlap) { - register int x1; - register int x2; - register BoxPtr pNextRect; + int x1; + int x2; + BoxPtr pNextRect; pNextRect = REGION_TOP(pReg); @@ -1022,9 +1022,9 @@ miIntersectO ( _X_EXPORT Bool miIntersect(newReg, reg1, reg2) - register RegionPtr newReg; /* destination Region */ - register RegionPtr reg1; - register RegionPtr reg2; /* source regions */ + RegionPtr newReg; /* destination Region */ + RegionPtr reg1; + RegionPtr reg2; /* source regions */ { good(reg1); good(reg2); @@ -1117,18 +1117,18 @@ miIntersect(newReg, reg1, reg2) */ static Bool miUnionO ( - register RegionPtr pReg, - register BoxPtr r1, - BoxPtr r1End, - register BoxPtr r2, - BoxPtr r2End, - short y1, - short y2, - Bool *pOverlap) + RegionPtr pReg, + BoxPtr r1, + BoxPtr r1End, + BoxPtr r2, + BoxPtr r2End, + short y1, + short y2, + Bool *pOverlap) { - register BoxPtr pNextRect; - register int x1; /* left and right side of current union */ - register int x2; + BoxPtr pNextRect; + int x1; /* left and right side of current union */ + int x2; assert (y1 < y2); assert(r1 != r1End && r2 != r2End); @@ -1178,8 +1178,8 @@ miUnionO ( _X_EXPORT Bool miUnion(newReg, reg1, reg2) RegionPtr newReg; /* destination Region */ - register RegionPtr reg1; - register RegionPtr reg2; /* source regions */ + RegionPtr reg1; + RegionPtr reg2; /* source regions */ { Bool overlap; /* result ignored */ @@ -1276,8 +1276,8 @@ miUnion(newReg, reg1, reg2) */ _X_EXPORT Bool miRegionAppend(dstrgn, rgn) - register RegionPtr dstrgn; - register RegionPtr rgn; + RegionPtr dstrgn; + RegionPtr rgn; { int numRects, dnumRects, size; BoxPtr new, old; @@ -1307,7 +1307,7 @@ miRegionAppend(dstrgn, rgn) dstrgn->extents = rgn->extents; else if (dstrgn->extents.x2 > dstrgn->extents.x1) { - register BoxPtr first, last; + BoxPtr first, last; first = old; last = REGION_BOXPTR(dstrgn) + (dnumRects - 1); @@ -1371,13 +1371,13 @@ miRegionAppend(dstrgn, rgn) static void QuickSortRects( - register BoxRec rects[], - register int numRects) + BoxRec rects[], + int numRects) { - register int y1; - register int x1; - register int i, j; - register BoxPtr r; + int y1; + int x1; + int i, j; + BoxPtr r; /* Always called with numRects > 1 */ @@ -1472,17 +1472,17 @@ miRegionValidate(badreg, pOverlap) int curBand; } RegionInfo; - int numRects; /* Original numRects for badreg */ - RegionInfo *ri; /* Array of current regions */ - int numRI; /* Number of entries used in ri */ - int sizeRI; /* Number of entries available in ri */ - int i; /* Index into rects */ - register int j; /* Index into ri */ - register RegionInfo *rit; /* &ri[j] */ - register RegionPtr reg; /* ri[j].reg */ - register BoxPtr box; /* Current box in rects */ - register BoxPtr riBox; /* Last box in ri[j].reg */ - register RegionPtr hreg; /* ri[j_half].reg */ + int numRects; /* Original numRects for badreg */ + RegionInfo *ri; /* Array of current regions */ + int numRI; /* Number of entries used in ri */ + int sizeRI; /* Number of entries available in ri */ + int i; /* Index into rects */ + int j; /* Index into ri */ + RegionInfo *rit; /* &ri[j] */ + RegionPtr reg; /* ri[j].reg */ + BoxPtr box; /* Current box in rects */ + BoxPtr riBox; /* Last box in ri[j].reg */ + RegionPtr hreg; /* ri[j_half].reg */ Bool ret = TRUE; *pOverlap = FALSE; @@ -1654,13 +1654,13 @@ bail: _X_EXPORT RegionPtr miRectsToRegion(nrects, prect, ctype) int nrects; - register xRectangle *prect; + xRectangle *prect; int ctype; { - register RegionPtr pRgn; - register RegDataPtr pData; - register BoxPtr pBox; - register int i; + RegionPtr pRgn; + RegDataPtr pData; + BoxPtr pBox; + int i; int x1, y1, x2, y2; pRgn = miRegionCreate(NullBox, 0); @@ -1754,17 +1754,17 @@ miRectsToRegion(nrects, prect, ctype) /*ARGSUSED*/ static Bool miSubtractO ( - register RegionPtr pReg, - register BoxPtr r1, - BoxPtr r1End, - register BoxPtr r2, - BoxPtr r2End, - register short y1, - short y2, - Bool *pOverlap) + RegionPtr pReg, + BoxPtr r1, + BoxPtr r1End, + BoxPtr r2, + BoxPtr r2End, + short y1, + short y2, + Bool *pOverlap) { - register BoxPtr pNextRect; - register int x1; + BoxPtr pNextRect; + int x1; x1 = r1->x1; @@ -1878,9 +1878,9 @@ miSubtractO ( */ _X_EXPORT Bool miSubtract(regD, regM, regS) - register RegionPtr regD; - register RegionPtr regM; - register RegionPtr regS; + RegionPtr regD; + RegionPtr regM; + RegionPtr regS; { Bool overlap; /* result ignored */ @@ -2003,15 +2003,15 @@ miInverse(newReg, reg1, invRect) _X_EXPORT int miRectIn(region, prect) - register RegionPtr region; - register BoxPtr prect; + RegionPtr region; + BoxPtr prect; { - register int x; - register int y; - register BoxPtr pbox; - register BoxPtr pboxEnd; - int partIn, partOut; - int numRects; + int x; + int y; + BoxPtr pbox; + BoxPtr pboxEnd; + int partIn, partOut; + int numRects; good(region); numRects = REGION_NUM_RECTS(region); @@ -2099,13 +2099,13 @@ miRectIn(region, prect) _X_EXPORT void miTranslateRegion(pReg, x, y) - register RegionPtr pReg; - register int x; - register int y; + RegionPtr pReg; + int x; + int y; { int x1, x2, y1, y2; - register int nbox; - register BoxPtr pbox; + int nbox; + BoxPtr pbox; good(pReg); pReg->extents.x1 = x1 = pReg->extents.x1 + x; @@ -2144,7 +2144,7 @@ miTranslateRegion(pReg, x, y) pReg->extents.y2 = MAXSHORT; if (pReg->data && (nbox = pReg->data->numRects)) { - register BoxPtr pboxout; + BoxPtr pboxout; for (pboxout = pbox = REGION_BOXPTR(pReg); nbox--; pbox++) { @@ -2182,35 +2182,6 @@ miTranslateRegion(pReg, x, y) } } -Bool -miRegionDataCopy( - register RegionPtr dst, - register RegionPtr src) -{ - good(dst); - good(src); - if (dst->data) - return TRUE; - if (dst == src) - return TRUE; - if (!src->data || !src->data->size) - { - xfreeData(dst); - dst->data = (RegDataPtr)NULL; - return TRUE; - } - if (!dst->data || (dst->data->size < src->data->numRects)) - { - xfreeData(dst); - dst->data = xallocData(src->data->numRects); - if (!dst->data) - return miRegionBreak (dst); - } - dst->data->size = src->data->size; - dst->data->numRects = src->data->numRects; - return TRUE; -} - _X_EXPORT void miRegionReset(pReg, pBox) RegionPtr pReg; @@ -2226,11 +2197,11 @@ miRegionReset(pReg, pBox) _X_EXPORT Bool miPointInRegion(pReg, x, y, box) - register RegionPtr pReg; - register int x, y; + RegionPtr pReg; + int x, y; BoxPtr box; /* "return" value */ { - register BoxPtr pbox, pboxEnd; + BoxPtr pbox, pboxEnd; int numRects; good(pReg); @@ -2294,8 +2265,8 @@ miRegionExtents(pReg) #define ExchangeSpans(a, b) \ { \ - DDXPointRec tpt; \ - register int tw; \ + DDXPointRec tpt; \ + int tw; \ \ tpt = spans[a]; spans[a] = spans[b]; spans[b] = tpt; \ tw = widths[a]; widths[a] = widths[b]; widths[b] = tw; \ @@ -2307,13 +2278,13 @@ miRegionExtents(pReg) */ static void QuickSortSpans( - register DDXPointRec spans[], - register int widths[], - register int numSpans) + DDXPointRec spans[], + int widths[], + int numSpans) { - register int y; - register int i, j, m; - register DDXPointPtr r; + int y; + int i, j, m; + DDXPointPtr r; /* Always called with numSpans > 1 */ /* Sorts only by y, doesn't bother to sort by x */ @@ -2323,7 +2294,7 @@ static void QuickSortSpans( if (numSpans < 9) { /* Do insertion sort */ - register int yprev; + int yprev; yprev = spans[0].y; i = 1; @@ -2412,18 +2383,18 @@ static void QuickSortSpans( _X_EXPORT int miClipSpans( - RegionPtr prgnDst, - register DDXPointPtr ppt, - register int *pwidth, - int nspans, - register DDXPointPtr pptNew, - int *pwidthNew, - int fSorted) + RegionPtr prgnDst, + DDXPointPtr ppt, + int *pwidth, + int nspans, + DDXPointPtr pptNew, + int *pwidthNew, + int fSorted) { - register DDXPointPtr pptLast; - int *pwidthNewStart; /* the vengeance of Xerox! */ - register int y, x1, x2; - register int numRects; + DDXPointPtr pptLast; + int *pwidthNewStart; /* the vengeance of Xerox! */ + int y, x1, x2; + int numRects; good(prgnDst); pptLast = ppt + nspans; @@ -2435,7 +2406,7 @@ miClipSpans( /* It doesn't pay much to make use of fSorted in this case, so we lump everything together. */ - register int clipx1, clipx2, clipy1, clipy2; + int clipx1, clipx2, clipy1, clipy2; clipx1 = prgnDst->extents.x1; clipy1 = prgnDst->extents.y1; @@ -2467,10 +2438,10 @@ miClipSpans( else if ((numRects = prgnDst->data->numRects)) { /* Have to clip against many boxes */ - BoxPtr pboxBandStart, pboxBandEnd; - register BoxPtr pbox; - register BoxPtr pboxLast; - register int clipy1, clipy2; + BoxPtr pboxBandStart, pboxBandEnd; + BoxPtr pbox; + BoxPtr pboxLast; + int clipy1, clipy2; /* In this case, taking advantage of sorted spans gains more than the sorting costs. */ @@ -2493,7 +2464,7 @@ miClipSpans( x2 = x1 + *pwidth; do { /* For each box in band */ - register int newx1, newx2; + int newx1, newx2; newx1 = x1; newx2 = x2; @@ -2531,10 +2502,10 @@ _X_EXPORT int miFindMaxBand(prgn) RegionPtr prgn; { - register int nbox; - register BoxPtr pbox; - register int nThisBand; - register int nMaxBand = 0; + int nbox; + BoxPtr pbox; + int nThisBand; + int nMaxBand = 0; short yThisBand; good(prgn); diff --git a/mi/miscrinit.c b/mi/miscrinit.c index ac1b82336..cc40cbede 100644 --- a/mi/miscrinit.c +++ b/mi/miscrinit.c @@ -126,12 +126,8 @@ miModifyPixmapHeader(pPixmap, width, height, depth, bitsPerPixel, devKind, return TRUE; } - -/*ARGSUSED*/ -Bool -miCloseScreen (iScreen, pScreen) - int iScreen; - ScreenPtr pScreen; +static Bool +miCloseScreen (int iScreen, ScreenPtr pScreen) { return ((*pScreen->DestroyPixmap)((PixmapPtr)pScreen->devPrivate)); } @@ -185,7 +181,7 @@ miCreateScreenResources(pScreen) Bool miScreenDevPrivateInit(pScreen, width, pbits) - register ScreenPtr pScreen; + ScreenPtr pScreen; int width; pointer pbits; { @@ -207,7 +203,7 @@ miScreenDevPrivateInit(pScreen, width, pbits) _X_EXPORT Bool miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width, rootDepth, numDepths, depths, rootVisual, numVisuals, visuals) - register ScreenPtr pScreen; + ScreenPtr pScreen; pointer pbits; /* pointer to screen bits */ int xsize, ysize; /* in pixels */ int dpix, dpiy; /* dots per inch */ @@ -312,7 +308,7 @@ miAllocateGCPrivateIndex() } _X_EXPORT int miZeroLineScreenIndex; -unsigned int miZeroLineGeneration = 0; +static unsigned int miZeroLineGeneration = 0; _X_EXPORT void miSetZeroLineBias(pScreen, bias) diff --git a/mi/mispans.c b/mi/mispans.c index 4c8b6d698..530d9dff2 100644 --- a/mi/mispans.c +++ b/mi/mispans.c @@ -78,9 +78,7 @@ void miInitSpanGroup(spanGroup) #define YMIN(spans) (spans->points[0].y) #define YMAX(spans) (spans->points[spans->count-1].y) -void miSubtractSpans (spanGroup, sub) - SpanGroup *spanGroup; - Spans *sub; +static void miSubtractSpans (SpanGroup *spanGroup, Spans *sub) { int i, subCount, spansCount; int ymin, ymax, xmin, xmax; @@ -188,8 +186,8 @@ void miAppendSpans(spanGroup, otherGroup, spans) SpanGroup *otherGroup; Spans *spans; { - register int ymin, ymax; - register int spansCount; + int ymin, ymax; + int spansCount; spansCount = spans->count; if (spansCount > 0) { @@ -226,21 +224,21 @@ void miFreeSpanGroup(spanGroup) } static void QuickSortSpansX( - register DDXPointRec points[], - register int widths[], - register int numSpans ) + DDXPointRec points[], + int widths[], + int numSpans ) { - register int x; - register int i, j, m; - register DDXPointPtr r; + int x; + int i, j, m; + DDXPointPtr r; /* Always called with numSpans > 1 */ /* Sorts only by x, as all y should be the same */ #define ExchangeSpans(a, b) \ { \ - DDXPointRec tpt; \ - register int tw; \ + DDXPointRec tpt; \ + int tw; \ \ tpt = points[a]; points[a] = points[b]; points[b] = tpt; \ tw = widths[a]; widths[a] = widths[b]; widths[b] = tw; \ @@ -249,7 +247,7 @@ static void QuickSortSpansX( do { if (numSpans < 9) { /* Do insertion sort */ - register int xprev; + int xprev; xprev = points[0].x; i = 1; @@ -313,14 +311,14 @@ static void QuickSortSpansX( static int UniquifySpansX( - Spans *spans, - register DDXPointRec *newPoints, - register int *newWidths ) + Spans *spans, + DDXPointRec *newPoints, + int *newWidths ) { - register int newx1, newx2, oldpt, i, y; - register DDXPointRec *oldPoints; - register int *oldWidths; - int *startNewWidths; + int newx1, newx2, oldpt, i, y; + DDXPointRec *oldPoints; + int *oldWidths; + int *startNewWidths; /* Always called with numSpans > 1 */ /* Uniquify the spans, and stash them into newPoints and newWidths. Return the @@ -364,9 +362,8 @@ static int UniquifySpansX( return (newWidths - startNewWidths) + 1; } /* UniquifySpansX */ -void -miDisposeSpanGroup (spanGroup) - SpanGroup *spanGroup; +static void +miDisposeSpanGroup (SpanGroup *spanGroup) { int i; Spans *spans; @@ -384,16 +381,16 @@ void miFillUniqueSpanGroup(pDraw, pGC, spanGroup) GCPtr pGC; SpanGroup *spanGroup; { - register int i; - register Spans *spans; - register Spans *yspans; - register int *ysizes; - register int ymin, ylength; + int i; + Spans *spans; + Spans *yspans; + int *ysizes; + int ymin, ylength; /* Outgoing spans for one big call to FillSpans */ - register DDXPointPtr points; - register int *widths; - register int count; + DDXPointPtr points; + int *widths; + int count; if (spanGroup->count == 0) return; @@ -538,24 +535,3 @@ void miFillUniqueSpanGroup(pDraw, pGC, spanGroup) spanGroup->ymin = MAXSHORT; spanGroup->ymax = MINSHORT; } - - -void miFillSpanGroup(pDraw, pGC, spanGroup) - DrawablePtr pDraw; - GCPtr pGC; - SpanGroup *spanGroup; -{ - register int i; - register Spans *spans; - - for (i = 0, spans = spanGroup->group; i != spanGroup->count; i++, spans++) { - (*pGC->ops->FillSpans) - (pDraw, pGC, spans->count, spans->points, spans->widths, TRUE); - xfree(spans->points); - xfree(spans->widths); - } - - spanGroup->count = 0; - spanGroup->ymin = MAXSHORT; - spanGroup->ymax = MINSHORT; -} /* FillSpanGroup */ diff --git a/mi/mispans.h b/mi/mispans.h index 5b141afe2..258b29279 100644 --- a/mi/mispans.h +++ b/mi/mispans.h @@ -71,13 +71,6 @@ extern void miAppendSpans( Spans * /*spans*/ ); -/* Paint a span group, possibly with some overlap */ -extern void miFillSpanGroup( - DrawablePtr /*pDraw*/, - GCPtr /*pGC*/, - SpanGroup * /*spanGroup*/ -); - /* Paint a span group, insuring that each pixel is painted at most once */ extern void miFillUniqueSpanGroup( DrawablePtr /*pDraw*/, @@ -90,15 +83,6 @@ extern void miFreeSpanGroup( SpanGroup * /*spanGroup*/ ); -extern void miSubtractSpans( - SpanGroup * /*spanGroup*/, - Spans * /*sub*/ -); - -extern void miDisposeSpanGroup( - SpanGroup * /*spanGroup*/ -); - extern int miClipSpans( RegionPtr /*prgnDst*/, DDXPointPtr /*ppt*/, diff --git a/mi/misprite.c b/mi/misprite.c index 286c7552a..c0560a4bb 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -320,11 +320,11 @@ miSpriteGetSpans (pDrawable, wMax, ppt, pwidth, nspans, pdstStart) if (pDrawable->type == DRAWABLE_WINDOW && pScreenPriv->isUp) { - register DDXPointPtr pts; - register int *widths; - register int nPts; - register int xorg, - yorg; + DDXPointPtr pts; + int *widths; + int nPts; + int xorg, + yorg; xorg = pDrawable->x; yorg = pDrawable->y; diff --git a/mi/mivaltree.c b/mi/mivaltree.c index 0e5ed61e7..92ea0a8a9 100644 --- a/mi/mivaltree.c +++ b/mi/mivaltree.c @@ -112,13 +112,13 @@ miShapedWindowIn (pScreen, universe, bounding, rect, x, y) ScreenPtr pScreen; RegionPtr universe, bounding; BoxPtr rect; - register int x, y; + int x, y; { - BoxRec box; - register BoxPtr boundBox; - int nbox; - Bool someIn, someOut; - register int t, x1, y1, x2, y2; + BoxRec box; + BoxPtr boundBox; + int nbox; + Bool someIn, someOut; + int t, x1, y1, x2, y2; nbox = REGION_NUM_RECTS (bounding); boundBox = REGION_RECTS (bounding); @@ -202,16 +202,16 @@ miRegisterRedirectBorderClipProc (SetRedirectBorderClipProcPtr setBorderClip, */ static void miComputeClips ( - register WindowPtr pParent, - register ScreenPtr pScreen, - register RegionPtr universe, + WindowPtr pParent, + ScreenPtr pScreen, + RegionPtr universe, VTKind kind, RegionPtr exposed ) /* for intermediate calculations */ { int dx, dy; RegionRec childUniverse; - register WindowPtr pChild; + WindowPtr pChild; int oldVis, newVis; BoxRec borderSize; RegionRec childUnion; @@ -535,10 +535,10 @@ miComputeClips ( static void miTreeObscured( - register WindowPtr pParent ) + WindowPtr pParent ) { - register WindowPtr pChild; - register int oldVis; + WindowPtr pChild; + int oldVis; pChild = pParent; while (1) @@ -609,8 +609,8 @@ miValidateTree (pParent, pChild, kind) RegionRec childUnion; /* the space covered by borderSize for * all marked children */ RegionRec exposed; /* For intermediate calculations */ - register ScreenPtr pScreen; - register WindowPtr pWin; + ScreenPtr pScreen; + WindowPtr pWin; Bool overlap; int viewvals; Bool forward; diff --git a/mi/miwideline.c b/mi/miwideline.c index d57c2eaa7..08e4aa33e 100644 --- a/mi/miwideline.c +++ b/mi/miwideline.c @@ -56,10 +56,10 @@ from The Open Group. ICEILTEMPDECL #endif -static void miLineArc(DrawablePtr pDraw, register GCPtr pGC, +static void miLineArc(DrawablePtr pDraw, GCPtr pGC, unsigned long pixel, SpanDataPtr spanData, - register LineFacePtr leftFace, - register LineFacePtr rightFace, + LineFacePtr leftFace, + LineFacePtr rightFace, double xorg, double yorg, Bool isInt); @@ -67,24 +67,18 @@ static void miLineArc(DrawablePtr pDraw, register GCPtr pGC, * spans-based polygon filler */ -void -miFillPolyHelper (pDrawable, pGC, pixel, spanData, y, overall_height, - left, right, left_count, right_count) - DrawablePtr pDrawable; - GCPtr pGC; - unsigned long pixel; - SpanDataPtr spanData; - int y; /* start y coordinate */ - int overall_height; /* height of entire segment */ - PolyEdgePtr left, right; - int left_count, right_count; +static void +miFillPolyHelper (DrawablePtr pDrawable, GCPtr pGC, unsigned long pixel, + SpanDataPtr spanData, int y, int overall_height, + PolyEdgePtr left, PolyEdgePtr right, + int left_count, int right_count) { - register int left_x = 0, left_e = 0; + int left_x = 0, left_e = 0; int left_stepx = 0; int left_signdx = 0; int left_dy = 0, left_dx = 0; - register int right_x = 0, right_e = 0; + int right_x = 0, right_e = 0; int right_stepx = 0; int right_signdx = 0; int right_dy = 0, right_dx = 0; @@ -92,10 +86,10 @@ miFillPolyHelper (pDrawable, pGC, pixel, spanData, y, overall_height, int height = 0; int left_height = 0, right_height = 0; - register DDXPointPtr ppt; + DDXPointPtr ppt; DDXPointPtr pptInit = NULL; - register int *pwidth; - int *pwidthInit = NULL; + int *pwidth; + int *pwidthInit = NULL; XID oldPixel; int xorg; Spans spanRec; @@ -203,8 +197,8 @@ miFillRectPolyHelper ( int w, int h) { - register DDXPointPtr ppt; - register int *pwidth; + DDXPointPtr ppt; + int *pwidth; XID oldPixel; Spans spanRec; xRectangle rect; @@ -265,10 +259,10 @@ _X_EXPORT /* static */ int miPolyBuildEdge (x0, y0, k, dx, dy, xi, yi, left, edge) double x0, y0; double k; /* x0 * dy - y0 * dx */ - register int dx, dy; + int dx, dy; int xi, yi; int left; - register PolyEdgePtr edge; + PolyEdgePtr edge; { int x, y, e; int xady; @@ -322,23 +316,23 @@ miPolyBuildEdge (x0, y0, k, dx, dy, xi, yi, left, edge) _X_EXPORT /* static */ int miPolyBuildPoly (vertices, slopes, count, xi, yi, left, right, pnleft, pnright, h) - register PolyVertexPtr vertices; - register PolySlopePtr slopes; - int count; - int xi, yi; - PolyEdgePtr left, right; - int *pnleft, *pnright; - int *h; + PolyVertexPtr vertices; + PolySlopePtr slopes; + int count; + int xi, yi; + PolyEdgePtr left, right; + int *pnleft, *pnright; + int *h; { - int top, bottom; - double miny, maxy; - register int i; - int j; - int clockwise; - int slopeoff; - register int s; - register int nright, nleft; - int y, lasty = 0, bottomy, topy = 0; + int top, bottom; + double miny, maxy; + int i; + int j; + int clockwise; + int slopeoff; + int s; + int nright, nleft; + int y, lasty = 0, bottomy, topy = 0; /* find the top of the polygon */ maxy = miny = vertices[0].y; @@ -467,12 +461,12 @@ miLineOnePoint ( static void miLineJoin ( - DrawablePtr pDrawable, - GCPtr pGC, - unsigned long pixel, - SpanDataPtr spanData, - register LineFacePtr pLeft, - register LineFacePtr pRight) + DrawablePtr pDrawable, + GCPtr pGC, + unsigned long pixel, + SpanDataPtr spanData, + LineFacePtr pLeft, + LineFacePtr pRight) { double mx = 0, my = 0; double denom = 0.0; @@ -624,9 +618,9 @@ miLineArcI ( DDXPointPtr points, int *widths) { - register DDXPointPtr tpts, bpts; - register int *twids, *bwids; - register int x, y, e, ex, slw; + DDXPointPtr tpts, bpts; + int *twids, *bwids; + int x, y, e, ex, slw; tpts = points; twids = widths; @@ -717,8 +711,8 @@ miLineArcD ( int edgey2, Bool edgeleft2) { - register DDXPointPtr pts; - register int *wids; + DDXPointPtr pts; + int *wids; double radius, x0, y0, el, er, yk, xlk, xrk, k; int xbase, ybase, y, boty, xl, xr, xcl, xcr; int ymin, ymax; @@ -873,11 +867,8 @@ miLineArcD ( return (pts - points); } -int -miRoundJoinFace (face, edge, leftEdge) - register LineFacePtr face; - register PolyEdgePtr edge; - Bool *leftEdge; +static int +miRoundJoinFace (LineFacePtr face, PolyEdgePtr edge, Bool *leftEdge) { int y; int dx, dy; @@ -924,7 +915,7 @@ miRoundJoinFace (face, edge, leftEdge) _X_EXPORT void miRoundJoinClip (pLeft, pRight, edge1, edge2, y1, y2, left1, left2) - register LineFacePtr pLeft, pRight; + LineFacePtr pLeft, pRight; PolyEdgePtr edge1, edge2; int *y1, *y2; Bool *left1, *left2; @@ -949,14 +940,14 @@ miRoundJoinClip (pLeft, pRight, edge1, edge2, y1, y2, left1, left2) _X_EXPORT int miRoundCapClip (face, isInt, edge, leftEdge) - register LineFacePtr face; + LineFacePtr face; Bool isInt; - register PolyEdgePtr edge; + PolyEdgePtr edge; Bool *leftEdge; { - int y; - register int dx, dy; - double xa, ya, k; + int y; + int dx, dy; + double xa, ya, k; Bool left; dx = -face->dy; @@ -999,15 +990,15 @@ miRoundCapClip (face, isInt, edge, leftEdge) static void miLineArc ( - DrawablePtr pDraw, - register GCPtr pGC, - unsigned long pixel, - SpanDataPtr spanData, - register LineFacePtr leftFace, - register LineFacePtr rightFace, - double xorg, - double yorg, - Bool isInt) + DrawablePtr pDraw, + GCPtr pGC, + unsigned long pixel, + SpanDataPtr spanData, + LineFacePtr leftFace, + LineFacePtr rightFace, + double xorg, + double yorg, + Bool isInt) { DDXPointPtr points; int *widths; @@ -1114,16 +1105,10 @@ miLineArc ( } } -void -miLineProjectingCap (pDrawable, pGC, pixel, spanData, face, isLeft, xorg, yorg, isInt) - DrawablePtr pDrawable; - register GCPtr pGC; - unsigned long pixel; - SpanDataPtr spanData; - register LineFacePtr face; - Bool isLeft; - double xorg, yorg; - Bool isInt; +static void +miLineProjectingCap (DrawablePtr pDrawable, GCPtr pGC, unsigned long pixel, + SpanDataPtr spanData, LineFacePtr face, Bool isLeft, + double xorg, double yorg, Bool isInt) { int xorgi = 0, yorgi = 0; int lw; @@ -1286,18 +1271,18 @@ miLineProjectingCap (pDrawable, pGC, pixel, spanData, face, isLeft, xorg, yorg, static void miWideSegment ( - DrawablePtr pDrawable, - GCPtr pGC, - unsigned long pixel, - SpanDataPtr spanData, - register int x1, - register int y1, - register int x2, - register int y2, - Bool projectLeft, - Bool projectRight, - register LineFacePtr leftFace, - register LineFacePtr rightFace) + DrawablePtr pDrawable, + GCPtr pGC, + unsigned long pixel, + SpanDataPtr spanData, + int x1, + int y1, + int x2, + int y2, + Bool projectLeft, + Bool projectRight, + LineFacePtr leftFace, + LineFacePtr rightFace) { double l, L, r; double xa, ya; @@ -1506,11 +1491,8 @@ miWideSegment ( } } -SpanDataPtr -miSetupSpanData (pGC, spanData, npt) - register GCPtr pGC; - SpanDataPtr spanData; - int npt; +static SpanDataPtr +miSetupSpanData (GCPtr pGC, SpanDataPtr spanData, int npt) { if ((npt < 3 && pGC->capStyle != CapRound) || miSpansEasyRop(pGC->alu)) return (SpanDataPtr) NULL; @@ -1520,11 +1502,8 @@ miSetupSpanData (pGC, spanData, npt) return spanData; } -void -miCleanupSpanData (pDrawable, pGC, spanData) - DrawablePtr pDrawable; - GCPtr pGC; - SpanDataPtr spanData; +static void +miCleanupSpanData (DrawablePtr pDrawable, GCPtr pGC, SpanDataPtr spanData) { if (pGC->lineStyle == LineDoubleDash) { @@ -1552,21 +1531,21 @@ miCleanupSpanData (pDrawable, pGC, spanData) _X_EXPORT void miWideLine (pDrawable, pGC, mode, npt, pPts) DrawablePtr pDrawable; - register GCPtr pGC; + GCPtr pGC; int mode; - register int npt; - register DDXPointPtr pPts; + int npt; + DDXPointPtr pPts; { - int x1, y1, x2, y2; - SpanDataRec spanDataRec; - SpanDataPtr spanData; - unsigned long pixel; - Bool projectLeft, projectRight; - LineFaceRec leftFace, rightFace, prevRightFace; - LineFaceRec firstFace; - register int first; - Bool somethingDrawn = FALSE; - Bool selfJoin; + int x1, y1, x2, y2; + SpanDataRec spanDataRec; + SpanDataPtr spanData; + long pixel; + Bool projectLeft, projectRight; + LineFaceRec leftFace, rightFace, prevRightFace; + LineFaceRec firstFace; + int first; + Bool somethingDrawn = FALSE; + Bool selfJoin; spanData = miSetupSpanData (pGC, &spanDataRec, npt); pixel = pGC->fgPixel; @@ -1693,7 +1672,7 @@ miWideLine (pDrawable, pGC, mode, npt, pPts) static void miWideDashSegment ( DrawablePtr pDrawable, - register GCPtr pGC, + GCPtr pGC, SpanDataPtr spanData, int *pDashOffset, int *pDashIndex, @@ -2050,25 +2029,25 @@ miWideDashSegment ( _X_EXPORT void miWideDash (pDrawable, pGC, mode, npt, pPts) DrawablePtr pDrawable; - register GCPtr pGC; + GCPtr pGC; int mode; - register int npt; - register DDXPointPtr pPts; + int npt; + DDXPointPtr pPts; { - int x1, y1, x2, y2; - unsigned long pixel; - Bool projectLeft, projectRight; - LineFaceRec leftFace, rightFace, prevRightFace; - LineFaceRec firstFace; - int first; - int dashIndex, dashOffset; - register int prevDashIndex; - SpanDataRec spanDataRec; - SpanDataPtr spanData; - Bool somethingDrawn = FALSE; - Bool selfJoin; - Bool endIsFg = FALSE, startIsFg = FALSE; - Bool firstIsFg = FALSE, prevIsFg = FALSE; + int x1, y1, x2, y2; + unsigned long pixel; + Bool projectLeft, projectRight; + LineFaceRec leftFace, rightFace, prevRightFace; + LineFaceRec firstFace; + int first; + int dashIndex, dashOffset; + int prevDashIndex; + SpanDataRec spanDataRec; + SpanDataPtr spanData; + Bool somethingDrawn = FALSE; + Bool selfJoin; + Bool endIsFg = FALSE, startIsFg = FALSE; + Bool firstIsFg = FALSE, prevIsFg = FALSE; #if 0 /* XXX backward compatibility */ diff --git a/mi/miwideline.h b/mi/miwideline.h index 8cfa63008..9d1aa03cb 100644 --- a/mi/miwideline.h +++ b/mi/miwideline.h @@ -153,24 +153,6 @@ typedef struct _LineFace { } \ } -extern void miFillPolyHelper( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - unsigned long /*pixel*/, - SpanDataPtr /*spanData*/, - int /*y*/, - int /*overall_height*/, - PolyEdgePtr /*left*/, - PolyEdgePtr /*right*/, - int /*left_count*/, - int /*right_count*/ -); -extern int miRoundJoinFace( - LineFacePtr /*face*/, - PolyEdgePtr /*edge*/, - Bool * /*leftEdge*/ -); - extern void miRoundJoinClip( LineFacePtr /*pLeft*/, LineFacePtr /*pRight*/, @@ -189,30 +171,6 @@ extern int miRoundCapClip( Bool * /*leftEdge*/ ); -extern void miLineProjectingCap( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - unsigned long /*pixel*/, - SpanDataPtr /*spanData*/, - LineFacePtr /*face*/, - Bool /*isLeft*/, - double /*xorg*/, - double /*yorg*/, - Bool /*isInt*/ -); - -extern SpanDataPtr miSetupSpanData( - GCPtr /*pGC*/, - SpanDataPtr /*spanData*/, - int /*npt*/ -); - -extern void miCleanupSpanData( - DrawablePtr /*pDrawable*/, - GCPtr /*pGC*/, - SpanDataPtr /*spanData*/ -); - extern int miPolyBuildEdge(double x0, double y0, double k, int dx, int dy, int xi, int yi, int left, PolyEdgePtr edge); extern int miPolyBuildPoly(PolyVertexPtr vertices, PolySlopePtr slopes, diff --git a/mi/miwindow.c b/mi/miwindow.c index cd6bb8df3..6ca2e1e38 100644 --- a/mi/miwindow.c +++ b/mi/miwindow.c @@ -160,12 +160,12 @@ miClearToBackground(pWin, x, y, w, h, generateExposures) */ static Bool miCheckSubSaveUnder( - register WindowPtr pParent, /* Parent to check */ + WindowPtr pParent, /* Parent to check */ WindowPtr pFirst, /* first reconfigured window */ RegionPtr pRegion) /* Initial area obscured by saveUnder */ { - register WindowPtr pChild; /* Current child */ - register ScreenPtr pScreen; /* Screen to use */ + WindowPtr pChild; /* Current child */ + ScreenPtr pScreen; /* Screen to use */ RegionRec SubRegion; /* Area of children obscured */ Bool res = FALSE; /* result */ Bool subInited=FALSE;/* SubRegion initialized */ @@ -268,12 +268,12 @@ miCheckSubSaveUnder( */ Bool miChangeSaveUnder(pWin, first) - register WindowPtr pWin; + WindowPtr pWin; WindowPtr first; /* First window to check. * Used when pWin was restacked */ { RegionRec rgn; /* Area obscured by saveUnder windows */ - register ScreenPtr pScreen; + ScreenPtr pScreen; Bool res; if (!deltaSaveUndersViewable && !numSaveUndersViewable) @@ -309,7 +309,7 @@ miPostChangeSaveUnder(pWin, pFirst) WindowPtr pWin; WindowPtr pFirst; { - register WindowPtr pParent, pChild; + WindowPtr pParent, pChild; ChangeWindowAttributesProcPtr ChangeWindowAttributes; if (!(pParent = pWin->parent)) @@ -342,9 +342,9 @@ miPostChangeSaveUnder(pWin, pFirst) void miMarkWindow(pWin) - register WindowPtr pWin; + WindowPtr pWin; { - register ValidatePtr val; + ValidatePtr val; if (pWin->valdata) return; @@ -362,8 +362,8 @@ miMarkOverlappedWindows(pWin, pFirst, ppLayerWin) WindowPtr pFirst; WindowPtr *ppLayerWin; { - register BoxPtr box; - register WindowPtr pChild, pLast; + BoxPtr box; + WindowPtr pChild, pLast; Bool anyMarked = FALSE; MarkWindowProcPtr MarkWindow = pWin->drawable.pScreen->MarkWindow; ScreenPtr pScreen; @@ -449,8 +449,8 @@ _X_EXPORT void miHandleValidateExposures(pWin) WindowPtr pWin; { - register WindowPtr pChild; - register ValidatePtr val; + WindowPtr pChild; + ValidatePtr val; ScreenPtr pScreen; WindowExposuresProcPtr WindowExposures; @@ -487,7 +487,7 @@ miHandleValidateExposures(pWin) void miMoveWindow(pWin, x, y, pNextSib, kind) - register WindowPtr pWin; + WindowPtr pWin; int x,y; WindowPtr pNextSib; VTKind kind; @@ -498,7 +498,7 @@ miMoveWindow(pWin, x, y, pNextSib, kind) RegionPtr oldRegion = NULL; DDXPointRec oldpt; Bool anyMarked = FALSE; - register ScreenPtr pScreen; + ScreenPtr pScreen; WindowPtr windowToValidate; #ifdef DO_SAVE_UNDERS Bool dosave = FALSE; @@ -576,10 +576,10 @@ miMoveWindow(pWin, x, y, pNextSib, kind) static int miRecomputeExposures ( - register WindowPtr pWin, + WindowPtr pWin, pointer value) /* must conform to VisitWindowProcPtr */ { - register ScreenPtr pScreen; + ScreenPtr pScreen; RegionPtr pValid = (RegionPtr)value; if (pWin->valdata) @@ -604,7 +604,7 @@ miRecomputeExposures ( void miSlideAndSizeWindow(pWin, x, y, w, h, pSib) - register WindowPtr pWin; + WindowPtr pWin; int x,y; unsigned int w, h; WindowPtr pSib; @@ -620,11 +620,11 @@ miSlideAndSizeWindow(pWin, x, y, w, h, pSib) DDXPointRec oldpt; RegionPtr oldRegion = NULL; Bool anyMarked = FALSE; - register ScreenPtr pScreen; + ScreenPtr pScreen; WindowPtr pFirstChange; - register WindowPtr pChild; + WindowPtr pChild; RegionPtr gravitate[StaticGravity + 1]; - register unsigned g; + unsigned g; int nx, ny; /* destination x,y */ int newx, newy; /* new inner window position */ RegionPtr pRegion = NULL; @@ -981,10 +981,10 @@ miGetLayerWindow(pWin) _X_EXPORT void miSetShape(pWin) - register WindowPtr pWin; + WindowPtr pWin; { Bool WasViewable = (Bool)(pWin->viewable); - register ScreenPtr pScreen = pWin->drawable.pScreen; + ScreenPtr pScreen = pWin->drawable.pScreen; Bool anyMarked = FALSE; RegionPtr pOldClip = NULL, bsExposed; #ifdef DO_SAVE_UNDERS @@ -1081,12 +1081,12 @@ miSetShape(pWin) _X_EXPORT void miChangeBorderWidth(pWin, width) - register WindowPtr pWin; + WindowPtr pWin; unsigned int width; { int oldwidth; Bool anyMarked = FALSE; - register ScreenPtr pScreen; + ScreenPtr pScreen; Bool WasViewable = (Bool)(pWin->viewable); Bool HadBorder; #ifdef DO_SAVE_UNDERS diff --git a/mi/mizerarc.c b/mi/mizerarc.c index 33e1acc19..9d4715a30 100644 --- a/mi/mizerarc.c +++ b/mi/mizerarc.c @@ -97,8 +97,8 @@ static miZeroArcPtRec oob = {65536, 65536, 0}; _X_EXPORT Bool miZeroArcSetup(arc, info, ok360) - register xArc *arc; - register miZeroArcRec *info; + xArc *arc; + miZeroArcRec *info; Bool ok360; { int l; @@ -401,14 +401,12 @@ miZeroArcSetup(arc, info, ok360) #define DoPix(idx,xval,yval) if (mask & (1 << idx)) Pixelate(xval, yval); -DDXPointPtr -miZeroArcPts(arc, pts) - xArc *arc; - register DDXPointPtr pts; +static DDXPointPtr +miZeroArcPts(xArc *arc, DDXPointPtr pts) { miZeroArcRec info; - register int x, y, a, b, d, mask; - register int k1, k3, dx, dy; + int x, y, a, b, d, mask; + int k1, k3, dx, dy; Bool do360; do360 = miZeroArcSetup(arc, &info, TRUE); @@ -509,14 +507,14 @@ miZeroArcDashPts( GCPtr pGC, xArc *arc, DashInfo *dinfo, - register DDXPointPtr points, + DDXPointPtr points, int maxPts, - register DDXPointPtr *evenPts, - register DDXPointPtr *oddPts ) + DDXPointPtr *evenPts, + DDXPointPtr *oddPts ) { miZeroArcRec info; - register int x, y, a, b, d, mask; - register int k1, k3, dx, dy; + int x, y, a, b, d, mask; + int k1, k3, dx, dy; int dashRemaining; DDXPointPtr arcPts[4]; DDXPointPtr startPts[5], endPts[5]; @@ -715,11 +713,11 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs) xArc *parcs; { int maxPts = 0; - register int n, maxw = 0; - register xArc *arc; - register int i; + int n, maxw = 0; + xArc *arc; + int i; DDXPointPtr points, pts, oddPts; - register DDXPointPtr pt; + DDXPointPtr pt; int numPts; Bool dospans; int *widths = NULL; diff --git a/mi/mizerarc.h b/mi/mizerarc.h index 8119d885e..28ebbe030 100644 --- a/mi/mizerarc.h +++ b/mi/mizerarc.h @@ -124,9 +124,3 @@ extern Bool miZeroArcSetup( miZeroArcRec * /*info*/, Bool /*ok360*/ ); - -extern DDXPointPtr miZeroArcPts( - xArc * /*arc*/, - DDXPointPtr /*pts*/ -); - diff --git a/miext/damage/damage.c b/miext/damage/damage.c index cd66b5473..6f1ee2894 100755 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -72,6 +72,12 @@ #define pixmapDamage(pPixmap) damagePixPriv(pPixmap) +static int damageScrPrivateIndex; +static int damagePixPrivateIndex; +static int damageGCPrivateIndex; +static int damageWinPrivateIndex; +static int damageGeneration; + static DamagePtr * getDrawableDamageRef (DrawablePtr pDrawable) { @@ -368,12 +374,12 @@ static void damageChangeClip(GCPtr, int, pointer, int); static void damageDestroyClip(GCPtr); static void damageCopyClip(GCPtr, GCPtr); -GCFuncs damageGCFuncs = { +static GCFuncs damageGCFuncs = { damageValidateGC, damageChangeGC, damageCopyGC, damageDestroyGC, damageChangeClip, damageDestroyClip, damageCopyClip }; -extern GCOps damageGCOps; +static GCOps damageGCOps; static Bool damageCreateGC(GCPtr pGC) @@ -1686,7 +1692,7 @@ damageCopyWindow(WindowPtr pWindow, wrap (pScrPriv, pScreen, CopyWindow, damageCopyWindow); } -GCOps damageGCOps = { +static GCOps damageGCOps = { damageFillSpans, damageSetSpans, damagePutImage, damageCopyArea, damageCopyPlane, damagePolyPoint, @@ -1787,12 +1793,6 @@ damageCloseScreen (int i, ScreenPtr pScreen) return (*pScreen->CloseScreen) (i, pScreen); } -int damageScrPrivateIndex; -int damagePixPrivateIndex; -int damageGCPrivateIndex; -int damageWinPrivateIndex; -int damageGeneration; - Bool DamageSetup (ScreenPtr pScreen) { diff --git a/miext/damage/damagestr.h b/miext/damage/damagestr.h index 93e213fd1..83a202ba8 100755 --- a/miext/damage/damagestr.h +++ b/miext/damage/damagestr.h @@ -82,11 +82,7 @@ typedef struct _damageGCPriv { GCFuncs *funcs; } DamageGCPrivRec, *DamageGCPrivPtr; -extern int damageScrPrivateIndex; -extern int damagePixPrivateIndex; -extern int damageGCPrivateIndex; -extern int damageWinPrivateIndex; - +/* XXX should move these into damage.c, damageScrPrivateIndex is static */ #define damageGetScrPriv(pScr) \ ((DamageScrPrivPtr) (pScr)->devPrivates[damageScrPrivateIndex].ptr) diff --git a/os/access.c b/os/access.c index db5ca3135..221b8cbcd 100644 --- a/os/access.c +++ b/os/access.c @@ -234,8 +234,8 @@ static Bool NewHost(int /*family*/, int /*len*/, int /* addingLocalHosts */); -int LocalClientCredAndGroups(ClientPtr client, int *pUid, int *pGid, - int **pSuppGids, int *nSuppGids); +static int LocalClientCredAndGroups(ClientPtr client, int *pUid, int *pGid, + int **pSuppGids, int *nSuppGids); /* XFree86 bug #156: To keep track of which hosts were explicitly requested in @@ -1431,7 +1431,7 @@ LocalClientCred(ClientPtr client, int *pUid, int *pGid) * * Used by localuser & localgroup ServerInterpreted access control forms below */ -int +static int LocalClientCredAndGroups(ClientPtr client, int *pUid, int *pGid, int **pSuppGids, int *nSuppGids) { diff --git a/os/auth.c b/os/auth.c index bf33b7ef1..b06333e6b 100644 --- a/os/auth.c +++ b/os/auth.c @@ -255,26 +255,6 @@ ResetAuthorization (void) ShouldLoadAuth = TRUE; } -XID -AuthorizationToID ( - unsigned short name_length, - char *name, - unsigned short data_length, - char *data) -{ - int i; - - for (i = 0; i < NUM_AUTHORIZATION; i++) { - if (protocols[i].name_length == name_length && - memcmp (protocols[i].name, name, (int) name_length) == 0 && - protocols[i].ToID) - { - return (*protocols[i].ToID) (data_length, data); - } - } - return (XID) ~0L; -} - int AuthorizationFromID ( XID id, diff --git a/os/connection.c b/os/connection.c index d0ffb8156..cb3443c5b 100644 --- a/os/connection.c +++ b/os/connection.c @@ -175,7 +175,7 @@ typedef const char *string; # include #endif -int lastfdesc; /* maximum file descriptor */ +static int lastfdesc; /* maximum file descriptor */ fd_set WellKnownConnections; /* Listener mask */ fd_set EnabledDevices; /* mask for input devices that are on */ @@ -189,7 +189,7 @@ int MaxClients = 0; Bool NewOutputPending; /* not yet attempted to write some new output */ Bool AnyClientsWriteBlocked; /* true if some client blocked on write */ -Bool RunFromSmartParent; /* send SIGUSR1 to parent process */ +static Bool RunFromSmartParent; /* send SIGUSR1 to parent process */ Bool PartialNetwork; /* continue even if unable to bind all addrs */ static Pid_t ParentProcess; #ifdef __UNIXOS2__ @@ -298,9 +298,9 @@ void ClearConnectionTranslation(void) } #endif -XtransConnInfo *ListenTransConns = NULL; -int *ListenTransFds = NULL; -int ListenTransCount; +static XtransConnInfo *ListenTransConns = NULL; +static int *ListenTransFds = NULL; +static int ListenTransCount; static void ErrorConnMax(XtransConnInfo /* trans_conn */); diff --git a/os/io.c b/os/io.c index f6c666c0f..4e83e682b 100644 --- a/os/io.c +++ b/os/io.c @@ -90,6 +90,11 @@ SOFTWARE. _X_EXPORT CallbackListPtr ReplyCallback; _X_EXPORT CallbackListPtr FlushCallback; +static ConnectionInputPtr AllocateInputBuffer(void); +static ConnectionOutputPtr AllocateOutputBuffer(void); +static xReqPtr PeekNextRequest(xReqPtr req, ClientPtr client, Bool readmore); +static void SkipRequests(xReqPtr req, ClientPtr client, int numskipped); + /* check for both EAGAIN and EWOULDBLOCK, because some supposedly POSIX * systems are broken and return EWOULDBLOCK when they should return EAGAIN */ @@ -111,11 +116,11 @@ _X_EXPORT CallbackListPtr FlushCallback; #define ETEST(err) (err == EAGAIN || err == EWOULDBLOCK || err == ENOSPC) #endif -Bool CriticalOutputPending; -int timesThisConnection = 0; -ConnectionInputPtr FreeInputs = (ConnectionInputPtr)NULL; -ConnectionOutputPtr FreeOutputs = (ConnectionOutputPtr)NULL; -OsCommPtr AvailableInput = (OsCommPtr)NULL; +static Bool CriticalOutputPending; +static int timesThisConnection = 0; +static ConnectionInputPtr FreeInputs = (ConnectionInputPtr)NULL; +static ConnectionOutputPtr FreeOutputs = (ConnectionOutputPtr)NULL; +static OsCommPtr AvailableInput = (OsCommPtr)NULL; #define get_req_len(req,cli) ((cli)->swapped ? \ lswaps((req)->length) : (req)->length) @@ -635,7 +640,7 @@ ResetCurrentRequest(ClientPtr client) * **********************/ -xReqPtr +static xReqPtr PeekNextRequest( xReqPtr req, /* request we're starting from */ ClientPtr client, /* client whose requests we're skipping */ @@ -697,7 +702,7 @@ PeekNextRequest( _X_EXPORT CallbackListPtr SkippedRequestsCallback = NULL; -void +static void SkipRequests( xReqPtr req, /* last request being skipped */ ClientPtr client, /* client whose requests we're skipping */ @@ -1165,7 +1170,7 @@ FlushClient(ClientPtr who, OsCommPtr oc, char *extraBuf, int extraCount) return extraCount; /* return only the amount explicitly requested */ } -ConnectionInputPtr +static ConnectionInputPtr AllocateInputBuffer(void) { ConnectionInputPtr oci; @@ -1186,7 +1191,7 @@ AllocateInputBuffer(void) return oci; } -ConnectionOutputPtr +static ConnectionOutputPtr AllocateOutputBuffer(void) { ConnectionOutputPtr oco; diff --git a/os/osdep.h b/os/osdep.h index 5fa1e3918..0984d51e8 100644 --- a/os/osdep.h +++ b/os/osdep.h @@ -210,10 +210,6 @@ extern void FreeOsBuffers( #include "dix.h" -extern ConnectionInputPtr AllocateInputBuffer(void); - -extern ConnectionOutputPtr AllocateOutputBuffer(void); - extern fd_set AllSockets; extern fd_set AllClients; extern fd_set LastSelectMask; @@ -234,12 +230,6 @@ extern void ClearConnectionTranslation(); extern Bool NewOutputPending; extern Bool AnyClientsWriteBlocked; -extern Bool CriticalOutputPending; - -extern int timesThisConnection; -extern ConnectionInputPtr FreeInputs; -extern ConnectionOutputPtr FreeOutputs; -extern OsCommPtr AvailableInput; extern WorkQueuePtr workQueue; @@ -299,14 +289,12 @@ extern XID AuthSecurityCheck (AuthCheckArgs); /* in xdmcp.c */ extern void XdmcpUseMsg (void); extern int XdmcpOptions(int argc, char **argv, int i); -extern void XdmcpSetAuthentication (ARRAY8Ptr name); extern void XdmcpRegisterConnection ( int type, char *address, int addrlen); extern void XdmcpRegisterAuthorizations (void); extern void XdmcpRegisterAuthorization (char *name, int namelen); -extern void XdmcpRegisterDisplayClass (char *name, int length); extern void XdmcpInit (void); extern void XdmcpReset (void); extern void XdmcpOpenDisplay(int sock); @@ -319,8 +307,6 @@ extern void XdmcpRegisterAuthentication ( ValidatorFunc Validator, GeneratorFunc Generator, AddAuthorFunc AddAuth); -extern int XdmcpCheckAuthentication (ARRAY8Ptr Name, ARRAY8Ptr Data, int packet_type); -extern int XdmcpAddAuthorization (ARRAY8Ptr name, ARRAY8Ptr data); struct sockaddr_in; extern void XdmcpRegisterBroadcastAddress (struct sockaddr_in *addr); diff --git a/os/utils.c b/os/utils.c index 612c2644a..2fc5cbb3f 100644 --- a/os/utils.c +++ b/os/utils.c @@ -117,7 +117,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #endif #ifdef XKB -#include +#include #endif #ifdef XCSECURITY #include "securitysrv.h" @@ -245,10 +245,6 @@ _X_EXPORT Bool noXvExtension = FALSE; Bool CoreDump; #ifdef PANORAMIX -Bool PanoramiXVisibilityNotifySent = FALSE; -Bool PanoramiXMapped = FALSE; -Bool PanoramiXWindowExposureSent = FALSE; -Bool PanoramiXOneExposeRequest = FALSE; Bool PanoramiXExtensionDisabledHack = FALSE; #endif @@ -271,7 +267,7 @@ long Memory_fail = 0; #include /* for random() */ #endif -char *dev_tty_from_init = NULL; /* since we need to parse it anyway */ +static char *dev_tty_from_init = NULL; /* since we need to parse it anyway */ OsSigHandlerPtr OsSignal(sig, handler) diff --git a/os/xdmcp.c b/os/xdmcp.c index fd4be5e81..310f33bc0 100644 --- a/os/xdmcp.c +++ b/os/xdmcp.c @@ -197,8 +197,6 @@ static void receive_packet(int /*socketfd*/); static void send_packet(void); -extern void XdmcpDeadSession(char * /*reason*/); - static void timeout(void); static void restart(void); @@ -213,10 +211,23 @@ static void XdmcpWakeupHandler( int /*i*/, pointer /*LastSelectMask*/); -void XdmcpRegisterManufacturerDisplayID( - char * /*name*/, - int /*length*/); +/* + * Register the Manufacturer display ID + */ +static ARRAY8 ManufacturerDisplayID; + +static void +XdmcpRegisterManufacturerDisplayID (char *name, int length) +{ + int i; + + XdmcpDisposeARRAY8 (&ManufacturerDisplayID); + if (!XdmcpAllocARRAY8 (&ManufacturerDisplayID, length)) + return; + for (i = 0; i < length; i++) + ManufacturerDisplayID.data[i] = (CARD8) name[i]; +} static unsigned short xdm_udp_port = XDM_UDP_PORT; static Bool OneSession = FALSE; @@ -411,13 +422,13 @@ XdmcpRegisterAuthentication ( * set by the manager of the host to be connected to. */ -ARRAY8 noAuthenticationName = {(CARD16) 0, (CARD8Ptr) 0}; -ARRAY8 noAuthenticationData = {(CARD16) 0, (CARD8Ptr) 0}; -ARRAY8Ptr AuthenticationName = &noAuthenticationName; -ARRAY8Ptr AuthenticationData = &noAuthenticationData; -AuthenticationFuncsPtr AuthenticationFuncs; +static ARRAY8 noAuthenticationName = {(CARD16) 0, (CARD8Ptr) 0}; +static ARRAY8 noAuthenticationData = {(CARD16) 0, (CARD8Ptr) 0}; +static ARRAY8Ptr AuthenticationName = &noAuthenticationName; +static ARRAY8Ptr AuthenticationData = &noAuthenticationData; +static AuthenticationFuncsPtr AuthenticationFuncs; -void +static void XdmcpSetAuthentication (ARRAY8Ptr name) { int i; @@ -547,9 +558,9 @@ XdmcpRegisterAuthorization (char *name, int namelen) * Register the DisplayClass string */ -ARRAY8 DisplayClass; +static ARRAY8 DisplayClass; -void +static void XdmcpRegisterDisplayClass (char *name, int length) { int i; @@ -561,24 +572,6 @@ XdmcpRegisterDisplayClass (char *name, int length) DisplayClass.data[i] = (CARD8) name[i]; } -/* - * Register the Manufacturer display ID - */ - -ARRAY8 ManufacturerDisplayID; - -void -XdmcpRegisterManufacturerDisplayID (char *name, int length) -{ - int i; - - XdmcpDisposeARRAY8 (&ManufacturerDisplayID); - if (!XdmcpAllocARRAY8 (&ManufacturerDisplayID, length)) - return; - for (i = 0; i < length; i++) - ManufacturerDisplayID.data[i] = (CARD8) name[i]; -} - /* * initialize XDMCP; create the socket, compute the display * number, set up the state machine @@ -776,7 +769,7 @@ XdmcpAddHost( * do the appropriate thing */ -ARRAY8 UnwillingMessage = { (CARD8) 14, (CARD8 *) "Host unwilling" }; +static ARRAY8 UnwillingMessage = { (CARD8) 14, (CARD8 *) "Host unwilling" }; static void receive_packet(int socketfd) @@ -867,7 +860,7 @@ send_packet(void) * timeouts, or Keepalive failure. */ -void +static void XdmcpDeadSession (char *reason) { ErrorF ("XDM: %s, declaring session dead\n", reason); @@ -960,21 +953,16 @@ restart(void) send_packet(); } -int -XdmcpCheckAuthentication ( - ARRAY8Ptr Name, - ARRAY8Ptr Data, - int packet_type) +static int +XdmcpCheckAuthentication (ARRAY8Ptr Name, ARRAY8Ptr Data, int packet_type) { return (XdmcpARRAY8Equal (Name, AuthenticationName) && (AuthenticationName->length == 0 || (*AuthenticationFuncs->Validator) (AuthenticationData, Data, packet_type))); } -int -XdmcpAddAuthorization ( - ARRAY8Ptr name, - ARRAY8Ptr data) +static int +XdmcpAddAuthorization (ARRAY8Ptr name, ARRAY8Ptr data) { AddAuthorFunc AddAuth; diff --git a/randr/mirandr.c b/randr/mirandr.c index 0b763e111..3c4991e5a 100644 --- a/randr/mirandr.c +++ b/randr/mirandr.c @@ -73,6 +73,20 @@ miRROutputSetProperty (ScreenPtr pScreen, return TRUE; } +Bool +miRROutputValidateMode (ScreenPtr pScreen, + RROutputPtr output, + RRModePtr mode) +{ + return FALSE; +} + +void +miRRModeDestroy (ScreenPtr pScreen, + RRModePtr mode) +{ +} + /* * This function assumes that only a single depth can be * displayed at a time, but that all visuals of that depth @@ -102,7 +116,8 @@ miRandRInit (ScreenPtr pScreen) pScrPriv->rrCrtcSet = miRRCrtcSet; pScrPriv->rrCrtcSetGamma = miRRCrtcSetGamma; pScrPriv->rrOutputSetProperty = miRROutputSetProperty; - + pScrPriv->rrOutputValidateMode = miRROutputValidateMode; + pScrPriv->rrModeDestroy = miRRModeDestroy; RRScreenSetSizeRange (pScreen, pScreen->width, pScreen->height, @@ -118,20 +133,13 @@ miRandRInit (ScreenPtr pScreen) if (!mode) return FALSE; - crtc = RRCrtcCreate (NULL); + crtc = RRCrtcCreate (pScreen, NULL); if (!crtc) return FALSE; - if (!RRCrtcAttachScreen (crtc, pScreen)) - { - RRCrtcDestroy (crtc); - return FALSE; - } - output = RROutputCreate ("screen", 6, NULL); + output = RROutputCreate (pScreen, "screen", 6, NULL); if (!output) return FALSE; - if (!RROutputAttachScreen (output, pScreen)) - return FALSE; if (!RROutputSetClones (output, NULL, 0)) return FALSE; if (!RROutputSetModes (output, &mode, 1, 0)) diff --git a/randr/randr.c b/randr/randr.c index 5fa9baf84..4dd0ee5b4 100644 --- a/randr/randr.c +++ b/randr/randr.c @@ -230,7 +230,7 @@ Bool RRScreenInit(ScreenPtr pScreen) RRScreenGeneration = serverGeneration; } - pScrPriv = (rrScrPrivPtr) xalloc (sizeof (rrScrPrivRec)); + pScrPriv = (rrScrPrivPtr) xcalloc (1, sizeof (rrScrPrivRec)); if (!pScrPriv) return FALSE; diff --git a/randr/randrstr.h b/randr/randrstr.h index 505821269..4cc3a469e 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -79,8 +79,7 @@ struct _rrMode { int refcnt; xRRModeInfo mode; char *name; - void *devPrivate; - Bool userDefined; + ScreenPtr userScreen; }; struct _rrPropertyValue { @@ -135,8 +134,11 @@ struct _rrOutput { int numModes; int numPreferred; RRModePtr *modes; + int numUserModes; + RRModePtr *userModes; Bool changed; RRPropertyPtr properties; + Bool pendingProperties; void *devPrivate; }; @@ -164,6 +166,13 @@ typedef Bool (*RROutputSetPropertyProcPtr) (ScreenPtr pScreen, Atom property, RRPropertyValuePtr value); +typedef Bool (*RROutputValidateModeProcPtr) (ScreenPtr pScreen, + RROutputPtr output, + RRModePtr mode); + +typedef void (*RRModeDestroyProcPtr) (ScreenPtr pScreen, + RRModePtr mode); + #endif typedef Bool (*RRGetInfoProcPtr) (ScreenPtr pScreen, Rotation *rotations); @@ -208,6 +217,8 @@ typedef struct _rrScrPriv { RRCrtcSetProcPtr rrCrtcSet; RRCrtcSetGammaProcPtr rrCrtcSetGamma; RROutputSetPropertyProcPtr rrOutputSetProperty; + RROutputValidateModeProcPtr rrOutputValidateMode; + RRModeDestroyProcPtr rrModeDestroy; #endif /* @@ -394,6 +405,15 @@ miRROutputSetProperty (ScreenPtr pScreen, Atom property, RRPropertyValuePtr value); +Bool +miRROutputValidateMode (ScreenPtr pScreen, + RROutputPtr output, + RRModePtr mode); + +void +miRRModeDestroy (ScreenPtr pScreen, + RRModePtr mode); + /* randr.c */ /* * Send all pending events @@ -477,16 +497,14 @@ RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged); * Create a CRTC */ RRCrtcPtr -RRCrtcCreate (void *devPrivate); +RRCrtcCreate (ScreenPtr pScreen, void *devPrivate); /* - * Attach a CRTC to a screen. Once done, this cannot be - * undone without destroying the CRTC; it is separate from Create - * only to allow an xf86-based driver to create objects in preinit + * Set the allowed rotations on a CRTC */ -Bool -RRCrtcAttachScreen (RRCrtcPtr crtc, ScreenPtr pScreen); - +void +RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations); + /* * Notify the extension that the Crtc has been reconfigured, * the driver calls this whenever it has updated the mode @@ -543,11 +561,9 @@ RRCrtcGammaSetSize (RRCrtcPtr crtc, int size); /* - * Set the allowable rotations of the CRTC. + * Return the area of the frame buffer scanned out by the crtc, + * taking into account the current mode and rotation */ -Bool -RRCrtcSetRotations (RRCrtcPtr crtc, - Rotation rotations); void RRCrtcGetScanoutSize(RRCrtcPtr crtc, int *width, int *height); @@ -646,18 +662,11 @@ RROutputChanged (RROutputPtr output, Bool configChanged); */ RROutputPtr -RROutputCreate (const char *name, +RROutputCreate (ScreenPtr pScreen, + const char *name, int nameLength, void *devPrivate); -/* - * Attach an output to a screen, again split from creation so - * xf86 DDXen can create randr resources before the ScreenRec - * exists - */ -Bool -RROutputAttachScreen (RROutputPtr output, ScreenPtr pScreen); - /* * Notify extension that output parameters have been changed */ @@ -672,6 +681,14 @@ RROutputSetModes (RROutputPtr output, int numModes, int numPreferred); +int +RROutputAddUserMode (RROutputPtr output, + RRModePtr mode); + +int +RROutputDeleteUserMode (RROutputPtr output, + RRModePtr mode); + Bool RROutputSetCrtcs (RROutputPtr output, RRCrtcPtr *crtcs, @@ -729,10 +746,13 @@ RRQueryOutputProperty (RROutputPtr output, Atom property); void RRDeleteOutputProperty (RROutputPtr output, Atom property); +Bool +RRPostPendingProperties (RROutputPtr output); + int RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type, int format, int mode, unsigned long len, - pointer value, Bool sendevent); + pointer value, Bool sendevent, Bool pending); int RRConfigureOutputProperty (RROutputPtr output, Atom property, diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index db506f4b0..1dfc3bbb0 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -51,17 +51,32 @@ RRCrtcChanged (RRCrtcPtr crtc, Bool layoutChanged) * Create a CRTC */ RRCrtcPtr -RRCrtcCreate (void *devPrivate) +RRCrtcCreate (ScreenPtr pScreen, void *devPrivate) { - RRCrtcPtr crtc; - + RRCrtcPtr crtc; + RRCrtcPtr *crtcs; + rrScrPrivPtr pScrPriv; + if (!RRInit()) return NULL; + + pScrPriv = rrGetScrPriv(pScreen); + + /* make space for the crtc pointer */ + if (pScrPriv->numCrtcs) + crtcs = xrealloc (pScrPriv->crtcs, + (pScrPriv->numCrtcs + 1) * sizeof (RRCrtcPtr)); + else + crtcs = xalloc (sizeof (RRCrtcPtr)); + if (!crtcs) + return FALSE; + pScrPriv->crtcs = crtcs; + crtc = xalloc (sizeof (RRCrtcRec)); if (!crtc) return NULL; crtc->id = FakeClientID (0); - crtc->pScreen = NULL; + crtc->pScreen = pScreen; crtc->mode = NULL; crtc->x = 0; crtc->y = 0; @@ -77,37 +92,20 @@ RRCrtcCreate (void *devPrivate) if (!AddResource (crtc->id, RRCrtcType, (pointer) crtc)) return NULL; + /* attach the screen and crtc together */ + crtc->pScreen = pScreen; + pScrPriv->crtcs[pScrPriv->numCrtcs++] = crtc; + return crtc; } /* - * Attach a Crtc to a screen. This is done as a separate step - * so that an xf86-based driver can create CRTCs in PreInit - * before the Screen has been created + * Set the allowed rotations on a CRTC */ - -Bool -RRCrtcAttachScreen (RRCrtcPtr crtc, ScreenPtr pScreen) +void +RRCrtcSetRotations (RRCrtcPtr crtc, Rotation rotations) { - rrScrPriv (pScreen); - RRCrtcPtr *crtcs; - - /* make space for the crtc pointer */ - if (pScrPriv->numCrtcs) - crtcs = xrealloc (pScrPriv->crtcs, - (pScrPriv->numCrtcs + 1) * sizeof (RRCrtcPtr)); - else - crtcs = xalloc (sizeof (RRCrtcPtr)); - if (!crtcs) - return FALSE; - - /* attach the screen and crtc together */ - crtc->pScreen = pScreen; - pScrPriv->crtcs = crtcs; - pScrPriv->crtcs[pScrPriv->numCrtcs++] = crtc; - - RRCrtcChanged (crtc, TRUE); - return TRUE; + crtc->rotations = rotations; } /* @@ -249,6 +247,22 @@ RRDeliverCrtcEvent (ClientPtr client, WindowPtr pWin, RRCrtcPtr crtc) WriteEventsToClient (client, 1, (xEvent *) &ce); } +static Bool +RRCrtcPendingProperties (RRCrtcPtr crtc) +{ + ScreenPtr pScreen = crtc->pScreen; + rrScrPriv(pScreen); + int o; + + for (o = 0; o < pScrPriv->numOutputs; o++) + { + RROutputPtr output = pScrPriv->outputs[o]; + if (output->crtc == crtc && output->pendingProperties) + return TRUE; + } + return FALSE; +} + /* * Request that the Crtc be reconfigured */ @@ -262,6 +276,8 @@ RRCrtcSet (RRCrtcPtr crtc, RROutputPtr *outputs) { ScreenPtr pScreen = crtc->pScreen; + Bool ret = FALSE; + rrScrPriv(pScreen); /* See if nothing changed */ if (crtc->mode == mode && @@ -269,63 +285,73 @@ RRCrtcSet (RRCrtcPtr crtc, crtc->y == y && crtc->rotation == rotation && crtc->numOutputs == numOutputs && - !memcmp (crtc->outputs, outputs, numOutputs * sizeof (RROutputPtr))) + !memcmp (crtc->outputs, outputs, numOutputs * sizeof (RROutputPtr)) && + !RRCrtcPendingProperties (crtc)) { - return TRUE; + ret = TRUE; } - if (pScreen) + else { #if RANDR_12_INTERFACE - rrScrPriv(pScreen); if (pScrPriv->rrCrtcSet) { - return (*pScrPriv->rrCrtcSet) (pScreen, crtc, mode, x, y, - rotation, numOutputs, outputs); + ret = (*pScrPriv->rrCrtcSet) (pScreen, crtc, mode, x, y, + rotation, numOutputs, outputs); } + else #endif -#if RANDR_10_INTERFACE - if (pScrPriv->rrSetConfig) { - RRScreenSize size; - RRScreenRate rate; - Bool ret; +#if RANDR_10_INTERFACE + if (pScrPriv->rrSetConfig) + { + RRScreenSize size; + RRScreenRate rate; - if (!mode) - { - RRCrtcNotify (crtc, NULL, x, y, rotation, 0, NULL); - return TRUE; + if (!mode) + { + RRCrtcNotify (crtc, NULL, x, y, rotation, 0, NULL); + ret = TRUE; + } + else + { + size.width = mode->mode.width; + size.height = mode->mode.height; + if (outputs[0]->mmWidth && outputs[0]->mmHeight) + { + size.mmWidth = outputs[0]->mmWidth; + size.mmHeight = outputs[0]->mmHeight; + } + else + { + size.mmWidth = pScreen->mmWidth; + size.mmHeight = pScreen->mmHeight; + } + size.nRates = 1; + rate.rate = RRVerticalRefresh (&mode->mode); + size.pRates = &rate; + ret = (*pScrPriv->rrSetConfig) (pScreen, rotation, rate.rate, &size); + /* + * Old 1.0 interface tied screen size to mode size + */ + if (ret) + { + RRCrtcNotify (crtc, mode, x, y, rotation, 1, outputs); + RRScreenSizeNotify (pScreen); + } + } } - - size.width = mode->mode.width; - size.height = mode->mode.height; - if (outputs[0]->mmWidth && outputs[0]->mmHeight) - { - size.mmWidth = outputs[0]->mmWidth; - size.mmHeight = outputs[0]->mmHeight; - } - else - { - size.mmWidth = pScreen->mmWidth; - size.mmHeight = pScreen->mmHeight; - } - size.nRates = 1; - rate.rate = RRVerticalRefresh (&mode->mode); - size.pRates = &rate; - ret = (*pScrPriv->rrSetConfig) (pScreen, rotation, rate.rate, &size); - /* - * Old 1.0 interface tied screen size to mode size - */ - if (ret) - { - RRCrtcNotify (crtc, mode, x, y, rotation, 1, outputs); - RRScreenSizeNotify (pScreen); - } - return ret; - } #endif - RRTellChanged (pScreen); + } + if (ret) + { + int o; + RRTellChanged (pScreen); + + for (o = 0; o < numOutputs; o++) + RRPostPendingProperties (outputs[o]); + } } - return FALSE; + return ret; } /* @@ -361,6 +387,8 @@ RRCrtcDestroyResource (pointer value, XID pid) } if (crtc->gammaRed) xfree (crtc->gammaRed); + if (crtc->mode) + RRModeDestroy (crtc->mode); xfree (crtc); return 1; } @@ -461,17 +489,6 @@ RRCrtcGammaSetSize (RRCrtcPtr crtc, return TRUE; } -/* - * Set the allowable rotations of the CRTC. - */ -Bool -RRCrtcSetRotations (RRCrtcPtr crtc, - Rotation rotations) -{ - crtc->rotations = rotations; - return TRUE; -} - /* * Initialize crtc type */ @@ -666,10 +683,15 @@ ProcRRSetCrtcConfig (ClientPtr client) return BadMatch; } /* validate mode for this output */ - for (j = 0; j < outputs[i]->numModes; j++) - if (outputs[i]->modes[j] == mode) + for (j = 0; j < outputs[i]->numModes + outputs[i]->numUserModes; j++) + { + RRModePtr m = (j < outputs[i]->numModes ? + outputs[i]->modes[j] : + outputs[i]->userModes[j - outputs[i]->numModes]); + if (m == mode) break; - if (j == outputs[i]->numModes) + } + if (j == outputs[i]->numModes + outputs[i]->numUserModes) { if (outputs) xfree (outputs); @@ -711,6 +733,7 @@ ProcRRSetCrtcConfig (ClientPtr client) goto sendReply; } +#if 0 /* * if the client's config timestamp is not the same as the last config * timestamp, then the config information isn't up-to-date and @@ -721,6 +744,7 @@ ProcRRSetCrtcConfig (ClientPtr client) rep.status = RRSetConfigInvalidConfigTime; goto sendReply; } +#endif /* * Validate requested rotation diff --git a/randr/rrdispatch.c b/randr/rrdispatch.c index 7f98965a4..5525427f6 100644 --- a/randr/rrdispatch.c +++ b/randr/rrdispatch.c @@ -22,6 +22,9 @@ #include "randrstr.h" +#define SERVER_RANDR_MAJOR 1 +#define SERVER_RANDR_MINOR 2 + Bool RRClientKnowsRates (ClientPtr pClient) { @@ -49,8 +52,8 @@ ProcRRQueryVersion (ClientPtr client) * Report the current version; the current * spec says they're all compatible after 1.0 */ - rep.majorVersion = RANDR_MAJOR; - rep.minorVersion = RANDR_MINOR; + rep.majorVersion = SERVER_RANDR_MAJOR; + rep.minorVersion = SERVER_RANDR_MINOR; if (client->swapped) { swaps(&rep.sequenceNumber, n); swapl(&rep.length, n); diff --git a/randr/rrinfo.c b/randr/rrinfo.c index 797cdb1b4..5ef1a6b83 100644 --- a/randr/rrinfo.c +++ b/randr/rrinfo.c @@ -91,19 +91,12 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations) if (pScrPriv->numOutputs == 0 && pScrPriv->numCrtcs == 0) { - crtc = RRCrtcCreate (NULL); + crtc = RRCrtcCreate (pScreen, NULL); if (!crtc) return; - if (!RRCrtcAttachScreen (crtc, pScreen)) - { - RRCrtcDestroy (crtc); - return; - } - output = RROutputCreate ("default", 7, NULL); + output = RROutputCreate (pScreen, "default", 7, NULL); if (!output) return; - if (!RROutputAttachScreen (output, pScreen)) - return; RROutputSetCrtcs (output, &crtc, 1); RROutputSetCrtc (output, crtc); RROutputSetConnection (output, RR_Connected); @@ -157,9 +150,11 @@ RRScanOldConfig (ScreenPtr pScreen, Rotation rotations) pScrPriv->nSizes = 0; /* find size bounds */ - for (i = 0; i < output->numModes; i++) + for (i = 0; i < output->numModes + output->numUserModes; i++) { - RRModePtr mode = output->modes[i]; + RRModePtr mode = (i < output->numModes ? + output->modes[i] : + output->userModes[i-output->numModes]); CARD16 width = mode->mode.width; CARD16 height = mode->mode.height; diff --git a/randr/rrmode.c b/randr/rrmode.c index 261e1b75f..11175810c 100644 --- a/randr/rrmode.c +++ b/randr/rrmode.c @@ -48,25 +48,13 @@ RRModeEqual (xRRModeInfo *a, xRRModeInfo *b) static int num_modes; static RRModePtr *modes; -RRModePtr -RRModeGet (xRRModeInfo *modeInfo, - const char *name) +static RRModePtr +RRModeCreate (xRRModeInfo *modeInfo, + const char *name, + ScreenPtr userScreen) { - int i; - RRModePtr mode; - RRModePtr *newModes; - - for (i = 0; i < num_modes; i++) - { - mode = modes[i]; - if (RRModeEqual (&mode->mode, modeInfo) && - !memcmp (name, mode->name, modeInfo->nameLength)) - { - ++mode->refcnt; - return mode; - } - } - + RRModePtr mode, *newModes; + if (!RRInit ()) return NULL; @@ -78,7 +66,7 @@ RRModeGet (xRRModeInfo *modeInfo, mode->name = (char *) (mode + 1); memcpy (mode->name, name, modeInfo->nameLength); mode->name[modeInfo->nameLength] = '\0'; - mode->userDefined = FALSE; + mode->userScreen = userScreen; if (num_modes) newModes = xrealloc (modes, (num_modes + 1) * sizeof (RRModePtr)); @@ -104,11 +92,75 @@ RRModeGet (xRRModeInfo *modeInfo, return mode; } +static RRModePtr +RRModeFindByName (const char *name, + CARD16 nameLength) +{ + int i; + RRModePtr mode; + + for (i = 0; i < num_modes; i++) + { + mode = modes[i]; + if (mode->mode.nameLength == nameLength && + !memcmp (name, mode->name, nameLength)) + { + return mode; + } + } + return NULL; +} + +RRModePtr +RRModeGet (xRRModeInfo *modeInfo, + const char *name) +{ + int i; + + for (i = 0; i < num_modes; i++) + { + RRModePtr mode = modes[i]; + if (RRModeEqual (&mode->mode, modeInfo) && + !memcmp (name, mode->name, modeInfo->nameLength)) + { + ++mode->refcnt; + return mode; + } + } + + return RRModeCreate (modeInfo, name, NULL); +} + +static RRModePtr +RRModeCreateUser (ScreenPtr pScreen, + xRRModeInfo *modeInfo, + const char *name, + int *error) +{ + RRModePtr mode; + + mode = RRModeFindByName (name, modeInfo->nameLength); + if (mode) + { + *error = BadName; + return NULL; + } + + mode = RRModeCreate (modeInfo, name, pScreen); + if (!mode) + { + *error = BadAlloc; + return NULL; + } + *error = Success; + return mode; +} + RRModePtr * RRModesForScreen (ScreenPtr pScreen, int *num_ret) { rrScrPriv(pScreen); - int o, c; + int o, c, m; RRModePtr *screen_modes; int num_screen_modes = 0; @@ -122,9 +174,11 @@ RRModesForScreen (ScreenPtr pScreen, int *num_ret) RROutputPtr output = pScrPriv->outputs[o]; int m, n; - for (m = 0; m < output->numModes; m++) + for (m = 0; m < output->numModes + output->numUserModes; m++) { - RRModePtr mode = output->modes[m]; + RRModePtr mode = (m < output->numModes ? + output->modes[m] : + output->userModes[m-output->numModes]); for (n = 0; n < num_screen_modes; n++) if (screen_modes[n] == mode) break; @@ -150,6 +204,23 @@ RRModesForScreen (ScreenPtr pScreen, int *num_ret) if (n == num_screen_modes) screen_modes[num_screen_modes++] = mode; } + /* + * Add all user modes for this screen + */ + for (m = 0; m < num_modes; m++) + { + RRModePtr mode = modes[m]; + int n; + + if (mode->userScreen != pScreen) + continue; + for (n = 0; n < num_screen_modes; n++) + if (screen_modes[n] == mode) + break; + if (n == num_screen_modes) + screen_modes[num_screen_modes++] = mode; + } + *num_ret = num_screen_modes; return screen_modes; } @@ -205,38 +276,122 @@ int ProcRRCreateMode (ClientPtr client) { REQUEST(xRRCreateModeReq); + xRRCreateModeReply rep; + WindowPtr pWin; + ScreenPtr pScreen; + rrScrPrivPtr pScrPriv; + xRRModeInfo *modeInfo; + long units_after; + char *name; + int error, rc; + RRModePtr mode; - REQUEST_SIZE_MATCH(xRRCreateModeReq); - (void) stuff; - return BadImplementation; + REQUEST_AT_LEAST_SIZE (xRRCreateModeReq); + rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess); + if (rc != Success) + return rc; + + pScreen = pWin->drawable.pScreen; + pScrPriv = rrGetScrPriv(pScreen); + + modeInfo = &stuff->modeInfo; + name = (char *) (stuff + 1); + units_after = (stuff->length - (sizeof (xRRCreateModeReq) >> 2)); + + /* check to make sure requested name fits within the data provided */ + if ((int) (modeInfo->nameLength + 3) >> 2 > units_after) + return BadLength; + + mode = RRModeCreateUser (pScreen, modeInfo, name, &error); + if (!mode) + return error; + + rep.type = X_Reply; + rep.pad0 = 0; + rep.sequenceNumber = client->sequence; + rep.length = 0; + rep.mode = mode->mode.id; + if (client->swapped) + { + int n; + swaps(&rep.sequenceNumber, n); + swapl(&rep.length, n); + swapl(&rep.mode, n); + } + WriteToClient(client, sizeof(xRRCreateModeReply), (char *)&rep); + + return client->noClientException; } int ProcRRDestroyMode (ClientPtr client) { REQUEST(xRRDestroyModeReq); + RRModePtr mode; REQUEST_SIZE_MATCH(xRRDestroyModeReq); - (void) stuff; - return BadImplementation; + mode = LookupIDByType (stuff->mode, RRModeType); + if (!mode) + { + client->errorValue = stuff->mode; + return RRErrorBase + BadRRMode; + } + if (!mode->userScreen) + return BadMatch; + if (mode->refcnt > 1) + return BadAccess; + FreeResource (stuff->mode, 0); + return Success; } int ProcRRAddOutputMode (ClientPtr client) { REQUEST(xRRAddOutputModeReq); + RRModePtr mode; + RROutputPtr output; REQUEST_SIZE_MATCH(xRRAddOutputModeReq); - (void) stuff; - return BadImplementation; + output = LookupOutput(client, stuff->output, DixReadAccess); + + if (!output) + { + client->errorValue = stuff->output; + return RRErrorBase + BadRROutput; + } + + mode = LookupIDByType (stuff->mode, RRModeType); + if (!mode) + { + client->errorValue = stuff->mode; + return RRErrorBase + BadRRMode; + } + + return RROutputAddUserMode (output, mode); } int ProcRRDeleteOutputMode (ClientPtr client) { REQUEST(xRRDeleteOutputModeReq); + RRModePtr mode; + RROutputPtr output; REQUEST_SIZE_MATCH(xRRDeleteOutputModeReq); - (void) stuff; - return BadImplementation; + output = LookupOutput(client, stuff->output, DixReadAccess); + + if (!output) + { + client->errorValue = stuff->output; + return RRErrorBase + BadRROutput; + } + + mode = LookupIDByType (stuff->mode, RRModeType); + if (!mode) + { + client->errorValue = stuff->mode; + return RRErrorBase + BadRRMode; + } + + return RROutputDeleteUserMode (output, mode); } diff --git a/randr/rroutput.c b/randr/rroutput.c index df1741f5c..e00116283 100644 --- a/randr/rroutput.c +++ b/randr/rroutput.c @@ -47,19 +47,35 @@ RROutputChanged (RROutputPtr output, Bool configChanged) */ RROutputPtr -RROutputCreate (const char *name, +RROutputCreate (ScreenPtr pScreen, + const char *name, int nameLength, void *devPrivate) { - RROutputPtr output; + RROutputPtr output; + RROutputPtr *outputs; + rrScrPrivPtr pScrPriv; if (!RRInit()) return NULL; + + pScrPriv = rrGetScrPriv(pScreen); + + if (pScrPriv->numOutputs) + outputs = xrealloc (pScrPriv->outputs, + (pScrPriv->numOutputs + 1) * sizeof (RROutputPtr)); + else + outputs = xalloc (sizeof (RROutputPtr)); + if (!outputs) + return FALSE; + + pScrPriv->outputs = outputs; + output = xalloc (sizeof (RROutputRec) + nameLength + 1); if (!output) return NULL; output->id = FakeClientID (0); - output->pScreen = NULL; + output->pScreen = pScreen; output->name = (char *) (output + 1); output->nameLength = nameLength; memcpy (output->name, name, nameLength); @@ -76,6 +92,8 @@ RROutputCreate (const char *name, output->numModes = 0; output->numPreferred = 0; output->modes = NULL; + output->numUserModes = 0; + output->userModes = NULL; output->properties = NULL; output->changed = FALSE; output->devPrivate = devPrivate; @@ -83,35 +101,10 @@ RROutputCreate (const char *name, if (!AddResource (output->id, RROutputType, (pointer) output)) return NULL; + pScrPriv->outputs[pScrPriv->numOutputs++] = output; return output; } -/* - * Attach an Output to a screen. This is done as a separate step - * so that an xf86-based driver can create Outputs in PreInit - * before the Screen has been created - */ - -Bool -RROutputAttachScreen (RROutputPtr output, ScreenPtr pScreen) -{ - rrScrPriv (pScreen); - RROutputPtr *outputs; - - if (pScrPriv->numOutputs) - outputs = xrealloc (pScrPriv->outputs, - (pScrPriv->numOutputs + 1) * sizeof (RROutputPtr)); - else - outputs = xalloc (sizeof (RROutputPtr)); - if (!outputs) - return FALSE; - output->pScreen = pScreen; - pScrPriv->outputs = outputs; - pScrPriv->outputs[pScrPriv->numOutputs++] = output; - RROutputChanged (output, FALSE); - return TRUE; -} - /* * Notify extension that output parameters have been changed */ @@ -192,6 +185,74 @@ RROutputSetModes (RROutputPtr output, return TRUE; } +int +RROutputAddUserMode (RROutputPtr output, + RRModePtr mode) +{ + int m; + ScreenPtr pScreen = output->pScreen; + rrScrPriv(pScreen); + RRModePtr *newModes; + + /* Check to see if this mode is already listed for this output */ + for (m = 0; m < output->numModes + output->numUserModes; m++) + { + RRModePtr e = (m < output->numModes ? + output->modes[m] : + output->userModes[m - output->numModes]); + if (mode == e) + return Success; + } + + /* Check with the DDX to see if this mode is OK */ + if (pScrPriv->rrOutputValidateMode) + if (!pScrPriv->rrOutputValidateMode (pScreen, output, mode)) + return BadMatch; + + if (output->userModes) + newModes = xrealloc (output->userModes, + (output->numUserModes + 1) * sizeof (RRModePtr)); + else + newModes = xalloc (sizeof (RRModePtr)); + if (!newModes) + return BadAlloc; + + output->userModes = newModes; + output->userModes[output->numUserModes++] = mode; + ++mode->refcnt; + RROutputChanged (output, TRUE); + RRTellChanged (pScreen); + return Success; +} + +int +RROutputDeleteUserMode (RROutputPtr output, + RRModePtr mode) +{ + int m; + + /* Find this mode in the user mode list */ + for (m = 0; m < output->numUserModes; m++) + { + RRModePtr e = output->userModes[m]; + + if (mode == e) + break; + } + /* Not there, access error */ + if (m == output->numUserModes) + return BadAccess; + + /* make sure the mode isn't active for this output */ + if (output->crtc && output->crtc->mode == mode) + return BadMatch; + + memmove (output->userModes + m, output->userModes + m + 1, + (output->numUserModes - m - 1) * sizeof (RRModePtr)); + RRModeDestroy (mode); + return Success; +} + Bool RROutputSetCrtcs (RROutputPtr output, RRCrtcPtr *crtcs, @@ -308,9 +369,9 @@ RRDeliverOutputEvent(ClientPtr client, WindowPtr pWin, RROutputPtr output) * Destroy a Output at shutdown */ void -RROutputDestroy (RROutputPtr crtc) +RROutputDestroy (RROutputPtr output) { - FreeResource (crtc->id, 0); + FreeResource (output->id, 0); } static int @@ -318,6 +379,7 @@ RROutputDestroyResource (pointer value, XID pid) { RROutputPtr output = (RROutputPtr) value; ScreenPtr pScreen = output->pScreen; + int m; if (pScreen) { @@ -336,7 +398,17 @@ RROutputDestroyResource (pointer value, XID pid) } } if (output->modes) + { + for (m = 0; m < output->numModes; m++) + RRModeDestroy (output->modes[m]); xfree (output->modes); + } + + for (m = 0; m < output->numUserModes; m++) + RRModeDestroy (output->userModes[m]); + if (output->userModes) + xfree (output->userModes); + if (output->crtcs) xfree (output->crtcs); if (output->clones) @@ -383,7 +455,10 @@ ProcRRGetOutputInfo (ClientPtr client) output = LookupOutput(client, stuff->output, DixReadAccess); if (!output) + { + client->errorValue = stuff->output; return RRErrorBase + BadRROutput; + } pScreen = output->pScreen; pScrPriv = rrGetScrPriv(pScreen); @@ -398,13 +473,13 @@ ProcRRGetOutputInfo (ClientPtr client) rep.connection = output->connection; rep.subpixelOrder = output->subpixelOrder; rep.nCrtcs = output->numCrtcs; - rep.nModes = output->numModes; + rep.nModes = output->numModes + output->numUserModes; rep.nPreferred = output->numPreferred; rep.nClones = output->numClones; rep.nameLength = output->nameLength; extraLen = ((output->numCrtcs + - output->numModes + + output->numModes + output->numUserModes + output->numClones + ((rep.nameLength + 3) >> 2)) << 2); @@ -420,7 +495,7 @@ ProcRRGetOutputInfo (ClientPtr client) crtcs = (RRCrtc *) extra; modes = (RRMode *) (crtcs + output->numCrtcs); - clones = (RROutput *) (modes + output->numModes); + clones = (RROutput *) (modes + output->numModes + output->numUserModes); name = (char *) (clones + output->numClones); for (i = 0; i < output->numCrtcs; i++) @@ -429,9 +504,12 @@ ProcRRGetOutputInfo (ClientPtr client) if (client->swapped) swapl (&crtcs[i], n); } - for (i = 0; i < output->numModes; i++) + for (i = 0; i < output->numModes + output->numUserModes; i++) { - modes[i] = output->modes[i]->mode.id; + if (i < output->numModes) + modes[i] = output->modes[i]->mode.id; + else + modes[i] = output->userModes[i - output->numModes]->mode.id; if (client->swapped) swapl (&modes[i], n); } diff --git a/randr/rrproperty.c b/randr/rrproperty.c index edfed1f47..5ac073f81 100644 --- a/randr/rrproperty.c +++ b/randr/rrproperty.c @@ -27,7 +27,7 @@ static void RRDeliverEvent (ScreenPtr pScreen, xEvent *event, CARD32 mask) { - + } void @@ -50,7 +50,7 @@ RRDeleteAllOutputProperties (RROutputPtr output) xfree(prop->current.data); if (prop->pending.data) xfree(prop->pending.data); - xfree(prop); + xfree(prop); } } @@ -67,7 +67,7 @@ static RRPropertyPtr RRCreateOutputProperty (Atom property) { RRPropertyPtr prop; - + prop = (RRPropertyPtr)xalloc(sizeof(RRPropertyRec)); if (!prop) return NULL; @@ -121,105 +121,114 @@ RRDeleteOutputProperty (RROutputPtr output, Atom property) int RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type, int format, int mode, unsigned long len, - pointer value, Bool sendevent) + pointer value, Bool sendevent, Bool pending) { RRPropertyPtr prop; xRROutputPropertyNotifyEvent event; rrScrPrivPtr pScrPriv = rrGetScrPriv(output->pScreen); - int sizeInBytes; - int totalSize; - pointer data; + int size_in_bytes; + int total_size; + unsigned long total_len; RRPropertyValuePtr prop_value; + RRPropertyValueRec new_value; Bool add = FALSE; - sizeInBytes = format >> 3; - totalSize = len * sizeInBytes; + size_in_bytes = format >> 3; /* first see if property already exists */ prop = RRQueryOutputProperty (output, property); if (!prop) /* just add to list */ { - prop = RRCreateOutputProperty (property); + prop = RRCreateOutputProperty (property); if (!prop) return(BadAlloc); add = TRUE; mode = PropModeReplace; } - if (prop->is_pending) + if (pending && prop->is_pending) prop_value = &prop->pending; else prop_value = &prop->current; - + /* To append or prepend to a property the request format and type - must match those of the already defined property. The - existing format and type are irrelevant when using the mode - "PropModeReplace" since they will be written over. */ + must match those of the already defined property. The + existing format and type are irrelevant when using the mode + "PropModeReplace" since they will be written over. */ if ((format != prop_value->format) && (mode != PropModeReplace)) return(BadMatch); if ((prop_value->type != type) && (mode != PropModeReplace)) return(BadMatch); + new_value = *prop_value; if (mode == PropModeReplace) + total_len = len; + else + total_len = prop_value->size + len; + + if (mode == PropModeReplace || len > 0) { - if (totalSize != prop_value->size * (prop_value->format >> 3)) + pointer new_data = NULL, old_data = NULL; + + total_size = total_len * size_in_bytes; + new_value.data = (pointer)xalloc (total_size); + if (!new_value.data && total_size) { - if (prop_value->data) - data = (pointer)xrealloc(prop_value->data, totalSize); - else - data = (pointer)xalloc (totalSize); - if (!data && len) - { - if (add) - RRDestroyOutputProperty (prop); - return(BadAlloc); - } - prop_value->data = data; + if (add) + RRDestroyOutputProperty (prop); + return BadAlloc; } - if (len) - memmove((char *)prop_value->data, (char *)value, totalSize); - prop_value->size = len; - prop_value->type = type; - prop_value->format = format; + new_value.size = len; + new_value.type = type; + new_value.format = format; + + switch (mode) { + case PropModeReplace: + new_data = new_value.data; + old_data = NULL; + break; + case PropModeAppend: + new_data = (pointer) (((char *) new_value.data) + + (prop_value->size * size_in_bytes)); + old_data = new_value.data; + break; + case PropModePrepend: + new_data = new_value.data; + old_data = (pointer) (((char *) new_value.data) + + (prop_value->size * size_in_bytes)); + break; + } + if (new_data) + memcpy ((char *) new_data, (char *) value, len * size_in_bytes); + if (old_data) + memcpy ((char *) old_data, (char *) prop_value->data, + prop_value->size * size_in_bytes); + + if (pending && pScrPriv->rrOutputSetProperty && + !pScrPriv->rrOutputSetProperty(output->pScreen, output, + prop->propertyName, &new_value)) + { + if (new_value.data) + xfree (new_value.data); + return (BadValue); + } + if (prop_value->data) + xfree (prop_value->data); + *prop_value = new_value; } + else if (len == 0) { /* do nothing */ } - else if (mode == PropModeAppend) - { - data = (pointer)xrealloc(prop_value->data, - sizeInBytes * (len + prop_value->size)); - if (!data) - return(BadAlloc); - prop_value->data = data; - memmove(&((char *)data)[prop_value->size * sizeInBytes], - (char *)value, - totalSize); - prop_value->size += len; - } - else if (mode == PropModePrepend) - { - data = (pointer)xalloc(sizeInBytes * (len + prop_value->size)); - if (!data) - return(BadAlloc); - memmove(&((char *)data)[totalSize], (char *)prop_value->data, - (int)(prop_value->size * sizeInBytes)); - memmove((char *)data, (char *)value, totalSize); - xfree(prop_value->data); - prop_value->data = data; - prop_value->size += len; - } + if (add) { prop->next = output->properties; output->properties = prop; } - if (!prop->is_pending) { - /* What should we do in case of failure? */ - pScrPriv->rrOutputSetProperty(output->pScreen, output, - prop->propertyName, prop_value); - } + if (pending && prop->is_pending) + output->pendingProperties = TRUE; if (sendevent) { @@ -234,6 +243,48 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type, return(Success); } +Bool +RRPostPendingProperties (RROutputPtr output) +{ + RRPropertyValuePtr pending_value; + RRPropertyValuePtr current_value; + RRPropertyPtr property; + Bool ret = TRUE; + + if (!output->pendingProperties) + return TRUE; + + output->pendingProperties = FALSE; + for (property = output->properties; property; property = property->next) + { + /* Skip non-pending properties */ + if (!property->is_pending) + continue; + + pending_value = &property->pending; + current_value = &property->current; + + /* + * If the pending and current values are equal, don't mark it + * as changed (which would deliver an event) + */ + if (pending_value->type == current_value->type && + pending_value->format == current_value->format && + pending_value->size == current_value->size && + !memcmp (pending_value->data, current_value->data, + pending_value->size)) + continue; + + if (RRChangeOutputProperty (output, property->propertyName, + pending_value->type, pending_value->format, + PropModeReplace, pending_value->size, + pending_value->data, TRUE, + FALSE) != Success) + ret = FALSE; + } + return ret; +} + RRPropertyPtr RRQueryOutputProperty (RROutputPtr output, Atom property) { @@ -474,7 +525,7 @@ ProcRRChangeOutputProperty (ClientPtr client) err = RRChangeOutputProperty(output, stuff->property, stuff->type, (int)format, - (int)mode, len, (pointer)&stuff[1], TRUE); + (int)mode, len, (pointer)&stuff[1], TRUE, TRUE); if (err != Success) return err; else @@ -508,8 +559,8 @@ int ProcRRGetOutputProperty (ClientPtr client) { REQUEST(xRRGetOutputPropertyReq); - RRPropertyPtr prop, *prev; - RRPropertyValuePtr prop_value; + RRPropertyPtr prop, *prev; + RRPropertyValuePtr prop_value; unsigned long n, len, ind; RROutputPtr output; xRRGetOutputPropertyReply reply; @@ -600,7 +651,10 @@ ProcRRGetOutputProperty (ClientPtr client) reply.bytesAfter = n - (ind + len); reply.format = prop_value->format; reply.length = (len + 3) >> 2; - reply.nItems = len / (prop_value->format / 8 ); + if (prop_value->format) + reply.nItems = len / (prop_value->format / 8); + else + reply.nItems = 0; reply.propertyType = prop_value->type; if (stuff->delete && (reply.bytesAfter == 0)) diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 168000351..ad74ac3af 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -473,7 +473,7 @@ RR10GetData (ScreenPtr pScreen, RROutputPtr output) { RR10DataPtr data; RRScreenSizePtr size; - int nmode = output->numModes; + int nmode = output->numModes + output->numUserModes; int o, os, l, r; RRScreenRatePtr refresh; CARD16 vRefresh; @@ -500,11 +500,14 @@ RR10GetData (ScreenPtr pScreen, RROutputPtr output) /* * find modes not yet listed */ - for (o = 0; o < output->numModes; o++) + for (o = 0; o < output->numModes + output->numUserModes; o++) { if (used[o]) continue; - mode = output->modes[o]; + if (o < output->numModes) + mode = output->modes[o]; + else + mode = output->userModes[o - output->numModes]; l = data->nsize; size[l].id = data->nsize; @@ -524,9 +527,12 @@ RR10GetData (ScreenPtr pScreen, RROutputPtr output) /* * Find all modes with matching size */ - for (os = o; os < output->numModes; os++) + for (os = o; os < output->numModes + output->numUserModes; os++) { - mode = output->modes[os]; + if (os < output->numModes) + mode = output->modes[os]; + else + mode = output->userModes[os - output->numModes]; if (mode->mode.width == size[l].width && mode->mode.height == size[l].height) { diff --git a/record/set.c b/record/set.c index 0ebb0884d..07a3a63a3 100644 --- a/record/set.c +++ b/record/set.c @@ -164,10 +164,10 @@ BitVectorIterateSet(RecordSetPtr pSet, RecordSetIteratePtr pIter, return (RecordSetIteratePtr)(long)(pInterval->last + 1); } -RecordSetOperations BitVectorSetOperations = { +static RecordSetOperations BitVectorSetOperations = { BitVectorDestroySet, BitVectorIsMemberOfSet, BitVectorIterateSet }; -RecordSetOperations BitVectorNoFreeOperations = { +static RecordSetOperations BitVectorNoFreeOperations = { NoopDestroySet, BitVectorIsMemberOfSet, BitVectorIterateSet }; static int @@ -277,10 +277,10 @@ IntervalListIterateSet(RecordSetPtr pSet, RecordSetIteratePtr pIter, return (RecordSetIteratePtr)NULL; } -RecordSetOperations IntervalListSetOperations = { +static RecordSetOperations IntervalListSetOperations = { IntervalListDestroySet, IntervalListIsMemberOfSet, IntervalListIterateSet }; -RecordSetOperations IntervalListNoFreeOperations = { +static RecordSetOperations IntervalListNoFreeOperations = { NoopDestroySet, IntervalListIsMemberOfSet, IntervalListIterateSet }; static int diff --git a/render/animcur.c b/render/animcur.c index 8e4f59d1b..1f25e79d0 100644 --- a/render/animcur.c +++ b/render/animcur.c @@ -87,8 +87,8 @@ static CursorBits animCursorBits = { empty, empty, 2, 1, 1, 0, 0, 1 }; -int AnimCurScreenPrivateIndex = -1; -int AnimCurGeneration; +static int AnimCurScreenPrivateIndex = -1; +static int AnimCurGeneration; #define IsAnimCur(c) ((c)->bits == &animCursorBits) #define GetAnimCur(c) ((AnimCurPtr) ((c) + 1)) diff --git a/render/glyph.c b/render/glyph.c index 6d09a0e52..5987cbc70 100644 --- a/render/glyph.c +++ b/render/glyph.c @@ -77,11 +77,11 @@ static GlyphHashSetRec glyphHashSets[] = { #define NGLYPHHASHSETS (sizeof(glyphHashSets)/sizeof(glyphHashSets[0])) -const CARD8 glyphDepths[GlyphFormatNum] = { 1, 4, 8, 16, 32 }; +static const CARD8 glyphDepths[GlyphFormatNum] = { 1, 4, 8, 16, 32 }; -GlyphHashRec globalGlyphs[GlyphFormatNum]; +static GlyphHashRec globalGlyphs[GlyphFormatNum]; -int globalTotalGlyphPrivateSize = 0; +static int globalTotalGlyphPrivateSize = 0; static int glyphPrivateCount = 0; diff --git a/render/glyphstr.h b/render/glyphstr.h index 64cedfa16..22150deee 100644 --- a/render/glyphstr.h +++ b/render/glyphstr.h @@ -91,8 +91,6 @@ typedef struct _GlyphList { PictFormatPtr format; } GlyphListRec, *GlyphListPtr; -extern GlyphHashRec globalGlyphs[GlyphFormatNum]; - GlyphHashSetPtr FindGlyphHashSet (CARD32 filled); diff --git a/render/picture.c b/render/picture.c index e7901e873..c30649c6b 100644 --- a/render/picture.c +++ b/render/picture.c @@ -43,7 +43,7 @@ _X_EXPORT int PictureScreenPrivateIndex = -1; int PictureWindowPrivateIndex; -int PictureGeneration; +static int PictureGeneration; RESTYPE PictureType; RESTYPE PictFormatType; RESTYPE GlyphSetType; diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c index cee9e096d..32dee8a18 100755 --- a/xfixes/xfixes.c +++ b/xfixes/xfixes.c @@ -1,6 +1,4 @@ /* - * $Id$ - * * Copyright © 2006 Sun Microsystems * * Permission to use, copy, modify, distribute, and sell this software and its @@ -55,10 +53,10 @@ #define SERVER_XFIXES_MAJOR 4 #define SERVER_XFIXES_MINOR 0 -unsigned char XFixesReqCode; +static unsigned char XFixesReqCode; int XFixesEventBase; int XFixesErrorBase; -int XFixesClientPrivateIndex; +static int XFixesClientPrivateIndex; static int ProcXFixesQueryVersion(ClientPtr client) @@ -169,7 +167,7 @@ SProcXFixesQueryVersion(ClientPtr client) return (*ProcXFixesVector[stuff->xfixesReqType]) (client); } -int (*SProcXFixesVector[XFixesNumberRequests])(ClientPtr) = { +static int (*SProcXFixesVector[XFixesNumberRequests])(ClientPtr) = { /*************** Version 1 ******************/ SProcXFixesQueryVersion, SProcXFixesChangeSaveSet, diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h index 5f08807f9..7f3b119b7 100755 --- a/xfixes/xfixesint.h +++ b/xfixes/xfixesint.h @@ -61,9 +61,7 @@ #include "selection.h" #include "xfixes.h" -extern unsigned char XFixesReqCode; extern int XFixesEventBase; -extern int XFixesClientPrivateIndex; typedef struct _XFixesClient { CARD32 major_version; @@ -73,7 +71,6 @@ typedef struct _XFixesClient { #define GetXFixesClient(pClient) ((XFixesClientPtr) (pClient)->devPrivates[XFixesClientPrivateIndex].ptr) extern int (*ProcXFixesVector[XFixesNumberRequests])(ClientPtr); -extern int (*SProcXFixesVector[XFixesNumberRequests])(ClientPtr); /* Initialize extension at server startup time */ diff --git a/xkb/Makefile.am b/xkb/Makefile.am index 996d52761..78cdf7196 100644 --- a/xkb/Makefile.am +++ b/xkb/Makefile.am @@ -41,7 +41,8 @@ X11_SRCS = \ XKBGAlloc.c \ XKBMAlloc.c -XI_SRCS = xkbPrOtherEv.c +# ends up unused... +# XI_SRCS = xkbPrOtherEv.c libxkb_la_SOURCES = $(DDX_SRCS) $(DIX_SRCS) $(XI_SRCS) $(XKBFILE_SRCS) \ $(X11_SRCS) diff --git a/xkb/XKBAlloc.c b/xkb/XKBAlloc.c index c474733d0..f0a1f890e 100644 --- a/xkb/XKBAlloc.c +++ b/xkb/XKBAlloc.c @@ -35,7 +35,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include "inputstr.h" -#include +#include #include /***===================================================================***/ @@ -259,7 +259,7 @@ XkbAllocControls(XkbDescPtr xkb,unsigned which) } /*ARGSUSED*/ -void +static void XkbFreeControls(XkbDescPtr xkb,unsigned which,Bool freeMap) { if (freeMap && (xkb!=NULL) && (xkb->ctrls!=NULL)) { @@ -284,7 +284,7 @@ XkbAllocIndicatorMaps(XkbDescPtr xkb) return Success; } -void +static void XkbFreeIndicatorMaps(XkbDescPtr xkb) { if ((xkb!=NULL)&&(xkb->indicators!=NULL)) { @@ -335,154 +335,3 @@ XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll) _XkbFree(xkb); return; } - -/***====================================================================***/ - -XkbDeviceLedInfoPtr -XkbAddDeviceLedInfo(XkbDeviceInfoPtr devi,unsigned ledClass,unsigned ledId) -{ -XkbDeviceLedInfoPtr devli; -register int i; - - if ((!devi)||(!XkbSingleXIClass(ledClass))||(!XkbSingleXIId(ledId))) - return NULL; - for (i=0,devli=devi->leds;inum_leds;i++,devli++) { - if ((devli->led_class==ledClass)&&(devli->led_id==ledId)) - return devli; - } - if (devi->num_leds>=devi->sz_leds) { - XkbDeviceLedInfoRec *prev_leds = devi->leds; - - if (devi->sz_leds>0) devi->sz_leds*= 2; - else devi->sz_leds= 1; - devi->leds= _XkbTypedRealloc(devi->leds,devi->sz_leds, - XkbDeviceLedInfoRec); - if (!devi->leds) { - _XkbFree(prev_leds); - devi->sz_leds= devi->num_leds= 0; - return NULL; - } - i= devi->num_leds; - for (devli=&devi->leds[i];isz_leds;i++,devli++) { - bzero(devli,sizeof(XkbDeviceLedInfoRec)); - devli->led_class= XkbXINone; - devli->led_id= XkbXINone; - } - } - devli= &devi->leds[devi->num_leds++]; - bzero(devli,sizeof(XkbDeviceLedInfoRec)); - devli->led_class= ledClass; - devli->led_id= ledId; - return devli; -} - -Status -XkbResizeDeviceButtonActions(XkbDeviceInfoPtr devi,unsigned newTotal) -{ - XkbAction *prev_btn_acts; - - if ((!devi)||(newTotal>255)) - return BadValue; - if ((devi->btn_acts!=NULL)&&(newTotal==devi->num_btns)) - return Success; - if (newTotal==0) { - if (devi->btn_acts!=NULL) { - _XkbFree(devi->btn_acts); - devi->btn_acts= NULL; - } - devi->num_btns= 0; - return Success; - } - prev_btn_acts = devi->btn_acts; - devi->btn_acts= _XkbTypedRealloc(devi->btn_acts,newTotal,XkbAction); - if (devi->btn_acts==NULL) { - _XkbFree(prev_btn_acts); - devi->num_btns= 0; - return BadAlloc; - } - if (newTotal>devi->num_btns) { - XkbAction *act; - act= &devi->btn_acts[devi->num_btns]; - bzero((char *)act,(newTotal-devi->num_btns)*sizeof(XkbAction)); - } - devi->num_btns= newTotal; - return Success; -} - -/*ARGSUSED*/ -XkbDeviceInfoPtr -XkbAllocDeviceInfo(unsigned deviceSpec,unsigned nButtons,unsigned szLeds) -{ -XkbDeviceInfoPtr devi; - - devi= _XkbTypedCalloc(1,XkbDeviceInfoRec); - if (devi!=NULL) { - devi->device_spec= deviceSpec; - devi->has_own_state= False; - devi->num_btns= 0; - devi->btn_acts= NULL; - if (nButtons>0) { - devi->num_btns= nButtons; - devi->btn_acts= _XkbTypedCalloc(nButtons,XkbAction); - if (!devi->btn_acts) { - _XkbFree(devi); - return NULL; - } - } - devi->dflt_kbd_fb= XkbXINone; - devi->dflt_led_fb= XkbXINone; - devi->num_leds= 0; - devi->sz_leds= 0; - devi->leds= NULL; - if (szLeds>0) { - devi->sz_leds= szLeds; - devi->leds= _XkbTypedCalloc(szLeds,XkbDeviceLedInfoRec); - if (!devi->leds) { - if (devi->btn_acts) - _XkbFree(devi->btn_acts); - _XkbFree(devi); - return NULL; - } - } - } - return devi; -} - - -void -XkbFreeDeviceInfo(XkbDeviceInfoPtr devi,unsigned which,Bool freeDevI) -{ - if (devi) { - if (freeDevI) { - which= XkbXI_AllDeviceFeaturesMask; - if (devi->name) { - _XkbFree(devi->name); - devi->name= NULL; - } - } - if ((which&XkbXI_ButtonActionsMask)&&(devi->btn_acts)) { - _XkbFree(devi->btn_acts); - devi->num_btns= 0; - devi->btn_acts= NULL; - } - if ((which&XkbXI_IndicatorsMask)&&(devi->leds)) { - register int i; - if ((which&XkbXI_IndicatorsMask)==XkbXI_IndicatorsMask) { - _XkbFree(devi->leds); - devi->sz_leds= devi->num_leds= 0; - devi->leds= NULL; - } - else { - XkbDeviceLedInfoPtr devli; - for (i=0,devli=devi->leds;inum_leds;i++,devli++) { - if (which&XkbXI_IndicatorMapsMask) - bzero((char *)&devli->maps[0],sizeof(devli->maps)); - else bzero((char *)&devli->names[0],sizeof(devli->names)); - } - } - } - if (freeDevI) - _XkbFree(devi); - } - return; -} diff --git a/xkb/XKBGAlloc.c b/xkb/XKBGAlloc.c index edaed10f3..815cc95f5 100644 --- a/xkb/XKBGAlloc.c +++ b/xkb/XKBGAlloc.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include "inputstr.h" -#include +#include #include #ifdef X_NOT_POSIX diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c index ef4097dad..9feaf8e93 100644 --- a/xkb/XKBMAlloc.c +++ b/xkb/XKBMAlloc.c @@ -39,7 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include #define XKBSRV_NEED_FILE_FUNCS -#include +#include /***====================================================================***/ @@ -220,7 +220,7 @@ XkbServerMapPtr map; /***====================================================================***/ -Status +static Status XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into) { if ((!from)||(!into)) @@ -275,82 +275,6 @@ register int i,rtrn; return Success; } -XkbKeyTypePtr -XkbAddKeyType( XkbDescPtr xkb, - Atom name, - int map_count, - Bool want_preserve, - int num_lvls) -{ -register int i; -unsigned tmp; -XkbKeyTypePtr type; -XkbClientMapPtr map; - - if ((!xkb)||(num_lvls<1)) - return NULL; - map= xkb->map; - if ((map)&&(map->types)) { - for (i=0;inum_types;i++) { - if (map->types[i].name==name) { - Status status; - status=XkbResizeKeyType(xkb,i,map_count,want_preserve,num_lvls); - return (status==Success?&map->types[i]:NULL); - } - } - } - if ((!map)||(!map->types)||(!map->num_typesmap; - tmp= 0; - if (map->num_types<=XkbKeypadIndex) - tmp|= XkbKeypadMask; - if (map->num_types<=XkbAlphabeticIndex) - tmp|= XkbAlphabeticMask; - if (map->num_types<=XkbTwoLevelIndex) - tmp|= XkbTwoLevelMask; - if (map->num_types<=XkbOneLevelIndex) - tmp|= XkbOneLevelMask; - if (XkbInitCanonicalKeyTypes(xkb,tmp,XkbNoModifier)==Success) { - for (i=0;inum_types;i++) { - Status status; - if (map->types[i].name!=name) - continue; - status=XkbResizeKeyType(xkb,i,map_count,want_preserve,num_lvls); - return (status==Success?&map->types[i]:NULL); - } - } - } - if ((map->num_types<=map->size_types)&& - (XkbAllocClientMap(xkb,XkbKeyTypesMask,map->num_types+1)!=Success)) { - return NULL; - } - type= &map->types[map->num_types]; - map->num_types++; - bzero((char *)type,sizeof(XkbKeyTypeRec)); - type->num_levels= num_lvls; - type->map_count= map_count; - type->name= name; - if (map_count>0) { - type->map= _XkbTypedCalloc(map_count,XkbKTMapEntryRec); - if (!type->map) { - map->num_types--; - return NULL; - } - if (want_preserve) { - type->preserve= _XkbTypedCalloc(map_count,XkbModsRec); - if (!type->preserve) { - _XkbFree(type->map); - map->num_types--; - return NULL; - } - } - } - return type; -} - Status XkbResizeKeyType( XkbDescPtr xkb, int type_ndx, @@ -475,7 +399,7 @@ KeyCode matchingKeys[XkbMaxKeyCount],nMatchingKeys; } if (nResize>0) { int nextMatch; - xkb->map->size_syms= (nTotal*12)/10; + xkb->map->size_syms= (nTotal*15)/10; newSyms = _XkbTypedCalloc(xkb->map->size_syms,KeySym); if (newSyms==NULL) return BadAlloc; diff --git a/xkb/XKBMisc.c b/xkb/XKBMisc.c index 7ed47697e..0404108a2 100644 --- a/xkb/XKBMisc.c +++ b/xkb/XKBMisc.c @@ -39,102 +39,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include #define XKBSRV_NEED_FILE_FUNCS -#include - -/***====================================================================***/ - -#define mapSize(m) (sizeof(m)/sizeof(XkbKTMapEntryRec)) -static XkbKTMapEntryRec map2Level[]= { - { True, ShiftMask, {1, ShiftMask, 0} } -}; - -static XkbKTMapEntryRec mapAlpha[]= { - { True, ShiftMask, { 1, ShiftMask, 0 } }, - { True, LockMask, { 0, LockMask, 0 } } -}; - -static XkbModsRec preAlpha[]= { - { 0, 0, 0 }, - { LockMask, LockMask, 0 } -}; - -#define NL_VMOD_MASK 0 -static XkbKTMapEntryRec mapKeypad[]= { - { True, ShiftMask, { 1, ShiftMask, 0 } }, - { False, 0, { 1, 0, NL_VMOD_MASK } } -}; - -static XkbKeyTypeRec canonicalTypes[XkbNumRequiredTypes] = { - { { 0, 0, 0 }, - 1, /* num_levels */ - 0, /* map_count */ - NULL, NULL, - None, NULL - }, - { { ShiftMask, ShiftMask, 0 }, - 2, /* num_levels */ - mapSize(map2Level), /* map_count */ - map2Level, NULL, - None, NULL - }, - { { ShiftMask|LockMask, ShiftMask|LockMask, 0 }, - 2, /* num_levels */ - mapSize(mapAlpha), /* map_count */ - mapAlpha, preAlpha, - None, NULL - }, - { { ShiftMask, ShiftMask, NL_VMOD_MASK }, - 2, /* num_levels */ - mapSize(mapKeypad), /* map_count */ - mapKeypad, NULL, - None, NULL - } -}; - -Status -XkbInitCanonicalKeyTypes(XkbDescPtr xkb,unsigned which,int keypadVMod) -{ -XkbClientMapPtr map; -XkbKeyTypePtr from,to; -Status rtrn; - - if (!xkb) - return BadMatch; - rtrn= XkbAllocClientMap(xkb,XkbKeyTypesMask,XkbNumRequiredTypes); - if (rtrn!=Success) - return rtrn; - map= xkb->map; - if ((which&XkbAllRequiredTypes)==0) - return Success; - rtrn= Success; - from= canonicalTypes; - to= map->types; - if (which&XkbOneLevelMask) - rtrn= XkbCopyKeyType(&from[XkbOneLevelIndex],&to[XkbOneLevelIndex]); - if ((which&XkbTwoLevelMask)&&(rtrn==Success)) - rtrn= XkbCopyKeyType(&from[XkbTwoLevelIndex],&to[XkbTwoLevelIndex]); - if ((which&XkbAlphabeticMask)&&(rtrn==Success)) - rtrn= XkbCopyKeyType(&from[XkbAlphabeticIndex],&to[XkbAlphabeticIndex]); - if ((which&XkbKeypadMask)&&(rtrn==Success)) { - XkbKeyTypePtr type; - rtrn= XkbCopyKeyType(&from[XkbKeypadIndex],&to[XkbKeypadIndex]); - type= &to[XkbKeypadIndex]; - if ((keypadVMod>=0)&&(keypadVModmods.vmods= (1<map[0].active= True; - type->map[0].mods.mask= ShiftMask; - type->map[0].mods.real_mods= ShiftMask; - type->map[0].mods.vmods= 0; - type->map[0].level= 1; - type->map[1].active= False; - type->map[1].mods.mask= 0; - type->map[1].mods.real_mods= 0; - type->map[1].mods.vmods= (1<map[1].level= 1; - } - } - return Success; -} +#include /***====================================================================***/ @@ -558,88 +463,6 @@ unsigned changed,tmp; return True; } -Bool -XkbUpdateMapFromCore( XkbDescPtr xkb, - KeyCode first_key, - int num_keys, - int map_width, - KeySym * core_keysyms, - XkbChangesPtr changes) -{ -register int key,last_key; -KeySym * syms; - - syms= &core_keysyms[(first_key-xkb->min_key_code)*map_width]; - if (changes) { - if (changes->map.changed&XkbKeySymsMask) { - _XkbAddKeyChange(&changes->map.first_key_sym, - &changes->map.num_key_syms,first_key); - if (num_keys>1) { - _XkbAddKeyChange(&changes->map.first_key_sym, - &changes->map.num_key_syms, - first_key+num_keys-1); - } - } - else { - changes->map.changed|= XkbKeySymsMask; - changes->map.first_key_sym= first_key; - changes->map.num_key_syms= num_keys; - } - } - last_key= first_key+num_keys-1; - for (key=first_key;key<=last_key;key++,syms+= map_width) { - XkbMapChangesPtr mc; - unsigned explicit; - KeySym tsyms[XkbMaxSymsPerKey]; - int types[XkbNumKbdGroups]; - int nG; - - explicit= xkb->server->explicit[key]&XkbExplicitKeyTypesMask; - types[XkbGroup1Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup1Index); - types[XkbGroup2Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup2Index); - types[XkbGroup3Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup3Index); - types[XkbGroup4Index]= XkbKeyKeyTypeIndex(xkb,key,XkbGroup4Index); - nG= XkbKeyTypesForCoreSymbols(xkb,map_width,syms,explicit,types,tsyms); - if (changes) - mc= &changes->map; - else mc= NULL; - XkbChangeTypesOfKey(xkb,key,nG,XkbAllGroupsMask,types,mc); - memcpy((char *)XkbKeySymsPtr(xkb,key),(char *)tsyms, - XkbKeyNumSyms(xkb,key)*sizeof(KeySym)); - XkbApplyCompatMapToKey(xkb,key,changes); - } - - if ((xkb->server->vmods!=NULL)&&(xkb->map->modmap!=NULL)&&(changes)&& - (changes->map.changed&(XkbVirtualModMapMask|XkbModifierMapMask))) { - unsigned char newVMods[XkbNumVirtualMods]; - register unsigned bit,i; - unsigned present; - - bzero(newVMods,XkbNumVirtualMods); - present= 0; - for (key=xkb->min_key_code;key<=xkb->max_key_code;key++) { - if (xkb->server->vmodmap[key]==0) - continue; - for (i=0,bit=1;iserver->vmodmap[key]) { - present|= bit; - newVMods[i]|= xkb->map->modmap[key]; - } - } - } - for (i=0,bit=1;iserver->vmods[i])) { - changes->map.changed|= XkbVirtualModsMask; - changes->map.vmods|= bit; - xkb->server->vmods[i]= newVMods[i]; - } - } - } - if (changes && (changes->map.changed&XkbVirtualModsMask)) - XkbApplyVirtualModChanges(xkb,changes->map.vmods,changes); - return True; -} - Status XkbChangeTypesOfKey( XkbDescPtr xkb, int key, @@ -788,7 +611,7 @@ register unsigned mask; /***====================================================================***/ -Bool +static Bool XkbUpdateActionVirtualMods(XkbDescPtr xkb,XkbAction *act,unsigned changed) { unsigned int tmp; @@ -814,7 +637,7 @@ unsigned int tmp; return False; } -void +static void XkbUpdateKeyTypeVirtualMods( XkbDescPtr xkb, XkbKeyTypePtr type, unsigned int changed, diff --git a/xkb/ddxBeep.c b/xkb/ddxBeep.c index 53f3a6f9c..331357ded 100644 --- a/xkb/ddxBeep.c +++ b/xkb/ddxBeep.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include /*#define FALLING_TONE 1*/ diff --git a/xkb/ddxCtrls.c b/xkb/ddxCtrls.c index 5a9ad4018..0f7f9187f 100644 --- a/xkb/ddxCtrls.c +++ b/xkb/ddxCtrls.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include void diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c index 3de8f8721..7e27c5189 100644 --- a/xkb/ddxDevBtn.c +++ b/xkb/ddxDevBtn.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include #include diff --git a/xkb/ddxFakeBtn.c b/xkb/ddxFakeBtn.c index f7b746b05..77222236f 100644 --- a/xkb/ddxFakeBtn.c +++ b/xkb/ddxFakeBtn.c @@ -37,7 +37,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include void diff --git a/xkb/ddxFakeMtn.c b/xkb/ddxFakeMtn.c index a19819fd7..1060afe99 100644 --- a/xkb/ddxFakeMtn.c +++ b/xkb/ddxFakeMtn.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include #ifdef PANORAMIX diff --git a/xkb/ddxInit.c b/xkb/ddxInit.c index 88c488c22..3bcf9d604 100644 --- a/xkb/ddxInit.c +++ b/xkb/ddxInit.c @@ -37,7 +37,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include int diff --git a/xkb/ddxKeyClick.c b/xkb/ddxKeyClick.c index 528b20207..685ae1b42 100644 --- a/xkb/ddxKeyClick.c +++ b/xkb/ddxKeyClick.c @@ -37,7 +37,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include void diff --git a/xkb/ddxKillSrv.c b/xkb/ddxKillSrv.c index 95d75897b..a573ecbd8 100644 --- a/xkb/ddxKillSrv.c +++ b/xkb/ddxKillSrv.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include int XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act) diff --git a/xkb/ddxLEDs.c b/xkb/ddxLEDs.c index fd0195882..22899d766 100644 --- a/xkb/ddxLEDs.c +++ b/xkb/ddxLEDs.c @@ -37,10 +37,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include #include -void +static void XkbDDXUpdateIndicators(DeviceIntPtr dev,CARD32 new) { dev->kbdfeed->ctrl.leds= new; diff --git a/xkb/ddxList.c b/xkb/ddxList.c index 034f694ed..a91a9badf 100644 --- a/xkb/ddxList.c +++ b/xkb/ddxList.c @@ -40,7 +40,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "scrnintstr.h" #include "windowstr.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include #ifndef PATH_MAX diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c index 6e8f8921c..c24c56c1c 100644 --- a/xkb/ddxLoad.c +++ b/xkb/ddxLoad.c @@ -44,7 +44,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "scrnintstr.h" #include "windowstr.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include #include "xkb.h" @@ -211,7 +211,7 @@ OutputDirectory( } } -Bool +static Bool XkbDDXCompileNamedKeymap( XkbDescPtr xkb, XkbComponentNamesPtr names, char * nameRtrn, @@ -298,7 +298,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile; return False; } -Bool +static Bool XkbDDXCompileKeymapByNames( XkbDescPtr xkb, XkbComponentNamesPtr names, unsigned want, @@ -432,7 +432,7 @@ char tmpname[PATH_MAX]; return False; } -FILE * +static FILE * XkbDDXOpenConfigFile(char *mapName,char *fileNameRtrn,int fileNameRtrnLen) { char buf[PATH_MAX],xkm_output_dir[PATH_MAX]; diff --git a/xkb/ddxPrivate.c b/xkb/ddxPrivate.c index 7450b47ba..f67e20c27 100644 --- a/xkb/ddxPrivate.c +++ b/xkb/ddxPrivate.c @@ -6,7 +6,7 @@ #define NEED_EVENTS #include #include "windowstr.h" -#include +#include int XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act) diff --git a/xkb/ddxVT.c b/xkb/ddxVT.c index f56f0796d..55c82a865 100644 --- a/xkb/ddxVT.c +++ b/xkb/ddxVT.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include "scrnintstr.h" #include "windowstr.h" -#include +#include int XkbDDXSwitchScreen(DeviceIntPtr dev,KeyCode key,XkbAction *act) diff --git a/xkb/maprules.c b/xkb/maprules.c index b0a2225e2..0fa356ee5 100644 --- a/xkb/maprules.c +++ b/xkb/maprules.c @@ -48,7 +48,7 @@ #include "dix.h" #include #define XKBSRV_NEED_FILE_FUNCS -#include +#include #ifdef DEBUG #define PR_DEBUG(s) fprintf(stderr,s) diff --git a/xkb/xkb.c b/xkb/xkb.c index 2c97e05db..cf4243070 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -36,23 +36,20 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "misc.h" #include "inputstr.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include "extnsionst.h" #include "xkb.h" #include int XkbEventBase; - int XkbErrorBase; +static int XkbErrorBase; int XkbReqCode; - int XkbKeyboardErrorCode; -Atom xkbONE_LEVEL; -Atom xkbTWO_LEVEL; -Atom xkbKEYPAD; +static int XkbKeyboardErrorCode; CARD32 xkbDebugFlags = 0; -CARD32 xkbDebugCtrls = 0; +static CARD32 xkbDebugCtrls = 0; -RESTYPE RT_XKBCLIENT; +static RESTYPE RT_XKBCLIENT; /***====================================================================***/ @@ -895,52 +892,6 @@ ProcXkbSetControls(ClientPtr client) return client->noClientException; } -/* FIXME: Needs to set rate on all core-sending devices. */ -int -XkbSetRepeatRate(DeviceIntPtr dev,int timeout,int interval,int major,int minor) -{ -int changed= 0; -XkbControlsRec old,*xkb; - - if ((!dev)||(!dev->key)||(!dev->key->xkbInfo)) - return 0; - xkb= dev->key->xkbInfo->desc->ctrls; - old= *xkb; - if ((timeout!=0) && (xkb->repeat_delay!=timeout)) { - xkb->repeat_delay= timeout; - changed++; - } - if ((interval!=0) && (xkb->repeat_interval!=interval)) { - xkb->repeat_interval= interval; - changed++; - } - if (changed) { - xkbControlsNotify cn; - XkbDDXChangeControls(dev,&old,xkb); - if (XkbComputeControlsNotify(dev,&old,xkb,&cn,False)) { - cn.keycode= 0; - cn.eventType = 0; - cn.requestMajor = major; - cn.requestMinor = minor; - XkbSendControlsNotify(dev,&cn); - } - } - return 1; -} - -int -XkbGetRepeatRate(DeviceIntPtr dev,int *timeout,int *interval) -{ -XkbControlsPtr xkb; - - if ((!dev)||(!dev->key)||(!dev->key->xkbInfo)) - return 0; - xkb= dev->key->xkbInfo->desc->ctrls; - if (timeout) *timeout= xkb->repeat_delay; - if (interval) *interval= xkb->repeat_interval; - return 1; -} - /***====================================================================***/ static int @@ -2820,7 +2771,7 @@ ProcXkbGetIndicatorState(ClientPtr client) /***====================================================================***/ -Status +static Status XkbComputeGetIndicatorMapReplySize( XkbIndicatorPtr indicators, xkbGetIndicatorMapReply *rep) @@ -2837,7 +2788,7 @@ int nIndicators; return Success; } -int +static int XkbSendIndicatorMap( ClientPtr client, XkbIndicatorPtr indicators, xkbGetIndicatorMapReply * rep) diff --git a/xkb/xkb.h b/xkb/xkb.h index 2be42582d..99b60bf5e 100644 --- a/xkb/xkb.h +++ b/xkb/xkb.h @@ -1,5 +1,3 @@ -/* $XFree86$ */ - /* #include "XKBfile.h" */ extern int ProcXkbUseExtension(ClientPtr client); @@ -29,50 +27,10 @@ extern int ProcXkbGetDeviceInfo(ClientPtr client); extern int ProcXkbSetDeviceInfo(ClientPtr client); extern int ProcXkbSetDebuggingFlags(ClientPtr client); -extern int XkbSetRepeatRate(DeviceIntPtr dev, int timeout, int interval, int major, int minor); -extern int XkbGetRepeatRate(DeviceIntPtr dev, int *timeout, int *interval); - extern void XkbExtensionInit(void); -extern Status XkbComputeGetIndicatorMapReplySize( - XkbIndicatorPtr indicators, - xkbGetIndicatorMapReply *rep); -extern int XkbSendIndicatorMap( - ClientPtr client, - XkbIndicatorPtr indicators, - xkbGetIndicatorMapReply *rep); - -extern void XkbComputeCompatState(XkbSrvInfoPtr xkbi); -extern void XkbSetPhysicalLockingKey(DeviceIntPtr dev, unsigned key); - extern Bool XkbFilterEvents(ClientPtr pClient, int nEvents, xEvent *xE); -extern Bool XkbApplyLEDChangeToKeyboard( - XkbSrvInfoPtr xkbi, - XkbIndicatorMapPtr map, - Bool on, - XkbChangesPtr change); - -extern Bool XkbWriteRulesProp(ClientPtr client, pointer closure); - -extern XkbAction XkbGetButtonAction(DeviceIntPtr kbd, DeviceIntPtr dev, int button); - -/* extern Status XkbMergeFile(XkbDescPtr xkb, XkbFileInfo finfo); */ - -extern Bool XkbDDXCompileNamedKeymap( - XkbDescPtr xkb, - XkbComponentNamesPtr names, - char * nameRtrn, - int nameRtrnLen); - -extern Bool XkbDDXCompileKeymapByNames( - XkbDescPtr xkb, - XkbComponentNamesPtr names, - unsigned want, - unsigned need, - char * nameRtrn, - int nameRtrnLen); - extern Bool XkbCopyKeymap( XkbDescPtr src, XkbDescPtr dst, diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c index 0ab3dadf6..2954a0c0e 100644 --- a/xkb/xkbAccessX.c +++ b/xkb/xkbAccessX.c @@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include #include "inputstr.h" -#include +#include #if !defined(WIN32) && !defined(Lynx) #include #endif @@ -52,9 +52,9 @@ pointer XkbLastRepeatEvent= NULL; unsigned short XkbDfltAccessXTimeout= 120; unsigned int XkbDfltAccessXTimeoutMask= DFLT_TIMEOUT_CTRLS; -unsigned int XkbDfltAccessXTimeoutValues= 0; -unsigned int XkbDfltAccessXTimeoutOptionsMask= DFLT_TIMEOUT_OPTS; -unsigned int XkbDfltAccessXTimeoutOptionsValues= 0; +static unsigned int XkbDfltAccessXTimeoutValues= 0; +static unsigned int XkbDfltAccessXTimeoutOptionsMask= DFLT_TIMEOUT_OPTS; +static unsigned int XkbDfltAccessXTimeoutOptionsValues= 0; unsigned int XkbDfltAccessXFeedback= XkbAccessXFeedbackMask; unsigned short XkbDfltAccessXOptions= XkbAX_AllOptionsMask & ~(XkbAX_IndicatorFBMask|XkbAX_SKReleaseFBMask|XkbAX_SKRejectFBMask); diff --git a/xkb/xkbActions.c b/xkb/xkbActions.c index e0bf89c7b..2e0c89fc2 100644 --- a/xkb/xkbActions.c +++ b/xkb/xkbActions.c @@ -36,14 +36,14 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include "inputstr.h" -#include +#include #include "xkb.h" #include static unsigned int _xkbServerGeneration; -int xkbDevicePrivateIndex = -1; +static int xkbDevicePrivateIndex = -1; -void +static void xkbUnwrapProc(DeviceIntPtr device, DeviceHandleProc proc, pointer data) { @@ -216,7 +216,7 @@ static XkbAction fake; return fake; } -XkbAction +static XkbAction XkbGetButtonAction(DeviceIntPtr kbd,DeviceIntPtr dev,int button) { XkbAction fake; diff --git a/xkb/xkbDflts.h b/xkb/xkbDflts.h index e31568abb..5d8690650 100644 --- a/xkb/xkbDflts.h +++ b/xkb/xkbDflts.h @@ -456,43 +456,6 @@ static XkbCompatMapRec compatMap= { num_dfltSI, num_dfltSI }; -static XkbIndicatorRec indicators= { - 0x0, - { - { 0x80, 0, 0x00, XkbIM_UseEffective, { LockMask, LockMask, 0 }, 0 }, - { 0x80, 0, 0x00, XkbIM_UseEffective, { 0, 0, vmod_NumLockMask }, 0 }, - { 0x80, 0, 0x00, XkbIM_UseLocked, { ShiftMask, ShiftMask, 0 }, 0 }, - { 0x80, 0, 0x00, 0, { 0, 0, 0 }, XkbMouseKeysMask }, - { 0x80, 0, 0x00, XkbIM_UseLocked, { 0, 0, vmod_ScrollLockMask }, 0 }, - { 0x80, XkbIM_UseEffective, 0xfe, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 }, - { 0x00, 0, 0x00, 0, { 0, 0, 0 }, 0 } - } -}; static void initIndicatorNames(DPYTYPE dpy,XkbDescPtr xkb) { diff --git a/xkb/xkbEvents.c b/xkb/xkbEvents.c index 139221f3f..11dc17ad3 100644 --- a/xkb/xkbEvents.c +++ b/xkb/xkbEvents.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "inputstr.h" #include "windowstr.h" -#include +#include #include "xkb.h" /***====================================================================***/ @@ -331,7 +331,7 @@ Time time = 0; return; } -void +static void XkbSendIndicatorNotify(DeviceIntPtr kbd,int xkbType,xkbIndicatorNotify *pEv) { int initialized; @@ -971,48 +971,6 @@ XkbInterestPtr interest; return NULL; } -int -XkbRemoveClient(DevicePtr inDev,ClientPtr client) -{ -XkbSrvInfoPtr xkbi; -DeviceIntPtr dev = (DeviceIntPtr)inDev; -XkbInterestPtr interest; -unsigned long autoCtrls,autoValues; -Bool found; - - found= False; - autoCtrls= autoValues= 0; - if ( dev->xkb_interest ) { - interest = dev->xkb_interest; - if (interest && (interest->client==client)){ - dev->xkb_interest = interest->next; - autoCtrls= interest->autoCtrls; - autoValues= interest->autoCtrlValues; - _XkbFree(interest); - found= True; - } - while ((!found)&&(interest->next)) { - if (interest->next->client==client) { - XkbInterestPtr victim = interest->next; - interest->next = victim->next; - autoCtrls= victim->autoCtrls; - autoValues= victim->autoCtrlValues; - _XkbFree(victim); - found= True; - } - interest = interest->next; - } - } - if (found && autoCtrls && dev->key && dev->key->xkbInfo ) { - XkbEventCauseRec cause; - - xkbi= dev->key->xkbInfo; - XkbSetCauseXkbReq(&cause,X_kbPerClientFlags,client); - XkbEnableDisableControls(xkbi,autoCtrls,autoValues,NULL,&cause); - } - return found; -} - int XkbRemoveResourceClient(DevicePtr inDev,XID id) { diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c index 5aa121da2..716bc26a5 100644 --- a/xkb/xkbInit.c +++ b/xkb/xkbInit.c @@ -47,7 +47,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "opaque.h" #include "property.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include #include #include @@ -124,7 +124,7 @@ typedef struct _SrvXkmInfo { char * XkbBaseDirectory= XKB_BASE_DIRECTORY; char * XkbBinDirectory= XKB_BIN_DIRECTORY; -int XkbWantAccessX= 0; +static int XkbWantAccessX= 0; static XkbFileInfo * _XkbInitFileInfo= NULL; static Bool rulesDefined= False; @@ -134,20 +134,17 @@ static char * XkbLayoutDflt= NULL; static char * XkbVariantDflt= NULL; static char * XkbOptionsDflt= NULL; -char * XkbModelUsed= NULL; -char * XkbLayoutUsed= NULL; -char * XkbVariantUsed= NULL; -char * XkbOptionsUsed= NULL; - -int _XkbClientMajor= XkbMajorVersion; -int _XkbClientMinor= XkbMinorVersion; +static char * XkbModelUsed= NULL; +static char * XkbLayoutUsed= NULL; +static char * XkbVariantUsed= NULL; +static char * XkbOptionsUsed= NULL; _X_EXPORT Bool noXkbExtension= XKB_DFLT_DISABLED; -Bool XkbWantRulesProp= XKB_DFLT_RULES_PROP; +static Bool XkbWantRulesProp= XKB_DFLT_RULES_PROP; /***====================================================================***/ -char * +static char * XkbGetRulesDflts(XkbRF_VarDefsPtr defs) { if (XkbModelDflt) defs->model= XkbModelDflt; @@ -161,7 +158,7 @@ XkbGetRulesDflts(XkbRF_VarDefsPtr defs) return (rulesDefined?XkbRulesFile:XKB_DFLT_RULES_FILE); } -Bool +static Bool XkbWriteRulesProp(ClientPtr client, pointer closure) { int len,out; @@ -230,7 +227,7 @@ char * pval; return True; } -void +static void XkbSetRulesUsed(XkbRF_VarDefsPtr defs) { if (XkbModelUsed) @@ -289,9 +286,6 @@ XkbSetRulesDflts(char *rulesFile,char *model,char *layout, #include "xkbDflts.h" -/* A dummy to keep the compiler quiet */ -pointer xkbBogus = &indicators; - static Bool XkbInitKeyTypes(XkbDescPtr xkb,SrvXkmInfo *file) { diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c index e94e0bff4..d607d9066 100644 --- a/xkb/xkbLEDs.c +++ b/xkb/xkbLEDs.c @@ -38,7 +38,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #include -#include +#include #include "xkb.h" /***====================================================================***/ @@ -82,7 +82,7 @@ XkbSrvLedInfoPtr sli; /* * Bool - * XkbApplyLEDChangeToKeyboard(xkbi,map,on,change) + *XkbApplyLEDChangeToKeyboard(xkbi,map,on,change) * * Some indicators "drive" the keyboard when their state is explicitly * changed, as described in section 9.2.1 of the XKB protocol spec. @@ -91,7 +91,7 @@ XkbSrvLedInfoPtr sli; * when the indicator described by 'map' is turned on or off. The * extent of the changes is reported in change, which must be defined. */ -Bool +static Bool XkbApplyLEDChangeToKeyboard( XkbSrvInfoPtr xkbi, XkbIndicatorMapPtr map, Bool on, @@ -166,6 +166,164 @@ XkbStatePtr state; } return (stateChange || ctrlChange); } + + /* + * Bool + * ComputeAutoState(map,state,ctrls) + * + * This function reports the effect of applying the specified + * indicator map given the specified state and controls, as + * described in section 9.2 of the XKB protocol specification. + */ + +static Bool +ComputeAutoState( XkbIndicatorMapPtr map, + XkbStatePtr state, + XkbControlsPtr ctrls) +{ +Bool on; +CARD8 mods,group; + + on= False; + mods= group= 0; + if (map->which_mods&XkbIM_UseAnyMods) { + if (map->which_mods&XkbIM_UseBase) + mods|= state->base_mods; + if (map->which_mods&XkbIM_UseLatched) + mods|= state->latched_mods; + if (map->which_mods&XkbIM_UseLocked) + mods|= state->locked_mods; + if (map->which_mods&XkbIM_UseEffective) + mods|= state->mods; + if (map->which_mods&XkbIM_UseCompat) + mods|= state->compat_state; + on = ((map->mods.mask&mods)!=0); + on = on||((mods==0)&&(map->mods.mask==0)&&(map->mods.vmods==0)); + } + if (map->which_groups&XkbIM_UseAnyGroup) { + if (map->which_groups&XkbIM_UseBase) + group|= (1L << state->base_group); + if (map->which_groups&XkbIM_UseLatched) + group|= (1L << state->latched_group); + if (map->which_groups&XkbIM_UseLocked) + group|= (1L << state->locked_group); + if (map->which_groups&XkbIM_UseEffective) + group|= (1L << state->group); + on = on||(((map->groups&group)!=0)||(map->groups==0)); + } + if (map->ctrls) + on = on||(ctrls->enabled_ctrls&map->ctrls); + return on; +} + + +static void +XkbUpdateLedAutoState( DeviceIntPtr dev, + XkbSrvLedInfoPtr sli, + unsigned maps_to_check, + xkbExtensionDeviceNotify * ed, + XkbChangesPtr changes, + XkbEventCausePtr cause) +{ +DeviceIntPtr kbd; +XkbStatePtr state; +XkbControlsPtr ctrls; +XkbChangesRec my_changes; +xkbExtensionDeviceNotify my_ed; +register unsigned i,bit,affected; +register XkbIndicatorMapPtr map; +unsigned oldState; + + if ((maps_to_check==0)||(sli->maps==NULL)||(sli->mapsPresent==0)) + return; + + if (dev->key && dev->key->xkbInfo) + kbd= dev; + else kbd= (DeviceIntPtr)LookupKeyboardDevice(); + + state= &kbd->key->xkbInfo->state; + ctrls= kbd->key->xkbInfo->desc->ctrls; + affected= maps_to_check; + oldState= sli->effectiveState; + sli->autoState&= ~affected; + for (i=0,bit=1;(imaps[i]; + if((!(map->flags&XkbIM_NoAutomatic))&&ComputeAutoState(map,state,ctrls)) + sli->autoState|= bit; + } + sli->effectiveState= (sli->autoState|sli->explicitState); + affected= sli->effectiveState^oldState; + if (affected==0) + return; + + if (ed==NULL) { + ed= &my_ed; + bzero((char *)ed,sizeof(xkbExtensionDeviceNotify)); + } + else if ((ed->reason&XkbXI_IndicatorsMask)&& + ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) { + XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause); + } + + if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault)) { + if (changes==NULL) { + changes= &my_changes; + bzero((char *)changes,sizeof(XkbChangesRec)); + } + changes->indicators.state_changes|= affected; + } + + ed->reason|= XkbXI_IndicatorStateMask; + ed->ledClass= sli->class; + ed->ledID= sli->id; + ed->ledsDefined= sli->namesPresent|sli->mapsPresent; + ed->ledState= sli->effectiveState; + ed->unsupported|= XkbXI_IndicatorStateMask; + ed->supported= XkbXI_AllFeaturesMask; + + if (changes!=&my_changes) changes= NULL; + if (ed!=&my_ed) ed= NULL; + if (changes || ed) + XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause); + return; +} + +static void +XkbUpdateAllDeviceIndicators(XkbChangesPtr changes,XkbEventCausePtr cause) +{ +DeviceIntPtr edev; +XkbSrvLedInfoPtr sli; + + for (edev=inputInfo.devices;edev!=NULL;edev=edev->next) { + if (edev->kbdfeed) { + KbdFeedbackPtr kf; + for (kf=edev->kbdfeed;kf!=NULL;kf=kf->next) { + if ((kf->xkb_sli==NULL)||(kf->xkb_sli->maps==NULL)) + continue; + sli= kf->xkb_sli; + XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL, + changes,cause); + + } + } + if (edev->leds) { + LedFeedbackPtr lf; + for (lf=edev->leds;lf!=NULL;lf=lf->next) { + if ((lf->xkb_sli==NULL)||(lf->xkb_sli->maps==NULL)) + continue; + sli= lf->xkb_sli; + XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL, + changes,cause); + + } + } + } + return; +} + /***====================================================================***/ @@ -228,55 +386,6 @@ unsigned side_affected; /***====================================================================***/ - /* - * Bool - * ComputeAutoState(map,state,ctrls) - * - * This function reports the effect of applying the specified - * indicator map given the specified state and controls, as - * described in section 9.2 of the XKB protocol specification. - */ - -static Bool -ComputeAutoState( XkbIndicatorMapPtr map, - XkbStatePtr state, - XkbControlsPtr ctrls) -{ -Bool on; -CARD8 mods,group; - - on= False; - mods= group= 0; - if (map->which_mods&XkbIM_UseAnyMods) { - if (map->which_mods&XkbIM_UseBase) - mods|= state->base_mods; - if (map->which_mods&XkbIM_UseLatched) - mods|= state->latched_mods; - if (map->which_mods&XkbIM_UseLocked) - mods|= state->locked_mods; - if (map->which_mods&XkbIM_UseEffective) - mods|= state->mods; - if (map->which_mods&XkbIM_UseCompat) - mods|= state->compat_state; - on = ((map->mods.mask&mods)!=0); - on = on||((mods==0)&&(map->mods.mask==0)&&(map->mods.vmods==0)); - } - if (map->which_groups&XkbIM_UseAnyGroup) { - if (map->which_groups&XkbIM_UseBase) - group|= (1L << state->base_group); - if (map->which_groups&XkbIM_UseLatched) - group|= (1L << state->latched_group); - if (map->which_groups&XkbIM_UseLocked) - group|= (1L << state->locked_group); - if (map->which_groups&XkbIM_UseEffective) - group|= (1L << state->group); - on = on||(((map->groups&group)!=0)||(map->groups==0)); - } - if (map->ctrls) - on = on||(ctrls->enabled_ctrls&map->ctrls); - return on; -} - /***====================================================================***/ /* @@ -314,39 +423,6 @@ XkbSrvLedInfoPtr sli; /***====================================================================***/ -void -XkbUpdateAllDeviceIndicators(XkbChangesPtr changes,XkbEventCausePtr cause) -{ -DeviceIntPtr edev; -XkbSrvLedInfoPtr sli; - - for (edev=inputInfo.devices;edev!=NULL;edev=edev->next) { - if (edev->kbdfeed) { - KbdFeedbackPtr kf; - for (kf=edev->kbdfeed;kf!=NULL;kf=kf->next) { - if ((kf->xkb_sli==NULL)||(kf->xkb_sli->maps==NULL)) - continue; - sli= kf->xkb_sli; - XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL, - changes,cause); - - } - } - if (edev->leds) { - LedFeedbackPtr lf; - for (lf=edev->leds;lf!=NULL;lf=lf->next) { - if ((lf->xkb_sli==NULL)||(lf->xkb_sli->maps==NULL)) - continue; - sli= lf->xkb_sli; - XkbUpdateLedAutoState(edev,sli,sli->mapsPresent,NULL, - changes,cause); - - } - } - } - return; -} - /***====================================================================***/ /* @@ -856,210 +932,3 @@ Bool kb_changed; XkbUpdateAllDeviceIndicators(NULL,cause); return; } - -/***====================================================================***/ - -void -XkbUpdateLedAutoState( DeviceIntPtr dev, - XkbSrvLedInfoPtr sli, - unsigned maps_to_check, - xkbExtensionDeviceNotify * ed, - XkbChangesPtr changes, - XkbEventCausePtr cause) -{ -DeviceIntPtr kbd; -XkbStatePtr state; -XkbControlsPtr ctrls; -XkbChangesRec my_changes; -xkbExtensionDeviceNotify my_ed; -register unsigned i,bit,affected; -register XkbIndicatorMapPtr map; -unsigned oldState; - - if ((maps_to_check==0)||(sli->maps==NULL)||(sli->mapsPresent==0)) - return; - - if (dev->key && dev->key->xkbInfo) - kbd= dev; - else kbd= (DeviceIntPtr)LookupKeyboardDevice(); - - state= &kbd->key->xkbInfo->state; - ctrls= kbd->key->xkbInfo->desc->ctrls; - affected= maps_to_check; - oldState= sli->effectiveState; - sli->autoState&= ~affected; - for (i=0,bit=1;(imaps[i]; - if((!(map->flags&XkbIM_NoAutomatic))&&ComputeAutoState(map,state,ctrls)) - sli->autoState|= bit; - } - sli->effectiveState= (sli->autoState|sli->explicitState); - affected= sli->effectiveState^oldState; - if (affected==0) - return; - - if (ed==NULL) { - ed= &my_ed; - bzero((char *)ed,sizeof(xkbExtensionDeviceNotify)); - } - else if ((ed->reason&XkbXI_IndicatorsMask)&& - ((ed->ledClass!=sli->class)||(ed->ledID!=sli->id))) { - XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause); - } - - if ((kbd==dev)&&(sli->flags&XkbSLI_IsDefault)) { - if (changes==NULL) { - changes= &my_changes; - bzero((char *)changes,sizeof(XkbChangesRec)); - } - changes->indicators.state_changes|= affected; - } - - ed->reason|= XkbXI_IndicatorStateMask; - ed->ledClass= sli->class; - ed->ledID= sli->id; - ed->ledsDefined= sli->namesPresent|sli->mapsPresent; - ed->ledState= sli->effectiveState; - ed->unsupported|= XkbXI_IndicatorStateMask; - ed->supported= XkbXI_AllFeaturesMask; - - if (changes!=&my_changes) changes= NULL; - if (ed!=&my_ed) ed= NULL; - if (changes || ed) - XkbFlushLedEvents(dev,kbd,sli,ed,changes,cause); - return; -} - -/***====================================================================***/ - -static void -_UpdateButtonVMods( XkbDescPtr xkb, - unsigned num_btns, - XkbAction * acts, - unsigned changed, - xkbExtensionDeviceNotify * ed_inout) -{ -register int i; - - for (i=0;iany.type!=XkbSA_NoAction)&& - XkbUpdateActionVirtualMods(xkb,acts,changed)) { - if ((ed_inout->reason&XkbXI_ButtonActionsMask)==0) { - ed_inout->reason|= XkbXI_ButtonActionsMask; - ed_inout->firstBtn= i; - ed_inout->nBtns= 1; - } - else { - ed_inout->nBtns= (i-ed_inout->firstBtn)+1; - } - } - } - return; -} - -static void -_UpdateMapVMods( XkbDescPtr xkb, - register XkbIndicatorMapPtr map, - unsigned changed_vmods, - unsigned * changed_maps_rtrn) -{ -register int i; - - *changed_maps_rtrn= 0; - for (i=0;imods.vmods&changed_vmods) { - map->mods.mask= map->mods.real_mods; - map->mods.mask|= XkbMaskForVMask(xkb,map->mods.vmods); - *changed_maps_rtrn|= (1L<id; - if ((dev->button)&&(dev->button->xkb_acts)) { - _UpdateButtonVMods(xkb,dev->button->numButtons, - dev->button->xkb_acts,changed,&ed); - } - if (dev->kbdfeed) { - KbdFeedbackPtr kf; - for (kf=dev->kbdfeed;kf!=NULL;kf=kf->next) { - if ((kf->xkb_sli==NULL)||(kf->xkb_sli->maps==NULL)) - continue; - sli= kf->xkb_sli; - _UpdateMapVMods(xkb,sli->maps,changed,&changed_maps); - if (changed_maps) { - if (ed.reason&XkbXI_IndicatorsMask) { - XkbSendExtensionDeviceNotify(dev,NULL,&ed); - ed.reason= 0; - ed.firstBtn= ed.nBtns; - } - ed.ledClass= sli->class; - ed.ledID= sli->id; - ed.ledsDefined= sli->namesPresent|sli->mapsPresent; - ed.reason|= XkbXI_IndicatorMapsMask; - XkbUpdateLedAutoState(dev,sli,changed_maps,&ed,NULL,cause); - } - } - } - if (dev->leds) { - LedFeedbackPtr lf; - for (lf=dev->leds;lf!=NULL;lf=lf->next) { - if ((lf->xkb_sli==NULL)||(lf->xkb_sli->maps==NULL)) - continue; - sli= lf->xkb_sli; - _UpdateMapVMods(xkb,sli->maps,changed,&changed_maps); - if (changed_maps) { - if (ed.reason&XkbXI_IndicatorsMask) { - XkbSendExtensionDeviceNotify(dev,NULL,&ed); - ed.reason= 0; - ed.firstBtn= ed.nBtns; - } - ed.ledClass= sli->class; - ed.ledID= sli->id; - ed.ledsDefined= sli->namesPresent|sli->mapsPresent; - ed.reason|= XkbXI_IndicatorMapsMask; - XkbUpdateLedAutoState(dev,sli,changed_maps,&ed,NULL,cause); - } - } - } - if (ed.reason!=0) - XkbSendExtensionDeviceNotify(dev,NULL,&ed); - return; -} - -void -XkbApplyVModChangesToAllDevices( DeviceIntPtr dev, - XkbDescPtr xkb, - unsigned changed, - XkbEventCausePtr cause) -{ -DeviceIntPtr edev; - if (dev!=(DeviceIntPtr)LookupKeyboardDevice()) - return; - for (edev=inputInfo.devices;edev!=NULL;edev=edev->next) { - if (edev->key) - continue; - _UpdateDeviceVMods(edev,xkb,changed,cause); - } - for (edev=inputInfo.off_devices;edev!=NULL;edev=edev->next) { - if (edev->key) - continue; - _UpdateDeviceVMods(edev,xkb,changed,cause); - } - return; -} diff --git a/xkb/xkbPrKeyEv.c b/xkb/xkbPrKeyEv.c index 9944c8886..81124bcfb 100644 --- a/xkb/xkbPrKeyEv.c +++ b/xkb/xkbPrKeyEv.c @@ -36,7 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include "inputstr.h" -#include +#include #include diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index 9a04b77d5..da4c9053b 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -35,7 +35,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include "inputstr.h" -#include +#include #include #include "extnsionst.h" #include "xkb.h" diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c index 062159ec6..bb6d8a0ae 100644 --- a/xkb/xkbUtils.c +++ b/xkb/xkbUtils.c @@ -41,7 +41,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "inputstr.h" #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include #include "xkb.h" @@ -172,44 +172,6 @@ register unsigned mask; return mask; } - -Bool -XkbApplyVModChanges( XkbSrvInfoPtr xkbi, - unsigned changed, - XkbChangesPtr changes, - unsigned * needChecksRtrn, - XkbEventCausePtr cause) -{ -XkbDescPtr xkb; -Bool check; - - xkb= xkbi->desc; -#ifdef DEBUG -{ -register unsigned i,bit; - for (i=0,bit=1;iserver->vmods[i]); - } -} -#endif - check= XkbApplyVirtualModChanges(xkb,changed,changes); - XkbApplyVModChangesToAllDevices(xkbi->device,xkb,changed,cause); - - if (needChecksRtrn!=NULL) { - if (check) - *needChecksRtrn= XkbStateNotifyMask|XkbIndicatorStateNotifyMask; - else *needChecksRtrn= 0; - } - else if (check) { - /* 7/12/95 (ef) -- XXX check compatibility and/or indicator state */ - } - return 1; -} - /***====================================================================***/ void @@ -658,7 +620,7 @@ int changed; return changed; } -void +static void XkbComputeCompatState(XkbSrvInfoPtr xkbi) { CARD16 grp_mask; @@ -772,21 +734,6 @@ XkbCheckSecondaryEffects( XkbSrvInfoPtr xkbi, /***====================================================================***/ -void -XkbSetPhysicalLockingKey(DeviceIntPtr dev,unsigned key) -{ -XkbDescPtr xkb; - - xkb= dev->key->xkbInfo->desc; - if ((key>=xkb->min_key_code) && (key<=xkb->max_key_code)) { - xkb->server->behaviors[key].type= XkbKB_Lock|XkbKB_Permanent; - } - else ErrorF("Internal Error! Bad XKB info in SetPhysicalLockingKey\n"); - return; -} - -/***====================================================================***/ - Bool XkbEnableDisableControls( XkbSrvInfoPtr xkbi, unsigned long change, @@ -1193,6 +1140,9 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) dtype->preserve = NULL; } } + + dst->map->size_types = src->map->num_types; + dst->map->num_types = src->map->num_types; } else { if (dst->map->types) { @@ -1208,9 +1158,9 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies) xfree(dst->map->types); dst->map->types = NULL; } + dst->map->num_types = 0; + dst->map->size_types = 0; } - dst->map->size_types = src->map->num_types; - dst->map->num_types = src->map->num_types; if (src->map->modmap) { if (src->max_key_code != dst->max_key_code) { diff --git a/xkb/xkberrs.c b/xkb/xkberrs.c index 095d573ea..3534356c6 100644 --- a/xkb/xkberrs.c +++ b/xkb/xkberrs.c @@ -32,37 +32,6 @@ #include #include -char * _XkbErrMessages[] = { - "success", /* _XkbSuccess */ - "key names not defined", /* _XkbErrMissingNames */ - "key types not defined", /* _XkbErrMissingTypes */ - "required key types not present", /* _XkbErrMissingReqTypes */ - "symbols not defined", /* _XkbErrMissingSymbols */ - "virtual modifier bindings not defined",/* _XkbErrMissingVMods */ - "indicators not defined", /* _XkbErrMissingIndicators */ - "compatibility map not defined", /* _XkbErrMissingCompatMap */ - "symbol interpretations not defined", /* _XkbErrMissingSymInterps */ - "geometry not defined", /* _XkbErrMissingGeometry */ - "illegal doodad type", /* _XkbErrIllegalDoodad */ - "illegal TOC type", /* _XkbErrIllegalTOCType */ - "illegal contents", /* _XkbErrIllegalContents */ - "empty file", /* _XkbErrEmptyFile */ - "file not found", /* _XkbErrFileNotFound */ - "cannot open", /* _XkbErrFileCannotOpen */ - "bad value", /* _XkbErrBadValue */ - "bad match", /* _XkbErrBadMatch */ - "illegal name for type", /* _XkbErrBadTypeName */ - "illegal width for type", /* _XkbErrBadTypeWidth */ - "bad file type", /* _XkbErrBadFileType */ - "bad file version", /* _XkbErrBadFileVersion */ - "error in Xkm file", /* _XkbErrBadFileFormat */ - "allocation failed", /* _XkbErrBadAlloc */ - "bad length", /* _XkbErrBadLength */ - "X request failed", /* _XkbErrXReqFailure */ - "not implemented" /* _XkbErrBadImplementation */ -}; - unsigned _XkbErrCode; char * _XkbErrLocation= NULL; unsigned _XkbErrData; - diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c index 4130bd998..05344b475 100644 --- a/xkb/xkbfmisc.c +++ b/xkb/xkbfmisc.c @@ -44,7 +44,7 @@ #include "dix.h" #include #define XKBSRV_NEED_FILE_FUNCS 1 -#include +#include #include #include "xkb.h" @@ -133,76 +133,6 @@ unsigned set,rtrn; /***===================================================================***/ -Bool -XkbLookupGroupAndLevel( XkbDescPtr xkb, - int key, - int * mods_inout, - int * grp_inout, - int * lvl_rtrn) -{ -int nG,eG; - - if ((!xkb)||(!XkbKeycodeInRange(xkb,key))||(!grp_inout)) - return False; - - nG= XkbKeyNumGroups(xkb,key); - eG= *grp_inout; - - if ( nG==0 ) { - *grp_inout= 0; - if (lvl_rtrn!=NULL) - *lvl_rtrn= 0; - return False; - } - else if ( nG==1 ) { - eG= 0; - } - else if ( eG>=nG ) { - unsigned gI= XkbKeyGroupInfo(xkb,key); - switch (XkbOutOfRangeGroupAction(gI)) { - default: - eG %= nG; - break; - case XkbClampIntoRange: - eG = nG-1; - break; - case XkbRedirectIntoRange: - eG = XkbOutOfRangeGroupNumber(gI); - if (eG>=nG) - eG= 0; - break; - } - } - *grp_inout= eG; - if (mods_inout!=NULL) { - XkbKeyTypePtr type; - int preserve; - - type = XkbKeyKeyType(xkb,key,eG); - if (lvl_rtrn!=NULL) - *lvl_rtrn= 0; - preserve= 0; - if (type->map) { /* find the shift level */ - register int i; - register XkbKTMapEntryPtr entry; - for (i=0,entry=type->map;imap_count;i++,entry++) { - if ((entry->active)&& - (((*mods_inout)&type->mods.mask)==entry->mods.mask)){ - if (lvl_rtrn!=NULL) - *lvl_rtrn= entry->level; - if (type->preserve) - preserve= type->preserve[i].mask; - break; - } - } - } - (*mods_inout)&= ~(type->mods.mask&(~preserve)); - } - return True; -} - -/***===================================================================***/ - static Bool XkbWriteSectionFromName(FILE *file,char *sectionName,char *name) { @@ -416,15 +346,6 @@ XkbFileInfo finfo; /***====================================================================***/ -/*ARGSUSED*/ -Status -XkbMergeFile(XkbDescPtr xkb,XkbFileInfo finfo) -{ - return BadImplementation; -} - -/***====================================================================***/ - int XkbFindKeycodeByName(XkbDescPtr xkb,char *name,Bool use_aliases) { @@ -484,34 +405,6 @@ unsigned rtrn; return rtrn; } -unsigned -XkbConvertXkbComponents(Bool toXkm,unsigned orig) -{ -unsigned rtrn; - - rtrn= 0; - if (toXkm) { - if (orig&XkbClientMapMask) rtrn|= XkmTypesMask|XkmSymbolsMask; - if (orig&XkbServerMapMask) rtrn|= XkmTypesMask|XkmSymbolsMask; - if (orig&XkbCompatMapMask) rtrn|= XkmCompatMapMask; - if (orig&XkbIndicatorMapMask) rtrn|= XkmIndicatorsMask; - if (orig&XkbNamesMask) rtrn|= XkmKeyNamesMask; - if (orig&XkbGeometryMask) rtrn|= XkmGeometryMask; - } - else { - if (orig!=0) rtrn|= XkbNamesMask; - if (orig&XkmTypesMask) rtrn|= XkbClientMapMask; - if (orig&XkmCompatMapMask) - rtrn|= XkbCompatMapMask|XkbIndicatorMapMask; - if (orig&XkmSymbolsMask) rtrn|=XkbClientMapMask|XkbServerMapMask; - if (orig&XkmIndicatorsMask) rtrn|= XkbIndicatorMapMask; - if (orig&XkmKeyNamesMask) - rtrn|= XkbNamesMask|XkbIndicatorMapMask; - if (orig&XkmGeometryMask) rtrn|= XkbGeometryMask; - } - return rtrn; -} - Bool XkbDetermineFileType(XkbFileInfoPtr finfo,int format,int *opts_missing) { diff --git a/xkb/xkbout.c b/xkb/xkbout.c index 31cd4fae4..bdec8e7d3 100644 --- a/xkb/xkbout.c +++ b/xkb/xkbout.c @@ -44,7 +44,7 @@ #include "dix.h" #include #define XKBSRV_NEED_FILE_FUNCS 1 -#include +#include #include #include @@ -925,127 +925,3 @@ XkbGeometryPtr geom; fprintf(file,"};\n\n"); return True; } - -/*ARGSUSED*/ -Bool -XkbWriteXKBSemantics( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; - - fprintf(file,"xkb_semantics {\n"); - ok= XkbWriteXKBKeyTypes(file,result,False,False,addOn,priv); - ok= ok&&XkbWriteXKBCompatMap(file,result,False,False,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -/*ARGSUSED*/ -Bool -XkbWriteXKBLayout( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - fprintf(file,"xkb_layout {\n"); - ok= XkbWriteXKBKeycodes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBKeyTypes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBSymbols(file,result,False,showImplicit,addOn,priv); - if (xkb->geom) - ok= ok&&XkbWriteXKBGeometry(file,result,False,showImplicit,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -/*ARGSUSED*/ -Bool -XkbWriteXKBKeymap( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - fprintf(file,"xkb_keymap {\n"); - ok= XkbWriteXKBKeycodes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBKeyTypes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBCompatMap(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBSymbols(file,result,False,showImplicit,addOn,priv); - if (xkb->geom) - ok= ok&&XkbWriteXKBGeometry(file,result,False,showImplicit,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -Bool -XkbWriteXKBFile( FILE * out, - XkbFileInfo * result, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok = False; -Bool (*func)( - FILE * /* file */, - XkbFileInfo * /* result */, - Bool /* topLevel */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -) = NULL; - - switch (result->type) { - case XkmSemanticsFile: - func= XkbWriteXKBSemantics; - break; - case XkmLayoutFile: - func= XkbWriteXKBLayout; - break; - case XkmKeymapFile: - func= XkbWriteXKBKeymap; - break; - case XkmTypesIndex: - func= XkbWriteXKBKeyTypes; - break; - case XkmCompatMapIndex: - func= XkbWriteXKBCompatMap; - break; - case XkmSymbolsIndex: - func= XkbWriteXKBSymbols; - break; - case XkmKeyNamesIndex: - func= XkbWriteXKBKeycodes; - break; - case XkmGeometryFile: - case XkmGeometryIndex: - func= XkbWriteXKBGeometry; - break; - case XkmVirtualModsIndex: - case XkmIndicatorsIndex: - _XkbLibError(_XkbErrBadImplementation, - XkbConfigText(result->type,XkbMessage),0); - return False; - } - if (out==NULL) { - _XkbLibError(_XkbErrFileCannotOpen,"XkbWriteXkbFile",0); - ok= False; - } - else if (func) { - ok= (*func)(out,result,True,showImplicit,addOn,priv); - } - return ok; -} diff --git a/xkb/xkbtext.c b/xkb/xkbtext.c index defd45a64..3a5037150 100644 --- a/xkb/xkbtext.c +++ b/xkb/xkbtext.c @@ -44,7 +44,7 @@ #include "dix.h" #include #define XKBSRV_NEED_FILE_FUNCS 1 -#include +#include #include /***====================================================================***/ @@ -448,100 +448,6 @@ char * buf; return buf; } -char * -XkbAccessXDetailText(unsigned state,unsigned format) -{ -char *buf,*prefix; - - buf= tbGetBuffer(32); - if (format==XkbMessage) prefix= ""; - else prefix= "XkbAXN_"; - switch (state){ - case XkbAXN_SKPress: sprintf(buf,"%sSKPress",prefix); break; - case XkbAXN_SKAccept: sprintf(buf,"%sSKAccept",prefix); break; - case XkbAXN_SKRelease: sprintf(buf,"%sSKRelease",prefix); break; - case XkbAXN_SKReject: sprintf(buf,"%sSKReject",prefix); break; - case XkbAXN_BKAccept: sprintf(buf,"%sBKAccept",prefix); break; - case XkbAXN_BKReject: sprintf(buf,"%sBKReject",prefix); break; - case XkbAXN_AXKWarning: sprintf(buf,"%sAXKWarning",prefix); break; - default: sprintf(buf,"ILLEGAL"); break; - } - return buf; -} - -static char *nknNames[] = { - "keycodes", "geometry", "deviceID" -}; -#define NUM_NKN (sizeof(nknNames)/sizeof(char *)) - -char * -XkbNKNDetailMaskText(unsigned detail,unsigned format) -{ -char *buf,*prefix,*suffix; -register int i; -register unsigned bit; -int len,plen,slen; - - - if ((detail&XkbAllNewKeyboardEventsMask)==0) { - char *tmp = ""; - if (format==XkbCFile) tmp= "0"; - else if (format==XkbMessage) tmp= "none"; - buf= tbGetBuffer(strlen(tmp)+1); - strcpy(buf,tmp); - return buf; - } - else if ((detail&XkbAllNewKeyboardEventsMask)==XkbAllNewKeyboardEventsMask){ - char * tmp; - if (format==XkbCFile) tmp= "XkbAllNewKeyboardEventsMask"; - else tmp= "all"; - buf= tbGetBuffer(strlen(tmp)+1); - strcpy(buf,tmp); - return buf; - } - if (format==XkbMessage) { - prefix= ""; - suffix= ""; - slen= plen= 0; - } - else { - prefix= "XkbNKN_"; - plen= 7; - if (format==XkbCFile) - suffix= "Mask"; - else suffix= ""; - slen= strlen(suffix); - } - for (len=0,i=0,bit=1;i #define XKBSRV_NEED_FILE_FUNCS -#include +#include #include Atom @@ -1098,18 +1098,6 @@ unsigned i,size_toc; return 1; } -xkmSectionInfo * -XkmFindTOCEntry(xkmFileInfo *finfo,xkmSectionInfo *toc,unsigned type) -{ -register int i; - - for (i=0;inum_toc;i++) { - if (toc[i].type==type) - return &toc[i]; - } - return NULL; -} - Bool XkmReadFileSection( FILE * file, xkmSectionInfo * toc,