X-Git-Url: https://git.sesse.net/?p=rdpsrv;a=blobdiff_plain;f=Xserver%2Fprograms%2FXserver%2FXext%2Fxf86dga.c;fp=Xserver%2Fprograms%2FXserver%2FXext%2Fxf86dga.c;h=0000000000000000000000000000000000000000;hp=27d1fad117e8314f65b3b29801edc336f0149be8;hb=ce66b81460e5353db09d45c02339d4583fbda255;hpb=7772d71ffd742cfc9b7ff214659d16c5bb56a391 diff --git a/Xserver/programs/Xserver/Xext/xf86dga.c b/Xserver/programs/Xserver/Xext/xf86dga.c deleted file mode 100644 index 27d1fad..0000000 --- a/Xserver/programs/Xserver/Xext/xf86dga.c +++ /dev/null @@ -1,483 +0,0 @@ -/* $XFree86: xc/programs/Xserver/Xext/xf86dga.c,v 3.8 1997/01/18 06:53:01 dawes Exp $ */ - -/* - -Copyright (c) 1995 Jon Tombs -Copyright (c) 1995, 1996 XFree86 Inc - -*/ - -#define NEED_REPLIES -#define NEED_EVENTS -#include "X.h" -#include "Xproto.h" -#include "misc.h" -#include "dixstruct.h" -#include "extnsionst.h" -#include "colormapst.h" -#include "cursorstr.h" -#include "scrnintstr.h" -#include "servermd.h" -#define _XF86DGA_SERVER_ -#include "xf86dgastr.h" -#include "swaprep.h" -#include "../hw/xfree86/common/xf86.h" - -#include -#include "../os/osdep.h" -#include -#ifndef ESIX -#ifndef Lynx -#include -#else -#include -#endif -#else -#include -#endif - -extern int xf86ScreenIndex; - -static int DGAErrorBase; - -static DISPATCH_PROC(ProcDGAQueryVersion); -static DISPATCH_PROC(ProcXF86DGADirectVideo); -static DISPATCH_PROC(ProcXF86DGADispatch); -static DISPATCH_PROC(ProcXF86DGAGetVidPage); -static DISPATCH_PROC(ProcXF86DGAGetVideoLL); -static DISPATCH_PROC(ProcXF86DGAGetViewPortSize); -static DISPATCH_PROC(ProcXF86DGASetVidPage); -static DISPATCH_PROC(ProcXF86DGASetViewPort); -static DISPATCH_PROC(ProcDGAInstallColormap); -static DISPATCH_PROC(ProcDGAQueryDirectVideo); -static DISPATCH_PROC(ProcDGAViewPortChanged); - -/* - * SProcs should probably be deleted, a local connection can never - * be byte flipped!? - Jon. - */ -static DISPATCH_PROC(SProcXF86DGADirectVideo); -static DISPATCH_PROC(SProcXF86DGADispatch); -static DISPATCH_PROC(SProcXF86DGAQueryVersion); - -static void XF86DGAResetProc( -#if NeedFunctionPrototypes - ExtensionEntry* /* extEntry */ -#endif -); - -static unsigned char DGAReqCode = 0; - -void -XFree86DGAExtensionInit() -{ - ExtensionEntry* extEntry; -#ifdef XF86DGA_EVENTS - int i; - ScreenPtr pScreen; - - EventType = CreateNewResourceType(XF86DGAFreeEvents); - ScreenPrivateIndex = AllocateScreenPrivateIndex (); - for (i = 0; i < screenInfo.numScreens; i++) - { - pScreen = screenInfo.screens[i]; - SetScreenPrivate (pScreen, NULL); - } -#endif - - if ( -#ifdef XF86DGA_EVENTS - EventType && ScreenPrivateIndex != -1 && -#endif - (extEntry = AddExtension(XF86DGANAME, - XF86DGANumberEvents, - XF86DGANumberErrors, - ProcXF86DGADispatch, - SProcXF86DGADispatch, - XF86DGAResetProc, - StandardMinorOpcode))) { - DGAReqCode = (unsigned char)extEntry->base; - DGAErrorBase = extEntry->errorBase; - } -} - -/*ARGSUSED*/ -static void -XF86DGAResetProc (extEntry) - ExtensionEntry* extEntry; -{ -} - -static int -ProcDGAQueryVersion(client) - register ClientPtr client; -{ - xXF86DGAQueryVersionReply rep; - register int n; - - REQUEST_SIZE_MATCH(xXF86DGAQueryVersionReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.majorVersion = XF86DGA_MAJOR_VERSION; - rep.minorVersion = XF86DGA_MINOR_VERSION; - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - } - WriteToClient(client, sizeof(xXF86DGAQueryVersionReply), (char *)&rep); - return (client->noClientException); -} - -static int -ProcXF86DGAGetVideoLL(client) - register ClientPtr client; -{ - REQUEST(xXF86DGAGetVideoLLReq); - xXF86DGAGetVideoLLReply rep; - ScrnInfoPtr vptr; - register int n; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - REQUEST_SIZE_MATCH(xXF86DGAGetVideoLLReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; -#if 0 - xf86GetVidMemData(stuff->screen, &rep.offset, &rep.bank_size); -#else - rep.offset = vptr->physBase; - rep.bank_size = vptr->physSize; -#endif - rep.width = vptr->displayWidth; - rep.ram_size = vptr->videoRam; - - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.offset, n); - swapl(&rep.width, n); - swapl(&rep.bank_size, n); - swapl(&rep.ram_size, n); - } - WriteToClient(client, SIZEOF(xXF86DGAGetVideoLLReply), (char *)&rep); - return (client->noClientException); -} - -static int -ProcXF86DGADirectVideo(client) - register ClientPtr client; -{ - REQUEST(xXF86DGADirectVideoReq); - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq); - if (!(vptr->directMode&XF86DGADirectPresent)) { - /* chipset doesn't know about directVideoMode */ - return DGAErrorBase + XF86DGANoDirectVideoMode; - } - - /* Check that the current screen is active. */ - if (!xf86VTSema && !(vptr->directMode & XF86DGADirectGraphics)) { - return DGAErrorBase + XF86DGAScreenNotActive; - } - - if (stuff->enable&XF86DGADirectGraphics) { - vptr->directMode = stuff->enable|XF86DGADirectPresent; - if (xf86VTSema == TRUE) { - vptr->EnterLeaveVT(LEAVE, stuff->screen); - xf86VTSema = FALSE; - } - } else { - if (xf86VTSema == FALSE) { - xf86VTSema = TRUE; - vptr->EnterLeaveVT(ENTER, stuff->screen); - } - vptr->directMode = (0x0f&stuff->enable)|XF86DGADirectPresent; - } - - return (client->noClientException); -} - -static int -ProcXF86DGAGetViewPortSize(client) - register ClientPtr client; -{ - REQUEST(xXF86DGAGetViewPortSizeReq); - xXF86DGAGetViewPortSizeReply rep; - register int n; - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGAGetViewPortSizeReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.width = vptr->modes->HDisplay; - rep.height = vptr->modes->VDisplay; - - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.width, n); - swapl(&rep.height, n); - } - WriteToClient(client, SIZEOF(xXF86DGAGetViewPortSizeReply), (char *)&rep); - return (client->noClientException); -} - -static int -ProcXF86DGASetViewPort(client) - register ClientPtr client; -{ - REQUEST(xXF86DGASetViewPortReq); - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq); - - if (vptr->AdjustFrame && - (xf86VTSema == TRUE || vptr->directMode&XF86DGADirectGraphics)) - vptr->AdjustFrame(stuff->x, stuff->y); - else - return DGAErrorBase + XF86DGAScreenNotActive; - - return (client->noClientException); -} - -static int -ProcXF86DGAGetVidPage(client) - register ClientPtr client; -{ - REQUEST(xXF86DGAGetVidPageReq); - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - ErrorF("XF86DGAGetVidPage not yet implemented\n"); - - REQUEST_SIZE_MATCH(xXF86DGAGetVidPageReq); - return (client->noClientException); -} - - -static int -ProcXF86DGASetVidPage(client) - register ClientPtr client; -{ - REQUEST(xXF86DGASetVidPageReq); - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGASetVidPageReq); - - if (xf86VTSema == TRUE) {/* only valid when switched away! */ - return DGAErrorBase + XF86DGADirectNotActivated; - } - if (!xf86VTSema && !(vptr->directMode & XF86DGADirectGraphics)) { - return DGAErrorBase + XF86DGAScreenNotActive; - } - - if (vptr->setBank) { - vptr->setBank(stuff->vpage); - } - return (client->noClientException); -} - - -static int -ProcDGAInstallColormap(client) - register ClientPtr client; -{ - ColormapPtr pcmp; - ScrnInfoPtr vptr; - REQUEST(xXF86DGAInstallColormapReq); - - REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq); - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - if (xf86VTSema == TRUE) {/* only valid when switched away! */ - return DGAErrorBase + XF86DGADirectNotActivated; - } - if (!xf86VTSema && !(vptr->directMode & XF86DGADirectGraphics)) { - return DGAErrorBase + XF86DGAScreenNotActive; - } - - pcmp = (ColormapPtr )LookupIDByType(stuff->id, RT_COLORMAP); - if (pcmp) - { - vptr->directMode |= XF86DGADirectColormap; - vptr->directMode |= XF86DGAHasColormap; - (*(pcmp->pScreen->InstallColormap)) (pcmp); - vptr->directMode &= ~XF86DGAHasColormap; - return (client->noClientException); - } - else - { - client->errorValue = stuff->id; - return (BadColor); - } -} - -static int -ProcXF86DGAQueryDirectVideo(client) - register ClientPtr client; -{ - REQUEST(xXF86DGAQueryDirectVideoReq); - xXF86DGAQueryDirectVideoReply rep; - register int n; - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGAQueryDirectVideoReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - rep.flags = vptr->directMode; - - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.flags, n); - } - WriteToClient(client, SIZEOF(xXF86DGAQueryDirectVideoReply), (char *)&rep); - return (client->noClientException); -} - -static int -ProcXF86DGAViewPortChanged(client) - register ClientPtr client; -{ - REQUEST(xXF86DGAViewPortChangedReq); - xXF86DGAViewPortChangedReply rep; - register int n; - ScrnInfoPtr vptr; - - if (stuff->screen > screenInfo.numScreens) - return BadValue; - - vptr = (ScrnInfoPtr) screenInfo.screens[stuff->screen]->devPrivates[xf86ScreenIndex].ptr; - - REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq); - rep.type = X_Reply; - rep.length = 0; - rep.sequenceNumber = client->sequence; - /* For the moment, always return TRUE. */ - rep.result = TRUE; - - if (client->swapped) { - swaps(&rep.sequenceNumber, n); - swapl(&rep.length, n); - swapl(&rep.result, n); - } - WriteToClient(client, SIZEOF(xXF86DGAViewPortChangedReply), (char *)&rep); - return (client->noClientException); -} - -static int -ProcXF86DGADispatch (client) - register ClientPtr client; -{ - REQUEST(xReq); - - if (!LocalClient(client)) - return DGAErrorBase + XF86DGAClientNotLocal; - - switch (stuff->data) - { - case X_XF86DGAQueryVersion: - return ProcDGAQueryVersion(client); - case X_XF86DGAGetVideoLL: - return ProcXF86DGAGetVideoLL(client); - case X_XF86DGADirectVideo: - return ProcXF86DGADirectVideo(client); - case X_XF86DGAGetViewPortSize: - return ProcXF86DGAGetViewPortSize(client); - case X_XF86DGASetViewPort: - return ProcXF86DGASetViewPort(client); - case X_XF86DGAGetVidPage: - return ProcXF86DGAGetVidPage(client); - case X_XF86DGASetVidPage: - return ProcXF86DGASetVidPage(client); - case X_XF86DGAInstallColormap: - return ProcDGAInstallColormap(client); - case X_XF86DGAQueryDirectVideo: - return ProcXF86DGAQueryDirectVideo(client); - case X_XF86DGAViewPortChanged: - return ProcXF86DGAViewPortChanged(client); - default: - return BadRequest; - } -} - -static int -SProcXF86DGAQueryVersion(client) - register ClientPtr client; -{ - register int n; - REQUEST(xXF86DGAQueryVersionReq); - swaps(&stuff->length, n); - return ProcDGAQueryVersion(client); -} - -static int -SProcXF86DGADirectVideo(client) - ClientPtr client; -{ - register int n; - REQUEST(xXF86DGADirectVideoReq); - swaps(&stuff->length, n); - REQUEST_SIZE_MATCH(xXF86DGADirectVideoReq); - swaps(&stuff->screen, n); - swaps(&stuff->enable, n); - return ProcXF86DGADirectVideo(client); -} - -static int -SProcXF86DGADispatch (client) - register ClientPtr client; -{ - REQUEST(xReq); - - /* It is bound to be non-local when there is byte swapping */ - if (!LocalClient(client)) - return DGAErrorBase + XF86DGAClientNotLocal; - - switch (stuff->data) - { - case X_XF86DGAQueryVersion: - return SProcXF86DGAQueryVersion(client); - case X_XF86DGADirectVideo: - return SProcXF86DGADirectVideo(client); - default: - return BadRequest; - } -} -