From 53932b3803fa2c02949fd7d4d0e433ea58fa89f1 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 10 Apr 2012 15:47:32 +0100 Subject: [PATCH] xf86: add helper functions to convert to from ScrnInfoPtr/ScreenPtr (v2) These are just simple functions that we should start migrating drivers to using. The end goal is to remove xf86Screens and screenInfo from the ABI. This includes a define XF86_HAS_SCRN_CONV that drivers can ifdef to provide their own copies. I'll probably post a generic compat.h file for drivers later. v2: add asserts. Reviewed-by: Aaron Plattner Reviewed-by: Keith Packard Signed-off-by: Dave Airlie --- hw/xfree86/common/xf86.h | 7 +++++++ hw/xfree86/common/xf86Helper.c | 14 ++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index e6d41d64b..ef99106e5 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -449,6 +449,13 @@ xf86RandRSetNewVirtualAndDimensions(ScreenPtr pScreen, extern _X_EXPORT Bool VidModeExtensionInit(ScreenPtr pScreen); +/* convert ScreenPtr to ScrnInfoPtr */ +extern _X_EXPORT ScrnInfoPtr xf86ScreenToScrn(ScreenPtr pScreen); +/* convert ScrnInfoPtr to ScreenPtr */ +extern _X_EXPORT ScreenPtr xf86ScrnToScreen(ScrnInfoPtr pScrn); + #endif /* _NO_XF86_PROTOTYPES */ +#define XF86_HAS_SCRN_CONV 1 /* define for drivers to use in api compat */ + #endif /* _XF86_H */ diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 8c948cf6f..6834a0cb7 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1834,3 +1834,17 @@ xf86MotionHistoryAllocate(InputInfoPtr pInfo) { AllocateMotionHistory(pInfo->dev); } + +ScrnInfoPtr +xf86ScreenToScrn(ScreenPtr pScreen) +{ + assert(pScreen->myNum < xf86NumScreens); + return xf86Screens[pScreen->myNum]; +} + +ScreenPtr +xf86ScrnToScreen(ScrnInfoPtr pScrn) +{ + assert(pScrn->scrnIndex < screenInfo.numScreens); + return screenInfo.screens[pScrn->scrnIndex]; +}