diff options
Diffstat (limited to 'xorg-server/Xext/EVI.c')
-rw-r--r-- | xorg-server/Xext/EVI.c | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/xorg-server/Xext/EVI.c b/xorg-server/Xext/EVI.c deleted file mode 100644 index a637bae5d..000000000 --- a/xorg-server/Xext/EVI.c +++ /dev/null @@ -1,200 +0,0 @@ -/************************************************************ -Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc. -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright -notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting -documentation, and that the name of Silicon Graphics not be -used in advertising or publicity pertaining to distribution -of the software without specific prior written permission. -Silicon Graphics makes no representation about the suitability -of this software for any purpose. It is provided "as is" -without any express or implied warranty. -SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON -GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL -DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. -********************************************************/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include <X11/X.h> -#include <X11/Xproto.h> -#include "dixstruct.h" -#include "extnsionst.h" -#include "dix.h" -#define _XEVI_SERVER_ -#include <X11/extensions/XEVIstr.h> -#include "EVIstruct.h" -#include "modinit.h" -#include "scrnintstr.h" - -static EviPrivPtr eviPriv; - -static int -ProcEVIQueryVersion(ClientPtr client) -{ - /* REQUEST(xEVIQueryVersionReq); */ - xEVIQueryVersionReply rep; - register int n; - REQUEST_SIZE_MATCH (xEVIQueryVersionReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.majorVersion = XEVI_MAJOR_VERSION; - rep.minorVersion = XEVI_MAJOR_VERSION; - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swaps(&rep.majorVersion, n); - swaps(&rep.minorVersion, n); - } - WriteToClient(client, sizeof (xEVIQueryVersionReply), (char *)&rep); - return (client->noClientException); -} -#define swapEviInfo(eviInfo, l) \ -{ \ - int l1 = l; \ - xExtendedVisualInfo *eviInfo1 = eviInfo; \ - while (l1-- > 0) { \ - swapl(&eviInfo1->core_visual_id, n); \ - swapl(&eviInfo1->transparency_value, n); \ - swaps(&eviInfo1->num_colormap_conflicts, n); \ - eviInfo1++; \ - } \ -} -#define swapVisual(visual, l) \ -{ \ - int l1 = l; \ - VisualID32 *visual1 = visual; \ - while (l1-- > 0) { \ - swapl(visual1, n); \ - visual1++; \ - } \ -} - -static int -ProcEVIGetVisualInfo(ClientPtr client) -{ - REQUEST(xEVIGetVisualInfoReq); - xEVIGetVisualInfoReply rep; - int i, n, n_conflict, n_info, sz_info, sz_conflict; - VisualID32 *conflict; - unsigned int total_visuals = 0; - xExtendedVisualInfo *eviInfo; - int status; - - /* - * do this first, otherwise REQUEST_FIXED_SIZE can overflow. we assume - * here that you don't have more than 2^32 visuals over all your screens; - * this seems like a safe assumption. - */ - for (i = 0; i < screenInfo.numScreens; i++) - total_visuals += screenInfo.screens[i]->numVisuals; - if (stuff->n_visual > total_visuals) - return BadValue; - - REQUEST_FIXED_SIZE(xEVIGetVisualInfoReq, stuff->n_visual * sz_VisualID32); - status = eviPriv->getVisualInfo((VisualID32 *)&stuff[1], (int)stuff->n_visual, - &eviInfo, &n_info, &conflict, &n_conflict); - if (status != Success) - return status; - sz_info = n_info * sz_xExtendedVisualInfo; - sz_conflict = n_conflict * sz_VisualID32; - rep.type = X_Reply; - rep.n_info = n_info; - rep.n_conflicts = n_conflict; - rep.sequenceNumber = client->sequence; - rep.length = (sz_info + sz_conflict) >> 2; - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.n_info, n); - swapl(&rep.n_conflicts, n); - swapEviInfo(eviInfo, n_info); - swapVisual(conflict, n_conflict); - } - WriteToClient(client, sz_xEVIGetVisualInfoReply, (char *)&rep); - WriteToClient(client, sz_info, (char *)eviInfo); - WriteToClient(client, sz_conflict, (char *)conflict); - eviPriv->freeVisualInfo(eviInfo, conflict); - return (client->noClientException); -} - -static int -ProcEVIDispatch(ClientPtr client) -{ - REQUEST(xReq); - switch (stuff->data) { - case X_EVIQueryVersion: - return ProcEVIQueryVersion (client); - case X_EVIGetVisualInfo: - return ProcEVIGetVisualInfo (client); - default: - return BadRequest; - } -} - -static int -SProcEVIQueryVersion(ClientPtr client) -{ - REQUEST(xEVIQueryVersionReq); - int n; - swaps(&stuff->length, n); - return ProcEVIQueryVersion(client); -} - -static int -SProcEVIGetVisualInfo(ClientPtr client) -{ - register int n; - REQUEST(xEVIGetVisualInfoReq); - swaps(&stuff->length, n); - return ProcEVIGetVisualInfo(client); -} - -static int -SProcEVIDispatch(ClientPtr client) -{ - REQUEST(xReq); - switch (stuff->data) - { - case X_EVIQueryVersion: - return SProcEVIQueryVersion (client); - case X_EVIGetVisualInfo: - return SProcEVIGetVisualInfo (client); - default: - return BadRequest; - } -} - -/*ARGSUSED*/ -static void -EVIResetProc(ExtensionEntry *extEntry) -{ - eviDDXReset(); -} - -/**************** - * XEVIExtensionInit - * - * Called from InitExtensions in main() or from QueryExtension() if the - * extension is dynamically loaded. - * - ****************/ -void -EVIExtensionInit(INITARGS) -{ - if (AddExtension(EVINAME, 0, 0, - ProcEVIDispatch, SProcEVIDispatch, - EVIResetProc, StandardMinorOpcode)) { - eviPriv = eviDDXInit(); - } -} |