deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/**************************************************************************
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncCopyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncAll Rights Reserved.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncPermission is hereby granted, free of charge, to any person obtaining a
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynccopy of this software and associated documentation files (the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync"Software"), to deal in the Software without restriction, including
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncwithout limitation the rights to use, copy, modify, merge, publish,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncdistribute, sub license, and/or sell copies of the Software, and to
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncpermit persons to whom the Software is furnished to do so, subject to
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncthe following conditions:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncThe above copyright notice and this permission notice (including the
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncnext paragraph) shall be included in all copies or substantial portions
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncof the Software.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncIN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync**************************************************************************/
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Authors:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Jens Owen <jens@tungstengraphics.com>
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/* Prototypes for DRI functions */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#ifndef _DRI_H_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "scrnintstr.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#include "xf86dri.h"
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int DRISyncType;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_NO_SYNC 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_2D_SYNC 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_3D_SYNC 2
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int DRIContextType;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct _DRIContextPrivRec DRIContextPrivRec, *DRIContextPrivPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef enum _DRIContextFlags
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync{
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRI_CONTEXT_2DONLY = 0x01,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRI_CONTEXT_PRESERVED = 0x02,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRI_CONTEXT_RESERVED = 0x04 /* DRI Only -- no kernel equivalent */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} DRIContextFlags;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_NO_CONTEXT 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_2D_CONTEXT 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_3D_CONTEXT 2
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int DRISwapMethod;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_HIDE_X_CONTEXT 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_SERVER_SWAP 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_KERNEL_SWAP 2
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef int DRIWindowRequests;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_NO_WINDOWS 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_3D_WINDOWS_ONLY 1
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRI_ALL_WINDOWS 2
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*ClipNotifyPtr)( WindowPtr, int, int );
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef void (*AdjustFramePtr)(int scrnIndex, int x, int y, int flags);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * These functions can be wrapped by the DRI. Each of these have
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * generic default funcs (initialized in DRICreateInfoRec) and can be
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * overridden by the driver in its [driver]DRIScreenInit function.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenWakeupHandlerProcPtr WakeupHandler;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ScreenBlockHandlerProcPtr BlockHandler;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowExposuresProcPtr WindowExposures;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CopyWindowProcPtr CopyWindow;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ValidateTreeProcPtr ValidateTree;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync PostValidateTreeProcPtr PostValidateTree;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync ClipNotifyProcPtr ClipNotify;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync AdjustFramePtr AdjustFrame;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} DRIWrappedFuncsRec, *DRIWrappedFuncsPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync/*
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Prior to Xorg 6.8.99.8, the DRIInfoRec structure was implicitly versioned
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * by the XF86DRI_*_VERSION defines in xf86dristr.h. These numbers were also
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * being used to version the XFree86-DRI protocol. Bugs #3066 and #3163
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * showed that this was inadequate. The DRIInfoRec structure is now versioned
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * by the DRIINFO_*_VERSION defines in this file. - ajax, 2005-05-18.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Revision history:
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * 4.1.0 and earlier: DRIQueryVersion returns XF86DRI_*_VERSION.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * 4.2.0: DRIQueryVersion begins returning DRIINFO_*_VERSION.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * 5.0.0: frameBufferPhysicalAddress changed from CARD32 to pointer.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRIINFO_MAJOR_VERSION 5
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRIINFO_MINOR_VERSION 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define DRIINFO_PATCH_VERSION 0
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsynctypedef struct {
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* driver call back functions
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync *
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * New fields should be added at the end for backwards compatibility.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Bump the DRIINFO patch number to indicate bugfixes.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Bump the DRIINFO minor number to indicate new fields.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync * Bump the DRIINFO major number to indicate binary-incompatible changes.
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*CreateContext)(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualPtr visual,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_context_t hHWContext,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* pVisualConfigPriv,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextType context);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*DestroyContext)(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_context_t hHWContext,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextType context);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*SwapContext)(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRISyncType syncType,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextType readContextType,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* readContextStore,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextType writeContextType,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* writeContextStore);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*InitBuffers)(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD32 indx);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*MoveBuffers)(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointRec ptOldOrg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgnSrc,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD32 indx);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*TransitionTo3d)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*TransitionTo2d)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*SetDrawableIndex)(WindowPtr pWin, CARD32 indx);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*OpenFullScreen)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool (*CloseFullScreen)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* wrapped functions */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIWrappedFuncsRec wrap;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* device info */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char* drmDriverName;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char* clientDriverName;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char* busIdString;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ddxDriverMajorVersion;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ddxDriverMinorVersion;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ddxDriverPatchVersion;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer frameBufferPhysicalAddress;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync long frameBufferSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync long frameBufferStride;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync long SAREASize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int maxDrawableTableEntry;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int ddxDrawableTableEntry;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync long contextSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRISwapMethod driverSwapMethod;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIWindowRequests bufferRequests;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int devPrivateSize;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void* devPrivate;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool createDummyCtx;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool createDummyCtxPriv;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync /* New with DRI version 4.1.0 */
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*TransitionSingleToMulti3D)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void (*TransitionMultiToSingle3D)(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync} DRIInfoRec, *DRIInfoPtr;
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIScreenInit(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIInfoPtr pDRIInfo,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *pDRMFD);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRICloseScreen(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIExtensionInit(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIReset(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIQueryDirectRenderingCapable(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Bool *isCapable);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIOpenConnection(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_handle_t * hSAREA,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char **busIdString);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIAuthConnection(ScreenPtr pScreen, drm_magic_t magic);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRICloseConnection(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIGetClientDriverName(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* ddxDriverMajorVersion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* ddxDriverMinorVersion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* ddxDriverPatchVersion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync char** clientDriverName);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRICreateContext(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VisualPtr visual,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID context,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_context_t * pHWContext);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIDestroyContext(ScreenPtr pScreen, XID context);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIContextPrivDelete(pointer pResource, XID id);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRICreateDrawable(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Drawable id,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_drawable_t * hHWDrawable);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIDestroyDrawable(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync Drawable id,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDrawable);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIDrawablePrivDelete(pointer pResource,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync XID id);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIGetDrawableInfo(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DrawablePtr pDrawable,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int* indx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned int* stamp,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* X,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* Y,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* W,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* H,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* numClipRects,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_clip_rect_t ** pClipRects,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* backX,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* backY,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* numBackClipRects,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_clip_rect_t ** pBackClipRects);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIGetDeviceInfo(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_handle_t * hFrameBuffer,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* fbOrigin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* fbSize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* fbStride,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int* devPrivateSize,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void** pDevPrivate);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DRIInfoPtr DRICreateInfoRec(void);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIDestroyInfoRec(DRIInfoPtr DRIInfo);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIFinishScreenInit(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIWakeupHandler(pointer wakeupData,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int result,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pReadmask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIBlockHandler(pointer blockData,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync OSTimePtr pTimeout,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pReadmask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIDoWakeupHandler(int screenNum,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer wakeupData,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync unsigned long result,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pReadmask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIDoBlockHandler(int screenNum,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer blockData,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pTimeout,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync pointer pReadmask);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRISwapContext(int drmFD,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *oldctx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync void *newctx);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void *DRIGetContextStore(DRIContextPrivPtr context);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIWindowExposures(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgn,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr bsreg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRICopyWindow(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DDXPointRec ptOldOrg,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr prgnSrc);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int DRIValidateTree(WindowPtr pParent,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr pChild,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VTKind kind);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIPostValidateTree(WindowPtr pParent,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync WindowPtr pChild,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync VTKind kind);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIClipNotify(WindowPtr pWin,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern CARD32 DRIGetDrawableIndex(WindowPtr pWin);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIPrintDrawableLock(ScreenPtr pScreen, char *msg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRILock(ScreenPtr pScreen, int flags);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIUnlock(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DRIWrappedFuncsRec *DRIGetWrappedFuncs(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void *DRIGetSAREAPrivate(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern unsigned int DRIGetDrawableStamp(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync CARD32 drawable_index);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DRIContextPrivPtr DRICreateContextPriv(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_context_t * pHWContext,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextFlags flags);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern DRIContextPrivPtr DRICreateContextPrivFromHandle(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync drm_context_t hHWContext,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync DRIContextFlags flags);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern Bool DRIDestroyContextPriv(DRIContextPrivPtr pDRIContextPriv);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern drm_context_t DRIGetContext(ScreenPtr pScreen);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIQueryVersion(int *majorVersion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *minorVersion,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *patchVersion);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIAdjustFrame(int scrnIndex, int x, int y, int flags);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern void DRIMoveBuffersHelper(ScreenPtr pScreen,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dx,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int dy,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *xdir,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync int *ydir,
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync RegionPtr reg);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern char *DRICreatePCIBusID(pciVideoPtr PciInfo);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int drmInstallSIGIOHandler(int fd, void (*f)(int, void *, void *));
deb4998ba50060c48cce222fd18a8eed053918d7vboxsyncextern int drmRemoveSIGIOHandler(int fd);
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#define _DRI_H_
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync
deb4998ba50060c48cce222fd18a8eed053918d7vboxsync#endif