xorg/vmwgfx: Kill this target. It's not used anymore.
authorThomas Hellstrom <thellstrom@vmware.com>
Thu, 29 Sep 2011 19:41:21 +0000 (21:41 +0200)
committerThomas Hellstrom <thellstrom@vmware.com>
Fri, 30 Sep 2011 07:30:59 +0000 (09:30 +0200)
This fixes a build error introduced with commit
"winsys/svga: Update to vmwgfx kernel module 2.1"
if both the svga driver and the xorg state tracker was enabled
at the same time.

If needed we can re-add a minimal target for basic functionality.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
14 files changed:
configure.ac
src/gallium/SConscript
src/gallium/targets/xorg-vmwgfx/Makefile [deleted file]
src/gallium/targets/xorg-vmwgfx/SConscript [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_ctrl.h [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_driver.h [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_hook.h [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_screen.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_target.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_video.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmw_xorg.c [deleted file]
src/gallium/targets/xorg-vmwgfx/vmwarectrlproto.h [deleted file]

index 56aac7a81a25a53b0bae152f9069649afb7f4c57..20426533afdd3434dd4014e553e3c950e2f506e9 100644 (file)
@@ -1798,7 +1798,7 @@ if test "x$with_gallium_drivers" != x; then
         case "x$driver" in
         xsvga)
             GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
-            gallium_check_st "svga/drm" "dri-vmwgfx" "xorg-vmwgfx" "xa-vmwgfx"
+            gallium_check_st "svga/drm" "dri-vmwgfx" "" "xa-vmwgfx"
             ;;
         xi915)
             PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
index 3c063a2025cdbf16d72245e9e2c631d67f621823..d9fd48425a03c8855e84362cc6807e60ecde8008 100644 (file)
@@ -126,7 +126,6 @@ if not env['embedded']:
             #'targets/xorg-i965/SConscript',
             #'targets/xorg-nouveau/SConscript',
             #'targets/xorg-radeon/SConscript',
-            'targets/xorg-vmwgfx/SConscript',
         ])
 
 
