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
|
||||
* the latter case we need to lift the DRI lock manually. */
|
||||
|
||||
if (glxBlockClients) {
|
||||
if (!glxBlockClients) {
|
||||
__glXleaveServer();
|
||||
cx->destroy(cx);
|
||||
__glXenterServer();
|
||||
|
|
|
@ -49,8 +49,6 @@ dnl xwin-config.h covers the XWin DDX.
|
|||
AC_CONFIG_HEADERS(include/xwin-config.h)
|
||||
dnl kdrive-config.h covers the kdrive DDX
|
||||
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
|
||||
AM_PROG_AS
|
||||
|
@ -284,6 +282,7 @@ case $host_os in
|
|||
*netbsd*)
|
||||
AC_DEFINE(CSRG_BASED, 1, [System is BSD-like])
|
||||
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])
|
||||
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(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(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(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])
|
||||
|
|
|
@ -1307,7 +1307,7 @@ checkCoreInputDevices(serverLayoutPtr servlayoutp, Bool implicitLayout)
|
|||
* events, unless a 'void' section is found, in which case the user
|
||||
* 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")) {
|
||||
found = 1; break;
|
||||
}
|
||||
|
|
|
@ -84,6 +84,8 @@ static RESTYPE DRIDrawablePrivResType;
|
|||
static RESTYPE DRIContextPrivResType;
|
||||
static void DRIDestroyDummyContext(ScreenPtr pScreen, Bool hasCtxPriv);
|
||||
|
||||
drmServerInfo DRIDRMServerInfo;
|
||||
|
||||
/* Wrapper just like xf86DrvMsg, but
|
||||
without the verbosity level checking.
|
||||
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;
|
||||
}
|
||||
|
||||
static drmServerInfo DRIDRMServerInfo = {
|
||||
drmServerInfo DRIDRMServerInfo = {
|
||||
dri_drm_debug_print,
|
||||
xf86LoadKernelModule,
|
||||
dri_drm_get_perms,
|
||||
|
@ -622,8 +624,6 @@ DRIExtensionInit(void)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
drmSetServerInfo(&DRIDRMServerInfo);
|
||||
|
||||
RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL);
|
||||
|
||||
return TRUE;
|
||||
|
|
|
@ -39,8 +39,11 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "xf86Module.h"
|
||||
#include "globals.h"
|
||||
|
||||
#include "xf86drm.h"
|
||||
static MODULESETUPPROTO(driSetup);
|
||||
|
||||
drmServerInfo DRIDRMServerInfo;
|
||||
|
||||
static XF86ModuleVersionInfo VersRec =
|
||||
{
|
||||
"dri",
|
||||
|
@ -81,6 +84,9 @@ driSetup(pointer module, pointer opts, int *errmaj, int *errmin)
|
|||
} else {
|
||||
if (errmaj) *errmaj = LDR_ONCEONLY;
|
||||
}
|
||||
|
||||
drmSetServerInfo(&DRIDRMServerInfo);
|
||||
|
||||
/* Need a non-NULL return value to indicate success */
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -683,28 +683,28 @@ xf86MapDomainMemory(int ScreenNum, int Flags, PCITAG Tag,
|
|||
ADDRESS Base, unsigned long Size)
|
||||
{
|
||||
int domain = xf86GetPciDomain(Tag);
|
||||
int fd;
|
||||
int fd = -1;
|
||||
pointer addr;
|
||||
|
||||
/*
|
||||
* We use /proc/bus/pci on non-legacy addresses or if the Linux sysfs
|
||||
* legacy_mem interface is unavailable.
|
||||
*/
|
||||
if (Base > 1024*1024)
|
||||
return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
if (Base >= 1024*1024)
|
||||
addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
PCIIOC_MMAP_IS_MEM);
|
||||
|
||||
if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
||||
return linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
else if ((fd = linuxOpenLegacy(Tag, "legacy_mem")) < 0)
|
||||
addr = linuxMapPci(ScreenNum, Flags, Tag, Base, Size,
|
||||
PCIIOC_MMAP_IS_MEM);
|
||||
|
||||
else
|
||||
addr = mmap(NULL, Size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, Base);
|
||||
if (addr == MAP_FAILED) {
|
||||
|
||||
if (fd >= 0)
|
||||
close(fd);
|
||||
if (addr == NULL || addr == MAP_FAILED) {
|
||||
perror("mmap failure");
|
||||
FatalError("xf86MapDomainMem(): mmap() failure\n");
|
||||
}
|
||||
close(fd);
|
||||
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)
|
||||
#ifdef WSCONS_SUPPORT
|
||||
str = "/dev/wsmouse";
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
str = "/dev/sysmouse";
|
||||
#elif defined(__UNIXOS2__)
|
||||
str = "mouse$";
|
||||
|
|
|
@ -490,7 +490,7 @@ struct {
|
|||
|
||||
#ifdef WSCONS_SUPPORT
|
||||
# define DEF_MOUSEDEV "/dev/wsmouse";
|
||||
#elif defined(__FreeBSD__)
|
||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||
# define DEF_MOUSEDEV "/dev/sysmouse";
|
||||
#elif defined(__linux__)
|
||||
# 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