diff options
author | Dave Airlie <airlied@redhat.com> | 2012-06-06 11:49:16 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2012-06-06 11:49:16 +0100 |
commit | 177c93486647e71c088ac42697e34c47664eb666 (patch) | |
tree | 0292195d03ac7397d1005811e5e6aed9a5170cc2 | |
parent | 2301879bc334fd9f44cc7f23be613b5b4533568a (diff) |
trident: convert to new compat API.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/blade_accel.c | 2 | ||||
-rw-r--r-- | src/blade_accel_exa.c | 12 | ||||
-rw-r--r-- | src/compat-api.h | 99 | ||||
-rw-r--r-- | src/image_accel.c | 2 | ||||
-rw-r--r-- | src/trident.h | 9 | ||||
-rw-r--r-- | src/trident_accel.c | 2 | ||||
-rw-r--r-- | src/trident_bank.c | 12 | ||||
-rw-r--r-- | src/trident_dac.c | 4 | ||||
-rw-r--r-- | src/trident_dga.c | 8 | ||||
-rw-r--r-- | src/trident_driver.c | 77 | ||||
-rw-r--r-- | src/trident_i2c.c | 2 | ||||
-rw-r--r-- | src/trident_shadow.c | 8 | ||||
-rw-r--r-- | src/trident_video.c | 8 | ||||
-rw-r--r-- | src/xp4_accel.c | 2 | ||||
-rw-r--r-- | src/xp4_accel_exa.c | 12 | ||||
-rw-r--r-- | src/xp_accel.c | 2 |
17 files changed, 180 insertions, 82 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index 16c1ca9..9e65055 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,6 +32,7 @@ trident_drv_ladir = @moduledir@/drivers trident_drv_la_SOURCES = \ blade_accel.c \ blade_accel_exa.c \ + compat-api.h \ image_accel.c \ trident_accel.c \ trident_bank.c \ diff --git a/src/blade_accel.c b/src/blade_accel.c index 18511d9..b8954e6 100644 --- a/src/blade_accel.c +++ b/src/blade_accel.c @@ -150,7 +150,7 @@ Bool BladeXaaInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) diff --git a/src/blade_accel_exa.c b/src/blade_accel_exa.c index 501cbce..ad5af37 100644 --- a/src/blade_accel_exa.c +++ b/src/blade_accel_exa.c @@ -111,7 +111,7 @@ static Bool PrepareSolid(PixmapPtr pPixmap, int rop, Pixel planemask, Pixel color) { TRIDENTPtr pTrident = - TRIDENTPTR(xf86Screens[pPixmap->drawable.pScreen->myNum]); + TRIDENTPTR(xf86ScreenToScrn(pPixmap->drawable.pScreen)); REPLICATE(color, pPixmap->drawable.bitsPerPixel); BLADE_OUT(GER_FGCOLOR, color); @@ -124,7 +124,7 @@ static Bool PrepareSolid(PixmapPtr pPixmap, int rop, Pixel planemask, static void Solid(PixmapPtr pPixmap, int x, int y, int x2, int y2) { TRIDENTPtr pTrident = - TRIDENTPTR(xf86Screens[pPixmap->drawable.pScreen->myNum]); + TRIDENTPTR(xf86ScreenToScrn(pPixmap->drawable.pScreen)); int dst_stride = (pPixmap->drawable.width + 7) / 8; int dst_off = exaGetPixmapOffset(pPixmap) / 8; @@ -146,7 +146,7 @@ static Bool PrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int xdir, int ydir, int alu, Pixel planemask) { TRIDENTPtr pTrident = - TRIDENTPTR(xf86Screens[pSrcPixmap->drawable.pScreen->myNum]); + TRIDENTPTR(xf86ScreenToScrn(pSrcPixmap->drawable.pScreen)); int src_stride = (pSrcPixmap->drawable.width + 7) / 8; int src_off = exaGetPixmapOffset(pSrcPixmap) / 8; int dst_stride = (pDstPixmap->drawable.width + 7) / 8; @@ -178,7 +178,7 @@ static void Copy(PixmapPtr pDstPixmap, int x1, int y1, int x2, int y2, int w, int h) { TRIDENTPtr pTrident = - TRIDENTPTR(xf86Screens[pDstPixmap->drawable.pScreen->myNum]); + TRIDENTPTR(xf86ScreenToScrn(pDstPixmap->drawable.pScreen)); BLADE_OUT(GER_DRAW_CMD, GER_OP_BLT_HOST | GER_DRAW_SRC_COLOR | GER_ROP_ENABLE | GER_BLT_SRC_FB | pTrident->BltScanDirection); @@ -232,7 +232,7 @@ static int MarkSync(ScreenPtr pScreen) static void WaitMarker(ScreenPtr pScreen, int marker) { - TRIDENTPtr pTrident = TRIDENTPTR(xf86Screens[pScreen->myNum]); + TRIDENTPtr pTrident = TRIDENTPTR(xf86ScreenToScrn(pScreen)); int busy; int cnt = 10000000; @@ -267,7 +267,7 @@ static void BladeInitializeAccelerator(ScrnInfoPtr pScrn) Bool BladeExaInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); ExaDriverPtr ExaDriver; diff --git a/src/compat-api.h b/src/compat-api.h new file mode 100644 index 0000000..6bc946f --- /dev/null +++ b/src/compat-api.h @@ -0,0 +1,99 @@ +/* + * Copyright 2012 Red Hat, Inc. + * + * 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 + * THE AUTHORS OR COPYRIGHT HOLDERS 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. + * + * Author: Dave Airlie <airlied@redhat.com> + */ + +/* this file provides API compat between server post 1.13 and pre it, + it should be reused inside as many drivers as possible */ +#ifndef COMPAT_API_H +#define COMPAT_API_H + +#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR +#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum] +#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p +#endif + +#ifndef XF86_HAS_SCRN_CONV +#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum] +#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex] +#endif + +#ifndef XF86_SCRN_INTERFACE + +#define SCRN_ARG_TYPE int +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)] + +#define SCREEN_ARG_TYPE int +#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)] + +#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS scrnIndex, pScreen + +#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags +#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0 + +#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags +#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0 + +#define FREE_SCREEN_ARGS_DECL int arg, int flags + +#define VT_FUNC_ARGS_DECL int arg, int flags +#define VT_FUNC_ARGS pScrn->scrnIndex, 0 + +#define XF86_SCRN_ARG(x) ((x)->scrnIndex) +#else +#define SCRN_ARG_TYPE ScrnInfoPtr +#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1) + +#define SCREEN_ARG_TYPE ScreenPtr +#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1) + +#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv + +#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask +#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask + +#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen +#define CLOSE_SCREEN_ARGS pScreen + +#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y +#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y + +#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode +#define SWITCH_MODE_ARGS(arg, m) arg, m + +#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg + +#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg +#define VT_FUNC_ARGS pScrn + +#define XF86_SCRN_ARG(x) (x) + +#endif + +#endif diff --git a/src/image_accel.c b/src/image_accel.c index f4e8055..9a9388d 100644 --- a/src/image_accel.c +++ b/src/image_accel.c @@ -133,7 +133,7 @@ Bool ImageAccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) diff --git a/src/trident.h b/src/trident.h index a28c9fc..ebdbccd 100644 --- a/src/trident.h +++ b/src/trident.h @@ -46,6 +46,7 @@ #include "xf86Pci.h" #include "vbe.h" +#include "compat-api.h" /* Banked framebuffer only supported on ISA */ #ifdef HAVE_ISA #define LINEAR() (pTrident->Linear) @@ -110,7 +111,7 @@ typedef struct { unsigned char * ShadowPtr; int ShadowPitch; RefreshAreaFuncPtr RefreshArea; - void (*PointerMoved)(int index, int x, int y); + void (*PointerMoved)(SCRN_ARG_TYPE arg, int x, int y); int Rotate; float frequency; unsigned char REGPCIReg; @@ -225,8 +226,8 @@ typedef struct { /* Prototypes */ Bool TRIDENTClockSelect(ScrnInfoPtr pScrn, int no); -Bool TRIDENTSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); -void TRIDENTAdjustFrame(int scrnIndex, int x, int y, int flags); +Bool TRIDENTSwitchMode(SWITCH_MODE_ARGS_DECL); +void TRIDENTAdjustFrame(ADJUST_FRAME_ARGS_DECL); Bool TRIDENTDGAInit(ScreenPtr pScreen); Bool TRIDENTI2CInit(ScreenPtr pScreen); void TRIDENTInitVideo(ScreenPtr pScreen); @@ -265,7 +266,7 @@ void TridentFindClock(ScrnInfoPtr pScrn, int clock); float CalculateMCLK(ScrnInfoPtr pScrn); void TRIDENTRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void TRIDENTShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf); -void TRIDENTPointerMoved(int index, int x, int y); +void TRIDENTPointerMoved(SCRN_ARG_TYPE arg, int x, int y); void TRIDENTRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void TRIDENTRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox); void TRIDENTRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox); diff --git a/src/trident_accel.c b/src/trident_accel.c index cb217e9..85d1427 100644 --- a/src/trident_accel.c +++ b/src/trident_accel.c @@ -116,7 +116,7 @@ Bool TridentAccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) diff --git a/src/trident_bank.c b/src/trident_bank.c index adbc964..a551a0c 100644 --- a/src/trident_bank.c +++ b/src/trident_bank.c @@ -41,7 +41,7 @@ int TVGA8900SetRead(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTW(0x3c4, 0xC000 | (((bank & 0x3f) ^ 0x02)<<8)|0x0E); return 0; @@ -50,7 +50,7 @@ int TGUISetRead(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTB(0x3d9, bank & 0xff); return 0; @@ -59,7 +59,7 @@ int TVGA8900SetWrite(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTW(0x3c4, 0xC000 | (((bank & 0x3f) ^ 0x02)<<8)|0x0E); return 0; @@ -68,7 +68,7 @@ int TGUISetWrite(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTB(0x3d8, bank & 0xff); return 0; @@ -77,7 +77,7 @@ int TVGA8900SetReadWrite(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTW(0x3c4, 0xC000 | (((bank & 0x3f) ^ 0x02)<<8)|0x0E); return 0; @@ -86,7 +86,7 @@ int TGUISetReadWrite(ScreenPtr pScreen, int bank) { ScrnInfoPtr pScrn; TRIDENTPtr pTrident; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); OUTB(0x3d8, bank & 0xff); OUTB(0x3d9, bank & 0xff); diff --git a/src/trident_dac.c b/src/trident_dac.c index ea74839..a7bf588 100644 --- a/src/trident_dac.c +++ b/src/trident_dac.c @@ -1117,7 +1117,7 @@ TridentLoadCursorImage( static Bool TridentUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->MUX && pScrn->bitsPerPixel == 8) return FALSE; @@ -1134,7 +1134,7 @@ TridentUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs) Bool TridentHWCursorInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); xf86CursorInfoPtr infoPtr; FBAreaPtr fbarea; diff --git a/src/trident_dga.c b/src/trident_dga.c index b94ff4e..832e4dc 100644 --- a/src/trident_dga.c +++ b/src/trident_dga.c @@ -69,7 +69,7 @@ DGAFunctionRec TRIDENTDGAFuncs = { Bool TRIDENTDGAInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); DGAModePtr modes = NULL, newmodes = NULL, currentMode; DisplayModePtr pMode, firstMode; @@ -176,7 +176,7 @@ TRIDENT_SetMode( pScrn->displayWidth = OldDisplayWidth[index]; - TRIDENTSwitchMode(index, pScrn->currentMode, 0); + TRIDENTSwitchMode(SWITCH_MODE_ARGS(pScrn, pScrn->currentMode)); pTrident->DGAactive = FALSE; } else { if(!pTrident->DGAactive) { /* save the old parameters */ @@ -188,7 +188,7 @@ TRIDENT_SetMode( pScrn->displayWidth = pMode->bytesPerScanline / (pMode->bitsPerPixel >> 3); - TRIDENTSwitchMode(index, pMode->mode, 0); + TRIDENTSwitchMode(SWITCH_MODE_ARGS(pScrn, pMode->mode)); } return TRUE; @@ -213,7 +213,7 @@ TRIDENT_SetViewport( ){ TRIDENTPtr pTrident = TRIDENTPTR(pScrn); - TRIDENTAdjustFrame(pScrn->pScreen->myNum, x, y, flags); + TRIDENTAdjustFrame(ADJUST_FRAME_ARGS(pScrn, x, y)); pTrident->DGAViewportStatus = 0; /* TRIDENTAdjustFrame loops until finished */ } diff --git a/src/trident_driver.c b/src/trident_driver.c index 4cf7e24..dde6319 100644 --- a/src/trident_driver.c +++ b/src/trident_driver.c @@ -80,16 +80,15 @@ static const OptionInfoRec * TRIDENTAvailableOptions(int chipid, int busid); static void TRIDENTIdentify(int flags); static Bool TRIDENTProbe(DriverPtr drv, int flags); static Bool TRIDENTPreInit(ScrnInfoPtr pScrn, int flags); -static Bool TRIDENTScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); -static Bool TRIDENTEnterVT(int scrnIndex, int flags); -static void TRIDENTLeaveVT(int scrnIndex, int flags); -static Bool TRIDENTCloseScreen(int scrnIndex, ScreenPtr pScreen); +static Bool TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool TRIDENTEnterVT(VT_FUNC_ARGS_DECL); +static void TRIDENTLeaveVT(VT_FUNC_ARGS_DECL); +static Bool TRIDENTCloseScreen(CLOSE_SCREEN_ARGS_DECL); static Bool TRIDENTSaveScreen(ScreenPtr pScreen, int mode); /* Optional functions */ -static void TRIDENTFreeScreen(int scrnIndex, int flags); -static ModeStatus TRIDENTValidMode(int scrnIndex, DisplayModePtr mode, +static void TRIDENTFreeScreen(FREE_SCREEN_ARGS_DECL); +static ModeStatus TRIDENTValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags); /* Internally used functions */ @@ -98,7 +97,7 @@ static Bool TRIDENTUnmapMem(ScrnInfoPtr pScrn); static void TRIDENTSave(ScrnInfoPtr pScrn); static void TRIDENTRestore(ScrnInfoPtr pScrn); static Bool TRIDENTModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); -static void TRIDENTBlockHandler(int, pointer, pointer, pointer); +static void TRIDENTBlockHandler(BLOCKHANDLER_ARGS_DECL); static void TRIDENTEnableMMIO(ScrnInfoPtr pScrn); static void TRIDENTDisableMMIO(ScrnInfoPtr pScrn); @@ -610,18 +609,14 @@ TRIDENTDisplayPowerManagementSet(ScrnInfoPtr pScrn, int PowerManagementMode, int } static void -TRIDENTBlockHandler ( - int i, - pointer blockData, - pointer pTimeout, - pointer pReadmask -){ - ScreenPtr pScreen = screenInfo.screens[i]; - ScrnInfoPtr pScrn = xf86Screens[i]; +TRIDENTBlockHandler (BLOCKHANDLER_ARGS_DECL) +{ + SCREEN_PTR(arg); + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); pScreen->BlockHandler = pTrident->BlockHandler; - (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); + (*pScreen->BlockHandler) (BLOCKHANDLER_ARGS); pScreen->BlockHandler = TRIDENTBlockHandler; if(pTrident->VideoTimerCallback) { @@ -2765,7 +2760,7 @@ TRIDENTRestore(ScrnInfoPtr pScrn) /* This gets called at the start of each server generation */ static Bool -TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +TRIDENTScreenInit(SCREEN_INIT_ARGS_DECL) { /* The vgaHW references will disappear one day */ ScrnInfoPtr pScrn; @@ -2779,7 +2774,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* * First get the ScrnInfoRec */ - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); pTrident = TRIDENTPTR(pScrn); if (IsPrimaryCard) { @@ -2838,7 +2833,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Darken the screen for aesthetic reasons and set the viewport */ TRIDENTSaveScreen(pScreen, SCREEN_SAVER_ON); - TRIDENTAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); + TRIDENTAdjustFrame(ADJUST_FRAME_ARGS(pScrn, pScrn->frameX0, pScrn->frameY0)); /* * The next step is to setup the screen's visuals, and initialise the @@ -2908,7 +2903,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) break; default: - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Internal error: invalid bpp (%d) in TRIDENTScrnInit\n", pScrn->bitsPerPixel); ret = FALSE; @@ -3005,7 +3000,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) AvailFBArea.y2 - pScrn->virtualY); if (xf86InitFBManagerLinear(pScreen, area, ((pTrident->FbMapSize/cpp) - area))) { - xf86DrvMsg(scrnIndex, X_INFO, + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using %ld bytes of offscreen memory for linear (offset=0x%x)\n", (pTrident->FbMapSize - areaoffset), areaoffset); } } @@ -3115,9 +3110,10 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) /* Usually mandatory */ Bool -TRIDENTSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +TRIDENTSwitchMode(SWITCH_MODE_ARGS_DECL) { - return TRIDENTModeInit(xf86Screens[scrnIndex], mode); + SCRN_INFO_PTR(arg); + return TRIDENTModeInit(pScrn, mode); } @@ -3127,9 +3123,9 @@ TRIDENTSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) */ /* Usually mandatory */ void -TRIDENTAdjustFrame(int scrnIndex, int x, int y, int flags) +TRIDENTAdjustFrame(ADJUST_FRAME_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); TRIDENTPtr pTrident; int base = y * pScrn->displayWidth + x; int vgaIOBase; @@ -3174,9 +3170,9 @@ TRIDENTAdjustFrame(int scrnIndex, int x, int y, int flags) /* Mandatory */ static Bool -TRIDENTEnterVT(int scrnIndex, int flags) +TRIDENTEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (IsPciCard && UseMMIO) TRIDENTEnableMMIO(pScrn); @@ -3201,9 +3197,9 @@ TRIDENTEnterVT(int scrnIndex, int flags) /* Mandatory */ static void -TRIDENTLeaveVT(int scrnIndex, int flags) +TRIDENTLeaveVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); vgaHWPtr hwp = VGAHWPTR(pScrn); @@ -3231,9 +3227,9 @@ TRIDENTLeaveVT(int scrnIndex, int flags) /* Mandatory */ static Bool -TRIDENTCloseScreen(int scrnIndex, ScreenPtr pScreen) +TRIDENTCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); vgaHWPtr hwp = VGAHWPTR(pScrn); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); @@ -3277,7 +3273,7 @@ TRIDENTCloseScreen(int scrnIndex, ScreenPtr pScreen) else xf86FreeInt10(pTrident->Int10); pScreen->CloseScreen = pTrident->CloseScreen; - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } @@ -3285,11 +3281,12 @@ TRIDENTCloseScreen(int scrnIndex, ScreenPtr pScreen) /* Optional */ static void -TRIDENTFreeScreen(int scrnIndex, int flags) +TRIDENTFreeScreen(FREE_SCREEN_ARGS_DECL) { + SCRN_INFO_PTR(arg); if (xf86LoaderCheckSymbol("vgaHWFreeHWRec")) - vgaHWFreeHWRec(xf86Screens[scrnIndex]); - TRIDENTFreeRec(xf86Screens[scrnIndex]); + vgaHWFreeHWRec(pScrn); + TRIDENTFreeRec(pScrn); } @@ -3297,15 +3294,15 @@ TRIDENTFreeScreen(int scrnIndex, int flags) /* Optional */ static ModeStatus -TRIDENTValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +TRIDENTValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->lcdActive && (pTrident->lcdMode != 0xff)){ if (((mode->HDisplay > LCD[pTrident->lcdMode].display_x) || (mode->VDisplay > LCD[pTrident->lcdMode].display_y))) { - xf86DrvMsg(scrnIndex,X_INFO, "Removing mode (%dx%d) " + xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Removing mode (%dx%d) " "larger than the LCD panel (%dx%d)\n", mode->HDisplay, mode->VDisplay, @@ -3314,7 +3311,7 @@ TRIDENTValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) return(MODE_BAD); } if (((float)mode->HDisplay/(float)mode->VDisplay) > 2.0) { - xf86DrvMsg(scrnIndex,X_INFO, "Removing mode (%dx%d) " + xf86DrvMsg(pScrn->scrnIndex,X_INFO, "Removing mode (%dx%d) " "unusual aspect ratio\n", mode->HDisplay, mode->VDisplay); diff --git a/src/trident_i2c.c b/src/trident_i2c.c index 111b582..0530d0c 100644 --- a/src/trident_i2c.c +++ b/src/trident_i2c.c @@ -57,7 +57,7 @@ TRIDENTI2CGetBits(I2CBusPtr b, int *clock, int *data) { Bool TRIDENTI2CInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); I2CBusPtr I2CPtr; diff --git a/src/trident_shadow.c b/src/trident_shadow.c index 5f9c445..e35cdf3 100644 --- a/src/trident_shadow.c +++ b/src/trident_shadow.c @@ -47,16 +47,16 @@ TRIDENTShadowUpdate (ScreenPtr pScreen, shadowBufPtr pBuf) { RegionPtr damage = DamageRegion(pBuf->pDamage); ScrnInfoPtr pScrn; - pScrn = xf86Screens[pScreen->myNum]; + pScrn = xf86ScreenToScrn(pScreen); (TRIDENTPTR(pScrn))->RefreshArea (pScrn, REGION_NUM_RECTS(damage), REGION_RECTS(damage)); } void -TRIDENTPointerMoved(int index, int x, int y) +TRIDENTPointerMoved(SCRN_ARG_TYPE arg, int x, int y) { - ScrnInfoPtr pScrn = xf86Screens[index]; + SCRN_INFO_PTR(arg); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int newX, newY; @@ -68,7 +68,7 @@ TRIDENTPointerMoved(int index, int x, int y) newY = pScrn->pScreen->width - x - 1; } - (*pTrident->PointerMoved)(index, newX, newY); + (*pTrident->PointerMoved)(arg, newX, newY); } void diff --git a/src/trident_video.c b/src/trident_video.c index 21b7728..93fd5df 100644 --- a/src/trident_video.c +++ b/src/trident_video.c @@ -76,7 +76,7 @@ static Atom xvColorKey, xvSaturation, xvBrightness, xvHUE, xvContrast; void TRIDENTInitVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL; XF86VideoAdaptorPtr newAdaptor = NULL; TRIDENTPtr pTrident = TRIDENTPTR(pScrn); @@ -315,7 +315,7 @@ void TRIDENTResetVideo(ScrnInfoPtr pScrn) static XF86VideoAdaptorPtr TRIDENTSetupImageVideo(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); XF86VideoAdaptorPtr adapt; TRIDENTPortPrivPtr pPriv; @@ -585,7 +585,7 @@ TRIDENTAllocateMemory( xf86FreeOffscreenLinear(linear); } - pScreen = screenInfo.screens[pScrn->scrnIndex]; + pScreen = xf86ScrnToScreen(pScrn); new_linear = xf86AllocateOffscreenLinear(pScreen, size, 16, NULL, NULL, NULL); @@ -1122,7 +1122,7 @@ TRIDENTDisplaySurface( static void TRIDENTInitOffscreenImages(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); XF86OffscreenImagePtr offscreenImages; diff --git a/src/xp4_accel.c b/src/xp4_accel.c index 4634c49..c9b47fd 100644 --- a/src/xp4_accel.c +++ b/src/xp4_accel.c @@ -126,7 +126,7 @@ Bool XP4XaaInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) diff --git a/src/xp4_accel_exa.c b/src/xp4_accel_exa.c index 59b2e5f..7a7b4d3 100644 --- a/src/xp4_accel_exa.c +++ b/src/xp4_accel_exa.c @@ -99,7 +99,7 @@ XP4WaitMarker(ScreenPtr pScreen, int Marker) static void XP4Done(PixmapPtr p) { - ScrnInfoPtr pScrn = xf86Screens[p->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(p->drawable.pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int count = 0, timeout = 0; int busy; @@ -126,7 +126,7 @@ XP4Done(PixmapPtr p) { static Bool XP4PrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); unsigned int dorg = exaGetPixmapOffset(pPixmap); unsigned int dptch = exaGetPixmapPitch(pPixmap); @@ -148,7 +148,7 @@ XP4PrepareSolid(PixmapPtr pPixmap, int alu, Pixel planemask, Pixel fg) static void XP4Solid(PixmapPtr pPixmap, int x1, int y1, int x2, int y2) { - ScrnInfoPtr pScrn = xf86Screens[pPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pPixmap->drawable.pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int bpp; @@ -173,7 +173,7 @@ static Bool XP4PrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int dx, int dy, int alu, Pixel planemask) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); unsigned int sorg = exaGetPixmapOffset(pSrcPixmap); unsigned int dorg = exaGetPixmapOffset(pDstPixmap); @@ -198,7 +198,7 @@ XP4PrepareCopy(PixmapPtr pSrcPixmap, PixmapPtr pDstPixmap, int dx, int dy, static void XP4Copy(PixmapPtr pDstPixmap, int x1, int y1, int x2, int y2, int w, int h) { - ScrnInfoPtr pScrn = xf86Screens[pDstPixmap->drawable.pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pDstPixmap->drawable.pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int bpp; @@ -233,7 +233,7 @@ Bool XP4ExaInit(ScreenPtr pScreen) { ExaDriverPtr pExa; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) diff --git a/src/xp_accel.c b/src/xp_accel.c index 544bd8f..4957049 100644 --- a/src/xp_accel.c +++ b/src/xp_accel.c @@ -119,7 +119,7 @@ Bool XPAccelInit(ScreenPtr pScreen) { XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->NoAccel) |