[PATCH 38/42] Add localOnly argument to AddExtension

Daniel Stone daniel at fooishbar.org
Fri Dec 2 03:27:46 PST 2011


Does what it says on the box (or will, next commit): specifies if the
extension should be enabled for local clients only.  Marked SHM, DRI and
DRI2 as the only extensions requiring local clients.

Signed-off-by: Daniel Stone <daniel at fooishbar.org>
Reviewed-by: Jamey Sharp <jamey at minilop.net>
---
 Xext/bigreq.c                 |    2 +-
 Xext/dpms.c                   |    2 +-
 Xext/geext.c                  |    2 +-
 Xext/panoramiX.c              |    2 +-
 Xext/saver.c                  |    2 +-
 Xext/security.c               |    2 +-
 Xext/shape.c                  |    2 +-
 Xext/shm.c                    |    2 +-
 Xext/sync.c                   |    2 +-
 Xext/xcmisc.c                 |    2 +-
 Xext/xf86bigfont.c            |    2 +-
 Xext/xres.c                   |    2 +-
 Xext/xselinux_ext.c           |    2 +-
 Xext/xtest.c                  |    2 +-
 Xext/xvmain.c                 |    2 +-
 Xext/xvmc.c                   |    2 +-
 Xi/extinit.c                  |    3 ++-
 composite/compext.c           |    2 +-
 damageext/damageext.c         |    3 ++-
 dbe/dbe.c                     |    2 +-
 dix/extension.c               |    3 ++-
 doc/Xserver-spec.xml          |    4 +++-
 glx/glxext.c                  |    2 +-
 hw/dmx/dmx.c                  |    2 +-
 hw/dmx/glxProxy/glxext.c      |    2 +-
 hw/kdrive/ephyr/ephyrdriext.c |    3 ++-
 hw/xfree86/common/xf86DGA.c   |    3 ++-
 hw/xfree86/common/xf86vmode.c |    3 ++-
 hw/xfree86/dri/xf86dri.c      |    3 ++-
 hw/xfree86/dri2/dri2ext.c     |    3 ++-
 hw/xquartz/applewm.c          |    3 ++-
 hw/xquartz/pseudoramiX.c      |    3 ++-
 hw/xquartz/xpr/appledri.c     |    3 ++-
 hw/xwin/winwindowswm.c        |    3 ++-
 include/extnsionst.h          |    4 +++-
 randr/randr.c                 |    2 +-
 randr/rrxinerama.c            |    3 ++-
 record/record.c               |    3 ++-
 render/render.c               |    2 +-
 xfixes/xfixes.c               |    3 ++-
 xkb/xkb.c                     |    3 ++-
 41 files changed, 61 insertions(+), 41 deletions(-)

diff --git a/Xext/bigreq.c b/Xext/bigreq.c
index 0f644d6..42700a5 100644
--- a/Xext/bigreq.c
+++ b/Xext/bigreq.c
@@ -71,5 +71,5 @@ BigReqExtensionInit(void)
 {
     AddExtension(XBigReqExtensionName, 0, 0,
 		 ProcBigReqDispatch, ProcBigReqDispatch,
-		 NULL, StandardMinorOpcode);
+		 NULL, StandardMinorOpcode, FALSE);
 }
diff --git a/Xext/dpms.c b/Xext/dpms.c
index c8ba904..19bc3bc 100644
--- a/Xext/dpms.c
+++ b/Xext/dpms.c
@@ -363,5 +363,5 @@ DPMSExtensionInit(void)
 {
     AddExtension(DPMSExtensionName, 0, 0,
 		 ProcDPMSDispatch, SProcDPMSDispatch,
-		 NULL, StandardMinorOpcode);
+		 NULL, StandardMinorOpcode, FALSE);
 }
