Commit ebe00df3 authored by Mike Gabriel's avatar Mike Gabriel

imake cleanup: Drop all references to XdmxServer and BuildXdmx*.

parent b1fc73ad
...@@ -59,8 +59,6 @@ override_dh_install: ...@@ -59,8 +59,6 @@ override_dh_install:
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga1str.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86dga1str.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86mscstr.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xf86mscstr.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/dmxext.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/dmxproto.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/bigreqstr.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/bigreqstr.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xcmiscstr.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/xcmiscstr.h
rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XIproto.h rm -R debian/tmp/usr/include/$(DEB_BUILD_MULTIARCH)/nx/X11/extensions/XIproto.h
......
...@@ -465,7 +465,6 @@ The following variables are used by some part of the tree: ...@@ -465,7 +465,6 @@ The following variables are used by some part of the tree:
HtmlDir path used by Web server for HTML and RX docs HtmlDir path used by Web server for HTML and RX docs
CgiBinDir path used by Web server for CGI programs CgiBinDir path used by Web server for CGI programs
ProxyManager ICE network ID to contact a running proxymngr ProxyManager ICE network ID to contact a running proxymngr
XdmxServer build Distributed Multihead X server
Make Variables Make Variables
......
...@@ -138,18 +138,8 @@ XORGRELSTRING = XorgManVersionString ...@@ -138,18 +138,8 @@ XORGRELSTRING = XorgManVersionString
#ifndef BuildDocs #ifndef BuildDocs
#define BuildDocs !BuildServersOnly #define BuildDocs !BuildServersOnly
#endif #endif
#ifndef BuildDmx
#define BuildDmx NO
#endif
#ifndef XdmxServer
#define XdmxServer BuildDmx
#endif
#ifndef BuildLibrariesForDmx
#define BuildLibrariesForDmx XdmxServer
#endif
#ifndef BuildLibraries #ifndef BuildLibraries
#define BuildLibraries (!BuildServersOnly || BuildClients || \ #define BuildLibraries (!BuildServersOnly || BuildClients)
BuildLibrariesForDmx)
#endif #endif
#ifndef BuildLibrariesForXServers #ifndef BuildLibrariesForXServers
#define BuildLibrariesForXServers BuildServer #define BuildLibrariesForXServers BuildServer
...@@ -362,8 +352,7 @@ XORGRELSTRING = XorgManVersionString ...@@ -362,8 +352,7 @@ XORGRELSTRING = XorgManVersionString
#define BuildXInputExt NO #define BuildXInputExt NO
#endif #endif
#ifndef BuildXInputLib #ifndef BuildXInputLib
#define BuildXInputLib (BuildXInputExt && \ #define BuildXInputLib (BuildXInputExt && !BuildServersOnly)
(!BuildServersOnly || BuildLibrariesForDmx))
#endif #endif
#ifndef BuildEVI #ifndef BuildEVI
#define BuildEVI YES #define BuildEVI YES
...@@ -385,8 +374,7 @@ XORGRELSTRING = XorgManVersionString ...@@ -385,8 +374,7 @@ XORGRELSTRING = XorgManVersionString
#define BuildFontLib (BuildLibraries || BuildServer) #define BuildFontLib (BuildLibraries || BuildServer)
#else #else
#define BuildFontLib (BuildLibraries || \ #define BuildFontLib (BuildLibraries || \
(BuildServer && !DoLoadableServer) || \ (BuildServer && !DoLoadableServer) || XprtServer)
XprtServer || XdmxServer)
#endif #endif
#endif #endif
#ifndef BuildFontCache #ifndef BuildFontCache
...@@ -419,7 +407,6 @@ XORGRELSTRING = XorgManVersionString ...@@ -419,7 +407,6 @@ XORGRELSTRING = XorgManVersionString
#endif #endif
#ifndef BuildXKBlib #ifndef BuildXKBlib
#define BuildXKBlib (BuildXKB && (!BuildServersOnly || \ #define BuildXKBlib (BuildXKB && (!BuildServersOnly || \
XdmxServer || \
BuildXkbcomp )) BuildXkbcomp ))
#endif #endif
#ifndef BuildXKBuilib #ifndef BuildXKBuilib
...@@ -459,13 +446,6 @@ XORGRELSTRING = XorgManVersionString ...@@ -459,13 +446,6 @@ XORGRELSTRING = XorgManVersionString
#ifndef BuildXineramaLibrary #ifndef BuildXineramaLibrary
#define BuildXineramaLibrary (BuildXinerama) #define BuildXineramaLibrary (BuildXinerama)
#endif #endif
#ifndef BuildDmxDevelTools
#define BuildDmxDevelTools NO
#endif
#ifndef BuildDmxLibrary
#define BuildDmxLibrary (BuildDmx && \
(!BuildServersOnly || BuildDmxDevelTools))
#endif
#ifndef BuildXCSecurity #ifndef BuildXCSecurity
#define BuildXCSecurity YES #define BuildXCSecurity YES
#endif #endif
...@@ -550,8 +530,7 @@ XORGRELSTRING = XorgManVersionString ...@@ -550,8 +530,7 @@ XORGRELSTRING = XorgManVersionString
#define BuildXResExt NO #define BuildXResExt NO
#endif #endif
#ifndef BuildXResLibrary #ifndef BuildXResLibrary
#define BuildXResLibrary (BuildXResExt && \ #define BuildXResLibrary (BuildXResExt && !BuildServersOnly)
(!BuildServersOnly || BuildDmxDevelTools))
#endif #endif
#ifndef BuildXvExt #ifndef BuildXvExt
#define BuildXvExt NO #define BuildXvExt NO
...@@ -616,7 +595,7 @@ XORGRELSTRING = XorgManVersionString ...@@ -616,7 +595,7 @@ XORGRELSTRING = XorgManVersionString
#define BuildRender YES #define BuildRender YES
#endif #endif
#ifndef BuildRenderLibrary #ifndef BuildRenderLibrary
#define BuildRenderLibrary (XdmxServer || !BuildServersOnly) #define BuildRenderLibrary !BuildServersOnly
#endif #endif
#ifndef BuildXftLibrary #ifndef BuildXftLibrary
#define BuildXftLibrary BuildRenderLibrary #define BuildXftLibrary BuildRenderLibrary
...@@ -2516,30 +2495,6 @@ SharedLibReferences(XXF86DGA,NX_Xxf86dga,$(XXF86DGALIBSRC),SOXXF86DGAREV,SharedX ...@@ -2516,30 +2495,6 @@ SharedLibReferences(XXF86DGA,NX_Xxf86dga,$(XXF86DGALIBSRC),SOXXF86DGAREV,SharedX
ProjectUnsharedLibReferences(XXF86DGA,NX_Xxf86dga,$(XXF86DGALIBSRC),XBuildLibDir) ProjectUnsharedLibReferences(XXF86DGA,NX_Xxf86dga,$(XXF86DGALIBSRC),XBuildLibDir)
#endif #endif
#if BuildDmxLibrary
#ifndef SharedLibDmx
#define SharedLibDmx NO
#endif
#ifndef NormalLibDmx
#define NormalLibDmx YES
#endif
#ifndef DebugLibDmx
#define DebugLibDmx NO
#endif
#ifndef ProfileLibDmx
#define ProfileLibDmx NO
#endif
#else /* BuildDmxLibrary */
#undef SharedLibDmx
#define SharedLibDmx NO
#undef NormalLibDmx
#define NormalLibDmx NO
#undef DebugLibDmx
#define DebugLibDmx NO
#undef ProfileLibDmx
#define ProfileLibDmx NO
#endif /* BuildDmxLibrary */
XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush XXF86RUSHLIBSRC = $(LIBSRC)/Xxf86rush
#if SharedLibXxf86rush #if SharedLibXxf86rush
#ifndef SharedXxf86rushRev #ifndef SharedXxf86rushRev
...@@ -2592,16 +2547,6 @@ SharedLibReferences(XRES,NX_XRes,$(XRESLIBSRC),SOXRESREV,SharedXResRev) ...@@ -2592,16 +2547,6 @@ SharedLibReferences(XRES,NX_XRes,$(XRESLIBSRC),SOXRESREV,SharedXResRev)
ProjectUnsharedLibReferences(XRES,NX_XRes,$(XRESLIBSRC),XBuildLibDir) ProjectUnsharedLibReferences(XRES,NX_XRes,$(XRESLIBSRC),XBuildLibDir)
#endif #endif
DMXLIBSRC = $(LIBSRC)/dmx
#if SharedLibDmx
#ifndef SharedDmxRev
#define SharedDmxRev 1.0
#endif
SharedLibReferences(DMX,NX_dmx,$(DMXLIBSRC),SODMXREV,SharedDmxRev)
#else
ProjectUnsharedLibReferences(DMX,NX_dmx,$(DMXLIBSRC),XBuildLibDir)
#endif
DPSLIBSRC = $(LIBSRC)/dps DPSLIBSRC = $(LIBSRC)/dps
#if SharedLibDps #if SharedLibDps
#ifndef SharedDpsRev #ifndef SharedDpsRev
......
...@@ -76,13 +76,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ ...@@ -76,13 +76,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
#define XorgServer NO #define XorgServer NO
/* /*
* To enable building Xdmx, uncomment this.
*
#define XdmxServer YES
*/
#define XdmxServer NO
/*
* To disable building Xprt, uncomment this. * To disable building Xprt, uncomment this.
* *
#define XprtServer NO #define XprtServer NO
......
...@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ ...@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
*/ */
/* /*
* To enable building Xdmx, uncomment this.
*
#define XdmxServer YES
*/
/*
* To disable building Xprt, uncomment this. * To disable building Xprt, uncomment this.
* *
#define XprtServer NO #define XprtServer NO
......
...@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $ ...@@ -45,12 +45,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
*/ */
/* /*
* To enable building Xdmx, uncomment this.
*
#define XdmxServer YES
*/
/*
* To disable building Xprt, uncomment this. * To disable building Xprt, uncomment this.
* *
#define XprtServer NO #define XprtServer NO
......
...@@ -64,9 +64,6 @@ XRESHEADERS = XRes.h XResproto.h ...@@ -64,9 +64,6 @@ XRESHEADERS = XRes.h XResproto.h
#if BuildXevie || BuildXevieLibrary #if BuildXevie || BuildXevieLibrary
XEVIEHEADERS = Xevie.h Xeviestr.h XEVIEHEADERS = Xevie.h Xeviestr.h
#endif #endif
#if BuildDmx || BuildDmxLibrary
XDMXHEADERS = dmxext.h dmxproto.h
#endif
EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86MISCHEADERS) $(XF86BIGFONTHEADERS) \ EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86MISCHEADERS) $(XF86BIGFONTHEADERS) \
$(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XINERAMAHEADERS) \ $(XF86VIDMODEHEADERS) $(XF86DGAHEADERS) $(XINERAMAHEADERS) \
...@@ -74,7 +71,7 @@ EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86MISCHEADERS) $(XF86BIGFONTHEADERS) \ ...@@ -74,7 +71,7 @@ EXTRAHEADERS = $(SCREENSAVERHEADERS) $(XF86MISCHEADERS) $(XF86BIGFONTHEADERS) \
$(FONTCACHEHEADERS) $(RENDERHEADERS) $(RANDRHEADERS) \ $(FONTCACHEHEADERS) $(RENDERHEADERS) $(RANDRHEADERS) \
$(XFIXESHEADERS) $(DAMAGEHEADERS) $(COMPOSITEHEADERS) \ $(XFIXESHEADERS) $(DAMAGEHEADERS) $(COMPOSITEHEADERS) \
$(XEVIEHEADERS) \ $(XEVIEHEADERS) \
$(XTRAPHEADERS) $(XRESHEADERS) $(XDMXHEADERS) $(XTRAPHEADERS) $(XRESHEADERS)
......
/* $XFree86$ */
/*
* Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* 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 on 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 (including the
* next paragraph) 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
* NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
* 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.
*/
/*
* Authors:
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* This file describes the interface to the client-side libdmx.a
* library. All DMX-aware client-side applications should include this
* file. */
#ifndef _DMXEXT_H_
#define _DMXEXT_H_
/* These values must be larger than LastExtensionError.
The values in dmxext.h and dmxproto.h *MUST* match. */
#define DmxBadXinerama 1001
#define DmxBadValue 1002
#define DmxBadReply 1003
#define DMXScreenWindowWidth (1L<<0)
#define DMXScreenWindowHeight (1L<<1)
#define DMXScreenWindowXoffset (1L<<2)
#define DMXScreenWindowYoffset (1L<<3)
#define DMXRootWindowWidth (1L<<4)
#define DMXRootWindowHeight (1L<<5)
#define DMXRootWindowXoffset (1L<<6)
#define DMXRootWindowYoffset (1L<<7)
#define DMXRootWindowXorigin (1L<<8)
#define DMXRootWindowYorigin (1L<<9)
#define DMXDesktopWidth (1L<<0)
#define DMXDesktopHeight (1L<<1)
#define DMXDesktopShiftX (1L<<2)
#define DMXDesktopShiftY (1L<<3)
#define DMXInputType (1L<<0)
#define DMXInputPhysicalScreen (1L<<1)
#define DMXInputSendsCore (1L<<2)
#ifndef _DMX_SERVER_
/** Client-library screen information structure, returned by
* #DMXGetScreenAttributes. */
typedef struct {
char *displayName;
int logicalScreen;
unsigned int screenWindowWidth; /* displayName's coordinate system */
unsigned int screenWindowHeight; /* displayName's coordinate system */
int screenWindowXoffset; /* displayName's coordinate system */
int screenWindowYoffset; /* displayName's coordinate system */
unsigned int rootWindowWidth; /* screenWindow's coordinate system */
unsigned int rootWindowHeight; /* screenWindow's coordinate system */
int rootWindowXoffset; /* screenWindow's coordinate system */
int rootWindowYoffset; /* screenWindow's coordinate system */
int rootWindowXorigin; /* global coordinate system */
int rootWindowYorigin; /* global coordinate system */
} DMXScreenAttributes;
/** Client-library window information structure, returned by
* #DMXGetWindowAttributes. */
typedef struct {
int screen;
Window window;
XRectangle pos, vis;
} DMXWindowAttributes;
/** Client-library desktop information structure, returned by
* #DMXGetDesktopAttributes. */
typedef struct {
unsigned int width; /* global coordinate system */
unsigned int height; /* global coordinate system */
int shiftX; /* global coordinate system */
int shiftY; /* global coordinate system */
} DMXDesktopAttributes;
/** Enumeration for the #inputType field in the #DMXInputAttributes
* structure. */
typedef enum {
DMXLocalInputType,
DMXConsoleInputType,
DMXBackendInputType
} DMXInputEnum;
/** Client-library input information structure, returned by
* #DMXGetInputAttributes. */
typedef struct {
DMXInputEnum inputType;
int physicalScreen;
int physicalId;
Bool isCore;
Bool sendsCore;
const char *name;
Bool detached;
} DMXInputAttributes;
_XFUNCPROTOBEGIN
extern Bool DMXQueryExtension(Display *dpy,
int *event_basep, int *error_basep);
extern Bool DMXQueryVersion(Display *dpy, int *major_version,
int *minor_version, int *patch_version);
extern Bool DMXSync(Display *dpy);
extern Bool DMXForceWindowCreation(Display *dpy, Window window);
extern Bool DMXGetScreenCount(Display *dpy, int *screen_count);
extern Bool DMXGetScreenAttributes(Display *dpy,
int screen,
DMXScreenAttributes *attr);
extern int DMXChangeScreensAttributes(Display *dpy,
int screen_count,
int *screens,
int mask_count,
unsigned int *masks,
DMXScreenAttributes *attr, /* vector */
int *error_screen);
extern Bool DMXAddScreen(Display *dpy,
const char *displayName,
unsigned int mask,
DMXScreenAttributes *attr,
int *screen);
extern Bool DMXRemoveScreen(Display *dpy, int screen);
/* Call DMXGetScreenWindowCount and allocate info to that size. Pass
* the size in available_count. This call can generate a large amount
* of wire traffic and should not be used called with available_count=0
* just to determine the screen_count value -- use DMXGetScreenCount
* instead. NOTE: Also see DMX protocol specification (DMXSpec.txt) for
* usage of DMXSync to flush pending commands. */
extern Bool DMXGetWindowAttributes(Display *dpy, Window window,
int *screen_count, int available_count,
DMXWindowAttributes *attr);
extern Bool DMXGetDesktopAttributes(Display *dpy, DMXDesktopAttributes *attr);
extern int DMXChangeDesktopAttributes(Display *dpy,
unsigned int mask,
DMXDesktopAttributes *attr);
extern Bool DMXGetInputCount(Display *dpy, int *input_count);
extern Bool DMXGetInputAttributes(Display *dpy, int id,
DMXInputAttributes *attr);
extern Bool DMXAddInput(Display *dpy,
unsigned int mask,
DMXInputAttributes *attr,
int *id);
extern Bool DMXRemoveInput(Display *dpy, int id);
/* These are helper functions that call DMXAddInput. */
extern Bool DMXAddBackendInput(Display *dpy, int screen, int sendsCore,
int *newId);
extern Bool DMXAddConsoleInput(Display *dpy, const char *name, int sendsCore,
int *newId);
_XFUNCPROTOEND
#endif
#endif
/* $XFree86$ */
/*
* Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* 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 on 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 (including the
* next paragraph) 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
* NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
* 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.
*/
/*
* Authors:
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* This file describes the structures necessary to implement the wire
* protocol for the DMX protocol extension. It should be included only
* in files that implement the client-side (or server-side) part of the
* protocol (i.e., client-side applications should \b not include this
* file). */
#ifndef _DMXSTR_H_
#define _DMXSTR_H_
#define DMX_EXTENSION_NAME "DMX"
#define DMX_EXTENSION_MAJOR 2
#define DMX_EXTENSION_MINOR 2
#define DMX_EXTENSION_PATCH 20040604
/* These values must be larger than LastExtensionError.
The values in dmxext.h and dmxproto.h *MUST* match. */
#define DMX_BAD_XINERAMA 1001
#define DMX_BAD_VALUE 1002
#define X_DMXQueryVersion 0
#define X_DMXGetScreenCount 1
#define X_DMXGetScreenInformationDEPRECATED 2
#define X_DMXGetWindowAttributes 3
#define X_DMXGetInputCount 4
#define X_DMXGetInputAttributes 5
#define X_DMXForceWindowCreationDEPRECATED 6
#define X_DMXReconfigureScreenDEPRECATED 7
#define X_DMXSync 8
#define X_DMXForceWindowCreation 9
#define X_DMXGetScreenAttributes 10
#define X_DMXChangeScreensAttributes 11
#define X_DMXAddScreen 12
#define X_DMXRemoveScreen 13
#define X_DMXGetDesktopAttributes 14
#define X_DMXChangeDesktopAttributes 15
#define X_DMXAddInput 16
#define X_DMXRemoveInput 17
/** Wire-level description of DMXQueryVersion protocol request. */
typedef struct {
CARD8 reqType; /* dmxcode */
CARD8 dmxReqType; /* X_DMXQueryVersion */
CARD16 length B16;
} xDMXQueryVersionReq;
#define sz_xDMXQueryVersionReq 4
/** Wire-level description of DMXQueryVersion protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 ununsed;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
CARD32 patchVersion B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
} xDMXQueryVersionReply;
#define sz_xDMXQueryVersionReply 32
/** Wire-level description of DMXSync protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXSync */
CARD16 length B16;
} xDMXSyncReq;
#define sz_xDMXSyncReq 4
/** Wire-level description of DMXSync protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXSyncReply;
#define sz_xDMXSyncReply 32
/** Wire-level description of DMXForceWindowCreation protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXForceWindowCreation */
CARD16 length B16;
CARD32 window B32;
} xDMXForceWindowCreationReq;
#define sz_xDMXForceWindowCreationReq 8
/** Wire-level description of DMXForceWindowCreation protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXForceWindowCreationReply;
#define sz_xDMXForceWindowCreationReply 32
/** Wire-level description of DMXGetScreenCount protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetScreenCount */
CARD16 length B16;
} xDMXGetScreenCountReq;
#define sz_xDMXGetScreenCountReq 4
/** Wire-level description of DMXGetScreenCount protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 screenCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetScreenCountReply;
#define sz_xDMXGetScreenCountReply 32
/** Wire-level description of DMXGetScreenAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetScreenAttributes */
CARD16 length B16;
CARD32 physicalScreen B32;
} xDMXGetScreenAttributesReq;
#define sz_xDMXGetScreenAttributesReq 8
/** Wire-level description of DMXGetScreenAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 displayNameLength B32;
CARD32 logicalScreen B32;
CARD16 screenWindowWidth B16;
CARD16 screenWindowHeight B16;
INT16 screenWindowXoffset B16;
INT16 screenWindowYoffset B16;
CARD16 rootWindowWidth B16;
CARD16 rootWindowHeight B16;
INT16 rootWindowXoffset B16;
INT16 rootWindowYoffset B16;
INT16 rootWindowXorigin B16;
INT16 rootWindowYorigin B16;
} xDMXGetScreenAttributesReply;
#define sz_xDMXGetScreenAttributesReply 36
/** Wire-level description of DMXChangeScreensAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXChangeScreensAttributes */
CARD16 length B16;
CARD32 screenCount B32;
CARD32 maskCount B32;
} xDMXChangeScreensAttributesReq;
#define sz_xDMXChangeScreensAttributesReq 12
/** Wire-level description of DMXChangeScreensAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 errorScreen B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXChangeScreensAttributesReply;
#define sz_xDMXChangeScreensAttributesReply 32
/** Wire-level description of DMXAddScreen protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXAddScreen */
CARD16 length B16;
CARD32 displayNameLength B32;
CARD32 physicalScreen B32;
CARD32 valueMask B32;
} xDMXAddScreenReq;
#define sz_xDMXAddScreenReq 16
/** Wire-level description of DMXAddScreen protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 physicalScreen B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXAddScreenReply;
#define sz_xDMXAddScreenReply 32
/** Wire-level description of DMXRemoveScreen protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXRemoveScreen */
CARD16 length B16;
CARD32 physicalScreen B32;
} xDMXRemoveScreenReq;
#define sz_xDMXRemoveScreenReq 8
/** Wire-level description of DMXRemoveScreen protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXRemoveScreenReply;
#define sz_xDMXRemoveScreenReply 32
/** Wire-level description of DMXGetWindowAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetWindowAttributes */
CARD16 length B16;
CARD32 window B32;
} xDMXGetWindowAttributesReq;
#define sz_xDMXGetWindowAttributesReq 8
/** Wire-level description of DMXGetWindowAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 screenCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetWindowAttributesReply;
#define sz_xDMXGetWindowAttributesReply 32
/** Wire-level description of DMXGetDesktopAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetDesktopAttributes */
CARD16 length B16;
} xDMXGetDesktopAttributesReq;
#define sz_xDMXGetDesktopAttributesReq 4
/** Wire-level description of DMXGetDesktopAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
INT16 width;
INT16 height;
INT16 shiftX;
INT16 shiftY;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXGetDesktopAttributesReply;
#define sz_xDMXGetDesktopAttributesReply 32
/** Wire-level description of DMXChangeDesktopAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXChangeDesktopAttributes */
CARD16 length B16;
CARD32 valueMask B32;
} xDMXChangeDesktopAttributesReq;
#define sz_xDMXChangeDesktopAttributesReq 8
/** Wire-level description of DMXChangeDesktopAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXChangeDesktopAttributesReply;
#define sz_xDMXChangeDesktopAttributesReply 32
/** Wire-level description of DMXGetInputCount protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetInputCount */
CARD16 length B16;
} xDMXGetInputCountReq;
#define sz_xDMXGetInputCountReq 4
/** Wire-level description of DMXGetInputCount protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 inputCount B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXGetInputCountReply;
#define sz_xDMXGetInputCountReply 32
/** Wire-level description of DMXGetInputAttributes protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXGetInputAttributes */
CARD16 length B16;
CARD32 deviceId B32;
} xDMXGetInputAttributesReq;
#define sz_xDMXGetInputAttributesReq 8
/** Wire-level description of DMXGetInputAttributes protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 inputType B32;
CARD32 physicalScreen B32;
CARD32 physicalId B32;
CARD32 nameLength B32;
BOOL isCore;
BOOL sendsCore;
BOOL detached;
CARD8 pad0;
CARD32 pad1 B32;
} xDMXGetInputAttributesReply;
#define sz_xDMXGetInputAttributesReply 32
/** Wire-level description of DMXAddInput protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXAddInput */
CARD16 length B16;
CARD32 displayNameLength B32;
CARD32 valueMask;
} xDMXAddInputReq;
#define sz_xDMXAddInputReq 12
/** Wire-level description of DMXAddInput protocol reply. */
typedef struct {
BYTE type; /* X_Reply */
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 physicalId B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
} xDMXAddInputReply;
#define sz_xDMXAddInputReply 32
/** Wire-level description of DMXRemoveInput protocol request. */
typedef struct {
CARD8 reqType; /* DMXCode */
CARD8 dmxReqType; /* X_DMXRemoveInput */
CARD16 length B16;
CARD32 physicalId B32;
} xDMXRemoveInputReq;
#define sz_xDMXRemoveInputReq 8
/** Wire-level description of DMXRemoveInput protocol reply. */
typedef struct {
BYTE type;
CARD8 unused;
CARD16 sequenceNumber B16;
CARD32 length B32;
CARD32 status B32;
CARD32 pad0 B32;
CARD32 pad1 B32;
CARD32 pad2 B32;
CARD32 pad3 B32;
CARD32 pad4 B32;
} xDMXRemoveInputReply;
#define sz_xDMXRemoveInputReply 32
#endif
...@@ -27,7 +27,7 @@ XCOMM $XFree86: xc/lib/X11/Imakefile,v 3.52 2003/05/27 16:53:15 tsi Exp $ ...@@ -27,7 +27,7 @@ XCOMM $XFree86: xc/lib/X11/Imakefile,v 3.52 2003/05/27 16:53:15 tsi Exp $
HEADERS = Xlib.h Xresource.h Xutil.h cursorfont.h Xlibint.h \ HEADERS = Xlib.h Xresource.h Xutil.h cursorfont.h Xlibint.h \
Xcms.h Xlocale.h XKBlib.h XlibConf.h Xregion.h ImUtil.h Xcms.h Xlocale.h XKBlib.h XlibConf.h Xregion.h ImUtil.h
#if BuildServersOnly && !BuildGLXLibrary && !BuildClients && !XdmxServer && !NXAgentServer #if BuildServersOnly && !BuildGLXLibrary && !BuildClients && !NXAgentServer
all:: all::
BuildIncludes($(HEADERS),IncSubdir,..) BuildIncludes($(HEADERS),IncSubdir,..)
......
...@@ -542,9 +542,6 @@ XF86SERVER = XFree86 ...@@ -542,9 +542,6 @@ XF86SERVER = XFree86
#if defined(XorgServer) && XorgServer #if defined(XorgServer) && XorgServer
XF86SERVER = Xorg XF86SERVER = Xorg
#endif #endif
#if XdmxServer
XDMX = Xdmx
#endif
#if defined(NXAgentServer) && NXAgentServer #if defined(NXAgentServer) && NXAgentServer
NXAGENT = nxagent NXAGENT = nxagent
#endif #endif
...@@ -554,7 +551,6 @@ NXWIN = NXWin ...@@ -554,7 +551,6 @@ NXWIN = NXWin
#if (defined(XF86Server) && XF86Server) || \ #if (defined(XF86Server) && XF86Server) || \
(defined(XorgServer) && XorgServer) || \ (defined(XorgServer) && XorgServer) || \
(defined(NXAgentServer) && NXAgentServer) || \ (defined(NXAgentServer) && NXAgentServer) || \
(defined(XdmxServer) && XdmxServer) || \
(!MakeDllModules && defined(NXWinServer) && NXWinServer) (!MakeDllModules && defined(NXWinServer) && NXWinServer)
MakeMutex($(XF86SERVER) $(NXAGENT) $(NXWIN)) MakeMutex($(XF86SERVER) $(NXAGENT) $(NXWIN))
#endif #endif
...@@ -1050,54 +1046,6 @@ Xnon: $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS) ...@@ -1050,54 +1046,6 @@ Xnon: $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS)
#endif /* XnonServer */ #endif /* XnonServer */
#if defined(XdmxServer) && XdmxServer
XCOMM
XCOMM distribued multihead Server
XCOMM
#ifndef Win32Architecture
XDMXDDXDIR = hw/dmx
#else
XDMXDDXDIR = hw
#endif
FBDIR = fb
FBSUBDIR = fb
MIDAMAGEDIR = miext/damage
SHADOWDIR = miext/shadow
XDMXDIRS = $(STDDIRS) $(XDMXDDXDIR) $(SHADOWDIR) $(DEPDIRS) $(FBDIR) $(MIDAMAGEDIR)
#if BuildGlxExt
#if BuildXinerama
GLXPROXY_EXTRAOBJS = hw/dmx/panoramiX.o
#endif
GLXPROXYLIB = hw/dmx/glxProxy/LibraryTargetName(glxProxy)
#endif
#if !defined(LynxOSArchitecture) && \
!defined(Win32Architecture) && \
!defined(QNX4Architecture)
XDMXOBJS = hw/dmx/miinitext.o $(GLXPROXY_EXTRAOBJS)
#else
XDMXOBJS = hw/dmx/miinitext.o $(GLXPROXY_EXTRAOBJS) dix/main.o
#endif
XDMX = hw/dmx/LibraryTargetName(dmx) \
hw/dmx/input/LibraryTargetName(dmxinput) \
hw/dmx/config/LibraryTargetName(dmxconfig) \
$(GLXPROXYLIB)
XDMXLIBS = PreFbLibs $(XDMX) MiExtLibs FbPostFbLibs $(XDMX)
#if BuildRender
XDMXRENDERLIB = $(XRENDERLIB)
#endif
XDMXSYSLIBS = $(FONTLIBS) $(LDPRELIBS) $(XILIB) $(XLIB) $(SYSLIBS) $(XMULIB) $(XDMXRENDERLIB)
#if HasParallelMake
MakeMutex($(XDMXDIRS) $(XDMXOBJS) $(XDMXLIBS) $(XDMXSYSLIBS))
#endif
#if ForceServerRemake
$(XDMXOBJS) $(XDMXLIBS) $(XDMXSYSLIBS):: $(XDMXDIRS)
@if [ -f $@ ]; then touch $@ >/dev/null 2>&1 || exit 0; fi
#endif
ServerTarget(Xdmx,$(XDMXDIRS),$(XDMXOBJS), \
$(LIBCWRAPPER) $(XDMXLIBS) $(LOADABLEEXTS),$(XDMXSYSLIBS))
#endif /* XdmxServer */
#if defined(NXWinServer) && NXWinServer #if defined(NXWinServer) && NXWinServer
XCOMM XCOMM
XCOMM X Server for MS Windows XCOMM X Server for MS Windows
...@@ -1372,7 +1320,7 @@ MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR) $(ROOTLESSDIR) $(MIDAMAGEDIR) ...@@ -1372,7 +1320,7 @@ MIEXTDIRS = $(SHADOWDIR) $(LAYERDIR) $(ROOTLESSDIR) $(MIDAMAGEDIR)
IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR) IPLANDIRS = $(IPLAN2P2DIR) $(IPLAN2P4DIR) $(IPLAN2P8DIR)
DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) $(LYNXDDXDIR) \ DDXDIRS = $(DECWSDDXDIR) $(SUNDDXDIR) $(LYNXDDXDIR) \
$(HPDDXDIR) $(XFREE86DDXDIR) $(DARWINDDXDIR) \ $(HPDDXDIR) $(XFREE86DDXDIR) $(DARWINDDXDIR) \
$(XDMXDDXDIR) $(NXAGENTDDXDIR) $(NXWINDDXDIR) $(NXAGENTDDXDIR) $(NXWINDDXDIR)
SUBDIRS = $(STDDIRS) $(MFBSUBDIR) $(CFBSUBDIRS) \ SUBDIRS = $(STDDIRS) $(MFBSUBDIR) $(CFBSUBDIRS) \
$(IPLANDIRS) $(ILBMDIR) $(AFBSUBDIR) \ $(IPLANDIRS) $(ILBMDIR) $(AFBSUBDIR) \
$(DDXDIRS) $(FBSUBDIR) $(KDRIVEDIRS) $(MIEXTDIRS) $(DDXDIRS) $(FBSUBDIR) $(KDRIVEDIRS) $(MIEXTDIRS)
......
...@@ -113,11 +113,6 @@ XF86BIGFOBJS = xf86bigfont.o ...@@ -113,11 +113,6 @@ XF86BIGFOBJS = xf86bigfont.o
PNRXOBJS = panoramiX.o panoramiXSwap.o panoramiXprocs.o PNRXOBJS = panoramiX.o panoramiXSwap.o panoramiXprocs.o
PNRXINCLUDES = -I$(FONTINCSRC) -I../mi -I../render PNRXINCLUDES = -I$(FONTINCSRC) -I../mi -I../render
#endif #endif
#if XdmxServer
DMXSRCS = dmx.c
DMXOBJS = dmx.o
DMXINCLUDES = -I../hw/dmx
#endif
#if BuildDPMS #if BuildDPMS
DPMSSRCS = dpms.c DPMSSRCS = dpms.c
DPMSOBJS = dpms.o DPMSOBJS = dpms.o
......
/* $XFree86$ */
/*
* Copyright 2002-2004 Red Hat Inc., Durham, North Carolina.
*
* All Rights Reserved.
*
* 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 on 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 (including the
* next paragraph) 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
* NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
* 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.
*/
/*
* Authors:
* Rickard E. (Rik) Faith <faith@redhat.com>
*
*/
/** \file
* This file implements the server-side part of the DMX protocol. A
* vector of fucntions is provided at extension initialization time, so
* most all of the useful functions in this file are declared static and
* do not appear in the doxygen documentation.
*
* Much of the low-level work is done by functions in #dmxextension.c
*
* Please see the Client-to-Server DMX Extension to the X Protocol
* document for details about the protocol. */
#ifdef HAVE_DMX_CONFIG_H
#include <dmx-config.h>
#endif
#include <X11/X.h>
#include <X11/Xproto.h>
#include "misc.h"
#include "os.h"
#include "dixstruct.h"
#define EXTENSION_PROC_ARGS void *
#include "extnsionst.h"
#include "opaque.h"
#include "dmxextension.h"
#include <X11/extensions/dmxproto.h>
#define _DMX_SERVER_
#include <X11/extensions/dmxext.h>
#ifdef PANORAMIX
#include "panoramiX.h"
extern unsigned long XRT_WINDOW;
extern int PanoramiXNumScreens;
#endif
extern void DMXExtensionInit(void);
static unsigned char DMXCode;
static DISPATCH_PROC(ProcDMXDispatch);
static DISPATCH_PROC(ProcDMXQueryVersion);
static DISPATCH_PROC(ProcDMXSync);
static DISPATCH_PROC(ProcDMXForceWindowCreation);
static DISPATCH_PROC(ProcDMXGetScreenCount);
static DISPATCH_PROC(ProcDMXGetScreenAttributes);
static DISPATCH_PROC(ProcDMXChangeScreensAttributes);
static DISPATCH_PROC(ProcDMXAddScreen);
static DISPATCH_PROC(ProcDMXRemoveScreen);
static DISPATCH_PROC(ProcDMXGetWindowAttributes);
static DISPATCH_PROC(ProcDMXGetDesktopAttributes);
static DISPATCH_PROC(ProcDMXChangeDesktopAttributes);
static DISPATCH_PROC(ProcDMXGetInputCount);
static DISPATCH_PROC(ProcDMXGetInputAttributes);
static DISPATCH_PROC(ProcDMXAddInput);
static DISPATCH_PROC(ProcDMXRemoveInput);
static DISPATCH_PROC(SProcDMXDispatch);
static DISPATCH_PROC(SProcDMXQueryVersion);
static DISPATCH_PROC(SProcDMXSync);
static DISPATCH_PROC(SProcDMXForceWindowCreation);
static DISPATCH_PROC(SProcDMXGetScreenCount);
static DISPATCH_PROC(SProcDMXGetScreenAttributes);
static DISPATCH_PROC(SProcDMXChangeScreensAttributes);
static DISPATCH_PROC(SProcDMXAddScreen);
static DISPATCH_PROC(SProcDMXRemoveScreen);
static DISPATCH_PROC(SProcDMXGetWindowAttributes);
static DISPATCH_PROC(SProcDMXGetDesktopAttributes);
static DISPATCH_PROC(SProcDMXChangeDesktopAttributes);
static DISPATCH_PROC(SProcDMXGetInputCount);
static DISPATCH_PROC(SProcDMXGetInputAttributes);
static DISPATCH_PROC(SProcDMXAddInput);
static DISPATCH_PROC(SProcDMXRemoveInput);
static int _DMXXineramaActive(void)
{
#ifdef PANORAMIX
return !noPanoramiXExtension;
#endif
return 0;
}
static void DMXResetProc(ExtensionEntry *extEntry)
{
}
/** Initialize the extension. */
void DMXExtensionInit(void)
{
ExtensionEntry *extEntry;
if ((extEntry = AddExtension(DMX_EXTENSION_NAME, 0, 0,
ProcDMXDispatch, SProcDMXDispatch,
DMXResetProc, StandardMinorOpcode)))
DMXCode = extEntry->base;
}
static void dmxSetScreenAttribute(int bit, DMXScreenAttributesPtr attr,
CARD32 value)
{
switch (1 << bit) {
case DMXScreenWindowWidth: attr->screenWindowWidth = value; break;
case DMXScreenWindowHeight: attr->screenWindowHeight = value; break;
case DMXScreenWindowXoffset: attr->screenWindowXoffset = value; break;
case DMXScreenWindowYoffset: attr->screenWindowYoffset = value; break;
case DMXRootWindowWidth: attr->rootWindowWidth = value; break;
case DMXRootWindowHeight: attr->rootWindowHeight = value; break;
case DMXRootWindowXoffset: attr->rootWindowXoffset = value; break;
case DMXRootWindowYoffset: attr->rootWindowYoffset = value; break;
case DMXRootWindowXorigin: attr->rootWindowXorigin = value; break;
case DMXRootWindowYorigin: attr->rootWindowYorigin = value; break;
}
}
static int dmxFetchScreenAttributes(unsigned int mask,
DMXScreenAttributesPtr attr,
CARD32 *value_list)
{
int i;
CARD32 *value = value_list;
int count = 0;
for (i = 0; i < 32; i++) {
if (mask & (1 << i)) {
dmxSetScreenAttribute(i, attr, *value);
++value;
++count;
}
}
return count;
}
static void dmxSetDesktopAttribute(int bit, DMXDesktopAttributesPtr attr,
CARD32 value)
{
switch (1 << bit) {
case DMXDesktopWidth: attr->width = value; break;
case DMXDesktopHeight: attr->height = value; break;
case DMXDesktopShiftX: attr->shiftX = value; break;
case DMXDesktopShiftY: attr->shiftY = value; break;
}
}
static int dmxFetchDesktopAttributes(unsigned int mask,
DMXDesktopAttributesPtr attr,
CARD32 *value_list)
{
int i;
CARD32 *value = value_list;
int count = 0;
for (i = 0; i < 32; i++) {
if (mask & (1 << i)) {
dmxSetDesktopAttribute(i, attr, *value);
++value;
++count;
}
}
return count;
}
static void dmxSetInputAttribute(int bit, DMXInputAttributesPtr attr,
CARD32 value)
{
switch (1 << bit) {
case DMXInputType: attr->inputType = value; break;
case DMXInputPhysicalScreen: attr->physicalScreen = value; break;
case DMXInputSendsCore: attr->sendsCore = !!value; break;
}
}
static int dmxFetchInputAttributes(unsigned int mask,
DMXInputAttributesPtr attr,
CARD32 *value_list)
{
int i;
CARD32 *value = value_list;
int count = 0;
for (i = 0; i < 32; i++) {
if (mask & (1 << i)) {
dmxSetInputAttribute(i, attr, *value);
++value;
++count;
}
}
return count;
}
static int ProcDMXQueryVersion(ClientPtr client)
{
xDMXQueryVersionReply rep;
int n;
REQUEST_SIZE_MATCH(xDMXQueryVersionReq);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.majorVersion = DMX_EXTENSION_MAJOR;
rep.minorVersion = DMX_EXTENSION_MINOR;
rep.patchVersion = DMX_EXTENSION_PATCH;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.majorVersion, n);
swapl(&rep.minorVersion, n);
swapl(&rep.patchVersion, n);
}
WriteToClient(client, sizeof(xDMXQueryVersionReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXSync(ClientPtr client)
{
xDMXSyncReply rep;
int n;
REQUEST_SIZE_MATCH(xDMXSyncReq);
dmxFlushPendingSyncs();
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = 0;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
}
WriteToClient(client, sizeof(xDMXSyncReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXForceWindowCreation(ClientPtr client)
{
xDMXForceWindowCreationReply rep;
REQUEST(xDMXForceWindowCreationReq);
WindowPtr pWin;
int n;
REQUEST_SIZE_MATCH(xDMXForceWindowCreationReq);
#ifdef PANORAMIX
if (!noPanoramiXExtension) {
PanoramiXRes *win;
int i;
if (!(win = SecurityLookupIDByType(client, stuff->window, XRT_WINDOW,
SecurityReadAccess)))
return -1; /* BadWindow */
FOR_NSCREENS(i) {
if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
SecurityReadAccess)))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
}
goto doreply;
}
#endif
if (!(pWin = SecurityLookupWindow(stuff->window, client,
SecurityReadAccess)))
return -1; /* BadWindow */
dmxForceWindowCreation(pWin);
doreply:
dmxFlushPendingSyncs();
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = 0;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
}
WriteToClient(client, sizeof(xDMXForceWindowCreationReply), (char *)&rep);
return Success;
}
static int ProcDMXGetScreenCount(ClientPtr client)
{
xDMXGetScreenCountReply rep;
int n;
REQUEST_SIZE_MATCH(xDMXGetScreenCountReq);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.screenCount = dmxGetNumScreens();
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.screenCount, n);
}
WriteToClient(client, sizeof(xDMXGetScreenCountReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXGetScreenAttributes(ClientPtr client)
{
REQUEST(xDMXGetScreenAttributesReq);
xDMXGetScreenAttributesReply rep;
int n;
int length;
int paddedLength;
DMXScreenAttributesRec attr;
REQUEST_SIZE_MATCH(xDMXGetScreenAttributesReq);
if (stuff->physicalScreen < 0
|| stuff->physicalScreen >= dmxGetNumScreens()) return BadValue;
if (!dmxGetScreenAttributes(stuff->physicalScreen, &attr))
return BadValue;
rep.logicalScreen = attr.logicalScreen;
rep.screenWindowWidth = attr.screenWindowWidth;
rep.screenWindowHeight = attr.screenWindowHeight;
rep.screenWindowXoffset = attr.screenWindowXoffset;
rep.screenWindowYoffset = attr.screenWindowYoffset;
rep.rootWindowWidth = attr.rootWindowWidth;
rep.rootWindowHeight = attr.rootWindowHeight;
rep.rootWindowXoffset = attr.rootWindowXoffset;
rep.rootWindowYoffset = attr.rootWindowYoffset;
rep.rootWindowXorigin = attr.rootWindowXorigin;
rep.rootWindowYorigin = attr.rootWindowYorigin;
length = attr.displayName ? strlen(attr.displayName) : 0;
paddedLength = (length + 3) & ~3;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = paddedLength >> 2;
rep.displayNameLength = length;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.displayNameLength, n);
swapl(&rep.logicalScreen, n);
swaps(&rep.screenWindowWidth, n);
swaps(&rep.screenWindowHeight, n);
swaps(&rep.screenWindowXoffset, n);
swaps(&rep.screenWindowYoffset, n);
swaps(&rep.rootWindowWidth, n);
swaps(&rep.rootWindowHeight, n);
swaps(&rep.rootWindowXoffset, n);
swaps(&rep.rootWindowYoffset, n);
swaps(&rep.rootWindowXorigin, n);
swaps(&rep.rootWindowYorigin, n);
}
WriteToClient(client, sizeof(xDMXGetScreenAttributesReply), (char *)&rep);
if (length) WriteToClient(client, length, (char *)attr.displayName);
return client->noClientException;
}
static int ProcDMXChangeScreensAttributes(ClientPtr client)
{
REQUEST(xDMXChangeScreensAttributesReq);
xDMXChangeScreensAttributesReply rep;
int n;
int status = DMX_BAD_XINERAMA;
unsigned int mask = 0;
unsigned int i;
CARD32 *screen_list;
CARD32 *mask_list;
CARD32 *value_list;
DMXScreenAttributesPtr attribs;
int errorScreen = 0;
unsigned int len;
int ones = 0;
REQUEST_AT_LEAST_SIZE(xDMXChangeScreensAttributesReq);
len = client->req_len - (sizeof(xDMXChangeScreensAttributesReq) >> 2);
if (len < stuff->screenCount + stuff->maskCount)
return BadLength;
screen_list = (CARD32 *)(stuff + 1);
mask_list = &screen_list[stuff->screenCount];
value_list = &mask_list[stuff->maskCount];
for (i = 0; i < stuff->maskCount; i++) ones += Ones(mask_list[i]);
if (len != stuff->screenCount + stuff->maskCount + ones)
return BadLength;
if (!_DMXXineramaActive()) goto noxinerama;
if (!(attribs = ALLOCATE_LOCAL(stuff->screenCount * sizeof(*attribs))))
return BadAlloc;
for (i = 0; i < stuff->screenCount; i++) {
int count;
if (i < stuff->maskCount) mask = mask_list[i];
dmxGetScreenAttributes(screen_list[i], &attribs[i]);
count = dmxFetchScreenAttributes(mask, &attribs[i], value_list);
value_list += count;
}
#if PANORAMIX
status = dmxConfigureScreenWindows(stuff->screenCount,
screen_list,
attribs,
&errorScreen);
#endif
DEALLOCATE_LOCAL(attribs);
if (status == BadValue) return status;
noxinerama:
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
rep.errorScreen = errorScreen;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
swapl(&rep.errorScreen, n);
}
WriteToClient(client,
sizeof(xDMXChangeScreensAttributesReply),
(char *)&rep);
return client->noClientException;
}
static int ProcDMXAddScreen(ClientPtr client)
{
REQUEST(xDMXAddScreenReq);
xDMXAddScreenReply rep;
int n;
int status = 0;
CARD32 *value_list;
DMXScreenAttributesRec attr;
int count;
char *name;
int len;
int paddedLength;
REQUEST_AT_LEAST_SIZE(xDMXAddScreenReq);
paddedLength = (stuff->displayNameLength + 3) & ~3;
len = client->req_len - (sizeof(xDMXAddScreenReq) >> 2);
if (len != Ones(stuff->valueMask) + paddedLength/4)
return BadLength;
memset(&attr, 0, sizeof(attr));
dmxGetScreenAttributes(stuff->physicalScreen, &attr);
value_list = (CARD32 *)(stuff + 1);
count = dmxFetchScreenAttributes(stuff->valueMask, &attr, value_list);
if (!(name = ALLOCATE_LOCAL(stuff->displayNameLength + 1 + 4)))
return BadAlloc;
memcpy(name, &value_list[count], stuff->displayNameLength);
name[stuff->displayNameLength] = '\0';
attr.displayName = name;
status = dmxAttachScreen(stuff->physicalScreen, &attr);
DEALLOCATE_LOCAL(name);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
rep.physicalScreen = stuff->physicalScreen;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
swapl(&rep.physicalScreen, n);
}
WriteToClient(client,
sizeof(xDMXAddScreenReply),
(char *)&rep);
return client->noClientException;
}
static int ProcDMXRemoveScreen(ClientPtr client)
{
REQUEST(xDMXRemoveScreenReq);
xDMXRemoveScreenReply rep;
int n;
int status = 0;
REQUEST_SIZE_MATCH(xDMXRemoveScreenReq);
status = dmxDetachScreen(stuff->physicalScreen);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
}
WriteToClient(client,
sizeof(xDMXRemoveScreenReply),
(char *)&rep);
return client->noClientException;
}
#ifdef PANORAMIX
static int dmxPopulatePanoramiX(ClientPtr client, Window window,
CARD32 *screens, CARD32 *windows,
xRectangle *pos, xRectangle *vis)
{
WindowPtr pWin;
PanoramiXRes *win;
int i;
int count = 0;
DMXWindowAttributesRec attr;
if (!(win = SecurityLookupIDByType(client, window, XRT_WINDOW,
SecurityReadAccess)))
return -1; /* BadWindow */
FOR_NSCREENS(i) {
if (!(pWin = SecurityLookupWindow(win->info[i].id, client,
SecurityReadAccess)))
return -1; /* BadWindow */
if (dmxGetWindowAttributes(pWin, &attr)) {
screens[count] = attr.screen;
windows[count] = attr.window;
pos[count] = attr.pos;
vis[count] = attr.vis;
++count; /* Only count existing windows */
}
}
return count;
}
#endif
static int dmxPopulate(ClientPtr client, Window window, CARD32 *screens,
CARD32 *windows, xRectangle *pos, xRectangle *vis)
{
WindowPtr pWin;
DMXWindowAttributesRec attr;
#ifdef PANORAMIX
if (!noPanoramiXExtension)
return dmxPopulatePanoramiX(client, window, screens, windows,
pos, vis);
#endif
if (!(pWin = SecurityLookupWindow(window, client, SecurityReadAccess)))
return -1; /* BadWindow */
dmxGetWindowAttributes(pWin, &attr);
*screens = attr.screen;
*windows = attr.window;
*pos = attr.pos;
*vis = attr.vis;
return 1;
}
static int dmxMaxNumScreens(void)
{
#ifdef PANORAMIX
if (!noPanoramiXExtension) return PanoramiXNumScreens;
#endif
return 1;
}
static int ProcDMXGetWindowAttributes(ClientPtr client)
{
REQUEST(xDMXGetWindowAttributesReq);
xDMXGetWindowAttributesReply rep;
int i, n;
CARD32 *screens;
CARD32 *windows;
xRectangle *pos, *vis;
int count = dmxMaxNumScreens();
REQUEST_SIZE_MATCH(xDMXGetWindowAttributesReq);
if (!(screens = ALLOCATE_LOCAL(count * sizeof(*screens))))
return BadAlloc;
if (!(windows = ALLOCATE_LOCAL(count * sizeof(*windows)))) {
DEALLOCATE_LOCAL(screens);
return BadAlloc;
}
if (!(pos = ALLOCATE_LOCAL(count * sizeof(*pos)))) {
DEALLOCATE_LOCAL(windows);
DEALLOCATE_LOCAL(screens);
return BadAlloc;
}
if (!(vis = ALLOCATE_LOCAL(count * sizeof(*vis)))) {
DEALLOCATE_LOCAL(pos);
DEALLOCATE_LOCAL(windows);
DEALLOCATE_LOCAL(screens);
return BadAlloc;
}
if ((count = dmxPopulate(client, stuff->window, screens, windows,
pos, vis)) < 0) {
DEALLOCATE_LOCAL(vis);
DEALLOCATE_LOCAL(pos);
DEALLOCATE_LOCAL(windows);
DEALLOCATE_LOCAL(screens);
return BadWindow;
}
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = count * 6;
rep.screenCount = count;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.screenCount, n);
for (i = 0; i < count; i++) {
swapl(&screens[i], n);
swapl(&windows[i], n);
swaps(&pos[i].x, n);
swaps(&pos[i].y, n);
swaps(&pos[i].width, n);
swaps(&pos[i].height, n);
swaps(&vis[i].x, n);
swaps(&vis[i].y, n);
swaps(&vis[i].width, n);
swaps(&vis[i].height, n);
}
}
dmxFlushPendingSyncs();
WriteToClient(client, sizeof(xDMXGetWindowAttributesReply), (char *)&rep);
if (count) {
WriteToClient(client, count * sizeof(*screens), (char *)screens);
WriteToClient(client, count * sizeof(*windows), (char *)windows);
WriteToClient(client, count * sizeof(*pos), (char *)pos);
WriteToClient(client, count * sizeof(*vis), (char *)vis);
}
DEALLOCATE_LOCAL(vis);
DEALLOCATE_LOCAL(pos);
DEALLOCATE_LOCAL(windows);
DEALLOCATE_LOCAL(screens);
return client->noClientException;
}
static int ProcDMXGetDesktopAttributes(ClientPtr client)
{
xDMXGetDesktopAttributesReply rep;
int n;
DMXDesktopAttributesRec attr;
REQUEST_SIZE_MATCH(xDMXGetDesktopAttributesReq);
dmxGetDesktopAttributes(&attr);
rep.width = attr.width;
rep.height = attr.height;
rep.shiftX = attr.shiftX;
rep.shiftY = attr.shiftY;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.width, n);
swapl(&rep.height, n);
swapl(&rep.shiftX, n);
swapl(&rep.shiftY, n);
}
WriteToClient(client, sizeof(xDMXGetDesktopAttributesReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXChangeDesktopAttributes(ClientPtr client)
{
REQUEST(xDMXChangeDesktopAttributesReq);
xDMXChangeDesktopAttributesReply rep;
int n;
int status = DMX_BAD_XINERAMA;
CARD32 *value_list;
DMXDesktopAttributesRec attr;
int len;
REQUEST_AT_LEAST_SIZE(xDMXChangeDesktopAttributesReq);
len = client->req_len - (sizeof(xDMXChangeDesktopAttributesReq) >> 2);
if (len != Ones(stuff->valueMask))
return BadLength;
if (!_DMXXineramaActive()) goto noxinerama;
value_list = (CARD32 *)(stuff + 1);
dmxGetDesktopAttributes(&attr);
dmxFetchDesktopAttributes(stuff->valueMask, &attr, value_list);
#if PANORAMIX
status = dmxConfigureDesktop(&attr);
#endif
if (status == BadValue) return status;
noxinerama:
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
}
WriteToClient(client,
sizeof(xDMXChangeDesktopAttributesReply),
(char *)&rep);
return client->noClientException;
}
static int ProcDMXGetInputCount(ClientPtr client)
{
xDMXGetInputCountReply rep;
int n;
REQUEST_SIZE_MATCH(xDMXGetInputCountReq);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.inputCount = dmxGetInputCount();
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.inputCount, n);
}
WriteToClient(client, sizeof(xDMXGetInputCountReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXGetInputAttributes(ClientPtr client)
{
REQUEST(xDMXGetInputAttributesReq);
xDMXGetInputAttributesReply rep;
int n;
int length;
int paddedLength;
DMXInputAttributesRec attr;
REQUEST_SIZE_MATCH(xDMXGetInputAttributesReq);
if (dmxGetInputAttributes(stuff->deviceId, &attr)) return BadValue;
rep.inputType = attr.inputType;
rep.physicalScreen = attr.physicalScreen;
rep.physicalId = attr.physicalId;
rep.isCore = attr.isCore;
rep.sendsCore = attr.sendsCore;
rep.detached = attr.detached;
length = attr.name ? strlen(attr.name) : 0;
paddedLength = (length + 3) & ~3;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = paddedLength >> 2;
rep.nameLength = length;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.inputType, n);
swapl(&rep.physicalScreen, n);
swapl(&rep.physicalId, n);
swapl(&rep.nameLength, n);
}
WriteToClient(client, sizeof(xDMXGetInputAttributesReply), (char *)&rep);
if (length) WriteToClient(client, length, (char *)attr.name);
return client->noClientException;
}
static int ProcDMXAddInput(ClientPtr client)
{
REQUEST(xDMXAddInputReq);
xDMXAddInputReply rep;
int n;
int status = 0;
CARD32 *value_list;
DMXInputAttributesRec attr;
int count;
char *name;
int len;
int paddedLength;
int id = -1;
REQUEST_AT_LEAST_SIZE(xDMXAddInputReq);
paddedLength = (stuff->displayNameLength + 3) & ~3;
len = client->req_len - (sizeof(xDMXAddInputReq) >> 2);
if (len != Ones(stuff->valueMask) + paddedLength/4)
return BadLength;
memset(&attr, 0, sizeof(attr));
value_list = (CARD32 *)(stuff + 1);
count = dmxFetchInputAttributes(stuff->valueMask, &attr, value_list);
if (!(name = ALLOCATE_LOCAL(stuff->displayNameLength + 1 + 4)))
return BadAlloc;
memcpy(name, &value_list[count], stuff->displayNameLength);
name[stuff->displayNameLength] = '\0';
attr.name = name;
status = dmxAddInput(&attr, &id);
DEALLOCATE_LOCAL(name);
if (status) return status;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
rep.physicalId = id;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
swapl(&rep.physicalId, n);
}
WriteToClient(client, sizeof(xDMXAddInputReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXRemoveInput(ClientPtr client)
{
REQUEST(xDMXRemoveInputReq);
xDMXRemoveInputReply rep;
int n;
int status = 0;
REQUEST_SIZE_MATCH(xDMXRemoveInputReq);
status = dmxRemoveInput(stuff->physicalId);
if (status) return status;
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.length = 0;
rep.status = status;
if (client->swapped) {
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
swapl(&rep.status, n);
}
WriteToClient(client, sizeof(xDMXRemoveInputReply), (char *)&rep);
return client->noClientException;
}
static int ProcDMXDispatch(ClientPtr client)
{
REQUEST(xReq);
switch (stuff->data) {
case X_DMXQueryVersion: return ProcDMXQueryVersion(client);
case X_DMXSync: return ProcDMXSync(client);
case X_DMXForceWindowCreation: return ProcDMXForceWindowCreation(client);
case X_DMXGetScreenCount: return ProcDMXGetScreenCount(client);
case X_DMXGetScreenAttributes: return ProcDMXGetScreenAttributes(client);
case X_DMXChangeScreensAttributes:
return ProcDMXChangeScreensAttributes(client);
case X_DMXAddScreen: return ProcDMXAddScreen(client);
case X_DMXRemoveScreen: return ProcDMXRemoveScreen(client);
case X_DMXGetWindowAttributes: return ProcDMXGetWindowAttributes(client);
case X_DMXGetDesktopAttributes: return ProcDMXGetDesktopAttributes(client);
case X_DMXChangeDesktopAttributes:
return ProcDMXChangeDesktopAttributes(client);
case X_DMXGetInputCount: return ProcDMXGetInputCount(client);
case X_DMXGetInputAttributes: return ProcDMXGetInputAttributes(client);
case X_DMXAddInput: return ProcDMXAddInput(client);
case X_DMXRemoveInput: return ProcDMXRemoveInput(client);
case X_DMXGetScreenInformationDEPRECATED:
case X_DMXForceWindowCreationDEPRECATED:
case X_DMXReconfigureScreenDEPRECATED:
return BadImplementation;
default: return BadRequest;
}
}
static int SProcDMXQueryVersion(ClientPtr client)
{
int n;
REQUEST(xDMXQueryVersionReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXQueryVersionReq);
return ProcDMXQueryVersion(client);
}
static int SProcDMXSync(ClientPtr client)
{
int n;
REQUEST(xDMXSyncReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXSyncReq);
return ProcDMXSync(client);
}
static int SProcDMXForceWindowCreation(ClientPtr client)
{
int n;
REQUEST(xDMXForceWindowCreationReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXForceWindowCreationReq);
swaps(&stuff->window, n);
return ProcDMXForceWindowCreation(client);
}
static int SProcDMXGetScreenCount(ClientPtr client)
{
int n;
REQUEST(xDMXGetScreenCountReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetScreenCountReq);
return ProcDMXGetScreenCount(client);
}
static int SProcDMXGetScreenAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXGetScreenAttributesReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetScreenAttributesReq);
swapl(&stuff->physicalScreen, n);
return ProcDMXGetScreenAttributes(client);
}
static int SProcDMXChangeScreensAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXChangeScreensAttributesReq);
swaps(&stuff->length, n);
REQUEST_AT_LEAST_SIZE(xDMXGetScreenAttributesReq);
swapl(&stuff->screenCount, n);
swapl(&stuff->maskCount, n);
SwapRestL(stuff);
return ProcDMXGetScreenAttributes(client);
}
static int SProcDMXAddScreen(ClientPtr client)
{
int n;
int paddedLength;
REQUEST(xDMXAddScreenReq);
swaps(&stuff->length, n);
REQUEST_AT_LEAST_SIZE(xDMXAddScreenReq);
swapl(&stuff->displayNameLength, n);
swapl(&stuff->valueMask, n);
paddedLength = (stuff->displayNameLength + 3) & ~3;
SwapLongs((CARD32 *)(stuff+1), LengthRestL(stuff) - paddedLength/4);
return ProcDMXAddScreen(client);
}
static int SProcDMXRemoveScreen(ClientPtr client)
{
int n;
REQUEST(xDMXRemoveScreenReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXRemoveScreenReq);
swapl(&stuff->physicalScreen, n);
return ProcDMXRemoveScreen(client);
}
static int SProcDMXGetWindowAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXGetWindowAttributesReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetWindowAttributesReq);
swapl(&stuff->window, n);
return ProcDMXGetWindowAttributes(client);
}
static int SProcDMXGetDesktopAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXGetDesktopAttributesReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetDesktopAttributesReq);
return ProcDMXGetDesktopAttributes(client);
}
static int SProcDMXChangeDesktopAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXChangeDesktopAttributesReq);
swaps(&stuff->length, n);
REQUEST_AT_LEAST_SIZE(xDMXChangeDesktopAttributesReq);
swapl(&stuff->valueMask, n);
SwapRestL(stuff);
return ProcDMXChangeDesktopAttributes(client);
}
static int SProcDMXGetInputCount(ClientPtr client)
{
int n;
REQUEST(xDMXGetInputCountReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetInputCountReq);
return ProcDMXGetInputCount(client);
}
static int SProcDMXGetInputAttributes(ClientPtr client)
{
int n;
REQUEST(xDMXGetInputAttributesReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXGetInputAttributesReq);
swapl(&stuff->deviceId, n);
return ProcDMXGetInputAttributes(client);
}
static int SProcDMXAddInput(ClientPtr client)
{
int n;
int paddedLength;
REQUEST(xDMXAddInputReq);
swaps(&stuff->length, n);
REQUEST_AT_LEAST_SIZE(xDMXAddInputReq);
swapl(&stuff->displayNameLength, n);
swapl(&stuff->valueMask, n);
paddedLength = (stuff->displayNameLength + 3) & ~3;
SwapLongs((CARD32 *)(stuff+1), LengthRestL(stuff) - paddedLength/4);
return ProcDMXAddInput(client);
}
static int SProcDMXRemoveInput(ClientPtr client)
{
int n;
REQUEST(xDMXRemoveInputReq);
swaps(&stuff->length, n);
REQUEST_SIZE_MATCH(xDMXRemoveInputReq);
swapl(&stuff->physicalId, n);
return ProcDMXRemoveInput(client);
}
static int SProcDMXDispatch (ClientPtr client)
{
REQUEST(xReq);
switch (stuff->data) {
case X_DMXQueryVersion: return SProcDMXQueryVersion(client);
case X_DMXSync: return SProcDMXSync(client);
case X_DMXForceWindowCreation: return SProcDMXForceWindowCreation(client);
case X_DMXGetScreenCount: return SProcDMXGetScreenCount(client);
case X_DMXGetScreenAttributes: return SProcDMXGetScreenAttributes(client);
case X_DMXChangeScreensAttributes:
return SProcDMXChangeScreensAttributes(client);
case X_DMXAddScreen: return SProcDMXAddScreen(client);
case X_DMXRemoveScreen: return SProcDMXRemoveScreen(client);
case X_DMXGetWindowAttributes: return SProcDMXGetWindowAttributes(client);
case X_DMXGetDesktopAttributes:
return SProcDMXGetDesktopAttributes(client);
case X_DMXChangeDesktopAttributes:
return SProcDMXChangeDesktopAttributes(client);
case X_DMXGetInputCount: return SProcDMXGetInputCount(client);
case X_DMXGetInputAttributes: return SProcDMXGetInputAttributes(client);
case X_DMXAddInput: return SProcDMXAddInput(client);
case X_DMXRemoveInput: return SProcDMXRemoveInput(client);
case X_DMXGetScreenInformationDEPRECATED:
case X_DMXForceWindowCreationDEPRECATED:
case X_DMXReconfigureScreenDEPRECATED:
return BadImplementation;
default: return BadRequest;
}
}
XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:48:20 cpqbld Exp $
XCOMM This is only used on NT where we do not know how to jump over this dir
#ifdef Win32Architecture
#define IHaveSubdirs
#define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)"
#if XdmxServer
XDMXDIR = dmx
#endif
SUBDIRS= $(XDMXDIR)
MakeSubdirs($(SUBDIRS))
DependSubdirs($(SUBDIRS))
#endif
...@@ -952,7 +952,6 @@ ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama ...@@ -952,7 +952,6 @@ ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama
%{_includedir}/nx/X11/extensions/Xevie.h %{_includedir}/nx/X11/extensions/Xevie.h
%{_includedir}/nx/X11/extensions/Xinerama.h %{_includedir}/nx/X11/extensions/Xinerama.h
%{_includedir}/nx/X11/extensions/Xrandr.h %{_includedir}/nx/X11/extensions/Xrandr.h
%{_includedir}/nx/X11/extensions/dmxext.h
%{_includedir}/nx/X11/extensions/lbxbuf.h %{_includedir}/nx/X11/extensions/lbxbuf.h
%{_includedir}/nx/X11/extensions/lbxbufstr.h %{_includedir}/nx/X11/extensions/lbxbufstr.h
%{_includedir}/nx/X11/extensions/lbxdeltastr.h %{_includedir}/nx/X11/extensions/lbxdeltastr.h
...@@ -1017,7 +1016,6 @@ ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama ...@@ -1017,7 +1016,6 @@ ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama
%{_includedir}/nx/X11/extensions/compositeproto.h %{_includedir}/nx/X11/extensions/compositeproto.h
%{_includedir}/nx/X11/extensions/damageproto.h %{_includedir}/nx/X11/extensions/damageproto.h
%{_includedir}/nx/X11/extensions/damagewire.h %{_includedir}/nx/X11/extensions/damagewire.h
%{_includedir}/nx/X11/extensions/dmxproto.h
%{_includedir}/nx/X11/extensions/panoramiXproto.h %{_includedir}/nx/X11/extensions/panoramiXproto.h
%{_includedir}/nx/X11/extensions/randr.h %{_includedir}/nx/X11/extensions/randr.h
%{_includedir}/nx/X11/extensions/randrproto.h %{_includedir}/nx/X11/extensions/randrproto.h
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment