diff options
Diffstat (limited to 'src/wsfb_driver.c')
-rw-r--r-- | src/wsfb_driver.c | 83 |
1 files changed, 42 insertions, 41 deletions
diff --git a/src/wsfb_driver.c b/src/wsfb_driver.c index 96f2a2d..c902047 100644 --- a/src/wsfb_driver.c +++ b/src/wsfb_driver.c @@ -78,6 +78,8 @@ #include "xf86xv.h" #endif +#include "compat-api.h" + #ifdef X_PRIVSEP extern int priv_open_device(const char *); #else @@ -110,15 +112,15 @@ static const OptionInfoRec * WsfbAvailableOptions(int, int); static void WsfbIdentify(int); static Bool WsfbProbe(DriverPtr, int); static Bool WsfbPreInit(ScrnInfoPtr, int); -static Bool WsfbScreenInit(int, ScreenPtr, int, char **); -static Bool WsfbCloseScreen(int, ScreenPtr); +static Bool WsfbScreenInit(SCREEN_INIT_ARGS_DECL); +static Bool WsfbCloseScreen(CLOSE_SCREEN_ARGS_DECL); static void *WsfbWindowLinear(ScreenPtr, CARD32, CARD32, int, CARD32 *, void *); -static void WsfbPointerMoved(int, int, int); -static Bool WsfbEnterVT(int, int); -static void WsfbLeaveVT(int, int); -static Bool WsfbSwitchMode(int, DisplayModePtr, int); -static int WsfbValidMode(int, DisplayModePtr, Bool, int); +static void WsfbPointerMoved(SCRN_ARG_TYPE, int, int); +static Bool WsfbEnterVT(VT_FUNC_ARGS_DECL); +static void WsfbLeaveVT(VT_FUNC_ARGS_DECL); +static Bool WsfbSwitchMode(SWITCH_MODE_ARGS_DECL); +static int WsfbValidMode(SCRN_ARG_TYPE, DisplayModePtr, Bool, int); static void WsfbLoadPalette(ScrnInfoPtr, int, int *, LOCO *, VisualPtr); static Bool WsfbSaveScreen(ScreenPtr, int); static void WsfbSave(ScrnInfoPtr); @@ -151,7 +153,7 @@ enum { WSFB_ROTATE_NONE = 0, */ static int pix24bpp = 0; -#define WSFB_VERSION 4000 +#define WSFB_VERSION 4000 #define WSFB_NAME "wsfb" #define WSFB_DRIVER_NAME "wsfb" @@ -210,7 +212,7 @@ WsfbSetup(pointer module, pointer opts, int *errmaj, int *errmin) /* Check that we're being loaded on a OpenBSD or NetBSD system. */ LoaderGetOS(&osname, NULL, NULL, NULL); if (!osname || (strcmp(osname, "openbsd") != 0 && - strcmp(osname, "netbsd") != 0)) { + strcmp(osname, "netbsd") != 0)) { if (errmaj) *errmaj = LDR_BADOS; if (errmin) @@ -241,7 +243,7 @@ typedef struct { void * shadow; CloseScreenProcPtr CloseScreen; CreateScreenResourcesProcPtr CreateScreenResources; - void (*PointerMoved)(int, int, int); + void (*PointerMoved)(SCRN_ARG_TYPE, int, int); EntityInfoPtr pEnt; struct wsdisplay_cmap saved_cmap; @@ -343,7 +345,7 @@ static Bool WsfbProbe(DriverPtr drv, int flags) { int i, fd, entity; - GDevPtr *devSections; + GDevPtr *devSections; int numDevSections; const char *dev; Bool foundScreen = FALSE; @@ -664,7 +666,7 @@ WsfbPreInit(ScrnInfoPtr pScrn, int flags) static Bool WsfbCreateScreenResources(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); WsfbPtr fPtr = WSFBPTR(pScrn); PixmapPtr pPixmap; Bool ret; @@ -690,7 +692,7 @@ WsfbCreateScreenResources(ScreenPtr pScreen) static Bool WsfbShadowInit(ScreenPtr pScreen) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); WsfbPtr fPtr = WSFBPTR(pScrn); if (!shadowSetup(pScreen)) @@ -702,9 +704,9 @@ WsfbShadowInit(ScreenPtr pScreen) } static Bool -WsfbScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +WsfbScreenInit(SCREEN_INIT_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); WsfbPtr fPtr = WSFBPTR(pScrn); VisualPtr visual; int ret, flags, ncolors; @@ -868,7 +870,7 @@ WsfbScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) "RENDER extension initialisation failed."); } if (fPtr->shadowFB && !WsfbShadowInit(pScreen)) { - xf86DrvMsg(scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "shadow framebuffer initialization failed\n"); return FALSE; } @@ -877,15 +879,15 @@ WsfbScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) if (!fPtr->rotate) WsfbDGAInit(pScrn, pScreen); else - xf86DrvMsg(scrnIndex, X_INFO, "Rotated display, " + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Rotated display, " "disabling DGA\n"); #endif if (fPtr->rotate) { - xf86DrvMsg(scrnIndex, X_INFO, "Enabling Driver Rotation, " - "disabling RandR\n"); + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Enabling Driver Rotation, " "disabling RandR\n"); xf86DisableRandR(); if (pScrn->bitsPerPixel == 24) - xf86DrvMsg(scrnIndex, X_WARNING, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Rotation might be broken in 24 bpp\n"); } @@ -937,9 +939,9 @@ WsfbScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) } static Bool -WsfbCloseScreen(int scrnIndex, ScreenPtr pScreen) +WsfbCloseScreen(CLOSE_SCREEN_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); PixmapPtr pPixmap; WsfbPtr fPtr = WSFBPTR(pScrn); @@ -971,14 +973,14 @@ WsfbCloseScreen(int scrnIndex, ScreenPtr pScreen) /* Unwrap CloseScreen. */ pScreen->CloseScreen = fPtr->CloseScreen; TRACE_EXIT("WsfbCloseScreen"); - return (*pScreen->CloseScreen)(scrnIndex, pScreen); + return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS); } static void * WsfbWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); WsfbPtr fPtr = WSFBPTR(pScrn); if (fPtr->linebytes) @@ -992,9 +994,9 @@ WsfbWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, } static void -WsfbPointerMoved(int index, int x, int y) +WsfbPointerMoved(SCRN_ARG_TYPE arg, int x, int y) { - ScrnInfoPtr pScrn = xf86Screens[index]; + SCRN_INFO_PTR(arg); WsfbPtr fPtr = WSFBPTR(pScrn); int newX, newY; @@ -1026,13 +1028,13 @@ WsfbPointerMoved(int index, int x, int y) } /* Pass adjusted pointer coordinates to wrapped PointerMoved function. */ - (*fPtr->PointerMoved)(index, newX, newY); + (*fPtr->PointerMoved)(arg, newX, newY); } static Bool -WsfbEnterVT(int scrnIndex, int flags) +WsfbEnterVT(VT_FUNC_ARGS_DECL) { - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); TRACE_ENTER("EnterVT"); pScrn->vtSema = TRUE; @@ -1041,20 +1043,20 @@ WsfbEnterVT(int scrnIndex, int flags) } static void -WsfbLeaveVT(int scrnIndex, int flags) +WsfbLeaveVT(VT_FUNC_ARGS_DECL) { #if DEBUG - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); #endif TRACE_ENTER("LeaveVT"); } static Bool -WsfbSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) +WsfbSwitchMode(SWITCH_MODE_ARGS_DECL) { #if DEBUG - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); #endif TRACE_ENTER("SwitchMode"); @@ -1063,10 +1065,10 @@ WsfbSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) } static int -WsfbValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) +WsfbValidMode(SCRN_ARG_TYPE arg, DisplayModePtr mode, Bool verbose, int flags) { #if DEBUG - ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; + SCRN_INFO_PTR(arg); #endif TRACE_ENTER("ValidMode"); @@ -1132,7 +1134,7 @@ WsfbLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, static Bool WsfbSaveScreen(ScreenPtr pScreen, int mode) { - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); WsfbPtr fPtr = WSFBPTR(pScrn); int state; @@ -1143,7 +1145,7 @@ WsfbSaveScreen(ScreenPtr pScreen, int mode) if (mode != SCREEN_SAVER_FORCER) { state = xf86IsUnblank(mode)?WSDISPLAYIO_VIDEO_ON: - WSDISPLAYIO_VIDEO_OFF; + WSDISPLAYIO_VIDEO_OFF; ioctl(fPtr->fd, WSDISPLAYIO_SVIDEO, &state); } @@ -1240,9 +1242,9 @@ WsfbDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode) frameY0 = pScrn->frameY0; } - if (!(*pScrn->SwitchMode)(scrnIdx, pMode, 0)) + if (!(*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pMode))) return FALSE; - (*pScrn->AdjustFrame)(scrnIdx, frameX0, frameY0, 0); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, frameX0, frameY0)); return TRUE; } @@ -1250,7 +1252,7 @@ WsfbDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode) static void WsfbDGASetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) { - (*pScrn->AdjustFrame)(pScrn->pScreen->myNum, x, y, flags); + (*pScrn->AdjustFrame)(ADJUST_FRAME_ARGS(pScrn, x, y)); } static int @@ -1359,4 +1361,3 @@ WsfbDriverFunc(ScrnInfoPtr pScrn, xorgDriverFuncOp op, return FALSE; } } - |