diff --git a/Xext/geext.c b/Xext/geext.c
index 608dc8b..72eb62e 100644
--- a/Xext/geext.c
+++ b/Xext/geext.c
@@ -215,7 +215,7 @@ GEExtensionInit(void)
     if((extEntry = AddExtension(GE_NAME,
                         0, GENumberErrors,
                         ProcGEDispatch, SProcGEDispatch,
-                        GEResetProc, StandardMinorOpcode)) != 0)
+                        GEResetProc, StandardMinorOpcode, FALSE)) != 0)
     {
         memset(GEExtensions, 0, sizeof(GEExtensions));
 
diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 6731214..72a9260 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -471,7 +471,7 @@ void PanoramiXExtensionInit(void)
 	extEntry = AddExtension(PANORAMIX_PROTOCOL_NAME, 0,0, 
 				ProcPanoramiXDispatch,
 				SProcPanoramiXDispatch, PanoramiXResetProc, 
-				StandardMinorOpcode);
+				StandardMinorOpcode, FALSE);
 	if (!extEntry)
 	    break;
 
diff --git a/Xext/saver.c b/Xext/saver.c
index f76e1dd..cfe09e1 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -1493,7 +1493,7 @@ ScreenSaverExtensionInit(void)
     if (AttrType && SaverEventType && SuspendType &&
 	(extEntry = AddExtension(ScreenSaverName, ScreenSaverNumberEvents, 0,
 				 ProcScreenSaverDispatch, SProcScreenSaverDispatch,
-				 NULL, StandardMinorOpcode)))
+				 NULL, StandardMinorOpcode, FALSE)))
     {
 	ScreenSaverEventBase = extEntry->eventBase;
 	EventSwapVector[ScreenSaverEventBase] = (EventSwapPtr) SScreenSaverNotifyEvent;
diff --git a/Xext/security.c b/Xext/security.c
index 6f28e14..f7320a4 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -1124,7 +1124,7 @@ SecurityExtensionInit(void)
     extEntry = AddExtension(SECURITY_EXTENSION_NAME,
 			    XSecurityNumberEvents, XSecurityNumberErrors,
 			    ProcSecurityDispatch, SProcSecurityDispatch,
-                            SecurityResetProc, StandardMinorOpcode);
+                            SecurityResetProc, StandardMinorOpcode, FALSE);
 
     SecurityErrorBase = extEntry->errorBase;
     SecurityEventBase = extEntry->eventBase;
diff --git a/Xext/shape.c b/Xext/shape.c
index 624c686..ca41f46 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -1236,7 +1236,7 @@ ShapeExtensionInit(void)
     if (ClientType && ShapeEventType &&
 	(extEntry = AddExtension(SHAPENAME, ShapeNumberEvents, 0,
 				 ProcShapeDispatch, SProcShapeDispatch,
-				 NULL, StandardMinorOpcode)))
+				 NULL, StandardMinorOpcode, FALSE)))
     {
 	ShapeEventBase = extEntry->eventBase;
 	EventSwapVector[ShapeEventBase] = (EventSwapPtr) SShapeNotifyEvent;
diff --git a/Xext/shm.c b/Xext/shm.c
index 5d5153f..ffc5a4f 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -1303,7 +1303,7 @@ ShmExtensionInit(void)
     if (ShmSegType &&
 	(extEntry = AddExtension(SHMNAME, ShmNumberEvents, ShmNumberErrors,
 				 ProcShmDispatch, SProcShmDispatch,
-				 ShmResetProc, StandardMinorOpcode)))
+				 ShmResetProc, StandardMinorOpcode, TRUE)))
     {
 	ShmReqCode = (unsigned char)extEntry->base;
 	ShmCompletionCode = extEntry->eventBase;
diff --git a/Xext/sync.c b/Xext/sync.c
index 766e421..6a0067a 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -2589,7 +2589,7 @@ SyncExtensionInit(void)
 				 XSyncNumberEvents, XSyncNumberErrors,
 				 ProcSyncDispatch, SProcSyncDispatch,
 				 SyncResetProc,
-				 StandardMinorOpcode)) == NULL)
+				 StandardMinorOpcode, FALSE)) == NULL)
     {
 	ErrorF("Sync Extension %d.%d failed to Initialise\n",
 		SYNC_MAJOR_VERSION, SYNC_MINOR_VERSION);
diff --git a/Xext/xcmisc.c b/Xext/xcmisc.c
index 8eff40e..9654283 100644
--- a/Xext/xcmisc.c
+++ b/Xext/xcmisc.c
@@ -192,5 +192,5 @@ XCMiscExtensionInit(void)
 {
     AddExtension(XCMiscExtensionName, 0, 0,
 		 ProcXCMiscDispatch, SProcXCMiscDispatch,
-		 NULL, StandardMinorOpcode);
+		 NULL, StandardMinorOpcode, FALSE);
 }
diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
index 544d57a..702a3d0 100644
--- a/Xext/xf86bigfont.c
+++ b/Xext/xf86bigfont.c
@@ -715,7 +715,7 @@ XFree86BigfontExtensionInit(void)
 		     ProcXF86BigfontDispatch,
 		     SProcXF86BigfontDispatch,
 		     XF86BigfontResetProc,
-		     StandardMinorOpcode)) {
+		     StandardMinorOpcode, FALSE)) {
 #ifdef HAS_SHM
 #ifdef MUST_CHECK_FOR_SHM_SYSCALL
 	/*
diff --git a/Xext/xres.c b/Xext/xres.c
index ea46925..0185ad4 100644
--- a/Xext/xres.c
+++ b/Xext/xres.c
@@ -359,5 +359,5 @@ ResExtensionInit(void)
 {
     (void) AddExtension(XRES_NAME, 0, 0,
                             ProcResDispatch, SProcResDispatch,
-                            NULL, StandardMinorOpcode);
+                            NULL, StandardMinorOpcode, FALSE);
 }
diff --git a/Xext/xselinux_ext.c b/Xext/xselinux_ext.c
index 6a55a64..17d3a4e 100644
--- a/Xext/xselinux_ext.c
+++ b/Xext/xselinux_ext.c
@@ -709,7 +709,7 @@ SELinuxExtensionInit(void)
     extEntry = AddExtension(SELINUX_EXTENSION_NAME,
 			    SELinuxNumberEvents, SELinuxNumberErrors,
 			    ProcSELinuxDispatch, SProcSELinuxDispatch,
-			    SELinuxResetProc, StandardMinorOpcode);
+			    SELinuxResetProc, StandardMinorOpcode, FALSE);
 
     AddExtensionAlias("Flask", extEntry);
 }
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 4e2f9c3..a0e1ec6 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -688,7 +688,7 @@ XTestExtensionInit(void)
 {
     AddExtension(XTestExtensionName, 0, 0,
             ProcXTestDispatch, SProcXTestDispatch,
-            XTestExtensionTearDown, StandardMinorOpcode);
+            XTestExtensionTearDown, StandardMinorOpcode, FALSE);
 
     xtest_evlist = InitEventList(GetMaximumEventsNum());
 }
diff --git a/Xext/xvmain.c b/Xext/xvmain.c
index d397ba6..d730093 100644
--- a/Xext/xvmain.c
+++ b/Xext/xvmain.c
@@ -179,7 +179,7 @@ XvExtensionInit(void)
 
       extEntry = AddExtension(XvName, XvNumEvents, XvNumErrors, 
 			      ProcXvDispatch, SProcXvDispatch,
-			      XvResetProc, StandardMinorOpcode);
+			      XvResetProc, StandardMinorOpcode, FALSE);
       if (!extEntry) 
 	{
 	  FatalError("XvExtensionInit: AddExtensions failed\n");
diff --git a/Xext/xvmc.c b/Xext/xvmc.c
index 7bb5507..5f6574f 100644
--- a/Xext/xvmc.c
+++ b/Xext/xvmc.c
@@ -686,7 +686,7 @@ XvMCExtensionInit(void)
 
    extEntry = AddExtension(XvMCName, XvMCNumEvents, XvMCNumErrors, 
                               ProcXvMCDispatch, SProcXvMCDispatch,
-                              NULL, StandardMinorOpcode);
+                              NULL, StandardMinorOpcode, FALSE);
 
    if(!extEntry) return;
   
diff --git a/Xi/extinit.c b/Xi/extinit.c
index d233067..435921c 100644
--- a/Xi/extinit.c
+++ b/Xi/extinit.c
@@ -1234,7 +1234,8 @@ XInputExtensionInit(void)
         FatalError("Failed to add callback to XI.\n");
 
     extEntry = AddExtension(INAME, IEVENTS, IERRORS, ProcIDispatch,
-			    SProcIDispatch, IResetProc, StandardMinorOpcode);
+			    SProcIDispatch, IResetProc, StandardMinorOpcode,
+			    FALSE);
     if (extEntry) {
 	IReqCode = extEntry->base;
 	IEventBase = extEntry->eventBase;
diff --git a/composite/compext.c b/composite/compext.c
index bba3605..497cb77 100644
--- a/composite/compext.c
+++ b/composite/compext.c
@@ -554,7 +554,7 @@ CompositeExtensionInit (void)
 
     extEntry = AddExtension (COMPOSITE_NAME, 0, 0,
 			     ProcCompositeDispatch, SProcCompositeDispatch,
-			     NULL, StandardMinorOpcode);
+			     NULL, StandardMinorOpcode, FALSE);
     if (!extEntry)
 	return;
     CompositeReqCode = (CARD8) extEntry->base;
diff --git a/damageext/damageext.c b/damageext/damageext.c
index b18785b..fbdac9e 100644
--- a/damageext/damageext.c
+++ b/damageext/damageext.c
@@ -505,7 +505,8 @@ DamageExtensionInit(void)
     if ((extEntry = AddExtension(DAMAGE_NAME, XDamageNumberEvents, 
 				 XDamageNumberErrors,
 				 ProcDamageDispatch, SProcDamageDispatch,
-				 DamageResetProc, StandardMinorOpcode)) != 0)
+				 DamageResetProc, StandardMinorOpcode,
+				 FALSE)) != 0)
     {
 	DamageReqCode = (unsigned char)extEntry->base;
 	DamageEventBase = extEntry->eventBase;
diff --git a/dbe/dbe.c b/dbe/dbe.c
index 7e1791f..12cea2b 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -1633,7 +1633,7 @@ DbeExtensionInit(void)
     /* Now add the extension. */
     extEntry = AddExtension(DBE_PROTOCOL_NAME, DbeNumberEvents, 
                             DbeNumberErrors, ProcDbeDispatch, SProcDbeDispatch,
-                            DbeResetProc, StandardMinorOpcode);
+                            DbeResetProc, StandardMinorOpcode, FALSE);
 
     dbeErrorBase = extEntry->errorBase;
     SetResourceTypeErrorValue(dbeWindowPrivResType, dbeErrorBase + DbeBadBuffer);
