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 (addr == MAP_FAILED) { | 
 | ||||||
| 	close (fd); |     if (fd >= 0) | ||||||
|  | 	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