diff --git a/src/gallium/targets/xorg-vmwgfx/Makefile b/src/gallium/targets/xorg-vmwgfx/Makefile
deleted file mode 100644 (file)
index 04a444f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-TOP = ../../../..
-include $(TOP)/configs/current
-
-LIBNAME = vmwgfx_drv.so
-
-C_SOURCES = \
-       vmw_xorg.c \
-       vmw_video.c \
-       vmw_ioctl.c \
-       vmw_ctrl.c \
-       vmw_target.c \
-       vmw_screen.c
-
-DRIVER_INCLUDES = \
-       -I$(TOP)/src/gallium
-
-DRIVER_DEFINES = \
-       -std=gnu99 \
-       -DGALLIUM_RBUG \
-       -DGALLIUM_TRACE \
-       -DHAVE_CONFIG_H
-
-DRIVER_PIPES = \
-       $(TOP)/src/gallium/state_trackers/xorg/libxorgtracker.a \
-       $(TOP)/src/gallium/winsys/svga/drm/libsvgadrm.a \
-       $(TOP)/src/gallium/drivers/svga/libsvga.a \
-       $(TOP)/src/gallium/drivers/trace/libtrace.a \
-       $(TOP)/src/gallium/drivers/rbug/librbug.a
-
-DRIVER_LINKS = \
-       $(shell pkg-config --libs libdrm libkms)
-
-include ../Makefile.xorg
diff --git a/src/gallium/targets/xorg-vmwgfx/SConscript b/src/gallium/targets/xorg-vmwgfx/SConscript
deleted file mode 100644 (file)
index 41f4326..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-import os.path
-
-Import('*')
-
-env = env.Clone()
-
-env.PkgUseModules(['DRM', 'XORG'])
-
-if env['kms']:
-    env.PkgUseModules(['KMS'])
-
-env.Prepend(CPPPATH = [
-    '#/include',
-    '#/src/gallium',
-    '#/src/mesa',
-    '#/src/gallium/drivers/svga',
-    '#/src/gallium/drivers/svga/include',
-])
-
-env.Append(CPPDEFINES = [
-])
-
-if env['gcc']:
-    env.Append(CPPDEFINES = [
-        'HAVE_STDINT_H',
-        'HAVE_SYS_TYPES_H',
-    ])
-
-env.Append(CFLAGS = [
-    '-std=gnu99',
-    '-D_FILE_OFFSET_BITS=64',
-])
-
-env.Prepend(LIBPATH = [
-])
-
-env.Prepend(LIBS = [
-    trace,
-    rbug,
-    st_xorg,
-    svgadrm,
-    svga,
-    gallium,
-])
-
-sources = [
-    'vmw_ioctl.c',
-    'vmw_ctrl.c',
-    'vmw_screen.c',
-    'vmw_target.c',
-    'vmw_video.c',
-    'vmw_xorg.c',
-]
-
-# TODO: write a wrapper function http://www.scons.org/wiki/WrapperFunctions
-module = env.LoadableModule(
-    target ='vmwgfx_drv.so',
-    source = sources,
-    LIBS = env['LIBS'],
-    SHLIBPREFIX = '',
-)
-
-env.Alias('xorg-vmwgfx', module)
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c
deleted file mode 100644 (file)
index 9b422e6..0000000
+++ /dev/null
@@ -1,524 +0,0 @@
-/*
- * Copyright 2006 by VMware, Inc.
- *
- * 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
- * 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-/*
- * vmwarectrl.c --
- *
- *      The implementation of the VMWARE_CTRL protocol extension that
- *      allows X clients to communicate with the driver.
- */
-
-#include <xorg-server.h>
-#include "dixstruct.h"
-#include "extnsionst.h"
-#include <X11/X.h>
-#include <X11/extensions/panoramiXproto.h>
-
-#include "vmw_driver.h"
-#include "vmwarectrlproto.h"
-
-#include "xf86drm.h"
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlQueryVersion --
- *
- *      Implementation of QueryVersion command handler. Initialises and
- *      sends a reply.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Writes reply to client
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-VMwareCtrlQueryVersion(ClientPtr client)
-{
-   xVMwareCtrlQueryVersionReply rep = { 0, };
-   register int n;
-
-   REQUEST_SIZE_MATCH(xVMwareCtrlQueryVersionReq);
-
-   rep.type = X_Reply;
-   rep.length = 0;
-   rep.sequenceNumber = client->sequence;
-   rep.majorVersion = VMWARE_CTRL_MAJOR_VERSION;
-   rep.minorVersion = VMWARE_CTRL_MINOR_VERSION;
-   if (client->swapped) {
-      swaps(&rep.sequenceNumber, n);
-      swapl(&rep.length, n);
-      swapl(&rep.majorVersion, n);
-      swapl(&rep.minorVersion, n);
-   }
-   WriteToClient(client, sizeof(xVMwareCtrlQueryVersionReply), (char *)&rep);
-
-   return client->noClientException;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlDoSetRes --
- *
- *      Set the custom resolution into the mode list.
- *
- *      This is done by alternately updating one of two dynamic modes. It is
- *      done this way because the server gets upset if you try to switch
- *      to a new resolution that has the same index as the current one.
- *
- * Results:
- *      TRUE on success, FALSE otherwise.
- *
- * Side effects:
- *      One dynamic mode will be updated if successful.
- *
- *----------------------------------------------------------------------------
- */
-
-static Bool
-VMwareCtrlDoSetRes(ScrnInfoPtr pScrn,
-                   CARD32 x,
-                   CARD32 y)
-{
-   struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-   struct vmw_rect rect;
-   rect.x = 0;
-   rect.y = 0;
-   rect.w = x;
-   rect.h = y;
-
-   vmw_ioctl_update_layout(vmw, 1, &rect);
-
-   return TRUE;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlSetRes --
- *
- *      Implementation of SetRes command handler. Initialises and sends a
- *      reply.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Writes reply to client
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-VMwareCtrlSetRes(ClientPtr client)
-{
-   REQUEST(xVMwareCtrlSetResReq);
-   xVMwareCtrlSetResReply rep = { 0, };
-   ScrnInfoPtr pScrn;
-   ExtensionEntry *ext;
-   register int n;
-
-   REQUEST_SIZE_MATCH(xVMwareCtrlSetResReq);
-
-   if (!(ext = CheckExtension(VMWARE_CTRL_PROTOCOL_NAME))) {
-      return BadMatch;
-   }
-
-   pScrn = ext->extPrivate;
-   if (pScrn->scrnIndex != stuff->screen) {
-      return BadMatch;
-   }
-
-   if (!VMwareCtrlDoSetRes(pScrn, stuff->x, stuff->y)) {
-      return BadValue;
-   }
-
-   rep.type = X_Reply;
-   rep.length = (sizeof(xVMwareCtrlSetResReply) - sizeof(xGenericReply)) >> 2;
-   rep.sequenceNumber = client->sequence;
-   rep.screen = stuff->screen;
-   rep.x = stuff->x;
-   rep.y = stuff->y;
-   if (client->swapped) {
-      swaps(&rep.sequenceNumber, n);
-      swapl(&rep.length, n);
-      swapl(&rep.screen, n);
-      swapl(&rep.x, n);
-      swapl(&rep.y, n);
-   }
-   WriteToClient(client, sizeof(xVMwareCtrlSetResReply), (char *)&rep);
-
-   return client->noClientException;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlDoSetTopology --
- *
- *      Set the custom topology and set a dynamic mode to the bounding box
- *      of the passed topology. If a topology is already pending, then do
- *      nothing but do not return failure.
- *
- * Results:
- *      TRUE on success, FALSE otherwise.
- *
- * Side effects:
- *      One dynamic mode and the pending xinerama state will be updated if
- *      successful.
- *
- *----------------------------------------------------------------------------
- */
-
-static Bool
-VMwareCtrlDoSetTopology(ScrnInfoPtr pScrn,
-                        xXineramaScreenInfo *extents,
-                        unsigned long number)
-{
-   struct vmw_rect *rects;
-   struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-   int i;
-
-   rects = calloc(number, sizeof(*rects));
-   if (!rects)
-      return FALSE;
-
-   for (i = 0; i < number; i++) {
-      rects[i].x = extents[i].x_org;
-      rects[i].y = extents[i].y_org;
-      rects[i].w = extents[i].width;
-      rects[i].h = extents[i].height;
-   }
-
-   vmw_ioctl_update_layout(vmw, number, rects);
-
-   free(rects);
-   return TRUE;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlSetTopology --
- *
- *      Implementation of SetTopology command handler. Initialises and sends a
- *      reply.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Writes reply to client
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-VMwareCtrlSetTopology(ClientPtr client)
-{
-   REQUEST(xVMwareCtrlSetTopologyReq);
-   xVMwareCtrlSetTopologyReply rep = { 0, };
-   ScrnInfoPtr pScrn;
-   ExtensionEntry *ext;
-   register int n;
-   xXineramaScreenInfo *extents;
-
-   REQUEST_AT_LEAST_SIZE(xVMwareCtrlSetTopologyReq);
-
-   if (!(ext = CheckExtension(VMWARE_CTRL_PROTOCOL_NAME))) {
-      return BadMatch;
-   }
-
-   pScrn = ext->extPrivate;
-   if (pScrn->scrnIndex != stuff->screen) {
-      return BadMatch;
-   }
-
-   extents = (xXineramaScreenInfo *)(stuff + 1);
-   if (!VMwareCtrlDoSetTopology(pScrn, extents, stuff->number)) {
-      return BadValue;
-   }
-
-   rep.type = X_Reply;
-   rep.length = (sizeof(xVMwareCtrlSetTopologyReply) - sizeof(xGenericReply)) >> 2;
-   rep.sequenceNumber = client->sequence;
-   rep.screen = stuff->screen;
-   if (client->swapped) {
-      swaps(&rep.sequenceNumber, n);
-      swapl(&rep.length, n);
-      swapl(&rep.screen, n);
-   }
-   WriteToClient(client, sizeof(xVMwareCtrlSetTopologyReply), (char *)&rep);
-
-   return client->noClientException;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlDispatch --
- *
- *      Dispatcher for VMWARE_CTRL commands. Calls the correct handler for
- *      each command type.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Side effects of individual command handlers.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-VMwareCtrlDispatch(ClientPtr client)
-{
-   REQUEST(xReq);
-
-   switch(stuff->data) {
-   case X_VMwareCtrlQueryVersion:
-      return VMwareCtrlQueryVersion(client);
-   case X_VMwareCtrlSetRes:
-      return VMwareCtrlSetRes(client);
-   case X_VMwareCtrlSetTopology:
-      return VMwareCtrlSetTopology(client);
-   }
-   return BadRequest;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * SVMwareCtrlQueryVersion --
- *
- *      Wrapper for QueryVersion handler that handles input from other-endian
- *      clients.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Side effects of unswapped implementation.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-SVMwareCtrlQueryVersion(ClientPtr client)
-{
-   register int n;
-
-   REQUEST(xVMwareCtrlQueryVersionReq);
-   REQUEST_SIZE_MATCH(xVMwareCtrlQueryVersionReq);
-
-   swaps(&stuff->length, n);
-
-   return VMwareCtrlQueryVersion(client);
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * SVMwareCtrlSetRes --
- *
- *      Wrapper for SetRes handler that handles input from other-endian
- *      clients.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Side effects of unswapped implementation.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-SVMwareCtrlSetRes(ClientPtr client)
-{
-   register int n;
-
-   REQUEST(xVMwareCtrlSetResReq);
-   REQUEST_SIZE_MATCH(xVMwareCtrlSetResReq);
-
-   swaps(&stuff->length, n);
-   swapl(&stuff->screen, n);
-   swapl(&stuff->x, n);
-   swapl(&stuff->y, n);
-
-   return VMwareCtrlSetRes(client);
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * SVMwareCtrlSetTopology --
- *
- *      Wrapper for SetTopology handler that handles input from other-endian
- *      clients.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Side effects of unswapped implementation.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-SVMwareCtrlSetTopology(ClientPtr client)
-{
-   register int n;
-
-   REQUEST(xVMwareCtrlSetTopologyReq);
-   REQUEST_SIZE_MATCH(xVMwareCtrlSetTopologyReq);
-
-   swaps(&stuff->length, n);
-   swapl(&stuff->screen, n);
-   swapl(&stuff->number, n);
-   /* Each extent is a struct of shorts. */
-   SwapRestS(stuff);
-
-   return VMwareCtrlSetTopology(client);
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * SVMwareCtrlDispatch --
- *
- *      Wrapper for dispatcher that handles input from other-endian clients.
- *
- * Results:
- *      Standard response codes.
- *
- * Side effects:
- *      Side effects of individual command handlers.
- *
- *----------------------------------------------------------------------------
- */
-
-static int
-SVMwareCtrlDispatch(ClientPtr client)
-{
-   REQUEST(xReq);
-
-   switch(stuff->data) {
-   case X_VMwareCtrlQueryVersion:
-      return SVMwareCtrlQueryVersion(client);
-   case X_VMwareCtrlSetRes:
-      return SVMwareCtrlSetRes(client);
-   case X_VMwareCtrlSetTopology:
-      return SVMwareCtrlSetTopology(client);
-   }
-   return BadRequest;
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrlResetProc --
- *
- *      Cleanup handler called when the extension is removed.
- *
- * Results:
- *      None
- *
- * Side effects:
- *      None
- *
- *----------------------------------------------------------------------------
- */
-
-static void
-VMwareCtrlResetProc(ExtensionEntry* extEntry)
-{
-   /* Currently, no cleanup is necessary. */
-}
-
-
-/*
- *----------------------------------------------------------------------------
- *
- * VMwareCtrl_ExitInit --
- *
- *      Initialiser for the VMWARE_CTRL protocol extension.
- *
- * Results:
- *      None.
- *
- * Side effects:
- *      Protocol extension will be registered if successful.
- *
- *----------------------------------------------------------------------------
- */
-
-void
-vmw_ctrl_ext_init(struct vmw_customizer *vmw)
-{
-   ExtensionEntry *myext;
-   ScrnInfoPtr pScrn = vmw->pScrn;
-
-   if (!(myext = CheckExtension(VMWARE_CTRL_PROTOCOL_NAME))) {
-      if (!(myext = AddExtension(VMWARE_CTRL_PROTOCOL_NAME, 0, 0,
-                                 VMwareCtrlDispatch,
-                                 SVMwareCtrlDispatch,
-                                 VMwareCtrlResetProc,
-                                 StandardMinorOpcode))) {
-         xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
-                    "Failed to add VMWARE_CTRL extension\n");
-        return;
-      }
-
-      /*
-       * For now, only support one screen as that's all the virtual
-       * hardware supports.
-       */
-      myext->extPrivate = pScrn;
-
-      xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-                 "Initialized VMWARE_CTRL extension version %d.%d\n",
-                 VMWARE_CTRL_MAJOR_VERSION, VMWARE_CTRL_MINOR_VERSION);
-   }
-}
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.h b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.h
deleted file mode 100644 (file)
index 65e1cf5..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright 2006 by VMware, Inc.
- *
- * 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
- * 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-/*
- * vmw_ctrl.h --
- *
- *      The definitions used by the VMWARE_CTRL protocol extension that
- *      allows X clients to communicate with the driver.
- */
-
-
-#ifndef _VMW_CTRL_H_
-#define _VMW_CTRL_H_
-
-#define VMWARE_CTRL_PROTOCOL_NAME "VMWARE_CTRL"
-
-#define VMWARE_CTRL_MAJOR_VERSION 0
-#define VMWARE_CTRL_MINOR_VERSION 2
-
-#define X_VMwareCtrlQueryVersion 0
-#define X_VMwareCtrlSetRes 1
-#define X_VMwareCtrlSetTopology 2
-
-#endif /* _VMW_CTRL_H_ */
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_driver.h b/src/gallium/targets/xorg-vmwgfx/vmw_driver.h
deleted file mode 100644 (file)
index 8dfc9d2..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/**********************************************************
- * Copyright 2009 VMware, Inc.  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 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 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
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * 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.
- *
- **********************************************************/
-
-/**
- * @file
- * Contains the shared resources for VMware Xorg driver
- * that sits ontop of the Xorg State Traker.
- *
- * It is initialized in vmw_screen.c.
- *
- * @author Jakob Bornecrantz <jakob@vmware.com>
- */
-
-#ifndef VMW_DRIVER_H_
-#define VMW_DRIVER_H_
-
-#include "state_trackers/xorg/xorg_tracker.h"
-
-struct vmw_dma_buffer;
-
-struct vmw_rect
-{
-    int32_t x;
-    int32_t y;
-    uint32_t w;
-    uint32_t h;
-};
-
-struct vmw_customizer
-{
-    CustomizerRec base;
-    ScrnInfoPtr pScrn;
-
-    int fd;
-
-    void *cursor_priv;
-
-    /* vmw_video.c */
-    void *video_priv;
-    uint64_t max_fb_size;
-};
-
-static INLINE struct vmw_customizer *
-vmw_customizer(CustomizerPtr cust)
-{
-    return cust ? (struct vmw_customizer *) cust : NULL;
-}
-
-/***********************************************************************
- * vmw_ctrl.c
- */
-
-void vmw_ctrl_ext_init(struct vmw_customizer *vmw);
-
-
-/***********************************************************************
- * vmw_video.c
- */
-
-Bool vmw_video_init(struct vmw_customizer *vmw);
-
-Bool vmw_video_close(struct vmw_customizer *vmw);
-
-void vmw_video_stop_all(struct vmw_customizer *vmw);
-
-
-/***********************************************************************
- * vmw_ioctl.c
- */
-
-int vmw_ioctl_cursor_bypass(struct vmw_customizer *vmw, int xhot, int yhot);
-
-struct vmw_dma_buffer * vmw_ioctl_buffer_create(struct vmw_customizer *vmw,
-                                               uint32_t size,
-                                               unsigned *handle);
-
-void * vmw_ioctl_buffer_map(struct vmw_customizer *vmw,
-                           struct vmw_dma_buffer *buf);
-
-void vmw_ioctl_buffer_unmap(struct vmw_customizer *vmw,
-                           struct vmw_dma_buffer *buf);
-
-void vmw_ioctl_buffer_destroy(struct vmw_customizer *vmw,
-                             struct vmw_dma_buffer *buf);
-
-int vmw_ioctl_supports_streams(struct vmw_customizer *vmw);
-
-int vmw_ioctl_num_streams(struct vmw_customizer *vmw,
-                         uint32_t *ntot, uint32_t *nfree);
-
-int vmw_ioctl_unref_stream(struct vmw_customizer *vmw, uint32_t stream_id);
-
-int vmw_ioctl_claim_stream(struct vmw_customizer *vmw, uint32_t *out);
-
-int vmw_ioctl_update_layout(struct vmw_customizer *vmw, uint32_t num, struct vmw_rect *rects);
-
-
-#endif
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_hook.h b/src/gallium/targets/xorg-vmwgfx/vmw_hook.h
deleted file mode 100644 (file)
index 224a2d9..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/**********************************************************
- * Copyright 2009 VMware, Inc.  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 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 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
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * 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.
- *
- **********************************************************/
-
-#ifndef VMW_HOOK_H_
-#define VMW_HOOK_H_
-
-#include "state_trackers/xorg/xorg_winsys.h"
-
-
-/***********************************************************************
- * vmw_screen.c
- */
-
-void vmw_screen_set_functions(ScrnInfoPtr pScrn);
-
-
-#endif
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
deleted file mode 100644 (file)
index 7625d2f..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-/**********************************************************
- * Copyright 2009 VMware, Inc.  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 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 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
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * 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.
- *
- **********************************************************/
-
-/**
- * @file
- * Contains the functions for creating dma buffers by calling
- * the kernel via driver specific ioctls.
- *
- * @author Jakob Bornecrantz <jakob@vmware.com>
- */
-
-#ifndef HAVE_STDINT_H
-#define HAVE_STDINT_H 1
-#endif
-#define _FILE_OFFSET_BITS 64
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/mman.h>
-#include "xf86drm.h"
-#include "../../winsys/svga/drm/vmwgfx_drm.h"
-
-#include "vmw_driver.h"
-#include "util/u_debug.h"
-
-struct vmw_dma_buffer
-{
-    void *data;
-    unsigned handle;
-    uint64_t map_handle;
-    unsigned map_count;
-    uint32_t size;
-};
-
-static int
-vmw_ioctl_get_param(struct vmw_customizer *vmw, uint32_t param, uint64_t *out)
-{
-    struct drm_vmw_getparam_arg gp_arg;
-    int ret;
-
-    memset(&gp_arg, 0, sizeof(gp_arg));
-    gp_arg.param = param;
-    ret = drmCommandWriteRead(vmw->fd, DRM_VMW_GET_PARAM,
-           &gp_arg, sizeof(gp_arg));
-
-    if (ret == 0) {
-       *out = gp_arg.value;
-    }
-
-    return ret;
-}
-
-int
-vmw_ioctl_supports_streams(struct vmw_customizer *vmw)
-{
-    uint64_t value;
-    int ret;
-
-    ret = vmw_ioctl_get_param(vmw, DRM_VMW_PARAM_NUM_STREAMS, &value);
-    if (ret)
-       return ret;
-
-    return value ? 0 : -ENOSYS;
-}
-
-int
-vmw_ioctl_num_streams(struct vmw_customizer *vmw,
-                     uint32_t *ntot, uint32_t *nfree)
-{
-    uint64_t v1, v2;
-    int ret;
-
-    ret = vmw_ioctl_get_param(vmw, DRM_VMW_PARAM_NUM_STREAMS, &v1);
-    if (ret)
-       return ret;
-
-    ret = vmw_ioctl_get_param(vmw, DRM_VMW_PARAM_NUM_FREE_STREAMS, &v2);
-    if (ret)
-       return ret;
-
-    *ntot = (uint32_t)v1;
-    *nfree = (uint32_t)v2;
-
-    return 0;
-}
-
-int
-vmw_ioctl_claim_stream(struct vmw_customizer *vmw, uint32_t *out)
-{
-    struct drm_vmw_stream_arg s_arg;
-    int ret;
-
-    ret = drmCommandRead(vmw->fd, DRM_VMW_CLAIM_STREAM,
-                        &s_arg, sizeof(s_arg));
-
-    if (ret)
-       return -1;
-
-    *out = s_arg.stream_id;
-    return 0;
-}
-
-int
-vmw_ioctl_unref_stream(struct vmw_customizer *vmw, uint32_t stream_id)
-{
-    struct drm_vmw_stream_arg s_arg;
-    int ret;
-
-    memset(&s_arg, 0, sizeof(s_arg));
-    s_arg.stream_id = stream_id;
-
-    ret = drmCommandRead(vmw->fd, DRM_VMW_CLAIM_STREAM,
-                        &s_arg, sizeof(s_arg));
-
-    return 0;
-}
-
-int
-vmw_ioctl_cursor_bypass(struct vmw_customizer *vmw, int xhot, int yhot)
-{
-    struct drm_vmw_cursor_bypass_arg arg;
-    int ret;
-
-    memset(&arg, 0, sizeof(arg));
-    arg.flags = DRM_VMW_CURSOR_BYPASS_ALL;
-    arg.xhot = xhot;
-    arg.yhot = yhot;
-
-    ret = drmCommandWrite(vmw->fd, DRM_VMW_CURSOR_BYPASS,
-                         &arg, sizeof(arg));
-
-    return ret;
-}
-
-struct vmw_dma_buffer *
-vmw_ioctl_buffer_create(struct vmw_customizer *vmw, uint32_t size, unsigned *handle)
-{
-    struct vmw_dma_buffer *buf;
-    union drm_vmw_alloc_dmabuf_arg arg;
-    struct drm_vmw_alloc_dmabuf_req *req = &arg.req;
-    struct drm_vmw_dmabuf_rep *rep = &arg.rep;
-    int ret;
-
-    buf = calloc(1, sizeof(*buf));
-    if (!buf)
-       goto err;
-
-    memset(&arg, 0, sizeof(arg));
-    req->size = size;
-    do {
-       ret = drmCommandWriteRead(vmw->fd, DRM_VMW_ALLOC_DMABUF, &arg, sizeof(arg));
-    } while (ret == -ERESTART);
-
-    if (ret) {
-       debug_printf("IOCTL failed %d: %s\n", ret, strerror(-ret));
-       goto err_free;
-    }
-
-
-    buf->data = NULL;
-    buf->handle = rep->handle;
-    buf->map_handle = rep->map_handle;
-    buf->map_count = 0;
-    buf->size = size;
-
-    *handle = rep->handle;
-
-    return buf;
-
-err_free:
-    free(buf);
-err:
-    return NULL;
-}
-
-void
-vmw_ioctl_buffer_destroy(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf)
-{ 
-    struct drm_vmw_unref_dmabuf_arg arg; 
-
-    if (buf->data) { 
-       munmap(buf->data, buf->size); 
-       buf->data = NULL; 
-    } 
-
-    memset(&arg, 0, sizeof(arg)); 
-    arg.handle = buf->handle; 
-    drmCommandWrite(vmw->fd, DRM_VMW_UNREF_DMABUF, &arg, sizeof(arg)); 
-
-    free(buf);
-} 
-
-void *
-vmw_ioctl_buffer_map(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf)
-{
-    void *map;
-
-    if (buf->data == NULL) {
-       map = mmap(NULL, buf->size, PROT_READ | PROT_WRITE, MAP_SHARED,
-                  vmw->fd, buf->map_handle);
-       if (map == MAP_FAILED) {
-           debug_printf("%s: Map failed.\n", __FUNCTION__);
-           return NULL;
-       }
-
-       buf->data = map;
-    }
-
-    ++buf->map_count;
-
-    return buf->data;
-}
-
-void
-vmw_ioctl_buffer_unmap(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf)
-{
-    --buf->map_count;
-}
-
-int
-vmw_ioctl_update_layout(struct vmw_customizer *vmw, uint32_t num, struct vmw_rect *rects)
-{
-    struct drm_vmw_update_layout_arg ul_arg;
-    int ret;
-
-    assert(sizeof(struct vmw_rect) == sizeof(struct drm_vmw_rect));
-
-    memset(&ul_arg, 0, sizeof(ul_arg));
-    ul_arg.num_outputs = num;
-    ul_arg.rects = (uint64_t)(uintptr_t)rects;
-
-    ret = drmCommandWriteRead(vmw->fd, DRM_VMW_UPDATE_LAYOUT,
-                             &ul_arg, sizeof(ul_arg));
-
-    return ret;
-}
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_screen.c b/src/gallium/targets/xorg-vmwgfx/vmw_screen.c
deleted file mode 100644 (file)
index 69e5e2e..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-/**********************************************************
- * Copyright 2009 VMware, Inc.  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 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 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
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * 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.
- *
- **********************************************************/
-
-/**
- * @file
- * Contains the init code for the VMware Xorg driver.
- *
- * @author Jakob Bornecrantz <jakob@vmware.com>
- */
-
-#include "vmw_hook.h"
-#include "vmw_driver.h"
-#include "pipe/p_context.h"
-
-#include "cursorstr.h"
-#include "../../winsys/svga/drm/vmwgfx_drm.h"
-
-void vmw_winsys_screen_set_throttling(struct pipe_screen *screen,
-                                     uint32_t throttle_us);
-
-
-/* modified version of crtc functions */
-xf86CrtcFuncsRec vmw_screen_crtc_funcs;
-
-static void
-vmw_screen_cursor_load_argb(xf86CrtcPtr crtc, CARD32 *image)
-{
-    struct vmw_customizer *vmw =
-       vmw_customizer(xorg_customizer(crtc->scrn));
-    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
-    xf86CrtcFuncsPtr funcs = vmw->cursor_priv;
-    CursorPtr c = config->cursor;
-
-    /* Run the ioctl before uploading the image */
-    vmw_ioctl_cursor_bypass(vmw, c->bits->xhot, c->bits->yhot);
-
-    funcs->load_cursor_argb(crtc, image);
-}
-
-static void
-vmw_screen_cursor_init(struct vmw_customizer *vmw)
-{
-    ScrnInfoPtr pScrn = vmw->pScrn;
-    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
-    int i;
-
-    /* XXX assume that all crtc's have the same function struct */
-
-    /* Save old struct need to call the old functions as well */
-    vmw->cursor_priv = (void*)(config->crtc[0]->funcs);
-    memcpy(&vmw_screen_crtc_funcs, vmw->cursor_priv, sizeof(xf86CrtcFuncsRec));
-    vmw_screen_crtc_funcs.load_cursor_argb = vmw_screen_cursor_load_argb;
-
-    for (i = 0; i < config->num_crtc; i++)
-       config->crtc[i]->funcs = &vmw_screen_crtc_funcs;
-}
-
-static void
-vmw_screen_cursor_close(struct vmw_customizer *vmw)
-{
-    xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(vmw->pScrn);
-    int i;
-
-    vmw_ioctl_cursor_bypass(vmw, 0, 0);
-
-    for (i = 0; i < config->num_crtc; i++)
-       config->crtc[i]->funcs = vmw->cursor_priv;
-}
-
-static void
-vmw_context_throttle(CustomizerPtr cust,
-                    struct pipe_context *pipe,
-                    enum xorg_throttling_reason reason)
-{
-    switch (reason) {
-    case THROTTLE_RENDER:
-       vmw_winsys_screen_set_throttling(pipe->screen, 20000);
-       break;
-    default:
-      vmw_winsys_screen_set_throttling(pipe->screen, 0);
-    }
-}
-
-static void
-vmw_context_no_throttle(CustomizerPtr cust,
-                    struct pipe_context *pipe,
-                    enum xorg_throttling_reason reason)
-{
-    vmw_winsys_screen_set_throttling(pipe->screen, 0);
-}
-
-static Bool
-vmw_check_fb_size(CustomizerPtr cust,
-                 unsigned long pitch,
-                 unsigned long height)
-{
-    struct vmw_customizer *vmw = vmw_customizer(cust);
-
-    /**
-     *  1) Is there a pitch alignment?
-     *  2) The 1024 byte pad is an arbitrary value to be on
-     */
-
-    return ((uint64_t) pitch * height + 1024ULL < vmw->max_fb_size);
-}
-
-static Bool
-vmw_pre_init(CustomizerPtr cust, int fd)
-{
-    struct vmw_customizer *vmw = vmw_customizer(cust);
-    drmVersionPtr ver;
-
-    vmw->fd = fd;
-
-    ver = drmGetVersion(vmw->fd);
-    if (ver == NULL ||
-       (ver->version_major == 1 && ver->version_minor < 1)) {
-       cust->swap_throttling = TRUE;
-       cust->dirty_throttling = TRUE;
-       cust->winsys_context_throttle = vmw_context_no_throttle;
-    } else {
-       cust->swap_throttling = TRUE;
-       cust->dirty_throttling = FALSE;
-       cust->winsys_context_throttle = vmw_context_throttle;
-       debug_printf("%s: Enabling kernel throttling.\n", __func__);
-
-       if (ver->version_major > 1 ||
-           (ver->version_major == 1 && ver->version_minor >= 3)) {
-           struct drm_vmw_getparam_arg arg;
-           int ret;
-
-           arg.param = DRM_VMW_PARAM_MAX_FB_SIZE;
-           ret = drmCommandWriteRead(fd, DRM_VMW_GET_PARAM, &arg,
-                                     sizeof(arg));
-           if (!ret) {
-               vmw->max_fb_size = arg.value;
-               cust->winsys_check_fb_size = vmw_check_fb_size;
-               debug_printf("%s: Enabling fb size check.\n", __func__);
-           }
-       }
-    }
-
-    if (ver)
-       drmFreeVersion(ver);
-
-    return TRUE;
-}
-
-static Bool
-vmw_screen_init(CustomizerPtr cust)
-{
-    struct vmw_customizer *vmw = vmw_customizer(cust);
-
-    vmw_screen_cursor_init(vmw);
-
-    vmw_ctrl_ext_init(vmw);
-
-    /* if gallium is used then we don't need to do anything more. */
-    if (xorg_has_gallium(vmw->pScrn))
-       return TRUE;
-
-    vmw_video_init(vmw);
-
-    return TRUE;
-}
-
-static Bool
-vmw_screen_close(CustomizerPtr cust)
-{
-    struct vmw_customizer *vmw = vmw_customizer(cust);
-
-    if (!vmw)
-       return TRUE;
-
-    vmw_screen_cursor_close(vmw);
-
-    vmw_video_close(vmw);
-
-    return TRUE;
-}
-
-static Bool
-vmw_screen_enter_vt(CustomizerPtr cust)
-{
-    debug_printf("%s: enter\n", __func__);
-
-    return TRUE;
-}
-
-static Bool
-vmw_screen_leave_vt(CustomizerPtr cust)
-{
-    struct vmw_customizer *vmw = vmw_customizer(cust);
-
-    debug_printf("%s: enter\n", __func__);
-
-    vmw_video_stop_all(vmw);
-
-    return TRUE;
-}
-
-/*
- * Functions for setting up hooks into the xorg state tracker
- */
-
-static Bool (*vmw_screen_pre_init_saved)(ScrnInfoPtr pScrn, int flags) = NULL;
-
-static Bool
-vmw_screen_pre_init(ScrnInfoPtr pScrn, int flags)
-{
-    struct vmw_customizer *vmw;
-    CustomizerPtr cust;
-
-    vmw = xnfcalloc(1, sizeof(*vmw));
-    if (!vmw)
-       return FALSE;
-
-    cust = &vmw->base;
-
-    cust->winsys_pre_init = vmw_pre_init;
-    cust->winsys_screen_init = vmw_screen_init;
-    cust->winsys_screen_close = vmw_screen_close;
-    cust->winsys_enter_vt = vmw_screen_enter_vt;
-    cust->winsys_leave_vt = vmw_screen_leave_vt;
-    cust->no_3d = TRUE;
-    cust->unhidden_hw_cursor_update = TRUE;
-    vmw->pScrn = pScrn;
-
-    pScrn->driverPrivate = cust;
-
-    pScrn->PreInit = vmw_screen_pre_init_saved;
-    if (!pScrn->PreInit(pScrn, flags))
-       return FALSE;
-
-    return TRUE;
-}
-
-void
-vmw_screen_set_functions(ScrnInfoPtr pScrn)
-{
-    assert(!vmw_screen_pre_init_saved);
-
-    vmw_screen_pre_init_saved = pScrn->PreInit;
-    pScrn->PreInit = vmw_screen_pre_init;
-}
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_target.c b/src/gallium/targets/xorg-vmwgfx/vmw_target.c
deleted file mode 100644 (file)
index 15089d6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#include "target-helpers/inline_debug_helper.h"
-#include "state_tracker/drm_driver.h"
-#include "svga/drm/svga_drm_public.h"
-#include "svga/svga_public.h"
-
-static struct pipe_screen *
-create_screen(int fd)
-{
-   struct svga_winsys_screen *sws;
-   struct pipe_screen *screen;
-
-   sws = svga_drm_winsys_screen_create(fd);
-   if (!sws)
-      return NULL;
-
-   screen = svga_screen_create(sws);
-   if (!screen)
-      return NULL;
-
-   screen = debug_screen_wrap(screen);
-
-   return screen;
-}
-
-DRM_DRIVER_DESCRIPTOR("vmwgfx", "vmwgfx", create_screen)
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_video.c b/src/gallium/targets/xorg-vmwgfx/vmw_video.c
deleted file mode 100644 (file)
index 7979209..0000000
+++ /dev/null
@@ -1,1089 +0,0 @@
-/*
- * Copyright 2007 by VMware, Inc.
- *
- * 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
- * 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-/*
- * vmwarevideo.c --
- *
- *      Xv extension support.
- *      See http://www.xfree86.org/current/DESIGN16.html
- *
- */
-
-
-#include "xf86xv.h"
-#include "fourcc.h"
-
-#include "pipe/p_compiler.h"
-/*
- * We can't incude svga_types.h due to conflicting types for Bool.
- */
-typedef int64_t int64;
-typedef uint64_t uint64;
-
-typedef int32_t int32;
-typedef uint32_t uint32;
-
-typedef int16_t int16;
-typedef uint16_t uint16;
-
-typedef int8_t int8;
-typedef uint8_t uint8;
-
-#include "svga/include/svga_reg.h"
-#include "svga/include/svga_escape.h"
-#include "svga/include/svga_overlay.h"
-
-#include "vmw_driver.h"
-
-#include <X11/extensions/Xv.h>
-
-#include "xf86drm.h"
-#include "../../winsys/svga/drm/vmwgfx_drm.h"
-
-#define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE)
-
-/*
- * Number of videos that can be played simultaneously
- */
-#define VMWARE_VID_NUM_PORTS 1
-
-/*
- * Using a dark shade as the default colorKey
- */
-#define VMWARE_VIDEO_COLORKEY 0x100701
-
-/*
- * Maximum dimensions
- */
-#define VMWARE_VID_MAX_WIDTH    2048
-#define VMWARE_VID_MAX_HEIGHT   2048
-
-#define VMWARE_VID_NUM_ENCODINGS 1
-static XF86VideoEncodingRec vmwareVideoEncodings[] =
-{
-    {
-       0,
-       "XV_IMAGE",
-       VMWARE_VID_MAX_WIDTH, VMWARE_VID_MAX_HEIGHT,
-       {1, 1}
-    }
-};
-
-#define VMWARE_VID_NUM_FORMATS 2
-static XF86VideoFormatRec vmwareVideoFormats[] =
-{
-    { 16, TrueColor},
-    { 24, TrueColor}
-};
-
-#define VMWARE_VID_NUM_IMAGES 3
-static XF86ImageRec vmwareVideoImages[] =
-{
-    XVIMAGE_YV12,
-    XVIMAGE_YUY2,
-    XVIMAGE_UYVY
-};
-
-#define VMWARE_VID_NUM_ATTRIBUTES 2
-static XF86AttributeRec vmwareVideoAttributes[] =
-{
-    {
-        XvGettable | XvSettable,
-        0x000000,
-        0xffffff,
-        "XV_COLORKEY"
-    },
-    {
-        XvGettable | XvSettable,
-        0,
-        1,
-        "XV_AUTOPAINT_COLORKEY"
-    }
-};
-
-/*
- * Video frames are stored in a circular list of buffers.
- * Must be power or two, See vmw_video_port_play.
- */
-#define VMWARE_VID_NUM_BUFFERS 1
-
-/*
- * Defines the structure used to hold and pass video data to the host
- */
-struct vmw_video_buffer
-{
-    unsigned handle;
-    int size;
-    void *data;
-    void *extra_data;
-    struct vmw_dma_buffer *buf;
-};
-
-
-/**
- * Structure representing a single video stream, aka port.
- *
- * Ports maps one to one to a SVGA stream. Port is just
- * what Xv calls a SVGA stream.
- */
-struct vmw_video_port
-{
-    /*
-     * Function prototype same as XvPutImage.
-     *
-     * This is either set to vmw_video_port_init or vmw_video_port_play.
-     * At init this function is set to port_init. In port_init we set it
-     * to port_play and call it, after initializing the struct.
-     */
-    int (*play)(ScrnInfoPtr, struct vmw_video_port *,
-                short, short, short, short, short,
-                short, short, short, int, unsigned char*,
-                short, short, RegionPtr);
-
-    /* values to go into the SVGAOverlayUnit */
-    uint32 streamId;
-    uint32 colorKey;
-    uint32 flags;
-
-    /* round robin of buffers */
-    unsigned currBuf;
-    struct vmw_video_buffer bufs[VMWARE_VID_NUM_BUFFERS];
-
-    /* properties that applies to all buffers */
-    int size;
-    int pitches[3];
-    int offsets[3];
-
-    /* things for X */
-    RegionRec clipBoxes;
-    Bool isAutoPaintColorkey;
-};
-
-
-/**
- * Structure holding all the infromation for video.
- */
-struct vmw_video_private
-{
-    int fd;
-
-    /** ports */
-    struct vmw_video_port port[VMWARE_VID_NUM_PORTS];
-
-    /** Used to store port pointers pointers */
-    DevUnion port_ptr[VMWARE_VID_NUM_PORTS];
-};
-
-
-/*
- * Callback functions exported to Xv, prefixed with vmw_xv_*.
- */
-static int vmw_xv_put_image(ScrnInfoPtr pScrn, short src_x, short src_y,
-                            short drw_x, short drw_y, short src_w, short src_h,
-                            short drw_w, short drw_h, int image,
-                            unsigned char *buf, short width, short height,
-                            Bool sync, RegionPtr clipBoxes, pointer data,
-                            DrawablePtr dst);
-static void vmw_xv_stop_video(ScrnInfoPtr pScrn, pointer data, Bool Cleanup);
-static int vmw_xv_query_image_attributes(ScrnInfoPtr pScrn, int format,
-                                         unsigned short *width,
-                                         unsigned short *height, int *pitches,
-                                         int *offsets);
-static int vmw_xv_set_port_attribute(ScrnInfoPtr pScrn, Atom attribute,
-                                     INT32 value, pointer data);
-static int vmw_xv_get_port_attribute(ScrnInfoPtr pScrn, Atom attribute,
-                                     INT32 *value, pointer data);
-static void vmw_xv_query_best_size(ScrnInfoPtr pScrn, Bool motion,
-                                short vid_w, short vid_h, short drw_w,
-                                short drw_h, unsigned int *p_w,
-                                unsigned int *p_h, pointer data);
-
-
-/*
- * Local functions.
- */
-static XF86VideoAdaptorPtr vmw_video_init_adaptor(ScrnInfoPtr pScrn, struct vmw_customizer *vmw);
-
-static int vmw_video_port_init(ScrnInfoPtr pScrn,
-                               struct vmw_video_port *port,
-                               short src_x, short src_y, short drw_x,
-                               short drw_y, short src_w, short src_h,
-                               short drw_w, short drw_h, int format,
-                               unsigned char *buf, short width,
-                               short height, RegionPtr clipBoxes);
-static int vmw_video_port_play(ScrnInfoPtr pScrn, struct vmw_video_port *port,
-                               short src_x, short src_y, short drw_x,
-                               short drw_y, short src_w, short src_h,
-                               short drw_w, short drw_h, int format,
-                               unsigned char *buf, short width,
-                               short height, RegionPtr clipBoxes);
-static void vmw_video_port_cleanup(ScrnInfoPtr pScrn, struct vmw_video_port *port);
-
-static int vmw_video_buffer_alloc(struct vmw_customizer *vmw, int size,
-                                  struct vmw_video_buffer *out);
-static int vmw_video_buffer_free(struct vmw_customizer *vmw,
-                                 struct vmw_video_buffer *out);
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_init --
- *
- *    Initializes Xv support.
- *
- * Results:
- *    TRUE on success, FALSE on error.
- *
- * Side effects:
- *    Xv support is initialized. Memory is allocated for all supported
- *    video streams.
- *
- *-----------------------------------------------------------------------------
- */
-
-Bool
-vmw_video_init(struct vmw_customizer *vmw)
-{
-    ScrnInfoPtr pScrn = vmw->pScrn;
-    ScreenPtr pScreen = pScrn->pScreen;
-    XF86VideoAdaptorPtr *overlayAdaptors, *newAdaptors = NULL;
-    XF86VideoAdaptorPtr newAdaptor = NULL;
-    int numAdaptors;
-    unsigned int ntot, nfree;
-
-    debug_printf("%s: enter\n", __func__);
-
-    if (vmw_ioctl_num_streams(vmw, &ntot, &nfree) != 0) {
-        debug_printf("No stream ioctl support\n");
-        return FALSE;
-    }
-
-    if (nfree == 0) {
-        debug_printf("No free streams\n");
-        return FALSE;
-    }
-
-    numAdaptors = xf86XVListGenericAdaptors(pScrn, &overlayAdaptors);
-
-    newAdaptor = vmw_video_init_adaptor(pScrn, vmw);
-    if (!newAdaptor) {
-        debug_printf("Failed to initialize Xv extension\n");
-        return FALSE;
-    }
-
-    if (!numAdaptors) {
-        numAdaptors = 1;
-        overlayAdaptors = &newAdaptor;
-    } else {
-         newAdaptors = malloc((numAdaptors + 1) *
-                              sizeof(XF86VideoAdaptorPtr*));
-         if (!newAdaptors) {
-            xf86XVFreeVideoAdaptorRec(newAdaptor);
-            return FALSE;
-         }
-
-         memcpy(newAdaptors, overlayAdaptors,
-                numAdaptors * sizeof(XF86VideoAdaptorPtr));
-         newAdaptors[numAdaptors++] = newAdaptor;
-         overlayAdaptors = newAdaptors;
-    }
-
-    if (!xf86XVScreenInit(pScreen, overlayAdaptors, numAdaptors)) {
-        debug_printf("Failed to initialize Xv extension\n");
-        xf86XVFreeVideoAdaptorRec(newAdaptor);
-        return FALSE;
-    }
-
-    if (newAdaptors) {
-        free(newAdaptors);
-    }
-
-    debug_printf("Initialized VMware Xv extension successfully\n");
-
-    return TRUE;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_close --
- *
- *    Unitializes video.
- *
- * Results:
- *    TRUE.
- *
- * Side effects:
- *    vmw->video_priv = NULL
- *
- *-----------------------------------------------------------------------------
- */
-
-Bool
-vmw_video_close(struct vmw_customizer *vmw)
-{
-    ScrnInfoPtr pScrn = vmw->pScrn;
-    struct vmw_video_private *video;
-    int i;
-
-    debug_printf("%s: enter\n", __func__);
-
-    video = vmw->video_priv;
-    if (!video)
-       return TRUE;
-
-    for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) {
-       /* make sure the port is stoped as well */
-       vmw_xv_stop_video(pScrn, &video->port[i], TRUE);
-       vmw_ioctl_unref_stream(vmw, video->port[i].streamId);
-       REGION_UNINIT(pScreen, &video->port[i].clipBoxes);
-    }
-
-
-    /* XXX: I'm sure this function is missing code for turning off Xv */
-
-    free(vmw->video_priv);
-    vmw->video_priv = NULL;
-
-    return TRUE;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_stop_all --
- *
- *    Stop all video streams from playing.
- *
- * Results:
- *    None.
- *
- * Side effects:
- *    All buffers are freed.
- *
- *-----------------------------------------------------------------------------
- */
-
-void vmw_video_stop_all(struct vmw_customizer *vmw)
-{
-    ScrnInfoPtr pScrn = vmw->pScrn;
-    struct vmw_video_private *video = vmw->video_priv;
-    int i;
-
-    debug_printf("%s: enter\n", __func__);
-
-    if (!video)
-       return;
-
-    for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) {
-       vmw_xv_stop_video(pScrn, &video->port[i], TRUE);
-    }
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_init_adaptor --
- *
- *    Initializes a XF86VideoAdaptor structure with the capabilities and
- *    functions supported by this video driver.
- *
- * Results:
- *    On success initialized XF86VideoAdaptor struct or NULL on error
- *
- * Side effects:
- *    None.
- *
- *-----------------------------------------------------------------------------
- */
-
-static XF86VideoAdaptorPtr
-vmw_video_init_adaptor(ScrnInfoPtr pScrn, struct vmw_customizer *vmw)
-{
-    XF86VideoAdaptorPtr adaptor;
-    struct vmw_video_private *video;
-    int i;
-
-    debug_printf("%s: enter \n", __func__);
-
-    adaptor = xf86XVAllocateVideoAdaptorRec(pScrn);
-    if (!adaptor) {
-        debug_printf("Not enough memory\n");
-        return NULL;
-    }
-
-    video = calloc(1, sizeof(*video));
-    if (!video) {
-        debug_printf("Not enough memory.\n");
-        xf86XVFreeVideoAdaptorRec(adaptor);
-        return NULL;
-    }
-
-    vmw->video_priv = video;
-
-    adaptor->type = XvInputMask | XvImageMask | XvWindowMask;
-
-    /**
-     * Note: CLIP_TO_VIEWPORT was removed from the flags, since with the
-     * crtc/output based modesetting, the viewport is not updated on
-     * RandR modeswitches. Hence the video may incorrectly be clipped away.
-     * The correct approach, (if needed) would be to clip against the
-     * scanout area union of all active crtcs. Revisit if needed.
-     */
-
-    adaptor->flags = VIDEO_OVERLAID_IMAGES;
-    adaptor->name = "VMware Video Engine";
-    adaptor->nEncodings = VMWARE_VID_NUM_ENCODINGS;
-    adaptor->pEncodings = vmwareVideoEncodings;
-    adaptor->nFormats = VMWARE_VID_NUM_FORMATS;
-    adaptor->pFormats = vmwareVideoFormats;
-    adaptor->nPorts = VMWARE_VID_NUM_PORTS;
-    adaptor->pPortPrivates = video->port_ptr;
-
-    for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) {
-        vmw_ioctl_claim_stream(vmw, &video->port[i].streamId);
-        video->port[i].play = vmw_video_port_init;
-        video->port[i].flags = SVGA_VIDEO_FLAG_COLORKEY;
-        video->port[i].colorKey = VMWARE_VIDEO_COLORKEY;
-        video->port[i].isAutoPaintColorkey = TRUE;
-        REGION_NULL(pScrn->pScreen, &video->port[i].clipBoxes);
-        adaptor->pPortPrivates[i].ptr = &video->port[i];
-    }
-
-    adaptor->nAttributes = VMWARE_VID_NUM_ATTRIBUTES;
-    adaptor->pAttributes = vmwareVideoAttributes;
-
-    adaptor->nImages = VMWARE_VID_NUM_IMAGES;
-    adaptor->pImages = vmwareVideoImages;
-
-    adaptor->PutVideo = NULL;
-    adaptor->PutStill = NULL;
-    adaptor->GetVideo = NULL;
-    adaptor->GetStill = NULL;
-    adaptor->StopVideo = vmw_xv_stop_video;
-    adaptor->SetPortAttribute = vmw_xv_set_port_attribute;
-    adaptor->GetPortAttribute = vmw_xv_get_port_attribute;
-    adaptor->QueryBestSize = vmw_xv_query_best_size;
-    adaptor->PutImage = vmw_xv_put_image;
-    adaptor->QueryImageAttributes = vmw_xv_query_image_attributes;
-
-    debug_printf("%s: done %p\n", __func__, adaptor);
-
-    return adaptor;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_port_init --
- *
- *    Initializes a video stream in response to the first PutImage() on a
- *    video stream. The process goes as follows:
- *    - Figure out characteristics according to format
- *    - Allocate offscreen memory
- *    - Pass on video to Play() functions
- *
- * Results:
- *    Success or XvBadAlloc on failure.
- *
- * Side effects:
- *    Video stream is initialized and its first frame sent to the host
- *    (done by VideoPlay() function called at the end)
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_video_port_init(ScrnInfoPtr pScrn, struct vmw_video_port *port,
-                    short src_x, short src_y, short drw_x,
-                    short drw_y, short src_w, short src_h,
-                    short drw_w, short drw_h, int format,
-                    unsigned char *buf, short width,
-                    short height, RegionPtr clipBoxes)
-{
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    unsigned short w, h;
-    int i, ret;
-
-    debug_printf("\t%s: id %d, format %d\n", __func__, port->streamId, format);
-
-    w = width;
-    h = height;
-    /* init all the format attributes, used for buffers */
-    port->size = vmw_xv_query_image_attributes(pScrn, format, &w, &h,
-                                               port->pitches, port->offsets);
-
-    if (port->size == -1)
-        return XvBadAlloc;
-
-    port->play = vmw_video_port_play;
-
-    for (i = 0; i < VMWARE_VID_NUM_BUFFERS; ++i) {
-       ret = vmw_video_buffer_alloc(vmw, port->size, &port->bufs[i]);
-       if (ret != Success)
-           break;
-    }
-
-    /* Free all allocated buffers on failure */
-    if (ret != Success) {
-       for (--i; i >= 0; --i) {
-           vmw_video_buffer_free(vmw, &port->bufs[i]);
-       }
-       return ret;
-    }
-
-    port->currBuf = 0;
-
-    REGION_COPY(pScrn->pScreen, &port->clipBoxes, clipBoxes);
-
-    if (port->isAutoPaintColorkey)
-       xf86XVFillKeyHelper(pScrn->pScreen, port->colorKey, clipBoxes);
-
-    xorg_flush(pScrn->pScreen);
-
-    return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w, src_h,
-                      drw_w, drw_h, format, buf, width, height, clipBoxes);
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_port_play --
- *
- *    Sends all the attributes associated with the video frame using the
- *    FIFO ESCAPE mechanism to the host.
- *
- * Results:
- *    Always returns Success.
- *
- * Side effects:
- *    None.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_video_port_play(ScrnInfoPtr pScrn, struct vmw_video_port *port,
-                    short src_x, short src_y, short drw_x,
-                    short drw_y, short src_w, short src_h,
-                    short drw_w, short drw_h, int format,
-                    unsigned char *buf, short width,
-                    short height, RegionPtr clipBoxes)
-{
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    struct drm_vmw_control_stream_arg arg;
-    unsigned short w, h;
-    int size;
-    int ret;
-
-    debug_printf("\t%s: enter\n", __func__);
-
-    w = width;
-    h = height;
-
-    /* we don't update the ports size */
-    size = vmw_xv_query_image_attributes(pScrn, format, &w, &h,
-                                         port->pitches, port->offsets);
-
-    if (size > port->size) {
-        debug_printf("\t%s: Increase in size of Xv video frame streamId:%d.\n",
-                     __func__, port->streamId);
-        vmw_xv_stop_video(pScrn, port, TRUE);
-        return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w,
-                          src_h, drw_w, drw_h, format, buf, width, height,
-                          clipBoxes);
-    }
-
-    memcpy(port->bufs[port->currBuf].data, buf, port->size);
-
-    memset(&arg, 0, sizeof(arg));
-
-    arg.stream_id = port->streamId;
-    arg.enabled = TRUE;
-    arg.flags = port->flags;
-    arg.color_key = port->colorKey;
-    arg.handle = port->bufs[port->currBuf].handle;
-    arg.format = format;
-    arg.size = port->size;
-    arg.width = w;
-    arg.height = h;
-    arg.src.x = src_x;
-    arg.src.y = src_y;
-    arg.src.w = src_w;
-    arg.src.h = src_h;
-    arg.dst.x = drw_x;
-    arg.dst.y = drw_y;
-    arg.dst.w = drw_w;
-    arg.dst.h = drw_h;
-    arg.pitch[0] = port->pitches[0];
-    arg.pitch[1] = port->pitches[1];
-    arg.pitch[2] = port->pitches[2];
-    arg.offset = 0;
-
-    /*
-     *  Update the clipList and paint the colorkey, if required.
-     */
-    if (!REGION_EQUAL(pScrn->pScreen, &port->clipBoxes, clipBoxes)) {
-        REGION_COPY(pScrn->pScreen, &port->clipBoxes, clipBoxes);
-        if (port->isAutoPaintColorkey)
-            xf86XVFillKeyHelper(pScrn->pScreen, port->colorKey, clipBoxes);
-    }
-
-    xorg_flush(pScrn->pScreen);
-
-    ret = drmCommandWrite(vmw->fd, DRM_VMW_CONTROL_STREAM, &arg, sizeof(arg));
-    if (ret) {
-       vmw_video_port_cleanup(pScrn, port);
-       return XvBadAlloc;
-    }
-
-    if (++(port->currBuf) >= VMWARE_VID_NUM_BUFFERS)
-       port->currBuf = 0;
-
-    return Success;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_port_cleanup --
- *
- *    Frees up all resources (if any) taken by a video stream.
- *
- * Results:
- *    None.
- *
- * Side effects:
- *    Same as above.
- *
- *-----------------------------------------------------------------------------
- */
-
-static void
-vmw_video_port_cleanup(ScrnInfoPtr pScrn, struct vmw_video_port *port)
-{
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    uint32 id, colorKey, flags;
-    Bool isAutoPaintColorkey;
-    int i;
-
-    debug_printf("\t%s: enter\n", __func__);
-
-    for (i = 0; i < VMWARE_VID_NUM_BUFFERS; i++) {
-       vmw_video_buffer_free(vmw, &port->bufs[i]);
-    }
-
-    /*
-     * reset stream for next video
-     */
-    id = port->streamId;
-    colorKey = port->colorKey;
-    flags = port->flags;
-    isAutoPaintColorkey = port->isAutoPaintColorkey;
-
-    memset(port, 0, sizeof(*port));
-
-    port->streamId = id;
-    port->play = vmw_video_port_init;
-    port->colorKey = colorKey;
-    port->flags = flags;
-    port->isAutoPaintColorkey = isAutoPaintColorkey;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_buffer_alloc --
- *
- *    Allocates and map a kernel buffer to be used as data storage.
- *
- * Results:
- *    XvBadAlloc on failure, otherwise Success.
- *
- * Side effects:
- *    Calls into the kernel, sets members of out.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_video_buffer_alloc(struct vmw_customizer *vmw, int size,
-                       struct vmw_video_buffer *out)
-{
-    out->buf = vmw_ioctl_buffer_create(vmw, size, &out->handle);
-    if (!out->buf)
-       return XvBadAlloc;
-
-    out->data = vmw_ioctl_buffer_map(vmw, out->buf);
-    if (!out->data) {
-       vmw_ioctl_buffer_destroy(vmw, out->buf);
-
-       out->handle = 0;
-       out->buf = NULL;
-
-       return XvBadAlloc;
-    }
-
-    out->size = size;
-    out->extra_data = calloc(1, size);
-
-    debug_printf("\t\t%s: allocated buffer %p of size %i\n", __func__, out, size);
-
-    return Success;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_video_buffer_free --
- *
- *    Frees and unmaps an allocated kernel buffer.
- *
- * Results:
- *    Success.
- *
- * Side effects:
- *    Calls into the kernel, sets members of out to 0.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_video_buffer_free(struct vmw_customizer *vmw,
-                      struct vmw_video_buffer *out)
-{
-    if (out->size == 0)
-       return Success;
-
-    free(out->extra_data);
-    vmw_ioctl_buffer_unmap(vmw, out->buf);
-    vmw_ioctl_buffer_destroy(vmw, out->buf);
-
-    out->buf = NULL;
-    out->data = NULL;
-    out->handle = 0;
-    out->size = 0;
-
-    debug_printf("\t\t%s: freed buffer %p\n", __func__, out);
-
-    return Success;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_put_image --
- *
- *    Main video playback function. It copies the passed data which is in
- *    the specified format (e.g. FOURCC_YV12) into the overlay.
- *
- *    If sync is TRUE the driver should not return from this
- *    function until it is through reading the data from buf.
- *
- * Results:
- *    Success or XvBadAlloc on failure
- *
- * Side effects:
- *    Video port will be played(initialized if 1st frame) on success
- *    or will fail on error.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_xv_put_image(ScrnInfoPtr pScrn, short src_x, short src_y,
-                 short drw_x, short drw_y, short src_w, short src_h,
-                 short drw_w, short drw_h, int format,
-                 unsigned char *buf, short width, short height,
-                 Bool sync, RegionPtr clipBoxes, pointer data,
-                 DrawablePtr dst)
-{
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    struct vmw_video_port *port = data;
-
-    debug_printf("%s: enter (%u, %u) (%ux%u) (%u, %u) (%ux%u) (%ux%u)\n", __func__,
-                src_x, src_y, src_w, src_h,
-                drw_x, drw_y, drw_w, drw_h,
-                width, height);
-
-    if (!vmw->video_priv)
-        return XvBadAlloc;
-
-    return port->play(pScrn, port, src_x, src_y, drw_x, drw_y, src_w, src_h,
-                      drw_w, drw_h, format, buf, width, height, clipBoxes);
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_stop_video --
- *
- *    Called when we should stop playing video for a particular stream. If
- *    Cleanup is FALSE, the "stop" operation is only temporary, and thus we
- *    don't do anything. If Cleanup is TRUE we kill the video port by
- *    sending a message to the host and freeing up the stream.
- *
- * Results:
- *    None.
- *
- * Side effects:
- *    See above.
- *
- *-----------------------------------------------------------------------------
- */
-
-static void
-vmw_xv_stop_video(ScrnInfoPtr pScrn, pointer data, Bool cleanup)
-{
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    struct vmw_video_port *port = data;
-    struct drm_vmw_control_stream_arg arg;
-    int ret;
-
-    debug_printf("%s: cleanup is %s\n", __func__, cleanup ? "TRUE" : "FALSE");
-
-    if (!vmw->video_priv)
-        return;
-
-    REGION_EMPTY(pScrn->pScreen, &port->clipBoxes);
-
-    if (!cleanup)
-        return;
-
-
-    memset(&arg, 0, sizeof(arg));
-    arg.stream_id = port->streamId;
-    arg.enabled = FALSE;
-
-    ret = drmCommandWrite(vmw->fd, DRM_VMW_CONTROL_STREAM, &arg, sizeof(arg));
-    assert(ret == 0);
-
-    vmw_video_port_cleanup(pScrn, port);
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_query_image_attributes --
- *
- *    From the spec: This function is called to let the driver specify how data
- *    for a particular image of size width by height should be stored.
- *    Sometimes only the size and corrected width and height are needed. In
- *    that case pitches and offsets are NULL.
- *
- * Results:
- *    The size of the memory required for the image, or -1 on error.
- *
- * Side effects:
- *    None.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_xv_query_image_attributes(ScrnInfoPtr pScrn, int format,
-                              unsigned short *width, unsigned short *height,
-                              int *pitches, int *offsets)
-{
-    INT32 size, tmp;
-
-    if (*width > VMWARE_VID_MAX_WIDTH) {
-        *width = VMWARE_VID_MAX_WIDTH;
-    }
-    if (*height > VMWARE_VID_MAX_HEIGHT) {
-        *height = VMWARE_VID_MAX_HEIGHT;
-    }
-
-    *width = (*width + 1) & ~1;
-    if (offsets != NULL) {
-        offsets[0] = 0;
-    }
-
-    switch (format) {
-       case FOURCC_YV12:
-           *height = (*height + 1) & ~1;
-           size = (*width + 3) & ~3;
-           if (pitches) {
-               pitches[0] = size;
-           }
-           size *= *height;
-           if (offsets) {
-               offsets[1] = size;
-           }
-           tmp = ((*width >> 1) + 3) & ~3;
-           if (pitches) {
-                pitches[1] = pitches[2] = tmp;
-           }
-           tmp *= (*height >> 1);
-           size += tmp;
-           if (offsets) {
-               offsets[2] = size;
-           }
-           size += tmp;
-           break;
-       case FOURCC_UYVY:
-       case FOURCC_YUY2:
-           size = *width * 2;
-           if (pitches) {
-               pitches[0] = size;
-           }
-           size *= *height;
-           break;
-       default:
-           debug_printf("Query for invalid video format %d\n", format);
-           return -1;
-    }
-    return size;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_set_port_attribute --
- *
- *    From the spec: A port may have particular attributes such as colorKey, hue,
- *    saturation, brightness or contrast. Xv clients set these
- *    attribute values by sending attribute strings (Atoms) to the server.
- *
- * Results:
- *    Success if the attribute exists and XvBadAlloc otherwise.
- *
- * Side effects:
- *    The respective attribute gets the new value.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_xv_set_port_attribute(ScrnInfoPtr pScrn, Atom attribute,
-                          INT32 value, pointer data)
-{
-    struct vmw_video_port *port = data;
-    Atom xvColorKey = MAKE_ATOM("XV_COLORKEY");
-    Atom xvAutoPaint = MAKE_ATOM("XV_AUTOPAINT_COLORKEY");
-
-    if (attribute == xvColorKey) {
-        debug_printf("%s: Set colorkey:0x%x\n", __func__, (unsigned)value);
-        port->colorKey = value;
-    } else if (attribute == xvAutoPaint) {
-        debug_printf("%s: Set autoPaint: %s\n", __func__, value? "TRUE": "FALSE");
-        port->isAutoPaintColorkey = value;
-    } else {
-        return XvBadAlloc;
-    }
-
-    return Success;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_get_port_attribute --
- *
- *    From the spec: A port may have particular attributes such as hue,
- *    saturation, brightness or contrast. Xv clients get these
- *    attribute values by sending attribute strings (Atoms) to the server
- *
- * Results:
- *    Success if the attribute exists and XvBadAlloc otherwise.
- *
- * Side effects:
- *    "value" contains the requested attribute on success.
- *
- *-----------------------------------------------------------------------------
- */
-
-static int
-vmw_xv_get_port_attribute(ScrnInfoPtr pScrn, Atom attribute,
-                          INT32 *value, pointer data)
-{
-    struct vmw_video_port *port = data;
-    Atom xvColorKey = MAKE_ATOM("XV_COLORKEY");
-    Atom xvAutoPaint = MAKE_ATOM("XV_AUTOPAINT_COLORKEY");
-
-    if (attribute == xvColorKey) {
-        *value = port->colorKey;
-    } else if (attribute == xvAutoPaint) {
-        *value = port->isAutoPaintColorkey;
-    } else {
-        return XvBadAlloc;
-    }
-
-    return Success;
-}
-
-
-/*
- *-----------------------------------------------------------------------------
- *
- * vmw_xv_query_best_size --
- *
- *    From the spec: QueryBestSize provides the client with a way to query what
- *    the destination dimensions would end up being if they were to request
- *    that an area vid_w by vid_h from the video stream be scaled to rectangle
- *    of drw_w by drw_h on the screen. Since it is not expected that all
- *    hardware will be able to get the target dimensions exactly, it is
- *    important that the driver provide this function.
- *
- *    This function seems to never be called, but to be on the safe side
- *    we apply the same logic that QueryImageAttributes has for width
- *    and height.
- *
- * Results:
- *    None.
- *
- * Side effects:
- *    None.
- *
- *-----------------------------------------------------------------------------
- */
-
-static void
-vmw_xv_query_best_size(ScrnInfoPtr pScrn, Bool motion,
-                       short vid_w, short vid_h, short drw_w,
-                       short drw_h, unsigned int *p_w,
-                       unsigned int *p_h, pointer data)
-{
-    *p_w = (drw_w + 1) & ~1;
-    *p_h = drw_h;
-
-    return;
-}
diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_xorg.c b/src/gallium/targets/xorg-vmwgfx/vmw_xorg.c
deleted file mode 100644 (file)
index 87aad25..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-/**********************************************************
- * Copyright 2008-2009 VMware, Inc.  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 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 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
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * 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.
- *
- **********************************************************/
-
-/**
- * @file
- * Glue file for Xorg State Tracker.
- *
- * @author Alan Hourihane <alanh@tungstengraphics.com>
- * @author Jakob Bornecrantz <wallbraker@gmail.com>
- */
-
-#include "vmw_hook.h"
-
-
-/*
- * Defines and modinfo
- */
-
-#define VMWGFX_DRIVER_NAME "vmwgfx"
-
-#define VMW_STRING_INNER(s) #s
-#define VMW_STRING(str) VMW_STRING_INNER(str)
-
-#define VMWGFX_VERSION_MAJOR 11
-#define VMWGFX_VERSION_MINOR 0
-#define VMWGFX_VERSION_PATCH 0
-#define VMWGFX_VERSION_STRING_MAJOR VMW_STRING(VMWGFX_VERSION_MAJOR)
-#define VMWGFX_VERSION_STRING_MINOR VMW_STRING(VMWGFX_VERSION_MINOR)
-#define VMWGFX_VERSION_STRING_PATCH VMW_STRING(VMWGFX_VERSION_PATCH)
-
-#define VMWGFX_DRIVER_VERSION \
-   (VMWGFX_VERSION_MAJOR * 65536 + VMWGFX_VERSION_MINOR * 256 + VMWGFX_VERSION_PATCH)
-#define VMWGFX_DRIVER_VERSION_STRING \
-    VMWGFX_VERSION_STRING_MAJOR "." VMWGFX_VERSION_STRING_MINOR \
-    "." VMWGFX_VERSION_STRING_PATCH
-
-/*
- * Standard four digit version string expected by VMware Tools installer.
- * As the driver's version is only  {major, minor, patchlevel}, simply append an
- * extra zero for the fourth digit.
- */
-#ifdef __GNUC__
-_X_EXPORT const char vmwgfx_drv_modinfo[] __attribute__((section(".modinfo"),unused)) =
-    "version=" VMWGFX_DRIVER_VERSION_STRING ".0";
-#endif
-
-static void vmw_xorg_identify(int flags);
-_X_EXPORT Bool vmw_xorg_pci_probe(DriverPtr driver,
-                                 int entity_num,
-                                 struct pci_device *device,
-                                 intptr_t match_data);
-
-
-/*
- * Tables
- */
-
-static const struct pci_id_match vmw_xorg_device_match[] = {
-    {0x15ad, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, 0},
-    {0, 0, 0, 0, 0, 0, 0},
-};
-
-static SymTabRec vmw_xorg_chipsets[] = {
-    {PCI_MATCH_ANY, "VMware SVGA Device"},
-    {-1, NULL}
-};
-
-static PciChipsets vmw_xorg_pci_devices[] = {
-    {PCI_MATCH_ANY, PCI_MATCH_ANY, NULL},
-    {-1, -1, NULL}
-};
-
-static XF86ModuleVersionInfo vmw_xorg_version = {
-    VMWGFX_DRIVER_NAME,
-    MODULEVENDORSTRING,
-    MODINFOSTRING1,
-    MODINFOSTRING2,
-    XORG_VERSION_CURRENT,
-    VMWGFX_VERSION_MAJOR, VMWGFX_VERSION_MINOR, VMWGFX_VERSION_PATCH,
-    ABI_CLASS_VIDEODRV,
-    ABI_VIDEODRV_VERSION,
-    MOD_CLASS_VIDEODRV,
-    {0, 0, 0, 0}
-};
-
-/*
- * Xorg driver exported structures
- */
-
-_X_EXPORT DriverRec vmwgfx = {
-    1,
-    VMWGFX_DRIVER_NAME,
-    vmw_xorg_identify,
-    NULL,
-    xorg_tracker_available_options,
-    NULL,
-    0,
-    NULL,
-    vmw_xorg_device_match,
-    vmw_xorg_pci_probe
-};
-
-static MODULESETUPPROTO(vmw_xorg_setup);
-
-_X_EXPORT XF86ModuleData vmwgfxModuleData = {
-    &vmw_xorg_version,
-    vmw_xorg_setup,
-    NULL
-};
-
-
-/*
- * Xorg driver functions
- */
-
-static pointer
-vmw_xorg_setup(pointer module, pointer opts, int *errmaj, int *errmin)
-{
-    static Bool setupDone = 0;
-
-    /* This module should be loaded only once, but check to be sure.
-     */
-    if (!setupDone) {
-       setupDone = 1;
-       xf86AddDriver(&vmwgfx, module, HaveDriverFuncs);
-
-       /*
-        * The return value must be non-NULL on success even though there
-        * is no TearDownProc.
-        */
-       return (pointer) 1;
-    } else {
-       if (errmaj)
-           *errmaj = LDR_ONCEONLY;
-       return NULL;
-    }
-}
-
-static void
-vmw_xorg_identify(int flags)
-{
-    xf86PrintChipsets("vmwgfx", "Driver for VMware SVGA device",
-                     vmw_xorg_chipsets);
-}
-
-_X_EXPORT Bool
-vmw_xorg_pci_probe(DriverPtr driver,
-         int entity_num, struct pci_device *device, intptr_t match_data)
-{
-    ScrnInfoPtr scrn = NULL;
-    EntityInfoPtr entity;
-
-    scrn = xf86ConfigPciEntity(scrn, 0, entity_num, vmw_xorg_pci_devices,
-                              NULL, NULL, NULL, NULL, NULL);
-    if (scrn != NULL) {
-       scrn->driverVersion = 1;
-       scrn->driverName = "vmwgfx";
-       scrn->name = "vmwgfx";
-       scrn->Probe = NULL;
-
-       entity = xf86GetEntityInfo(entity_num);
-
-       /* Use all the functions from the xorg tracker */
-       xorg_tracker_set_functions(scrn);
-
-       vmw_screen_set_functions(scrn);
-    }
-    return scrn != NULL;
-}
diff --git a/src/gallium/targets/xorg-vmwgfx/vmwarectrlproto.h b/src/gallium/targets/xorg-vmwgfx/vmwarectrlproto.h
deleted file mode 100644 (file)
index 269e10b..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright 2006 by VMware, Inc.
- *
- * 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
- * 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 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 NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) 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.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-/*
- * vmwarectrlproto.h --
- *
- *      The description of the VMWARE_CTRL protocol extension that
- *      allows X clients to communicate with the driver.
- */
-
-#ifndef _VMWARE_CTRL_PROTO_H_
-#define _VMWARE_CTRL_PROTO_H_
-
-
-#include <X11/X.h>
-#include "vmw_ctrl.h"
-
-
-/*
- * Requests and Replies
- */
-
-/* Version 0.1 definitions. */
-
-typedef struct {
-   CARD8  reqType;           /* always X_VMwareCtrlReqCode */
-   CARD8  VMwareCtrlReqType; /* always X_VMwareCtrlQueryVersion */
-   CARD16 length B16;
-   CARD32 majorVersion B32;
-   CARD32 minorVersion B32;
-} xVMwareCtrlQueryVersionReq;
-#define sz_xVMwareCtrlQueryVersionReq 12
-
-typedef struct {
-   BYTE    type; /* X_Reply */
-   BYTE    pad1;
-   CARD16  sequenceNumber B16;
-   CARD32  length B32;
-   CARD32  majorVersion B32;
-   CARD32  minorVersion B32;
-   CARD32  pad2 B32;
-   CARD32  pad3 B32;
-   CARD32  pad4 B32;
-   CARD32  pad5 B32;
-} xVMwareCtrlQueryVersionReply;
-#define sz_xVMwareCtrlQueryVersionReply 32
-
-typedef struct {
-   CARD8  reqType;           /* always X_VMwareCtrlReqCode */
-   CARD8  VMwareCtrlReqType; /* always X_VMwareCtrlSetRes */
-   CARD16 length B16;
-   CARD32 screen B32;
-   CARD32 x B32;
-   CARD32 y B32;
-} xVMwareCtrlSetResReq;
-#define sz_xVMwareCtrlSetResReq 16
-
-typedef struct {
-   BYTE   type; /* X_Reply */
-   BYTE   pad1;
-   CARD16 sequenceNumber B16;
-   CARD32 length B32;
-   CARD32 screen B32;
-   CARD32 x B32;
-   CARD32 y B32;
-   CARD32 pad2 B32;
-   CARD32 pad3 B32;
-   CARD32 pad4 B32;
-} xVMwareCtrlSetResReply;
-#define sz_xVMwareCtrlSetResReply 32
-
-/* Version 0.2 definitions. */
-
-typedef struct {
-   CARD8  reqType;           /* always X_VMwareCtrlReqCode */
-   CARD8  VMwareCtrlReqType; /* always X_VMwareCtrlSetTopology */
-   CARD16 length B16;
-   CARD32 screen B32;
-   CARD32 number B32;
-   CARD32 pad1   B32;
-} xVMwareCtrlSetTopologyReq;
-#define sz_xVMwareCtrlSetTopologyReq 16
-
-typedef struct {
-   BYTE   type; /* X_Reply */
-   BYTE   pad1;
-   CARD16 sequenceNumber B16;
-   CARD32 length B32;
-   CARD32 screen B32;
-   CARD32 pad2   B32;
-   CARD32 pad3   B32;
-   CARD32 pad4   B32;
-   CARD32 pad5   B32;
-   CARD32 pad6   B32;
-} xVMwareCtrlSetTopologyReply;
-#define sz_xVMwareCtrlSetTopologyReply 32
-
-#endif /* _VMWARE_CTRL_PROTO_H_ */