diff --git a/dix/extension.c b/dix/extension.c
index cc516b6..2e74bcc 100644
--- a/dix/extension.c
+++ b/dix/extension.c
@@ -75,7 +75,7 @@ AddExtension(const char *name, int NumEvents, int NumErrors,
 	     int (*MainProc)(ClientPtr c1), 
 	     int (*SwappedMainProc)(ClientPtr c2), 
 	     void (*CloseDownProc)(ExtensionEntry *e), 
-	     unsigned short (*MinorOpcodeProc)(ClientPtr c3))
+	     unsigned short (*MinorOpcodeProc)(ClientPtr c3), Bool localOnly)
 {
     int i;
     ExtensionEntry *ext, **newexts;
@@ -122,6 +122,7 @@ AddExtension(const char *name, int NumEvents, int NumErrors,
     ext->base = i + EXTENSION_BASE;
     ext->CloseDown = CloseDownProc;
     ext->MinorOpcode = MinorOpcodeProc;
+    ext->localOnly = localOnly;
     ProcVector[i + EXTENSION_BASE] = MainProc;
     SwappedProcVector[i + EXTENSION_BASE] = SwappedMainProc;
     if (NumEvents)
diff --git a/doc/Xserver-spec.xml b/doc/Xserver-spec.xml
index 2b11828..f497232 100644
--- a/doc/Xserver-spec.xml
+++ b/doc/Xserver-spec.xml
@@ -572,6 +572,7 @@ should be called by InitExtensions.
 		int (* SwappedMainProc)(ClientPtr);/*Called if client differs from server*/
 		void (* CloseDownProc)(ExtensionEntry *);
 		unsigned short (*MinorOpcodeProc)(ClientPtr);
+                Bool localOnly;
 
 </programlisting></blockquote>
 name is the name used by clients to refer to the extension.  NumEvents is the
@@ -583,7 +584,8 @@ CloseDownProc is called at server reset time to deallocate any private
 storage used by the extension.  MinorOpcodeProc is used by DIX to place the
 appropriate value into errors.  The DIX routine StandardMinorOpcode can be
 used here which takes the minor opcode from the normal place in the request
-(i.e. just after the major opcode).</para>
+(i.e. just after the major opcode).  If localOnly is true, this extension
+will not be reported to or accessible by remote clients.</para>
 </section>
 <section>
   <title>Macros and Other Helpers</title>
diff --git a/glx/glxext.c b/glx/glxext.c
index f3b054e..a21a2dd 100644
--- a/glx/glxext.c
+++ b/glx/glxext.c
@@ -354,7 +354,7 @@ void GlxExtensionInit(void)
     extEntry = AddExtension(GLX_EXTENSION_NAME, __GLX_NUMBER_EVENTS,
 			    __GLX_NUMBER_ERRORS, __glXDispatch,
 			    __glXDispatch, ResetExtension,
-			    StandardMinorOpcode);
+			    StandardMinorOpcode, FALSE);
     if (!extEntry) {
 	FatalError("__glXExtensionInit: AddExtensions failed\n");
 	return;
diff --git a/hw/dmx/dmx.c b/hw/dmx/dmx.c
index 16bf068..8da1f0e 100644
--- a/hw/dmx/dmx.c
+++ b/hw/dmx/dmx.c
@@ -1062,6 +1062,6 @@ void DMXExtensionInit(void)
     
     if ((extEntry = AddExtension(DMX_EXTENSION_NAME, 0, 0,
                                  ProcDMXDispatch, SProcDMXDispatch,
-                                 NULL, StandardMinorOpcode)))
+                                 NULL, StandardMinorOpcode, FALSE)))
 	DMXCode = extEntry->base;
 }
