Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver
This commit is contained in:
commit
ca2874b273
|
@ -237,7 +237,7 @@ GLboolean __glXFreeContext(__GLXcontext *cx)
|
||||||
* __glXDispatch() or as a callback from the resource manager. In
|
* __glXDispatch() or as a callback from the resource manager. In
|
||||||
* the latter case we need to lift the DRI lock manually. */
|
* the latter case we need to lift the DRI lock manually. */
|
||||||
|
|
||||||
if (glxBlockClients) {
|
if (!glxBlockClients) {
|
||||||
__glXleaveServer();
|
__glXleaveServer();
|
||||||
cx->destroy(cx);
|
cx->destroy(cx);
|
||||||
__glXenterServer();
|
__glXenterServer();
|
||||||
|
|
|
@ -49,8 +49,6 @@ dnl xwin-config.h covers the XWin DDX.
|
||||||
AC_CONFIG_HEADERS(include/xwin-config.h)
|
AC_CONFIG_HEADERS(include/xwin-config.h)
|
||||||
dnl kdrive-config.h covers the kdrive DDX
|
dnl kdrive-config.h covers the kdrive DDX
|
||||||
AC_CONFIG_HEADERS(include/kdrive-config.h)
|
AC_CONFIG_HEADERS(include/kdrive-config.h)
|
||||||
dnl libdrm now needs 64-bit file offsets
|
|
||||||
AC_CONFIG_HEADERS(include/libdrm-config.h)
|
|
||||||
|
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
AM_PROG_AS
|
AM_PROG_AS
|
||||||
|
@ -284,6 +282,7 @@ case $host_os in
|
||||||
*netbsd*)
|
*netbsd*)
|
||||||
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
|
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
|
||||||
AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
|
AC_DEFINE(PCCONS_SUPPORT, 1, [System has PC console])
|
||||||
|
AC_DEFINE(PCVT_SUPPORT, 1, [System has PCVT console])
|
||||||
AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
|
AC_DEFINE(WSCONS_SUPPORT, 1, [System has wscons console])
|
||||||
DRI=yes
|
DRI=yes
|
||||||
;;
|
;;
|
||||||
|
@ -464,7 +463,7 @@ AC_ARG_ENABLE(dmx, AS_HELP_STRING([--enable-dmx], [Build DMX server (d
|
||||||
AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
|
AC_ARG_ENABLE(xvfb, AS_HELP_STRING([--enable-xvfb], [Build Xvfb server (default: yes)]), [XVFB=$enableval], [XVFB=yes])
|
||||||
AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
|
AC_ARG_ENABLE(xnest, AS_HELP_STRING([--enable-xnest], [Build Xnest server (default: auto)]), [XNEST=$enableval], [XNEST=auto])
|
||||||
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
|
AC_ARG_ENABLE(xwin, AS_HELP_STRING([--enable-xwin], [Build XWin server (default: auto)]), [XWIN=$enableval], [XWIN=auto])
|
||||||
AC_ARG_ENABLE(xprint, AS_HELP_STRING([--enable-xprint], [Build Xprint extension and server (default: auto)]), [XPRINT=$enableval], [XPRINT=auto])
|
AC_ARG_ENABLE(xprint, AS_HELP_STRING([--enable-xprint], [Build Xprint extension and server (default: no)]), [XPRINT=$enableval], [XPRINT=no])
|
||||||
AC_ARG_ENABLE(xgl, AS_HELP_STRING([--enable-xgl], [Build Xgl server (default: no)]), [XGL=$enableval], [XGL=no])
|
AC_ARG_ENABLE(xgl, AS_HELP_STRING([--enable-xgl], [Build Xgl server (default: no)]), [XGL=$enableval], [XGL=no])
|
||||||
AC_ARG_ENABLE(xglx, AS_HELP_STRING([--enable-xglx], [Build Xglx xgl module (default: no)]), [XGLX=$enableval], [XGLX=no])
|
AC_ARG_ENABLE(xglx, AS_HELP_STRING([--enable-xglx], [Build Xglx xgl module (default: no)]), [XGLX=$enableval], [XGLX=no])
|
||||||
AC_ARG_ENABLE(xegl, AS_HELP_STRING([--enable-xegl], [Build Xegl xgl module (default: no)]), [XEGL=$enableval], [XEGL=no])
|
AC_ARG_ENABLE(xegl, AS_HELP_STRING([--enable-xegl], [Build Xegl xgl module (default: no)]), [XEGL=$enableval], [XEGL=no])
|
||||||
|
|
|
@ -1307,7 +1307,7 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout)
|
||||||
* events, unless a 'void' section is found, in which case the user
|
* events, unless a 'void' section is found, in which case the user
|
||||||
* probably wants to run footless.
|
* probably wants to run footless.
|
||||||
*/
|
*/
|
||||||
for (i = servlayoutp->inputs; i->driver; i++) {
|
for (i = servlayoutp->inputs; i->identifier && i->driver; i++) {
|
||||||
if (!strcmp(i->driver, "void") || !strcmp(i->driver, "mouse")) {
|
if (!strcmp(i->driver, "void") || !strcmp(i->driver, "mouse")) {
|
||||||
found = 1; break;
|
found = 1; break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,6 +84,8 @@ static RESTYPE DRIDrawablePrivResType;
|
||||||
static RESTYPE DRIContextPrivResType;
|
static RESTYPE DRIContextPrivResType;
|
||||||
static void DRIDestroyDummyContext(ScreenPtr pScreen, Bool hasCtxPriv);
|
static void DRIDestroyDummyContext(ScreenPtr pScreen, Bool hasCtxPriv);
|
||||||
|
|
||||||
|
drmServerInfo DRIDRMServerInfo;
|
||||||
|
|
||||||
/* Wrapper just like xf86DrvMsg, but
|
/* Wrapper just like xf86DrvMsg, but
|
||||||
without the verbosity level checking.
|
without the verbosity level checking.
|
||||||
This will make it easy to turn off some
|
This will make it easy to turn off some
|
||||||
|
@ -589,7 +591,7 @@ static void dri_drm_get_perms(gid_t *group, mode_t *mode)
|
||||||
*mode = xf86ConfigDRI.mode;
|
*mode = xf86ConfigDRI.mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
static drmServerInfo DRIDRMServerInfo = {
|
drmServerInfo DRIDRMServerInfo = {
|
||||||
dri_drm_debug_print,
|
dri_drm_debug_print,
|
||||||
xf86LoadKernelModule,
|
xf86LoadKernelModule,
|
||||||
dri_drm_get_perms,
|
dri_drm_get_perms,
|
||||||
|
@ -622,8 +624,6 @@ DRIExtensionInit(void)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
drmSetServerInfo(&DRIDRMServerInfo);
|
|
||||||
|
|
||||||
RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
|
RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -39,8 +39,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
#include "xf86Module.h"
|
#include "xf86Module.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
||||||
|
#include "xf86drm.h"
|
||||||
static MODULESETUPPROTO(driSetup);
|
static MODULESETUPPROTO(driSetup);
|
||||||
|
|
||||||
|
drmServerInfo DRIDRMServerInfo;
|
||||||
|
|
||||||
static XF86ModuleVersionInfo VersRec =
|
static XF86ModuleVersionInfo VersRec =
|
||||||
{
|
{
|
||||||
"dri",
|
"dri",
|
||||||
|
@ -81,6 +84,9 @@ driSetup(pointer module, pointer opts, int *errmaj, int *errmin)
|
||||||
} else {
|
} else {
|
||||||
if (errmaj) *errmaj = LDR_ONCEONLY;
|
if (errmaj) *errmaj = LDR_ONCEONLY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
drmSetServerInfo(&DRIDRMServerInfo);
|
||||||
|
|
||||||
/* Need a non-NULL return value to indicate success */
|
/* Need a non-NULL return value to indicate success */
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -683,28 +683,28 @@ xf86MapDomainMemory(int ScreenNum, int Flags, PCITAG Tag,
|
||||||
ADDRESS Base, unsigned long Size)
|
ADDRESS Base, unsigned long Size)
|
||||||
{
|
{
|
||||||
int domain = xf86GetPciDomain(Tag);
|
int domain = xf86GetPciDomain(Tag);
|
||||||
int fd;
|
int fd = -1;
|
||||||
pointer addr;
|
pointer addr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We use /proc/bus/pci on non-legacy addresses or if the Linux sysfs
|
* We use /proc/bus/pci on non-legacy addresses or if the Linux sysfs
|
||||||
* legacy_mem interface is unavailable.
|
* legacy_mem interface is unavailable.
|
||||||
*/
|
*/
|
||||||
if (Base > 1024*1024)
|
if (Base >= 1024*1024)
|
||||||
return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||||
PCIIOC_MMAP_IS_MEM);
|
PCIIOC_MMAP_IS_MEM);
|
||||||
|
else if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
||||||
if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||||
return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
|
||||||
PCIIOC_MMAP_IS_MEM);
|
PCIIOC_MMAP_IS_MEM);
|
||||||
|
else
|
||||||
|
addr = mmap(NULL, Size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, Base);
|
||||||
|
|
||||||
addr = mmap(NULL, Size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, Base);
|
if (fd >= 0)
|
||||||
if (addr == MAP_FAILED) {
|
close(fd);
|
||||||
close (fd);
|
if (addr == NULL || addr == MAP_FAILED) {
|
||||||
perror("mmap failure");
|
perror("mmap failure");
|
||||||
FatalError("xf86MapDomainMem(): mmap() failure\n");
|
FatalError("xf86MapDomainMem(): mmap() failure\n");
|
||||||
}
|
}
|
||||||
close(fd);
|
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,258 +0,0 @@
|
||||||
/* xf86drmCompat.h -- OS-independent header for old device specific DRM user-level
|
|
||||||
* library interface
|
|
||||||
*
|
|
||||||
* Copyright 2000 VA Linux Systems, Inc., Fremont, California.
|
|
||||||
* Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas.
|
|
||||||
* 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 (including the next
|
|
||||||
* paragraph) shall be included in all copies or substantial portions of the
|
|
||||||
* Software.
|
|
||||||
*
|
|
||||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
||||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
||||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
* DEALINGS IN THE SOFTWARE.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Gareth Hughes <gareth@valinux.com>
|
|
||||||
* Kevin E. Martin <martin@valinux.com>
|
|
||||||
* Keith Whitwell <keith@tungstengraphics.com>
|
|
||||||
*
|
|
||||||
* Backwards compatability modules broken out by:
|
|
||||||
* Jens Owen <jens@tungstengraphics.com>
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _XF86DRI_COMPAT_H_
|
|
||||||
#define _XF86DRI_COMPAT_H_
|
|
||||||
|
|
||||||
/* WARNING: Do not change, or add, anything to this file. It is only provided
|
|
||||||
* for binary backwards compatability with the old driver specific DRM
|
|
||||||
* extensions used before XFree86 4.3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __user
|
|
||||||
#define __user
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* I810 */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int start;
|
|
||||||
unsigned int end;
|
|
||||||
unsigned int size;
|
|
||||||
unsigned int mmio_offset;
|
|
||||||
unsigned int buffers_offset;
|
|
||||||
int sarea_off;
|
|
||||||
|
|
||||||
unsigned int front_offset;
|
|
||||||
unsigned int back_offset;
|
|
||||||
unsigned int depth_offset;
|
|
||||||
unsigned int overlay_offset;
|
|
||||||
unsigned int overlay_physical;
|
|
||||||
unsigned int w;
|
|
||||||
unsigned int h;
|
|
||||||
unsigned int pitch;
|
|
||||||
unsigned int pitch_bits;
|
|
||||||
} drmCompatI810Init;
|
|
||||||
|
|
||||||
extern Bool drmI810CleanupDma(int driSubFD);
|
|
||||||
extern Bool drmI810InitDma(int driSubFD, drmCompatI810Init *info );
|
|
||||||
|
|
||||||
/* Mga */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned long sarea_priv_offset;
|
|
||||||
int chipset;
|
|
||||||
int sgram;
|
|
||||||
unsigned int maccess;
|
|
||||||
unsigned int fb_cpp;
|
|
||||||
unsigned int front_offset, front_pitch;
|
|
||||||
unsigned int back_offset, back_pitch;
|
|
||||||
unsigned int depth_cpp;
|
|
||||||
unsigned int depth_offset, depth_pitch;
|
|
||||||
unsigned int texture_offset[2];
|
|
||||||
unsigned int texture_size[2];
|
|
||||||
unsigned long fb_offset;
|
|
||||||
unsigned long mmio_offset;
|
|
||||||
unsigned long status_offset;
|
|
||||||
unsigned long warp_offset;
|
|
||||||
unsigned long primary_offset;
|
|
||||||
unsigned long buffers_offset;
|
|
||||||
} drmCompatMGAInit;
|
|
||||||
|
|
||||||
extern int drmMGAInitDMA( int fd, drmCompatMGAInit *info );
|
|
||||||
extern int drmMGACleanupDMA( int fd );
|
|
||||||
extern int drmMGAFlushDMA( int fd, drmLockFlags flags );
|
|
||||||
extern int drmMGAEngineReset( int fd );
|
|
||||||
extern int drmMGAFullScreen( int fd, int enable );
|
|
||||||
extern int drmMGASwapBuffers( int fd );
|
|
||||||
extern int drmMGAClear( int fd, unsigned int flags,
|
|
||||||
unsigned int clear_color, unsigned int clear_depth,
|
|
||||||
unsigned int color_mask, unsigned int depth_mask );
|
|
||||||
extern int drmMGAFlushVertexBuffer( int fd, int indx, int used, int discard );
|
|
||||||
extern int drmMGAFlushIndices( int fd, int indx,
|
|
||||||
int start, int end, int discard );
|
|
||||||
extern int drmMGATextureLoad( int fd, int indx,
|
|
||||||
unsigned int dstorg, unsigned int length );
|
|
||||||
extern int drmMGAAgpBlit( int fd, unsigned int planemask,
|
|
||||||
unsigned int src, int src_pitch,
|
|
||||||
unsigned int dst, int dst_pitch,
|
|
||||||
int delta_sx, int delta_sy,
|
|
||||||
int delta_dx, int delta_dy,
|
|
||||||
int height, int ydir );
|
|
||||||
|
|
||||||
/* R128 */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned long sarea_priv_offset;
|
|
||||||
int is_pci;
|
|
||||||
int cce_mode;
|
|
||||||
int cce_secure;
|
|
||||||
int ring_size;
|
|
||||||
int usec_timeout;
|
|
||||||
unsigned int fb_bpp;
|
|
||||||
unsigned int front_offset, front_pitch;
|
|
||||||
unsigned int back_offset, back_pitch;
|
|
||||||
unsigned int depth_bpp;
|
|
||||||
unsigned int depth_offset, depth_pitch;
|
|
||||||
unsigned int span_offset;
|
|
||||||
unsigned long fb_offset;
|
|
||||||
unsigned long mmio_offset;
|
|
||||||
unsigned long ring_offset;
|
|
||||||
unsigned long ring_rptr_offset;
|
|
||||||
unsigned long buffers_offset;
|
|
||||||
unsigned long agp_textures_offset;
|
|
||||||
} drmCompatR128Init;
|
|
||||||
|
|
||||||
extern int drmR128InitCCE( int fd, drmCompatR128Init *info );
|
|
||||||
extern int drmR128CleanupCCE( int fd );
|
|
||||||
extern int drmR128StartCCE( int fd );
|
|
||||||
extern int drmR128StopCCE( int fd );
|
|
||||||
extern int drmR128ResetCCE( int fd );
|
|
||||||
extern int drmR128WaitForIdleCCE( int fd );
|
|
||||||
extern int drmR128EngineReset( int fd );
|
|
||||||
extern int drmR128FullScreen( int fd, int enable );
|
|
||||||
extern int drmR128SwapBuffers( int fd );
|
|
||||||
extern int drmR128Clear( int fd, unsigned int flags,
|
|
||||||
unsigned int clear_color, unsigned int clear_depth,
|
|
||||||
unsigned int color_mask, unsigned int depth_mask );
|
|
||||||
extern int drmR128FlushVertexBuffer( int fd, int prim, int indx,
|
|
||||||
int count, int discard );
|
|
||||||
extern int drmR128FlushIndices( int fd, int prim, int indx,
|
|
||||||
int start, int end, int discard );
|
|
||||||
extern int drmR128TextureBlit( int fd, int indx,
|
|
||||||
int offset, int pitch, int format,
|
|
||||||
int x, int y, int width, int height );
|
|
||||||
extern int drmR128WriteDepthSpan( int fd, int n, int x, int y,
|
|
||||||
const unsigned int depth[],
|
|
||||||
const unsigned char mask[] );
|
|
||||||
extern int drmR128WriteDepthPixels( int fd, int n,
|
|
||||||
const int x[], const int y[],
|
|
||||||
const unsigned int depth[],
|
|
||||||
const unsigned char mask[] );
|
|
||||||
extern int drmR128ReadDepthSpan( int fd, int n, int x, int y );
|
|
||||||
extern int drmR128ReadDepthPixels( int fd, int n,
|
|
||||||
const int x[], const int y[] );
|
|
||||||
extern int drmR128PolygonStipple( int fd, unsigned int *mask );
|
|
||||||
extern int drmR128FlushIndirectBuffer( int fd, int indx,
|
|
||||||
int start, int end, int discard );
|
|
||||||
|
|
||||||
/* Radeon */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned long sarea_priv_offset;
|
|
||||||
int is_pci;
|
|
||||||
int cp_mode;
|
|
||||||
int agp_size;
|
|
||||||
int ring_size;
|
|
||||||
int usec_timeout;
|
|
||||||
|
|
||||||
unsigned int fb_bpp;
|
|
||||||
unsigned int front_offset, front_pitch;
|
|
||||||
unsigned int back_offset, back_pitch;
|
|
||||||
unsigned int depth_bpp;
|
|
||||||
unsigned int depth_offset, depth_pitch;
|
|
||||||
|
|
||||||
unsigned long fb_offset;
|
|
||||||
unsigned long mmio_offset;
|
|
||||||
unsigned long ring_offset;
|
|
||||||
unsigned long ring_rptr_offset;
|
|
||||||
unsigned long buffers_offset;
|
|
||||||
unsigned long agp_textures_offset;
|
|
||||||
} drmCompatRadeonInit;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int x;
|
|
||||||
unsigned int y;
|
|
||||||
unsigned int width;
|
|
||||||
unsigned int height;
|
|
||||||
void *data;
|
|
||||||
} drmCompatRadeonTexImage;
|
|
||||||
|
|
||||||
extern int drmRadeonInitCP( int fd, drmCompatRadeonInit *info );
|
|
||||||
extern int drmRadeonCleanupCP( int fd );
|
|
||||||
extern int drmRadeonStartCP( int fd );
|
|
||||||
extern int drmRadeonStopCP( int fd );
|
|
||||||
extern int drmRadeonResetCP( int fd );
|
|
||||||
extern int drmRadeonWaitForIdleCP( int fd );
|
|
||||||
extern int drmRadeonEngineReset( int fd );
|
|
||||||
extern int drmRadeonFullScreen( int fd, int enable );
|
|
||||||
extern int drmRadeonSwapBuffers( int fd );
|
|
||||||
extern int drmRadeonClear( int fd, unsigned int flags,
|
|
||||||
unsigned int clear_color, unsigned int clear_depth,
|
|
||||||
unsigned int color_mask, unsigned int stencil,
|
|
||||||
void *boxes, int nbox );
|
|
||||||
extern int drmRadeonFlushVertexBuffer( int fd, int prim, int indx,
|
|
||||||
int count, int discard );
|
|
||||||
extern int drmRadeonFlushIndices( int fd, int prim, int indx,
|
|
||||||
int start, int end, int discard );
|
|
||||||
extern int drmRadeonLoadTexture( int fd, int offset, int pitch, int format,
|
|
||||||
int width, int height,
|
|
||||||
drmCompatRadeonTexImage *image );
|
|
||||||
extern int drmRadeonPolygonStipple( int fd, unsigned int *mask );
|
|
||||||
extern int drmRadeonFlushIndirectBuffer( int fd, int indx,
|
|
||||||
int start, int end, int discard );
|
|
||||||
|
|
||||||
/* SiS */
|
|
||||||
extern Bool drmSiSAgpInit(int driSubFD, int offset, int size);
|
|
||||||
|
|
||||||
/* I830 */
|
|
||||||
typedef struct {
|
|
||||||
unsigned int start;
|
|
||||||
unsigned int end;
|
|
||||||
unsigned int size;
|
|
||||||
unsigned int mmio_offset;
|
|
||||||
unsigned int buffers_offset;
|
|
||||||
int sarea_off;
|
|
||||||
unsigned int front_offset;
|
|
||||||
unsigned int back_offset;
|
|
||||||
unsigned int depth_offset;
|
|
||||||
unsigned int w;
|
|
||||||
unsigned int h;
|
|
||||||
unsigned int pitch;
|
|
||||||
unsigned int pitch_bits;
|
|
||||||
unsigned int cpp;
|
|
||||||
} drmCompatI830Init;
|
|
||||||
|
|
||||||
extern Bool drmI830CleanupDma(int driSubFD);
|
|
||||||
extern Bool drmI830InitDma(int driSubFD, drmCompatI830Init *info );
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* WARNING: Do not change, or add, anything to this file. It is only provided
|
|
||||||
* for binary backwards compatability with the old driver specific DRM
|
|
||||||
* extensions used before XFree86 4.3.
|
|
||||||
*/
|
|
|
@ -1,210 +0,0 @@
|
||||||
/**************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright 2006 Tungsten Graphics, Inc., Bismarck, ND. USA.
|
|
||||||
* 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, sub license, 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 SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
* FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
* THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
|
|
||||||
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
||||||
* USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
*
|
|
||||||
* The above copyright notice and this permission notice (including the
|
|
||||||
* next paragraph) shall be included in all copies or substantial portions
|
|
||||||
* of the Software.
|
|
||||||
*
|
|
||||||
*
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
#ifndef _XF86MM_H_
|
|
||||||
#define _XF86MM_H_
|
|
||||||
#include <stddef.h>
|
|
||||||
#include "drm.h"
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note on multithreaded applications using this interface.
|
|
||||||
* Libdrm is not threadsafe, so common buffer, TTM, and fence objects need to
|
|
||||||
* be protected using an external mutex.
|
|
||||||
*
|
|
||||||
* Note: Don't protect the following functions, as it may lead to deadlocks:
|
|
||||||
* drmBOUnmap(), drmFenceBuffers().
|
|
||||||
* The kernel is synchronizing and refcounting buffer maps.
|
|
||||||
* User space only needs to refcount object usage within the same application.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* List macros heavily inspired by the Linux kernel
|
|
||||||
* list handling. No list looping yet.
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct _drmMMListHead
|
|
||||||
{
|
|
||||||
struct _drmMMListHead *prev;
|
|
||||||
struct _drmMMListHead *next;
|
|
||||||
} drmMMListHead;
|
|
||||||
|
|
||||||
#define DRMINITLISTHEAD(__item) \
|
|
||||||
do{ \
|
|
||||||
(__item)->prev = (__item); \
|
|
||||||
(__item)->next = (__item); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define DRMLISTADD(__item, __list) \
|
|
||||||
do { \
|
|
||||||
(__item)->prev = (__list); \
|
|
||||||
(__item)->next = (__list)->next; \
|
|
||||||
(__list)->next->prev = (__item); \
|
|
||||||
(__list)->next = (__item); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define DRMLISTADDTAIL(__item, __list) \
|
|
||||||
do { \
|
|
||||||
(__item)->next = (__list); \
|
|
||||||
(__item)->prev = (__list)->prev; \
|
|
||||||
(__list)->prev->next = (__item); \
|
|
||||||
(__list)->prev = (__item); \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
#define DRMLISTDEL(__item) \
|
|
||||||
do { \
|
|
||||||
(__item)->prev->next = (__item)->next; \
|
|
||||||
(__item)->next->prev = (__item)->prev; \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
#define DRMLISTDELINIT(__item) \
|
|
||||||
do { \
|
|
||||||
(__item)->prev->next = (__item)->next; \
|
|
||||||
(__item)->next->prev = (__item)->prev; \
|
|
||||||
(__item)->next = (__item); \
|
|
||||||
(__item)->prev = (__item); \
|
|
||||||
} while(0)
|
|
||||||
|
|
||||||
#define DRMLISTENTRY(__type, __item, __field) \
|
|
||||||
((__type *)(((char *) (__item)) - offsetof(__type, __field)))
|
|
||||||
|
|
||||||
typedef struct _drmFence{
|
|
||||||
unsigned handle;
|
|
||||||
int class;
|
|
||||||
unsigned type;
|
|
||||||
unsigned flags;
|
|
||||||
unsigned signaled;
|
|
||||||
unsigned pad[4]; /* for future expansion */
|
|
||||||
} drmFence;
|
|
||||||
|
|
||||||
typedef struct _drmBO{
|
|
||||||
drm_bo_type_t type;
|
|
||||||
unsigned handle;
|
|
||||||
drm_u64_t mapHandle;
|
|
||||||
unsigned flags;
|
|
||||||
unsigned mask;
|
|
||||||
unsigned mapFlags;
|
|
||||||
unsigned long size;
|
|
||||||
unsigned long offset;
|
|
||||||
unsigned long start;
|
|
||||||
unsigned replyFlags;
|
|
||||||
unsigned fenceFlags;
|
|
||||||
unsigned pageAlignment;
|
|
||||||
void *virtual;
|
|
||||||
void *mapVirtual;
|
|
||||||
int mapCount;
|
|
||||||
unsigned pad[8]; /* for future expansion */
|
|
||||||
} drmBO;
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct _drmBONode {
|
|
||||||
drmMMListHead head;
|
|
||||||
drmBO *buf;
|
|
||||||
drm_bo_arg_t bo_arg;
|
|
||||||
unsigned long arg0;
|
|
||||||
unsigned long arg1;
|
|
||||||
} drmBONode;
|
|
||||||
|
|
||||||
typedef struct _drmBOList {
|
|
||||||
unsigned numTarget;
|
|
||||||
unsigned numCurrent;
|
|
||||||
unsigned numOnList;
|
|
||||||
drmMMListHead list;
|
|
||||||
drmMMListHead free;
|
|
||||||
} drmBOList;
|
|
||||||
|
|
||||||
/* Fencing */
|
|
||||||
|
|
||||||
extern int drmFenceCreate(int fd, unsigned flags, int class,
|
|
||||||
unsigned type,
|
|
||||||
drmFence *fence);
|
|
||||||
extern int drmFenceDestroy(int fd, const drmFence *fence);
|
|
||||||
extern int drmFenceReference(int fd, unsigned handle, drmFence *fence);
|
|
||||||
extern int drmFenceUnreference(int fd, const drmFence *fence);
|
|
||||||
extern int drmFenceFlush(int fd, drmFence *fence, unsigned flush_type);
|
|
||||||
extern int drmFenceSignaled(int fd, drmFence *fence,
|
|
||||||
unsigned fenceType, int *signaled);
|
|
||||||
extern int drmFenceWait(int fd, unsigned flags, drmFence *fence,
|
|
||||||
unsigned flush_type);
|
|
||||||
extern int drmFenceEmit(int fd, unsigned flags, drmFence *fence,
|
|
||||||
unsigned emit_type);
|
|
||||||
extern int drmFenceBuffers(int fd, unsigned flags, drmFence *fence);
|
|
||||||
extern int drmFenceUpdate(int fd, drmFence *fence);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Buffer object list functions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern void drmBOFreeList(drmBOList *list);
|
|
||||||
extern int drmBOResetList(drmBOList *list);
|
|
||||||
extern void *drmBOListIterator(drmBOList *list);
|
|
||||||
extern void *drmBOListNext(drmBOList *list, void *iterator);
|
|
||||||
extern drmBO *drmBOListBuf(void *iterator);
|
|
||||||
extern int drmBOCreateList(int numTarget, drmBOList *list);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Buffer object functions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern int drmBOCreate(int fd, unsigned long start, unsigned long size,
|
|
||||||
unsigned pageAlignment,void *user_buffer,
|
|
||||||
drm_bo_type_t type, unsigned mask,
|
|
||||||
unsigned hint, drmBO *buf);
|
|
||||||
extern int drmBODestroy(int fd, drmBO *buf);
|
|
||||||
extern int drmBOReference(int fd, unsigned handle, drmBO *buf);
|
|
||||||
extern int drmBOUnReference(int fd, drmBO *buf);
|
|
||||||
extern int drmBOMap(int fd, drmBO *buf, unsigned mapFlags, unsigned mapHint,
|
|
||||||
void **address);
|
|
||||||
extern int drmBOUnmap(int fd, drmBO *buf);
|
|
||||||
extern int drmBOValidate(int fd, drmBO *buf, unsigned flags, unsigned mask,
|
|
||||||
unsigned hint);
|
|
||||||
extern int drmBOFence(int fd, drmBO *buf, unsigned flags, unsigned fenceHandle);
|
|
||||||
extern int drmBOInfo(int fd, drmBO *buf);
|
|
||||||
extern int drmBOBusy(int fd, drmBO *buf, int *busy);
|
|
||||||
|
|
||||||
|
|
||||||
extern int drmAddValidateItem(drmBOList *list, drmBO *buf, unsigned flags,
|
|
||||||
unsigned mask,
|
|
||||||
int *newItem);
|
|
||||||
extern int drmBOValidateList(int fd, drmBOList *list);
|
|
||||||
extern int drmBOFenceList(int fd, drmBOList *list, unsigned fenceHandle);
|
|
||||||
extern int drmBOWaitIdle(int fd, drmBO *buf, unsigned hint);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Initialization functions.
|
|
||||||
*/
|
|
||||||
|
|
||||||
extern int drmMMInit(int fd, unsigned long pOffset, unsigned long pSize,
|
|
||||||
unsigned memType);
|
|
||||||
extern int drmMMTakedown(int fd, unsigned memType);
|
|
||||||
extern int drmMMLock(int fd, unsigned memType);
|
|
||||||
extern int drmMMUnlock(int fd, unsigned memType);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -547,7 +547,7 @@ MouseConfig(void)
|
||||||
if (str == NULL)
|
if (str == NULL)
|
||||||
#ifdef WSCONS_SUPPORT
|
#ifdef WSCONS_SUPPORT
|
||||||
str = "/dev/wsmouse";
|
str = "/dev/wsmouse";
|
||||||
#elif defined(__FreeBSD__)
|
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
str = "/dev/sysmouse";
|
str = "/dev/sysmouse";
|
||||||
#elif defined(__UNIXOS2__)
|
#elif defined(__UNIXOS2__)
|
||||||
str = "mouse$";
|
str = "mouse$";
|
||||||
|
|
|
@ -490,7 +490,7 @@ struct {
|
||||||
|
|
||||||
#ifdef WSCONS_SUPPORT
|
#ifdef WSCONS_SUPPORT
|
||||||
# define DEF_MOUSEDEV "/dev/wsmouse";
|
# define DEF_MOUSEDEV "/dev/wsmouse";
|
||||||
#elif defined(__FreeBSD__)
|
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
# define DEF_MOUSEDEV "/dev/sysmouse";
|
# define DEF_MOUSEDEV "/dev/sysmouse";
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__)
|
||||||
# define DEF_MOUSEDEV "/dev/input/mice";
|
# define DEF_MOUSEDEV "/dev/input/mice";
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
/*
|
|
||||||
* libdrm-config.h.in: not at all generated.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
|
||||||
#undef _FILE_OFFSET_BITS
|
|
||||||
|
|
||||||
/* Define for large files, on AIX-style hosts. */
|
|
||||||
#undef _LARGE_FILES
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user