diff --git a/configure.ac b/configure.ac index 1099315..2754baf 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c index fbb24e4..a49c632 100644 --- a/hw/xfree86/dri/dri.c +++ b/hw/xfree86/dri/dri.c @@ -84,6 +84,8 @@ static RESTYPE DRIDrawablePrivResType; static RESTYPE DRIContextPrivResType; static void DRIDestroyDummyContext(ScreenPtr pScreen, Bool hasCtxPriv); +static drmServerInfo DRIDRMServerInfo; + /* Wrapper just like xf86DrvMsg, but without the verbosity level checking. This will make it easy to turn off some @@ -174,6 +176,8 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfo else openbusid = NULL; + drmSetServerInfo(&DRIDRMServerInfo); + /* Note that drmOpen will try to load the kernel module, if needed. */ fd = drmOpen(pDRIInfo->drmDriverName, openbusid); if (fd < 0) { @@ -622,8 +626,6 @@ DRIExtensionInit(void) return FALSE; } - drmSetServerInfo(&DRIDRMServerInfo); - RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL); return TRUE; diff --git a/hw/xfree86/os-support/xf86drmCompat.h b/hw/xfree86/os-support/xf86drmCompat.h deleted file mode 100644 index 8ac6ee4..0000000 --- a/hw/xfree86/os-support/xf86drmCompat.h +++ /dev/null @@ -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 - * Kevin E. Martin - * Keith Whitwell - * - * Backwards compatability modules broken out by: - * Jens Owen - * - * - */ - -#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. - */ diff --git a/hw/xfree86/os-support/xf86mm.h b/hw/xfree86/os-support/xf86mm.h deleted file mode 100644 index e1a4e3e..0000000 --- a/hw/xfree86/os-support/xf86mm.h +++ /dev/null @@ -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 -#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 diff --git a/include/libdrm-config.h.in b/include/libdrm-config.h.in deleted file mode 100644 index 286004b..0000000 --- a/include/libdrm-config.h.in +++ /dev/null @@ -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 -