[PATCH xserver 3/3] dpms: Consolidate a bunch of stuff into Xext/dpms.c

Adam Jackson ajax at redhat.com
Fri Mar 24 16:30:58 UTC 2017


Most of this is a legacy of the old "extmod" design where you could load
_some_ extensions dynamically but only if the server had been built with
support for them in the first place.

Note that since we now only initialize the DPMS extension if at least
one screen supports it, we no longer need DPMSCapableFlag: if it would
be false, we would never read its value.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 Xext/dpms.c                    | 28 +++++++++++++++++++---------
 Xext/dpmsproc.h                | 11 +++++++++--
 Xext/saver.c                   |  1 +
 dix/globals.c                  | 10 ----------
 dix/main.c                     | 13 +------------
 hw/xfree86/common/xf86Config.c |  4 +++-
 include/globals.h              | 10 ----------
 os/utils.c                     |  1 +
 8 files changed, 34 insertions(+), 44 deletions(-)

diff --git a/Xext/dpms.c b/Xext/dpms.c
index abc67ef..efa7154 100644
--- a/Xext/dpms.c
+++ b/Xext/dpms.c
@@ -43,6 +43,13 @@ Equipment Corporation.
 #include "scrnintstr.h"
 #include "windowstr.h"
 
+CARD16 DPMSPowerLevel = 0;
+Bool DPMSDisabledSwitch = FALSE;
+CARD32 DPMSStandbyTime;
+CARD32 DPMSSuspendTime;
+CARD32 DPMSOffTime;
+Bool DPMSEnabled;
+
 Bool
 DPMSSupported(void)
 {
@@ -136,7 +143,7 @@ ProcDPMSCapable(ClientPtr client)
         .type = X_Reply,
         .sequenceNumber = client->sequence,
         .length = 0,
-        .capable = DPMSCapableFlag
+        .capable = TRUE
     };
 
     REQUEST_SIZE_MATCH(xDPMSCapableReq);
@@ -204,11 +211,9 @@ ProcDPMSEnable(ClientPtr client)
 
     REQUEST_SIZE_MATCH(xDPMSEnableReq);
 
-    if (DPMSCapableFlag) {
-        DPMSEnabled = TRUE;
-        if (!was_enabled)
-            SetScreenSaverTimer();
-    }
+    DPMSEnabled = TRUE;
+    if (!was_enabled)
+        SetScreenSaverTimer();
 
     return Success;
 }
@@ -427,7 +432,12 @@ DPMSCloseDownExtension(ExtensionEntry *e)
 void
 DPMSExtensionInit(void)
 {
-    AddExtension(DPMSExtensionName, 0, 0,
-                 ProcDPMSDispatch, SProcDPMSDispatch,
-                 DPMSCloseDownExtension, StandardMinorOpcode);
+    DPMSStandbyTime = DPMSSuspendTime = DPMSOffTime = ScreenSaverTime;
+    DPMSPowerLevel = DPMSModeOn;
+    DPMSEnabled = DPMSSupported();
+
+    if (DPMSEnabled)
+        AddExtension(DPMSExtensionName, 0, 0,
+                     ProcDPMSDispatch, SProcDPMSDispatch,
+                     DPMSCloseDownExtension, StandardMinorOpcode);
 }
diff --git a/Xext/dpmsproc.h b/Xext/dpmsproc.h
index 82dccbd..1e24f1f 100644
--- a/Xext/dpmsproc.h
+++ b/Xext/dpmsproc.h
@@ -9,7 +9,14 @@
 
 #include "dixstruct.h"
 
-int _X_EXPORT DPMSSet(ClientPtr client, int level);
-Bool _X_EXPORT DPMSSupported(void);
+extern int DPMSSet(ClientPtr client, int level);
+extern Bool DPMSSupported(void);
+
+extern CARD32 DPMSStandbyTime;
+extern CARD32 DPMSSuspendTime;
+extern CARD32 DPMSOffTime;
+extern CARD16 DPMSPowerLevel;
+extern Bool DPMSEnabled;
+extern Bool DPMSDisabledSwitch;
 
 #endif
diff --git a/Xext/saver.c b/Xext/saver.c
index bf3a23d..0949761 100644
--- a/Xext/saver.c
+++ b/Xext/saver.c
@@ -53,6 +53,7 @@ in this Software without prior written authorization from the X Consortium.
 #endif
 #ifdef DPMSExtension
 #include <X11/extensions/dpmsconst.h>