diff --git a/hw/dmx/glxProxy/glxext.c b/hw/dmx/glxProxy/glxext.c
index fddd58e..258643a 100644
--- a/hw/dmx/glxProxy/glxext.c
+++ b/hw/dmx/glxProxy/glxext.c
@@ -320,7 +320,7 @@ void GlxExtensionInit(void)
     extEntry = AddExtension(GLX_EXTENSION_NAME, __GLX_NUMBER_EVENTS,
 			    __GLX_NUMBER_ERRORS, __glXDispatch,
 			    __glXSwapDispatch, ResetExtension,
-			    StandardMinorOpcode);
+			    StandardMinorOpcode, FALSE);
     if (!extEntry) {
 	FatalError("__glXExtensionInit: AddExtensions failed\n");
 	return;
diff --git a/hw/kdrive/ephyr/ephyrdriext.c b/hw/kdrive/ephyr/ephyrdriext.c
index 0741a72..0bd11d2 100644
--- a/hw/kdrive/ephyr/ephyrdriext.c
+++ b/hw/kdrive/ephyr/ephyrdriext.c
@@ -1383,7 +1383,8 @@ ephyrDRIExtensionInit (ScreenPtr a_screen)
 				 ProcXF86DRIDispatch,
 				 SProcXF86DRIDispatch,
 				 NULL,
-				 StandardMinorOpcode))) {
+				 StandardMinorOpcode,
+				 TRUE))) {
 	DRIReqCode = (unsigned char)extEntry->base;
 	DRIErrorBase = extEntry->errorBase;
     } else {
diff --git a/hw/xfree86/common/xf86DGA.c b/hw/xfree86/common/xf86DGA.c
index 4aa9423..b983a9b 100644
--- a/hw/xfree86/common/xf86DGA.c
+++ b/hw/xfree86/common/xf86DGA.c
@@ -2226,7 +2226,8 @@ XFree86DGAExtensionInit(void)
 				ProcXDGADispatch,
 				SProcXDGADispatch,
 				XDGAResetProc,
-				StandardMinorOpcode))) {
+				StandardMinorOpcode,
+				TRUE))) {
 	int i;
 
 	DGAReqCode = (unsigned char)extEntry->base;
diff --git a/hw/xfree86/common/xf86vmode.c b/hw/xfree86/common/xf86vmode.c
index 6ae6472..2c5941b 100644
--- a/hw/xfree86/common/xf86vmode.c
+++ b/hw/xfree86/common/xf86vmode.c
@@ -2086,7 +2086,8 @@ XFree86VidModeExtensionInit(void)
 				ProcXF86VidModeDispatch,
 				SProcXF86VidModeDispatch,
 				NULL,
-				StandardMinorOpcode))) {
+				StandardMinorOpcode,
+				FALSE))) {
 #if 0
 	XF86VidModeReqCode = (unsigned char)extEntry->base;
 #endif
diff --git a/hw/xfree86/dri/xf86dri.c b/hw/xfree86/dri/xf86dri.c
index 58492ce..e9a592a 100644
--- a/hw/xfree86/dri/xf86dri.c
+++ b/hw/xfree86/dri/xf86dri.c
@@ -651,7 +651,8 @@ XFree86DRIExtensionInit(void)
 				 ProcXF86DRIDispatch,
 				 SProcXF86DRIDispatch,
 				 XF86DRIResetProc,
-				 StandardMinorOpcode))) {
+				 StandardMinorOpcode,
+				 TRUE))) {
 	DRIReqCode = (unsigned char)extEntry->base;
 	DRIErrorBase = extEntry->errorBase;
     }
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index 7f42133..64cd8bc 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -639,7 +639,8 @@ DRI2ExtensionInit(void)
 				 ProcDRI2Dispatch,
 				 SProcDRI2Dispatch,
 				 NULL,
