[PATCH 37/37] Remove separate ExtensionToggle list from miinitext [WIP]
Jamey Sharp
jamey at minilop.net
Thu Jun 30 12:43:14 PDT 2011
I think the winwindowswm hunks belong in the previous patch, right?
Jamey
On Tue, Jun 28, 2011 at 08:27:53PM +0100, Daniel Stone wrote:
> miinitext.c had two duplicate extension + disable pointer lists, one of
> which was used for extension init, the other of which was used to toggle
> extensions on and off via the command line or xorg.conf. Merge these
> into one.
>
> WIP: This only works for static extensions, those added later (GLX,
> DGA, VidMode) or added by the DDX can't be enabled/disabled.
>
> Signed-off-by: Daniel Stone <daniel at fooishbar.org>
> ---
> hw/xwin/winwindowswm.c | 11 ---
> mi/miinitext.c | 159 +++++++++++++-----------------------------------
> 2 files changed, 43 insertions(+), 127 deletions(-)
>
> diff --git a/hw/xwin/winwindowswm.c b/hw/xwin/winwindowswm.c
> index 242a275..fb46187 100644
> --- a/hw/xwin/winwindowswm.c
> +++ b/hw/xwin/winwindowswm.c
> @@ -546,13 +546,6 @@ ProcWindowsWMDispatch (ClientPtr client)
> {
> case X_WindowsWMQueryVersion:
> return ProcWindowsWMQueryVersion(client);
> - }
> -
> - if (!LocalClient(client))
> - return WMErrorBase + WindowsWMClientNotLocal;
> -
> - switch (stuff->data)
> - {
> case X_WindowsWMSelectInput:
> return ProcWindowsWMSelectInput(client);
> case X_WindowsWMDisableUpdate:
> @@ -597,10 +590,6 @@ SProcWindowsWMDispatch (ClientPtr client)
> {
> REQUEST(xReq);
>
> - /* It is bound to be non-local when there is byte swapping */
> - if (!LocalClient(client))
> - return WMErrorBase + WindowsWMClientNotLocal;
> -
> /* only local clients are allowed WM access */
> switch (stuff->data)
> {
> diff --git a/mi/miinitext.c b/mi/miinitext.c
> index a59724b..6142f00 100644
> --- a/mi/miinitext.c
> +++ b/mi/miinitext.c
> @@ -276,122 +276,6 @@ extern void CompositeExtensionInit(void);
> #endif
> extern void GEExtensionInit(void);
>
> -/* The following is only a small first step towards run-time
> - * configurable extensions.
> - */
> -typedef struct {
> - char *name;
> - Bool *disablePtr;
> -} ExtensionToggle;
> -
> -static ExtensionToggle ExtensionToggleList[] =
> -{
> - /* sort order is extension name string as shown in xdpyinfo */
> - { "Generic Events", &noGEExtension },
> -#ifdef COMPOSITE
> - { "Composite", &noCompositeExtension },
> -#endif
> -#ifdef DAMAGE
> - { "DAMAGE", &noDamageExtension },
> -#endif
> -#ifdef DBE
> - { "DOUBLE-BUFFER", &noDbeExtension },
> -#endif
> -#ifdef DPMSExtension
> - { "DPMS", &noDPMSExtension },
> -#endif
> -#ifdef GLXEXT
> - { "GLX", &noGlxExtension },
> -#endif
> -#ifdef SCREENSAVER
> - { "MIT-SCREEN-SAVER", &noScreenSaverExtension },
> -#endif
> -#ifdef MITSHM
> - { SHMNAME, &noMITShmExtension },
> -#endif
> -#ifdef RANDR
> - { "RANDR", &noRRExtension },
> -#endif
> - { "RENDER", &noRenderExtension },
> -#ifdef XCSECURITY
> - { "SECURITY", &noSecurityExtension },
> -#endif
> -#ifdef RES
> - { "X-Resource", &noResExtension },
> -#endif
> -#ifdef XF86BIGFONT
> - { "XFree86-Bigfont", &noXFree86BigfontExtension },
> -#endif
> -#ifdef XFreeXDGA
> - { "XFree86-DGA", &noXFree86DGAExtension },
> -#endif
> -#ifdef XF86DRI
> - { "XFree86-DRI", &noXFree86DRIExtension },
> -#endif
> -#ifdef XF86VIDMODE
> - { "XFree86-VidModeExtension", &noXFree86VidModeExtension },
> -#endif
> -#ifdef XFIXES
> - { "XFIXES", &noXFixesExtension },
> -#endif
> -#ifdef PANORAMIX
> - { "XINERAMA", &noPanoramiXExtension },
> -#endif
> - { "XInputExtension", NULL },
> - { "XKEYBOARD", NULL },
> -#ifdef XSELINUX
> - { "SELinux", &noSELinuxExtension },
> -#endif
> - { "XTEST", &noTestExtensions },
> -#ifdef XV
> - { "XVideo", &noXvExtension },
> -#endif
> - { NULL, NULL }
> -};
> -
> -Bool EnableDisableExtension(char *name, Bool enable)
> -{
> - ExtensionToggle *ext = &ExtensionToggleList[0];
> -
> - for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
> - if (strcmp(name, ext->name) == 0) {
> - if (ext->disablePtr != NULL) {
> - *ext->disablePtr = !enable;
> - return TRUE;
> - } else {
> - /* Extension is always on, impossible to disable */
> - return enable; /* okay if they wanted to enable,
> - fail if they tried to disable */
> - }
> - }
> - }
> -
> - return FALSE;
> -}
> -
> -void EnableDisableExtensionError(char *name, Bool enable)
> -{
> - ExtensionToggle *ext = &ExtensionToggleList[0];
> - Bool found = FALSE;
> -
> - for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
> - if ((strcmp(name, ext->name) == 0) && (ext->disablePtr == NULL)) {
> - ErrorF("[mi] Extension \"%s\" can not be disabled\n", name);
> - found = TRUE;
> - break;
> - }
> - }
> - if (found == FALSE)
> - ErrorF("[mi] Extension \"%s\" is not recognized\n", name);
> - ErrorF("[mi] Only the following extensions can be run-time %s:\n",
> - enable ? "enabled" : "disabled");
> - for (ext = &ExtensionToggleList[0]; ext->name != NULL; ext++) {
> - if (ext->disablePtr != NULL) {
> - ErrorF("[mi] %s\n", ext->name);
> - }
> - }
> -}
> -
> /* List of built-in (statically linked) extensions */
> static ExtensionModule staticExtensions[] = {
> { GEExtensionInit, "Generic Event Extension", &noGEExtension },
> @@ -455,6 +339,49 @@ static ExtensionModule staticExtensions[] = {
> { NULL, NULL, NULL }
> };
>
> +Bool EnableDisableExtension(char *name, Bool enable)
> +{
> + ExtensionModule *ext;
> +
> + for (ext = &staticExtensions[0]; ext->name != NULL; ext++) {
> + if (strcmp(name, ext->name) == 0) {
> + if (ext->disablePtr != NULL) {
> + *ext->disablePtr = !enable;
> + return TRUE;
> + } else {
> + /* Extension is always on, impossible to disable */
> + return enable; /* okay if they wanted to enable,
> + fail if they tried to disable */
> + }
> + }
> + }
> +
> + return FALSE;
> +}
> +
> +void EnableDisableExtensionError(char *name, Bool enable)
> +{
> + ExtensionModule *ext;
> + Bool found = FALSE;
> +
> + for (ext = &staticExtensions[0]; ext->name != NULL; ext++) {
> + if ((strcmp(name, ext->name) == 0) && (ext->disablePtr == NULL)) {
> + ErrorF("[mi] Extension \"%s\" can not be disabled\n", name);
> + found = TRUE;
> + break;
> + }
> + }
> + if (found == FALSE)
> + ErrorF("[mi] Extension \"%s\" is not recognized\n", name);
> + ErrorF("[mi] Only the following extensions can be run-time %s:\n",
> + enable ? "enabled" : "disabled");
> + for (ext = &staticExtensions[0]; ext->name != NULL; ext++) {
> + if (ext->disablePtr != NULL) {
> + ErrorF("[mi] %s\n", ext->name);
> + }
> + }
> +}
> +
> static ExtensionModule *ExtensionModuleList = NULL;
> static int numExtensionModules = 0;
>
> --
> 1.7.5.4
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg-devel/attachments/20110630/f89f8c70/attachment.pgp>
More information about the xorg-devel
mailing list