diff -c -N -r xc.old/config/cf/X11.tmpl xc/config/cf/X11.tmpl *** xc.old/config/cf/X11.tmpl Mon Mar 2 03:55:22 1998 --- xc/config/cf/X11.tmpl Sat Apr 11 13:56:54 1998 *************** *** 202,207 **** --- 202,213 ---- #ifndef BuildXF86DGALibrary #define BuildXF86DGALibrary BuildXF86DGA #endif + #ifndef BuildXF86RushExt + #define BuildXF86RushExt NO + #endif + #ifndef BuildXF86RushLibrary + #define BuildXF86RushLibrary BuildXF86RushExt + #endif #ifndef BuildDPMSExt #define BuildDPMSExt NO #endif *************** *** 992,997 **** --- 998,1019 ---- #endif #endif + #if BuildXF86RushLibrary + #ifndef SharedLibXxf86rush + #define SharedLibXxf86rush YES + #endif + #ifndef NormalLibXxf86rush + #define NormalLibXxf86rush YES + #endif + #ifndef DebugLibXxf86rush + #define DebugLibXxf86rush NO + #endif + #ifndef ProfileLibXxf86rush + #define ProfileLibXxf86rush NO + #endif + #endif + + #if BuildDPMSLibrary #ifndef SharedLibXdpms #define SharedLibXdpms NO *************** *** 1078,1083 **** --- 1100,1117 ---- SharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),SOXXF86DGAREV,SharedXxf86dgaRev) #else ProjectUnsharedLibReferences(XXF86DGA,Xxf86dga,$(XXF86DGALIBSRC),XBuildLibDir) + #endif + #endif + + #if BuildXF86RushLibrary + XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush + #if SharedLibXxf86rush + #ifndef SharedXxf86RushRev + #define SharedXxf86RushRev 1.0 + #endif + SharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),SOXXF86RUSHREV,SharedXxf86RushRev) + #else + ProjectUnsharedLibReferences(XXF86RUSH,Xxf86rush,$(XXF86RUSHLIBSRC),XBuildLibDir) #endif #endif diff -c -N -r xc.old/config/cf/xfree86.cf xc/config/cf/xfree86.cf *** xc.old/config/cf/xfree86.cf Mon Mar 2 03:55:22 1998 --- xc/config/cf/xfree86.cf Sat Apr 11 15:34:02 1998 *************** *** 619,624 **** --- 619,627 ---- #ifndef BuildDPMSLibrary #define BuildDPMSLibrary YES #endif + #ifndef BuildXF86RushLibrary + #define BuildXF86RushLibrary YES + #endif /* * Build the XFree86-VidMode extension *************** *** 673,678 **** --- 676,688 ---- #define BuildDPMSExt YES #endif + /* + * Build the Rush extension support + */ + #ifndef BuildXF86RushExt + #define BuildXF86RushExt YES + #endif + #if Malloc0ReturnsNull #ifndef XtMalloc0ReturnsNullDefines #define XtMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines -DXTMALLOC_BC *************** *** 764,769 **** --- 774,785 ---- #define XFree86DGADefines /**/ #endif + #if BuildXF86RushExt + #define XFree86RushDefines -DXFreeXRUSH + #else + #define XFree86RushDefines /**/ + #endif + #ifndef MakeHasPosixVariableSubstitutions #if !HasBsdMake #define MakeHasPosixVariableSubstitutions NO *************** *** 774,780 **** /* Server defines required for all OSs */ #ifndef XFree86ServerDefines ! #define XFree86ServerDefines -DSTATIC_COLOR -DAVOID_GLYPHBLT -DPIXPRIV LinkKitDefines XFree86DGADefines #endif #ifndef XFree86ServerOSDefines --- 790,796 ---- /* Server defines required for all OSs */ #ifndef XFree86ServerDefines ! #define XFree86ServerDefines -DSTATIC_COLOR -DAVOID_GLYPHBLT -DPIXPRIV LinkKitDefines XFree86DGADefines XFree86RushDefines #endif #ifndef XFree86ServerOSDefines *** xc.old/include/extensions/Imakefile Sun Jan 12 02:39:14 1997 --- xc/include/extensions/Imakefile Sun Apr 5 17:34:16 1998 *************** *** 14,19 **** --- 14,22 ---- #if BuildXF86DGALibrary XF86DGAHEADERS = xf86dga.h xf86dgastr.h #endif + #if BuildXF86RushLibrary + XF86RUSHHEADERS = xf86rush.h xf86rushstr.h + #endif #if BuildLBX LBXHEADERS = lbxbuf.h lbxbufstr.h lbxdeltastr.h lbximage.h lbxopts.h lbxstr.h lbxzlib.h #endif *************** *** 21,27 **** DPMSHEADERS = dpms.h dpmsstr.h #endif ! EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XF86MISCHEADERS) $(LBXHEADERS) $(DPMSHEADERS) --- 24,30 ---- DPMSHEADERS = dpms.h dpmsstr.h #endif ! EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XF86RUSHHEADERS) $(XF86MISCHEADERS) $(LBXHEADERS) $(DPMSHEADERS) diff -c -N -r xc.old/include/extensions/xf86rush.h xc/include/extensions/xf86rush.h *** xc.old/include/extensions/xf86rush.h Wed Dec 31 16:00:00 1969 --- xc/include/extensions/xf86rush.h Sun Apr 19 15:56:23 1998 *************** *** 0 **** --- 1,70 ---- + /* $$ */ + /* + + Copyright (c) 1998 Daryll Strauss + + */ + + #ifndef _XF86RUSH_H_ + #define _XF86RUSH_H_ + + #include + + #define X_XF86RushQueryVersion 0 + #define X_XF86RushLockPixmap 1 + #define X_XF86RushUnlockPixmap 2 + #define X_XF86RushUnlockAllPixmaps 3 + + #define XF86RushNumberEvents 0 + + #define XF86RushClientNotLocal 0 + #define XF86RushNumberErrors (XF86RushClientNotLocal + 1) + + #ifndef _XF86RUSH_SERVER_ + + _XFUNCPROTOBEGIN + + Bool XF86RushQueryVersion( + #if NeedFunctionPrototypes + Display* /* dpy */, + int* /* majorVersion */, + int* /* minorVersion */ + #endif + ); + + Bool XF86RushQueryExtension( + #if NeedFunctionPrototypes + Display* /* dpy */, + int* /* event_base */, + int* /* error_base */ + #endif + ); + + Bool XF86RushLockPixmap( + #if NeedFunctionPrototypes + Display * /* dpy */, + int /* screen */, + Pixmap /* Pixmap */, + void ** /* Return address */ + #endif + ); + + Bool XF86RushUnlockPixmap( + #if NeedFunctionPrototypes + Display * /* dpy */, + int /* screen */, + Pixmap /* Pixmap */ + #endif + ); + + Bool XF86RushUnlockAllPixmaps( + #if NeedFunctionPrototypes + Display * /* dpy */ + #endif + ); + + _XFUNCPROTOEND + + #endif /* _XF86RUSH_SERVER_ */ + + #endif /* _XF86RUSH_H_ */ diff -c -N -r xc.old/include/extensions/xf86rushstr.h xc/include/extensions/xf86rushstr.h *** xc.old/include/extensions/xf86rushstr.h Wed Dec 31 16:00:00 1969 --- xc/include/extensions/xf86rushstr.h Sun Apr 5 21:44:32 1998 *************** *** 0 **** --- 1,82 ---- + /* $$ */ + /* + + Copyright (c) 1998 Daryll Strauss + + */ + + #ifndef _XF86RUSHSTR_H_ + #define _XF86RUSHSTR_H_ + + #include "xf86rush.h" + + #define XF86RUSHNAME "XFree86-Rush" + + #define XF86RUSH_MAJOR_VERSION 1 /* current version numbers */ + #define XF86RUSH_MINOR_VERSION 0 + + typedef struct _XF86RushQueryVersion { + CARD8 reqType; /* always RushReqCode */ + CARD8 rushReqType; /* always X_RushQueryVersion */ + CARD16 length B16; + } xXF86RushQueryVersionReq; + #define sz_xXF86RushQueryVersionReq 4 + + typedef struct { + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD16 majorVersion B16; /* major version of Rush protocol */ + CARD16 minorVersion B16; /* minor version of Rush protocol */ + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + } xXF86RushQueryVersionReply; + #define sz_xXF86RushQueryVersionReply 32 + + typedef struct _XF86RushLockPixmap { + CARD8 reqType; /* always RushReqCode */ + CARD8 rushReqType; /* always X_RushLockPixmap */ + CARD16 length B16; + CARD16 screen B16; + CARD16 pad B16; + CARD32 pixmap B32; + } xXF86RushLockPixmapReq; + #define sz_xXF86RushLockPixmapReq 12 + + typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 addr B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; + } xXF86RushLockPixmapReply; + #define sz_xXF86RushLockPixmapReply 32 + + typedef struct _XF86RushUnlockPixmap { + CARD8 reqType; /* always RushReqCode */ + CARD8 rushReqType; /* always X_RushUnlockPixmap */ + CARD16 length B16; + CARD16 screen B16; + CARD16 pad B16; + CARD32 pixmap B32; + } xXF86RushUnlockPixmapReq; + #define sz_xXF86RushUnlockPixmapReq 12 + + typedef struct _XF86RushUnlockAllPixmaps { + CARD8 reqType; /* always RushReqCode */ + CARD8 rushReqType; /* always X_RushUnlockAllPixmaps */ + CARD16 length B16; + } xXF86RushUnlockAllPixmapsReq; + #define sz_xXF86RushUnlockAllPixmapsReq 4 + + #endif /* _XF86RUSHSTR_H_ */ + diff -c -N -r xc.old/lib/Imakefile xc/lib/Imakefile *** xc.old/lib/Imakefile Sat Jul 5 08:55:33 1997 --- xc/lib/Imakefile Sat Apr 11 13:24:59 1998 *************** *** 39,45 **** XF86DGALIB = Xxf86dga #endif ! XF86EXTLIBS = $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) #if BuildDPMSLibrary XDPMSLIBDIR = Xdpms --- 39,49 ---- XF86DGALIB = Xxf86dga #endif ! #if BuildXF86RushLibrary ! XF86RUSHLIB = Xxf86rush ! #endif ! ! XF86EXTLIBS = $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) $(XF86RUSHLIB) #if BuildDPMSLibrary XDPMSLIBDIR = Xdpms *************** *** 61,67 **** #if !BuildServersOnly LINTSUBDIRS = Xau Xdmcp $(THRSTUBLIB) X11 oldX ICE SM Xext Xt \ ! $(SSLIB) $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) \ Xmu Xaw XIE Xi Xtst FS \ PEX5 $(XKBLIBDIR) $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) \ $(XDPMSLIBDIR) \ --- 65,71 ---- #if !BuildServersOnly LINTSUBDIRS = Xau Xdmcp $(THRSTUBLIB) X11 oldX ICE SM Xext Xt \ ! $(SSLIB) $(XF86MISCLIB) $(XF86VMLIB) $(XF86DGALIB) $(XF86RUSHLIB) \ Xmu Xaw XIE Xi Xtst FS \ PEX5 $(XKBLIBDIR) $(XKBUILIBDIR) $(LBXUTILDIR) $(XALIBDIR) \ $(XDPMSLIBDIR) \ diff -c -N -r xc.old/lib/Xext/XF86Rush.c xc/lib/Xext/XF86Rush.c *** xc.old/lib/Xext/XF86Rush.c Wed Dec 31 16:00:00 1969 --- xc/lib/Xext/XF86Rush.c Sun Apr 5 18:01:55 1998 *************** *** 0 **** --- 1,163 ---- + /* $$ */ + /* + + Copyright (c) 1998 Daryll Strauss + + */ + + /* THIS IS NOT AN X CONSORTIUM STANDARD */ + + #define NEED_EVENTS + #define NEED_REPLIES + #include "Xlibint.h" + #include "xf86rushstr.h" + #include "Xext.h" + #include "extutil.h" + + static XExtensionInfo _xf86rush_info_data; + static XExtensionInfo *xf86rush_info = &_xf86rush_info_data; + static char *xf86rush_extension_name = XF86RUSHNAME; + + #define XF86RushCheckExtension(dpy,i,val) \ + XextCheckExtension (dpy, i, xf86rush_extension_name, val) + + /***************************************************************************** + * * + * private utility routines * + * * + *****************************************************************************/ + + static int close_display(); + static /* const */ XExtensionHooks xf86rush_extension_hooks = { + NULL, /* create_gc */ + NULL, /* copy_gc */ + NULL, /* flush_gc */ + NULL, /* free_gc */ + NULL, /* create_font */ + NULL, /* free_font */ + close_display, /* close_display */ + NULL, /* wire_to_event */ + NULL, /* event_to_wire */ + NULL, /* error */ + NULL, /* error_string */ + }; + + static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86rush_info, + xf86rush_extension_name, + &xf86rush_extension_hooks, + 0, NULL) + + static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86rush_info) + + + /***************************************************************************** + * * + * public XFree86-DGA Extension routines * + * * + *****************************************************************************/ + + Bool XF86RushQueryExtension (dpy, event_basep, error_basep) + Display *dpy; + int *event_basep, *error_basep; + { + XExtDisplayInfo *info = find_display (dpy); + + if (XextHasExtension(info)) { + *event_basep = info->codes->first_event; + *error_basep = info->codes->first_error; + return True; + } else { + return False; + } + } + + Bool XF86RushQueryVersion(dpy, majorVersion, minorVersion) + Display* dpy; + int* majorVersion; + int* minorVersion; + { + XExtDisplayInfo *info = find_display (dpy); + xXF86RushQueryVersionReply rep; + xXF86RushQueryVersionReq *req; + + XF86RushCheckExtension (dpy, info, False); + + LockDisplay(dpy); + GetReq(XF86RushQueryVersion, req); + req->reqType = info->codes->major_opcode; + req->dgaReqType = X_XF86RushQueryVersion; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + *majorVersion = rep.majorVersion; + *minorVersion = rep.minorVersion; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushLockPixmap(dpy, screen, pixmap, addr) + Display *dpy; + int screen; + Pixmap pixmap; + void **addr; + { + XExtDisplayInfo *info = find_display (dpy); + xXF86RushLockPixmapReply rep; + xXF86RushLockPixmapReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushLockPixmap, req); + req->reqType = info->codes->major_opcode; + req->dgaReqType = X_XF86RushLockPixmap; + req->screen=screen; + req->pixmap=pixmap; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + *addr=(void*)rep.addr; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushUnlockPixmap(dpy, screen, pixmap) + Display *dpy; + int screen; + Pixmap pixmap; + { + XExtDisplayInfo *info = find_display(dpy); + xXF86RushUnlockPixmapReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushUnlockPixmap, req); + req->reqType = info->codes->major_opcode; + req->dgaReqType = X_XF86RushUnlockPixmap; + req->screen=screen; + req->pixmap=pixmap; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushUnlockAllPixmaps(dpy) + Display *dpy; + { + XExtDisplayInfo *info = find_display(dpy); + xXF86RushUnlockAllPixmapsReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushUnlockAllPixmaps, req); + req->reqType = info->codes->major_opcode; + req->dgaReqType = X_XF86RushUnlockAllPixmaps; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } diff -c -N -r xc.old/lib/Xxf86rush/Imakefile xc/lib/Xxf86rush/Imakefile *** xc.old/lib/Xxf86rush/Imakefile Wed Dec 31 16:00:00 1969 --- xc/lib/Xxf86rush/Imakefile Sat Apr 11 13:29:38 1998 *************** *** 0 **** --- 1,33 ---- + XCOMM $$ + #define DoNormalLib NormalLibXxf86rush + #define DoSharedLib SharedLibXxf86rush + #define DoDebugLib DebugLibXxf86rush + #define DoProfileLib ProfileLibXxf86rush + #define LibName Xxf86rush + #define SoRev SOXXF86RUSHREV + #define LibHeaders NO + + #include + + #ifdef SharedXxf86rushReqs + REQUIREDLIBS = SharedXxf86rushReqs + #endif + + XF86RUSHSRCS = XF86Rush.c + XF86RUSHOBJS = XF86Rush.o + + #if Malloc0ReturnsNull + ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL + #endif + + DEFINES = $(ALLOC_DEFINES) + INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) + SRCS = $(XF86RUSHSRCS) + OBJS = $(XF86RUSHOBJS) + LINTLIBS = $(LINTXLIB) + + #include + + DependTarget() + + diff -c -N -r xc.old/lib/Xxf86rush/XF86Rush.c xc/lib/Xxf86rush/XF86Rush.c *** xc.old/lib/Xxf86rush/XF86Rush.c Wed Dec 31 16:00:00 1969 --- xc/lib/Xxf86rush/XF86Rush.c Sat Apr 11 13:55:40 1998 *************** *** 0 **** --- 1,163 ---- + /* $$ */ + /* + + Copyright (c) 1998 Daryll Strauss + + */ + + /* THIS IS NOT AN X CONSORTIUM STANDARD */ + + #define NEED_EVENTS + #define NEED_REPLIES + #include "Xlibint.h" + #include "xf86rushstr.h" + #include "Xext.h" + #include "extutil.h" + + static XExtensionInfo _xf86rush_info_data; + static XExtensionInfo *xf86rush_info = &_xf86rush_info_data; + static char *xf86rush_extension_name = XF86RUSHNAME; + + #define XF86RushCheckExtension(dpy,i,val) \ + XextCheckExtension (dpy, i, xf86rush_extension_name, val) + + /***************************************************************************** + * * + * private utility routines * + * * + *****************************************************************************/ + + static int close_display(); + static /* const */ XExtensionHooks xf86rush_extension_hooks = { + NULL, /* create_gc */ + NULL, /* copy_gc */ + NULL, /* flush_gc */ + NULL, /* free_gc */ + NULL, /* create_font */ + NULL, /* free_font */ + close_display, /* close_display */ + NULL, /* wire_to_event */ + NULL, /* event_to_wire */ + NULL, /* error */ + NULL, /* error_string */ + }; + + static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86rush_info, + xf86rush_extension_name, + &xf86rush_extension_hooks, + 0, NULL) + + static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86rush_info) + + + /***************************************************************************** + * * + * public XFree86-DGA Extension routines * + * * + *****************************************************************************/ + + Bool XF86RushQueryExtension (dpy, event_basep, error_basep) + Display *dpy; + int *event_basep, *error_basep; + { + XExtDisplayInfo *info = find_display (dpy); + + if (XextHasExtension(info)) { + *event_basep = info->codes->first_event; + *error_basep = info->codes->first_error; + return True; + } else { + return False; + } + } + + Bool XF86RushQueryVersion(dpy, majorVersion, minorVersion) + Display* dpy; + int* majorVersion; + int* minorVersion; + { + XExtDisplayInfo *info = find_display (dpy); + xXF86RushQueryVersionReply rep; + xXF86RushQueryVersionReq *req; + + XF86RushCheckExtension (dpy, info, False); + + LockDisplay(dpy); + GetReq(XF86RushQueryVersion, req); + req->reqType = info->codes->major_opcode; + req->rushReqType = X_XF86RushQueryVersion; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + *majorVersion = rep.majorVersion; + *minorVersion = rep.minorVersion; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushLockPixmap(dpy, screen, pixmap, addr) + Display *dpy; + int screen; + Pixmap pixmap; + void **addr; + { + XExtDisplayInfo *info = find_display (dpy); + xXF86RushLockPixmapReply rep; + xXF86RushLockPixmapReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushLockPixmap, req); + req->reqType = info->codes->major_opcode; + req->rushReqType = X_XF86RushLockPixmap; + req->screen=screen; + req->pixmap=pixmap; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + return False; + } + *addr=(void*)rep.addr; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushUnlockPixmap(dpy, screen, pixmap) + Display *dpy; + int screen; + Pixmap pixmap; + { + XExtDisplayInfo *info = find_display(dpy); + xXF86RushUnlockPixmapReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushUnlockPixmap, req); + req->reqType = info->codes->major_opcode; + req->rushReqType = X_XF86RushUnlockPixmap; + req->screen=screen; + req->pixmap=pixmap; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } + + Bool XF86RushUnlockAllPixmaps(dpy) + Display *dpy; + { + XExtDisplayInfo *info = find_display(dpy); + xXF86RushUnlockAllPixmapsReq *req; + + XF86RushCheckExtension (dpy, info, False); + LockDisplay(dpy); + GetReq(XF86RushUnlockAllPixmaps, req); + req->reqType = info->codes->major_opcode; + req->rushReqType = X_XF86RushUnlockAllPixmaps; + UnlockDisplay(dpy); + SyncHandle(); + return True; + } diff -c -N -r xc.old/programs/Xserver/Xext/Imakefile ./Xext/Imakefile *** xc.old/programs/Xserver/Xext/Imakefile Fri Jan 23 04:35:11 1998 --- xc/programs/Xserver/Xext/Imakefile Sun Apr 4 18:13:41 1999 *************** *** 32,37 **** --- 32,42 ---- DPMSOBJS = dpms.o #endif + #if BuildXF86RushExt + XF86RRUSHSRCS = xf86Rush.c + XF86RUSHOBJS = xf86Rush.o + #endif + #if BuildAppgroup APPGROUPSRCS = appgroup.c APPGROUPOBJS = appgroup.o *************** *** 47,59 **** mitmisc.c xtest.c xtest1di.c xtest1dd.c sleepuntil.c \ bigreq.c sync.c $(SCRNSAVSRC) xcmisc.c $(VIDMODESRCS) \ $(XF86MISCSRCS) $(XF86DGASRCS) $(SECURITYSRCS) \ ! $(DPMSSRCS) \ $(APPGROUPSRCS) xprint.c OBJS = shape.o $(SHMOBJS) mbuf.o \ mitmisc.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o \ bigreq.o sync.o $(SCRNSAVOBJ) xcmisc.o $(VIDMODEOBJS) \ $(XF86MISCOBJS) $(XF86DGAOBJS) $(SECURITYOBJS) \ ! $(DPMSOBJS) \ $(APPGROUPOBJS) xprint.o XF86INCLUDES = -I../hw/xfree86/common -I../hw/xfree86/os-support --- 52,64 ---- mitmisc.c xtest.c xtest1di.c xtest1dd.c sleepuntil.c \ bigreq.c sync.c $(SCRNSAVSRC) xcmisc.c $(VIDMODESRCS) \ $(XF86MISCSRCS) $(XF86DGASRCS) $(SECURITYSRCS) \ ! $(DPMSSRCS) $(XF86RUSHSRCS) \ $(APPGROUPSRCS) xprint.c OBJS = shape.o $(SHMOBJS) mbuf.o \ mitmisc.o xtest.o xtest1di.o xtest1dd.o sleepuntil.o \ bigreq.o sync.o $(SCRNSAVOBJ) xcmisc.o $(VIDMODEOBJS) \ $(XF86MISCOBJS) $(XF86DGAOBJS) $(SECURITYOBJS) \ ! $(DPMSOBJS) $(XF86RUSHOBJS) \ $(APPGROUPOBJS) xprint.o XF86INCLUDES = -I../hw/xfree86/common -I../hw/xfree86/os-support diff -c -N -r xc.old/programs/Xserver/Xext/xf86Rush.c ./Xext/xf86Rush.c *** xc.old/programs/Xserver/Xext/xf86Rush.c Wed Dec 31 16:00:00 1969 --- xc/programs/Xserver/Xext/xf86Rush.c Sun Apr 4 18:13:41 1999 *************** *** 0 **** --- 1,213 ---- + /* $XFree86: $ */ + + /* + + Copyright (c) 1998 Daryll Strauss + + */ + + #define NEED_REPLIES + #define NEED_EVENTS + #include "X.h" + #include "Xproto.h" + #include "misc.h" + #include "dixstruct.h" + #include "extnsionst.h" + #include "colormapst.h" + #include "cursorstr.h" + #include "scrnintstr.h" + #include "servermd.h" + #define _XF86RUSH_SERVER_ + #include "xf86rushstr.h" + #include "swaprep.h" + #include "../hw/xfree86/common/xf86.h" + #include + + #include + #include "../os/osdep.h" + #include + #ifndef ESIX + #ifndef Lynx + #include + #else + #include + #endif + #else + #include + #endif + + extern int xf86ScreenIndex; + static unsigned char RushReqCode = 0; + static int RushErrorBase; + + static DISPATCH_PROC(ProcXF86RushDispatch); + static DISPATCH_PROC(ProcRushQueryVersion); + static DISPATCH_PROC(ProcRushLockPixmap); + static DISPATCH_PROC(ProcRushUnlockPixmap); + static DISPATCH_PROC(ProcRushUnlockAllPixmaps); + + static DISPATCH_PROC(SProcXF86RushDispatch); + + static void XF86RushResetProc( + #if NeedFunctionPrototypes + ExtensionEntry* /* extEntry */ + #endif + ); + + void + XFree86RushExtensionInit() + { + ExtensionEntry* extEntry; + + if ( + (extEntry = AddExtension(XF86RUSHNAME, + XF86RushNumberEvents, + XF86RushNumberErrors, + ProcXF86RushDispatch, + SProcXF86RushDispatch, + XF86RushResetProc, + StandardMinorOpcode))) { + RushReqCode = (unsigned char)extEntry->base; + RushErrorBase = extEntry->errorBase; + } + } + + /*ARGSUSED*/ + static void + XF86RushResetProc (extEntry) + ExtensionEntry* extEntry; + { + } + + static int + ProcRushQueryVersion(client) + register ClientPtr client; + { + xXF86RushQueryVersionReply rep; + register int n; + + REQUEST_SIZE_MATCH(xXF86RushQueryVersionReq); + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; + rep.majorVersion = XF86RUSH_MAJOR_VERSION; + rep.minorVersion = XF86RUSH_MINOR_VERSION; + if (client->swapped) { + swaps(&rep.sequenceNumber, n); + swapl(&rep.length, n); + } + WriteToClient(client, sizeof(xXF86RushQueryVersionReply), (char *)&rep); + return (client->noClientException); + } + + static int + ProcXF86RushLockPixmap(client) + register ClientPtr client; + { + REQUEST(xXF86RushLockPixmapReq); + xXF86RushLockPixmapReply rep; + ScrnInfoPtr vptr; + PixmapPtr pix; + void *handle; + void *(*func)(); + + if (stuff->screen > screenInfo.numScreens) + return BadValue; + + vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; + + REQUEST_SIZE_MATCH(xXF86RushLockPixmapReq); + rep.type = X_Reply; + rep.length = 0; + rep.sequenceNumber = client->sequence; + pix = (PixmapPtr)SecurityLookupIDByType(client, + stuff->pixmap, RT_PIXMAP, + SecurityReadAccess); + handle=dlopen(0, 0); + if (handle) { + func=(void*(*)())dlsym(handle, "xf86LockPixmap"); + dlclose(handle); + } + if (handle && func) rep.addr=(int)func(pix); + else rep.addr = 0; + + WriteToClient(client, SIZEOF(xXF86RushLockPixmapReply), (char*)&rep); + return client->noClientException; + } + + static int + ProcXF86RushUnlockPixmap(client) + register ClientPtr client; + { + REQUEST(xXF86RushUnlockPixmapReq); + ScrnInfoPtr vptr; + PixmapPtr pix; + void *handle; + void (*func)(); + + if (stuff->screen > screenInfo.numScreens) + return BadValue; + + vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; + REQUEST_SIZE_MATCH(xXF86RushUnlockPixmapReq); + pix = (PixmapPtr)SecurityLookupIDByType(client, + stuff->pixmap, RT_PIXMAP, + SecurityReadAccess); + handle=dlopen(0, 0); + if (handle) { + func=(void(*)())dlsym(handle, "xf86UnlockPixmap"); + dlclose(handle); + } + if (handle && func) func(pix); + return client->noClientException; + } + + static int + ProcXF86RushUnlockAllPixmaps(client) + register ClientPtr client; + { + void *handle; + void (*func)(); + + REQUEST(xXF86RushUnlockAllPixmapsReq); + REQUEST_SIZE_MATCH(xXF86RushUnlockAllPixmapsReq); + handle=dlopen(0, 0); + if (handle) { + func=(void(*)())dlsym(handle, "xf86UnlockAllPixmaps"); + dlclose(handle); + } + if (handle && func) func(); + return client->noClientException; + } + + ProcXF86RushDispatch (client) + register ClientPtr client; + { + REQUEST(xReq); + + if (!LocalClient(client)) + return RushErrorBase + XF86RushClientNotLocal; + + switch (stuff->data) + { + case X_XF86RushQueryVersion: + return ProcRushQueryVersion(client); + case X_XF86RushLockPixmap: + return ProcXF86RushLockPixmap(client); + case X_XF86RushUnlockPixmap: + return ProcXF86RushUnlockPixmap(client); + case X_XF86RushUnlockAllPixmaps: + return ProcXF86RushUnlockAllPixmaps(client); + default: + return BadRequest; + } + } + + SProcXF86RushDispatch (client) + register ClientPtr client; + { + REQUEST(xReq); + + return RushErrorBase + XF86RushClientNotLocal; + } + diff -c -N -r xc.old/programs/Xserver/hw/xfree86/LinkKit/Imakefile ./hw/xfree86/LinkKit/Imakefile *** xc.old/programs/Xserver/hw/xfree86/LinkKit/Imakefile Sun Jan 12 02:41:28 1997 --- xc/programs/Xserver/hw/xfree86/LinkKit/Imakefile Sun Apr 4 18:13:41 1999 *************** *** 73,78 **** --- 73,79 ---- LimitBoolean("BuildXF86VidModeExt", NO, BuildXF86VidModeExt) >> $@ LimitBoolean("BuildXF86MiscExt", NO, BuildXF86MiscExt) >> $@ LimitBoolean("BuildXF86DGA", NO, BuildXF86DGA) >> $@ + LimitBoolean("BuildXF86RushExt", NO, BuildXF86RushExt) >> $@ LimitBoolean("BuildDPMSExt", BuildDPMSExt, BuildDPMSExt) >> $@ clean:: diff -c -N -r xc.old/programs/Xserver/hw/xfree86/common/xf86Cursor.c ./hw/xfree86/common/xf86Cursor.c *** xc.old/programs/Xserver/hw/xfree86/common/xf86Cursor.c Sat Oct 31 12:13:18 1998 --- xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c Sun Apr 4 18:13:41 1999 *************** *** 138,143 **** --- 138,150 ---- Bool frameChanged = FALSE; ScrnInfoPtr pScr = XF86SCRNINFO(pScreen); + #ifdef XFreeXDGA + /* + * Since we're in DGA mode we need to trash this scroll request + */ + if (pScr->directMode&XF86DGADirectGraphics) + return; + #endif /* * check wether (x,y) belongs to the visual part of the screen * if not, change the base of the displayed frame accoring diff -c -N -r xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c ./hw/xfree86/vga256/drivers/apm/apm_cursor.c *** xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c Sun Jan 18 02:35:30 1998 --- xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_cursor.c Sun Apr 4 18:13:42 1999 *************** *** 23,29 **** #include "apm.h" static void ApmShowCursor(void); ! static void ApmHideCursor(void); static Bool ApmRealizeCursor(ScreenPtr pScr, CursorPtr pCurs); static Bool ApmUnrealizeCursor(ScreenPtr pScr, CursorPtr pCurs); static void ApmLoadCursorToCard(ScreenPtr pScr, CursorPtr pCurs, int x, int y); --- 23,29 ---- #include "apm.h" static void ApmShowCursor(void); ! void ApmHideCursor(void); static Bool ApmRealizeCursor(ScreenPtr pScr, CursorPtr pCurs); static Bool ApmUnrealizeCursor(ScreenPtr pScr, CursorPtr pCurs); static void ApmLoadCursorToCard(ScreenPtr pScr, CursorPtr pCurs, int x, int y); *************** *** 108,114 **** * This is also a local function, it's not called from outside. */ ! static void ApmHideCursor(void) { ApmCheckMMIO_Init(); --- 108,114 ---- * This is also a local function, it's not called from outside. */ ! void ApmHideCursor(void) { ApmCheckMMIO_Init(); diff -c -N -r xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c ./hw/xfree86/vga256/drivers/apm/apm_driver.c *** xc.old/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c Sun Feb 15 16:42:15 1998 --- xc/programs/Xserver/hw/xfree86/vga256/drivers/apm/apm_driver.c Sun Apr 4 18:13:42 1999 *************** *** 610,616 **** --- 610,624 ---- #ifdef XFreeXDGA if (vga256InfoRec.directMode&XF86DGADirectGraphics && !enter) + { + if (vgaHWCursor.Initialized == TRUE) + { + extern void ApmHideCursor(void); + ApmHideCursor(); + } return; + } + #endif if (enter) *************** *** 965,970 **** --- 973,985 ---- */ modinx(vgaIOBase + 4, 0x1c, 0x0f, (Base & 0x0f0000) >> 16); + #ifdef XFreeXDGA + if (vga256InfoRec.directMode & XF86DGADirectGraphics) { + /* Wait until vertical retrace is in progress. */ + while (inb(vgaIOBase + 0xA) & 0x08); + while (!(inb(vgaIOBase + 0xA) & 0x08)); + } + #endif } /* diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86cparea.c ./hw/xfree86/xaa/xf86cparea.c *** xc.old/programs/Xserver/hw/xfree86/xaa/xf86cparea.c Mon Nov 18 05:22:11 1996 --- xc/programs/Xserver/hw/xfree86/xaa/xf86cparea.c Tue Apr 6 23:51:36 1999 *************** *** 85,90 **** --- 85,92 ---- #include "xf86xaa.h" #include "xf86local.h" + #include "xf86Priv.h" + #include "xf86pcache.h" RegionPtr xf86CopyArea(pSrcDrawable, pDstDrawable, *************** *** 96,105 **** int width, height; int dstx, dsty; { ! if (pSrcDrawable->type == DRAWABLE_WINDOW ! && pDstDrawable->type == DRAWABLE_WINDOW) { return (*xf86GCInfoRec.cfbBitBltDispatch)( ! pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, xf86DoBitBlt, 0L); } --- 98,110 ---- int width, height; int dstx, dsty; { ! if ((pDstDrawable->type == DRAWABLE_WINDOW) && ! ((pSrcDrawable->type == DRAWABLE_WINDOW) || ! ((xf86AccelInfoRec.Flags & PIXMAP_CACHE) && ! (pSrcDrawable->type == DRAWABLE_PIXMAP) && ! xf86CacheIsLocked((PixmapPtr)pSrcDrawable)))) { return (*xf86GCInfoRec.cfbBitBltDispatch)( ! pSrcDrawable, pDstDrawable, pGC, srcx, srcy, width, height, dstx, dsty, xf86DoBitBlt, 0L); } *************** *** 132,137 **** --- 137,154 ---- int xdir; /* 1 = left right, -1 = right left/ */ int ydir; /* 1 = top down, -1 = bottom up */ int careful; + extern CacheInfoPtr xf86CacheInfo; + int i, slot; + + /* Handle locked pixmaps just like screen to screen blits */ + if (pSrc->type==DRAWABLE_PIXMAP) { + slot=((xf86PixPrivPtr)((PixmapPtr)pSrc)->devPrivates[xf86PixmapIndex].ptr)->slot; + pptTmp=pptSrc; + for (i=0; ix+=xf86CacheInfo[slot].x; + pptTmp->y+=xf86CacheInfo[slot].y; + } + } /* XXX we have to err on the side of safety when both are windows, * because we don't know if IncludeInferiors is being used. diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.c ./hw/xfree86/xaa/xf86pcache.c *** xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.c Sun Feb 8 07:36:25 1998 --- xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.c Tue Apr 13 12:21:33 1999 *************** *** 127,144 **** CacheInfoPtr xf86CacheInfo = NULL; static int MaxSlot; static int MaxWidth; static int MaxHeight; static unsigned int pixmap_cache_clock = 1; static int FirstWideSlot; static int MaxWideSlotHeight; void xf86InitPixmapCacheSlots() { ScrnInfoPtr infoRec; int memoryStart, memoryEnd; ! int width_in_bytes, cache_start_y, i; ! int height_left, standard_slots, wide_slots, wide_slot_width; infoRec = xf86AccelInfoRec.ServerInfoRec; memoryStart = xf86AccelInfoRec.PixmapCacheMemoryStart; --- 127,147 ---- CacheInfoPtr xf86CacheInfo = NULL; static int MaxSlot; + static int MaxBigSlot; static int MaxWidth; static int MaxHeight; static unsigned int pixmap_cache_clock = 1; static int FirstWideSlot; + static int FirstBigSlot; static int MaxWideSlotHeight; + static int cache_start_y; void xf86InitPixmapCacheSlots() { ScrnInfoPtr infoRec; int memoryStart, memoryEnd; ! int width_in_bytes, i; ! int height_left, standard_slots, wide_slots, wide_slot_width, big_slots; infoRec = xf86AccelInfoRec.ServerInfoRec; memoryStart = xf86AccelInfoRec.PixmapCacheMemoryStart; *************** *** 228,236 **** } } MaxSlot = standard_slots + wide_slots - 1; ! xf86CacheInfo = (CacheInfoPtr)xcalloc(MaxSlot + 1, sizeof(CacheInfo)); FirstWideSlot = standard_slots; ErrorF("%s %s: XAA: Using %d %dx%d ", XCONFIG_PROBED, infoRec->name, standard_slots, MaxWidth, MaxHeight); --- 231,243 ---- } } + /* Arbitrarily say you can have 10 big slots */ + big_slots = 10; MaxSlot = standard_slots + wide_slots - 1; ! MaxBigSlot = MaxSlot + big_slots; ! xf86CacheInfo = (CacheInfoPtr)xcalloc(MaxBigSlot + 1, sizeof(CacheInfo)); FirstWideSlot = standard_slots; + FirstBigSlot = standard_slots + wide_slots; ErrorF("%s %s: XAA: Using %d %dx%d ", XCONFIG_PROBED, infoRec->name, standard_slots, MaxWidth, MaxHeight); *************** *** 255,261 **** xf86CacheInfo[i + standard_slots].cache_height = min(32, height_left); } ! for (i = 0; i <= MaxSlot; i++) { xf86CacheInfo[i].id = -1; xf86CacheInfo[i].lru = pixmap_cache_clock; xf86CacheInfo[i].fg_color = 0; --- 262,268 ---- xf86CacheInfo[i + standard_slots].cache_height = min(32, height_left); } ! for (i = 0; i <= MaxBigSlot; i++) { xf86CacheInfo[i].id = -1; xf86CacheInfo[i].lru = pixmap_cache_clock; xf86CacheInfo[i].fg_color = 0; *************** *** 315,321 **** #ifdef PIXPRIV devPriv = (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr); ! if (devPriv->slot == MaxSlot + 1) /* * Special value indicates that this pattern was found to be * non-cachable. --- 322,328 ---- #ifdef PIXPRIV devPriv = (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr); ! if (devPriv->slot == MaxBigSlot + 1) /* * Special value indicates that this pattern was found to be * non-cachable. *************** *** 344,350 **** * pattern, but can't, and ScreenToScreencopy doesn't have * the required support for transparency. */ ! devPriv->slot = MaxSlot + 1; return 0; } devPriv->slot = slot; --- 351,357 ---- * pattern, but can't, and ScreenToScreencopy doesn't have * the required support for transparency. */ ! devPriv->slot = MaxBigSlot + 1; return 0; } devPriv->slot = slot; *************** *** 893,898 **** --- 900,906 ---- pci->flags = 0; pci->lru = pixmap_cache_clock; pci->id = pix->drawable.serialNumber; + pci->locked = FALSE; reducible_status = TILE_UNKNOWN; *************** *** 1303,1305 **** --- 1311,1483 ---- return (pix->drawable.width <= MaxWidth && pix->drawable.height <= MaxHeight); } + + /* Rush extension support */ + + int testOverlap(pcipix) + CacheInfoPtr pcipix; + { + int slot; + CacheInfoPtr pcitest; + + for (slot=FirstBigSlot; slot<=MaxBigSlot; slot++) { + if (xf86CacheInfo[slot].id>0) { + pcitest=&xf86CacheInfo[slot]; + if (!((pcipix->x+pcipix->wx || + pcipix->x>pcitest->x+pcitest->w) && + (pcipix->y+pcipix->hy || + pcipix->y>pcitest->y+pcitest->w))) + return 1; + } + } + return 0; + } + + + /* + Dividing up the extra memory among X and Glide is difficult. + We'll take what we're given and then try to stick up to big_slots + pixmaps within it. big_slots should be small to keep this efficient. + To fit the pixmap we'll try to put it next to and below each + existing pixmap. Then we'll check if it overlaps anything. + */ + static int + findPosition(pci, pix) + CacheInfoPtr pci; + PixmapPtr pix; + { + int slot, bestx, besty; + + bestx=-2; + for (slot=FirstBigSlot; slot<=MaxBigSlot; slot++) { + if (xf86CacheInfo[slot].id>0) { + if (bestx==-2) bestx==-1; + /* Check for fit to right */ + pci->x=xf86CacheInfo[slot].x+xf86CacheInfo[slot].w; + pci->y=xf86CacheInfo[slot].y; + if (bestx<0 || (bestx+besty>pci->x+pci->y)) { + if (!testOverlap(pci, &xf86CacheInfo[slot])) { + bestx=pci->x; + besty=pci->y; + } + } + /* Check for fit below */ + pci->x=xf86CacheInfo[slot].x; + pci->y=xf86CacheInfo[slot].y+xf86CacheInfo[slot].h; + if (bestx<0 || (bestx+besty>pci->x+pci->y)) { + if (!testOverlap(pci, &xf86CacheInfo[slot])) { + bestx=pci->x; + besty=pci->y; + } + } + } + } + if (bestx==-2) { /* Nothing in the list yet */ + bestx=0; + besty=cache_start_y+MaxHeight; + } + if (bestx==-1) { /* Doesn't fit */ + return 0; + } + pci->x=bestx; + pci->y=besty; + } + + void * + xf86LockPixmap(pix) + PixmapPtr pix; + { + xf86PixPrivPtr devPriv = + (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr); + int slot, size; + ScrnInfoPtr infoRec; + CacheInfoPtr pci; + + switch (xf86AccelInfoRec.BitsPerPixel) { + case 8: + size=1; + break; + case 16: + size=2; + break; + case 24: + size=3; + break; + case 32: + size=4; + break; + case 1: + case 4: + default: + return 0; + } + for (slot=FirstBigSlot; slotslot = slot; + /* Fill in the cache entry */ + pci = &xf86CacheInfo[devPriv->slot]; + pci->pix_w = pix->drawable.width; + pci->pix_h = pix->drawable.height; + pci->nx = 1; + pci->ny = 1; + pci->w = pci->pix_w; + pci->h = pci->pix_h; + pci->fg_color = 0; + pci->bg_color = 0; + pci->flags = 0; + pci->lru = pixmap_cache_clock; + pci->locked = TRUE; + /* Assign X & Y position */ + if (!findPosition(pci, pix)) return 0; + pci->id = pix->drawable.serialNumber; + xf86AccelInfoRec.ImageWrite(pci->x, pci->y, pci->pix_w, pci->pix_h, + pix->devPrivate.ptr, pix->devKind, GXcopy, + 0xFFFFFFFF); + infoRec=xf86AccelInfoRec.ServerInfoRec; + return (void*)(infoRec->physBase + + (xf86CacheInfo[slot].x + + xf86CacheInfo[slot].y*infoRec->displayWidth) * size); + } + + void + xf86UnlockPixmap(pix) + PixmapPtr pix; + { + xf86PixPrivPtr devPriv = + (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr); + if (devPriv->slot<0) return; + xf86CacheInfo[devPriv->slot].locked = FALSE; + xf86CacheInfo[devPriv->slot].id = -1; + devPriv->slot = 0; + } + + void + xf86UnlockAllPixmaps() + { + int i; + + for (i=FirstBigSlot; i<=MaxBigSlot; i++) { + if (xf86CacheInfo[i].id>0 && xf86CacheInfo[i].locked) { + xf86CacheInfo[i].locked = FALSE; + xf86CacheInfo[i].id = -1; + } + } + } + + int + xf86CacheIsLocked(pix) + PixmapPtr pix; + { + xf86PixPrivPtr devPriv = + (xf86PixPrivPtr)(pix->devPrivates[xf86PixmapIndex].ptr); + int slot; + + slot=devPriv->slot; + if (slotMaxBigSlot) return 0; + return xf86CacheInfo[slot].locked; + } + diff -c -N -r xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.h ./hw/xfree86/xaa/xf86pcache.h *** xc.old/programs/Xserver/hw/xfree86/xaa/xf86pcache.h Fri Jan 17 22:57:28 1997 --- xc/programs/Xserver/hw/xfree86/xaa/xf86pcache.h Sun Apr 4 18:13:42 1999 *************** *** 19,24 **** --- 19,25 ---- int pattern0; /* if fixed pattern, pattern 0 register contents */ int pattern1; /* if fixed pattern, pattern 1 register contents */ unsigned int lru; /* lru counter */ + Bool locked; } CacheInfo, *CacheInfoPtr; #ifdef PIXPRIV *************** *** 43,45 **** --- 44,47 ---- void xf86InitPixmapCacheSlots(); void xf86InvalidatePixmapCache(); + diff -c -N -r xc.old/programs/Xserver/mi/Imakefile ./mi/Imakefile *** xc.old/programs/Xserver/mi/Imakefile Sat May 3 02:50:45 1997 --- xc/programs/Xserver/mi/Imakefile Sun Apr 4 18:13:42 1999 *************** *** 32,38 **** * Make sure XINPUT, XF86VidTune, etc aren't defined for the miinitext.o * used by Xnest, Xvfb */ ! EXT_DEFINES = ExtensionDefines -UXINPUT -UXF86VIDMODE -UXFreeXDGA -UXF86MISC #else EXT_DEFINES = ExtensionDefines #endif --- 32,39 ---- * Make sure XINPUT, XF86VidTune, etc aren't defined for the miinitext.o * used by Xnest, Xvfb */ ! EXT_DEFINES = ExtensionDefines -UXINPUT -UXF86VIDMODE -UXFreeXDGA -UXF86MISC \ ! -UXFreeXRUSH #else EXT_DEFINES = ExtensionDefines #endif diff -c -N -r xc.old/programs/Xserver/mi/miinitext.c ./mi/miinitext.c *** xc.old/programs/Xserver/mi/miinitext.c Thu May 22 07:00:46 1997 --- xc/programs/Xserver/mi/miinitext.c Sun Apr 4 18:13:42 1999 *************** *** 155,160 **** --- 155,163 ---- #ifdef XFreeXDGA extern void XFree86DGAExtensionInit(INITARGS); #endif + #ifdef XFreeXRUSH + extern void XFree86RushExtensionInit(INITARGS); + #endif #ifdef DPMSExtension extern void DPMSExtensionInit(INITARGS); #endif *************** *** 264,269 **** --- 267,275 ---- #endif #if defined(XFreeXDGA) && !defined(PRINT_ONLY_SERVER) XFree86DGAExtensionInit(); + #endif + #if defined(XFreeXRUSH) && !defined(PRINT_ONLY_SERVER) + XFree86RushExtensionInit(); #endif #if defined(DPMSExtension) && !defined(PRINT_ONLY_SERVER) DPMSExtensionInit();