-				 StandardMinorOpcode);
+				 StandardMinorOpcode,
+				 TRUE);
 
     DRI2EventBase = dri2Extension->eventBase;
 
diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c
index 55976c4..04dedf1 100644
--- a/hw/xquartz/applewm.c
+++ b/hw/xquartz/applewm.c
@@ -723,7 +723,8 @@ AppleWMExtensionInit(
                                  ProcAppleWMDispatch,
                                  SProcAppleWMDispatch,
                                  NULL,
-                                 StandardMinorOpcode)))
+                                 StandardMinorOpcode,
+                                 FALSE)))
     {
         size_t i;
         WMReqCode = (unsigned char)extEntry->base;
diff --git a/hw/xquartz/pseudoramiX.c b/hw/xquartz/pseudoramiX.c
index a4797e0..7e15333 100644
--- a/hw/xquartz/pseudoramiX.c
+++ b/hw/xquartz/pseudoramiX.c
@@ -136,7 +136,8 @@ void PseudoramiXExtensionInit(void)
                                 ProcPseudoramiXDispatch,
                                 SProcPseudoramiXDispatch,
                                 PseudoramiXResetProc,
-                                StandardMinorOpcode);
+                                StandardMinorOpcode,
+                                FALSE);
         if (!extEntry) {
             ErrorF("PseudoramiXExtensionInit(): AddExtension failed\n");
         } else {
diff --git a/hw/xquartz/xpr/appledri.c b/hw/xquartz/xpr/appledri.c
index 44c132a..a8d0e08 100644
--- a/hw/xquartz/xpr/appledri.c
+++ b/hw/xquartz/xpr/appledri.c
@@ -528,7 +528,8 @@ AppleDRIExtensionInit(void)
                                  ProcAppleDRIDispatch,
                                  SProcAppleDRIDispatch,
                                  AppleDRIResetProc,
-                                 StandardMinorOpcode))) {
+                                 StandardMinorOpcode,
+                                 TRUE))) {
         size_t i;
         DRIReqCode = (unsigned char)extEntry->base;
         DRIErrorBase = extEntry->errorBase;
diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
index 577614d..000ebff 100644
--- a/hw/xwin/winwindowswm.c
+++ b/hw/xwin/winwindowswm.c
@@ -627,7 +627,8 @@ winWindowsWMExtensionInit (void)
 			       ProcWindowsWMDispatch,
 			       SProcWindowsWMDispatch,
 			       NULL,
-			       StandardMinorOpcode)))
+			       StandardMinorOpcode,
+			       TRUE)))
     {
       size_t i;
       WMReqCode = (unsigned char)extEntry->base;
diff --git a/include/extnsionst.h b/include/extnsionst.h
index aeefa99..0902928 100644
--- a/include/extnsionst.h
+++ b/include/extnsionst.h
@@ -68,6 +68,7 @@ typedef struct _ExtensionEntry {
     int num_aliases;
     char **aliases;
     pointer extPrivate;
+    Bool localOnly;
     unsigned short (* MinorOpcode)(	/* called for errors */
 	ClientPtr /* client */);
     PrivateRec *devPrivates;
@@ -98,7 +99,8 @@ extern _X_EXPORT ExtensionEntry *AddExtension(
     int (* /*MainProc*/)(ClientPtr /*client*/),
     int (* /*SwappedMainProc*/)(ClientPtr /*client*/),
     void (* /*CloseDownProc*/)(ExtensionEntry * /*extension*/),
-    unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/)
+    unsigned short (* /*MinorOpcodeProc*/)(ClientPtr /*client*/),
+    Bool localOnly
 );
 
 extern _X_EXPORT Bool AddExtensionAlias(
diff --git a/randr/randr.c b/randr/randr.c
index 7f0ce67..a6eaba6 100644
--- a/randr/randr.c
+++ b/randr/randr.c
@@ -348,7 +348,7 @@ RRExtensionInit (void)
 	return;
     extEntry = AddExtension (RANDR_NAME, RRNumberEvents, RRNumberErrors,
 			     ProcRRDispatch, SProcRRDispatch,
-			     NULL, StandardMinorOpcode);
+			     NULL, StandardMinorOpcode, FALSE);
     if (!extEntry)
 	return;
     RRErrorBase = extEntry->errorBase;
diff --git a/randr/rrxinerama.c b/randr/rrxinerama.c
index 6d45190..1b6d7a8 100644
--- a/randr/rrxinerama.c
+++ b/randr/rrxinerama.c
@@ -462,5 +462,6 @@ RRXineramaExtensionInit(void)
 			ProcRRXineramaDispatch,
 			SProcRRXineramaDispatch,
 			NULL,
-			StandardMinorOpcode);
+			StandardMinorOpcode,
+			FALSE);
 }