+#include "dpmsproc.h"
 #endif
 #include "protocol-versions.h"
 
diff --git a/dix/globals.c b/dix/globals.c
index f36a938..acd5c44 100644
--- a/dix/globals.c
+++ b/dix/globals.c
@@ -93,16 +93,6 @@ CARD32 ScreenSaverInterval;
 int ScreenSaverBlanking;
 int ScreenSaverAllowExposures;
 
-#ifdef DPMSExtension
-CARD16 DPMSPowerLevel = 0;
-Bool DPMSDisabledSwitch = FALSE;
-Bool DPMSCapableFlag = FALSE;
-CARD32 DPMSStandbyTime;
-CARD32 DPMSSuspendTime;
-CARD32 DPMSOffTime;
-Bool DPMSEnabled;
-#endif
-
 CARD32 defaultScreenSaverTime = DEFAULT_SCREEN_SAVER_TIME;
 CARD32 defaultScreenSaverInterval = DEFAULT_SCREEN_SAVER_INTERVAL;
 int defaultScreenSaverBlanking = DEFAULT_SCREEN_SAVER_BLANKING;
diff --git a/dix/main.c b/dix/main.c
index 4947062..f98643a 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -148,11 +148,7 @@ dix_main(int argc, char *argv[], char *envp[])
         ScreenSaverInterval = defaultScreenSaverInterval;
         ScreenSaverBlanking = defaultScreenSaverBlanking;
         ScreenSaverAllowExposures = defaultScreenSaverAllowExposures;
-#ifdef DPMSExtension
-        DPMSStandbyTime = DPMSSuspendTime = DPMSOffTime = ScreenSaverTime;
-        DPMSEnabled = TRUE;
-        DPMSPowerLevel = 0;
-#endif
+
         InitBlockAndWakeupHandlers();
         /* Perform any operating system dependent initializations you'd like */
         OsInit();
@@ -239,13 +235,6 @@ dix_main(int argc, char *argv[], char *envp[])
                        defaultCursorFont);
         }
 
-#ifdef DPMSExtension
-        /* check all screens, looking for DPMS Capabilities */
-        DPMSCapableFlag = DPMSSupported();
-        if (!DPMSCapableFlag)
-            DPMSEnabled = FALSE;
-#endif
-
 #ifdef PANORAMIX
         /*
          * Consolidate window and colourmap information for each screen
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 49b898d..c2b522a 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -64,8 +64,10 @@
 #include "loaderProcs.h"
 
 #include "xkbsrv.h"
-
 #include "picture.h"
+#ifdef DPMSExtension
+#include "dpmsproc.h"
+#endif
 
 /*
  * These paths define the way the config file search is done.  The escape
diff --git a/include/globals.h b/include/globals.h
index 693bdf4..44314f0 100644
--- a/include/globals.h
+++ b/include/globals.h
@@ -26,16 +26,6 @@ extern _X_EXPORT char *SeatId;
 extern _X_EXPORT char *ConnectionInfo;
 extern _X_EXPORT sig_atomic_t inSignalContext;
 
-#ifdef DPMSExtension
-extern _X_EXPORT CARD32 DPMSStandbyTime;
-extern _X_EXPORT CARD32 DPMSSuspendTime;
-extern _X_EXPORT CARD32 DPMSOffTime;
-extern _X_EXPORT CARD16 DPMSPowerLevel;
-extern _X_EXPORT Bool DPMSEnabled;
-extern _X_EXPORT Bool DPMSDisabledSwitch;
-extern _X_EXPORT Bool DPMSCapableFlag;
-#endif
-
 #ifdef PANORAMIX
 extern _X_EXPORT Bool PanoramiXExtensionDisabledHack;
 #endif
diff --git a/os/utils.c b/os/utils.c
index ac55cd7..3f8bac5 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -135,6 +135,7 @@ Bool noDamageExtension = FALSE;
 Bool noDbeExtension = FALSE;
 #endif
 #ifdef DPMSExtension
+#include "dpmsproc.h"
 Bool noDPMSExtension = FALSE;
 #endif
 #ifdef GLXEXT
-- 
2.9.3



More information about the xorg-devel mailing list