diff --git a/record/record.c b/record/record.c
index 7cad2dd..05be52d 100644
--- a/record/record.c
+++ b/record/record.c
@@ -2914,7 +2914,8 @@ RecordExtensionInit(void)
 
     extentry = AddExtension(RECORD_NAME, RecordNumEvents, RecordNumErrors,
 			    ProcRecordDispatch, SProcRecordDispatch,
-			    RecordCloseDown, StandardMinorOpcode);
+			    RecordCloseDown, StandardMinorOpcode,
+			    FALSE);
     if (!extentry)
     {
 	DeleteCallback(&ClientStateCallback, RecordAClientStateChange, NULL);
diff --git a/render/render.c b/render/render.c
index f8aadf9..e4a18fa 100644
--- a/render/render.c
+++ b/render/render.c
@@ -255,7 +255,7 @@ RenderExtensionInit (void)
 
     extEntry = AddExtension (RENDER_NAME, 0, RenderNumberErrors,
 			     ProcRenderDispatch, SProcRenderDispatch,
-			     NULL, StandardMinorOpcode);
+			     NULL, StandardMinorOpcode, FALSE);
     if (!extEntry)
 	return;
     RenderErrBase = extEntry->errorBase;
diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c
index 1420684..b39bbcb 100644
--- a/xfixes/xfixes.c
+++ b/xfixes/xfixes.c
@@ -253,7 +253,8 @@ XFixesExtensionInit(void)
 	(extEntry = AddExtension(XFIXES_NAME, XFixesNumberEvents, 
 				 XFixesNumberErrors,
 				 ProcXFixesDispatch, SProcXFixesDispatch,
-				 XFixesResetProc, StandardMinorOpcode)) != 0)
+				 XFixesResetProc, StandardMinorOpcode,
+				 FALSE)) != 0)
     {
 	XFixesReqCode = (unsigned char)extEntry->base;
 	XFixesEventBase = extEntry->eventBase;
diff --git a/xkb/xkb.c b/xkb/xkb.c
index e3ab3d7..aaca459 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -6700,7 +6700,8 @@ XkbExtensionInit(void)
 
     if ((extEntry = AddExtension(XkbName, XkbNumberEvents, XkbNumberErrors,
 				 ProcXkbDispatch, SProcXkbDispatch,
-				 NULL, StandardMinorOpcode))) {
+				 NULL, StandardMinorOpcode,
+				 FALSE))) {
 	XkbReqCode = (unsigned char)extEntry->base;
 	XkbEventBase = (unsigned char)extEntry->eventBase;
 	XkbErrorBase = (unsigned char)extEntry->errorBase;
-- 
1.7.7.3



More information about the xorg-devel mailing list