api: rework the X server driver API to avoid global arrays.

This is a squash merge containing all the API changes, as
well as the video ABI bump.

Its been squashed to make bisection easier.

Full patch log below:

commit b202738bbf0c5a1c1172767119c2c71f1e7f8070
Author: Aaron Plattner <aplattner@nvidia.com>
Date:   Mon May 14 15:16:11 2012 -0700

    xfree86: Bump video ABI to 13.0

    The ABI was broken by changes to convert from screen index numbers to ScreenPtr
    / ScrnInfoPtr in various structures and function signatures.

    Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 3d5f7d9f8d408bcad3f83277d255f25d3b0edbf3
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu May 24 10:56:57 2012 +0100

    xf86: xf86ClearEntityListForScreen should take a pScrn

    When adding GPU screens this make life easier.

    (also fix comment, as pointed out by Alan)

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit afee8b5ab4501597ecc1ade34124d7ca227ab055
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu May 24 07:07:32 2012 +0100

    xf86i2c: add pscrn for drivers to use

    This just adds a pScrn pointer into the struct for the drivers to use
    instead of scrnIndex. Mostly scrnIndex is used for logging, but some
    drivers use it to lookup xf86Screens, so let them stash a pScrn instead.

    Removing the scrnIndex is a bit more involved and I'm not sure its worth
    the effort. Doing i2c in the X server is legacy code as far as I'm concerned.

    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit ea5092f1f679691d187f1eee9427e6057beec56e
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 19:25:20 2012 +0100

    dix/gc: consolidate GC object creation in one place

    The standard GC create and scratch GC create were 90% the same really,
    and I have a need in the future for creating GC objects without the
    other bits, so wanted to avoid a third copy.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 3d91482ea9b4883e64e496f2768168e0ffa21ba1
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 10:24:06 2012 +0100

    xf86: add a define to denote the new non-index interfaces are being used

    This can be used by drivers to provide compatible APIs.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 37c3ae3e6cd4f3dedc72f371096d6743f8f99df3
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 15:09:12 2012 +0100

    dix: make Create/Free scratch pixmaps take a ScreenPtr

    While technically an API/ABI change I doubt anyone uses it,
    but it helps in splitting screens up.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 75f2062a3fe94f04764ecc7d2ff2fbbeccb9da60
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 14:57:55 2012 +0100

    xf86/xv: remove scrnIndexfrom xf86FindXvOptions.

    Move this interface to taking an ScrnInfoPtr.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit f80c2374f40ea7b2ee0556e2e76cc07406f3d843
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 14:53:59 2012 +0100

    xf86: make xf86DeleteScreen take a ScrnInfoPtr (v2)

    stop passing indices into this function.

    v2: drop flags argument.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 58824e414f35682435f15bfe6c4b656bd90b9235
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed May 23 14:48:09 2012 +0100

    xf86: fix xf86IsScreenPrimary interface to take a pScrn (API/ABI)

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 6b4fc1f9d391bcdf7ca288766e49bce60f4635cd
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:18:59 2012 +0100

    xserver: convert block/wakeup handlers to passing ScreenPtr (ABI/API) (v2)

    Instead of passing an index, pass the actual ScreenPtr. This allows
    more moving towards not abusing xf86Screens + screenInfo.

    v2: drop the blockData/wakeupData args as per ajax's suggestion.,
    fix docs.

    Reviewed-by: Keith Packard <keithp@keithp.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 790d003de20fb47674420a24dadd92412d78620d
Author: Dave Airlie <airlied@gmail.com>
Date:   Wed Apr 11 09:53:14 2012 +0100

    xf86/common: remove some more pScrn->pScreen uses

    remove some more conversions that appeared after api cleanups.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit aac85e18d1dd093f2cad6bd29375e40bd7af0b8f
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 16:34:53 2012 +0100

    ddc: change API to take ScrnInfoPtr (v2)

    This removes all xf86Screens usage from ddc code,
    it modifies the API for some functions to avoid taking indices.

    v2: address Alan's comments about dropping DDC2Init parameter.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit fe3f57b6eaf6860a33876a54f9439f69578f03a5
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 16:31:26 2012 +0100

    vbe: don't use index for VBEInterpretPanelID (API)

    Remove use of xf86screens from vbe module.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit abf1965f4ed91529036d3fdb470d6a3ce6f29675
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 16:25:11 2012 +0100

    int10/vbe: don't use xf86Screens. (ABI) (v3)

    Pass the ScrnInfoPtr instead of the index in the int10 struct.

    This saves us using it to dereference xf86Screens.

    v2: address Alan's comment to fix struct alignment.

    v3: squash in all the int10 fixes, test the vm86 code builds,
    after comments by Keith.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 23cca612b4fb5efc33683c7624b803b457387e3d
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:30:18 2012 +0100

    xserver: drop index argument to ScreenInit (ABI/API) (v2)

    This drops the index argument, its the same as pScreen->myNum,
    and its the last major index abuse I can find.

    v2: address Alan's review - update docs, fix xwin/xnest/darwin

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 40d360e2d7e832407f3ed64e3a02c27ecc89a960
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:23:01 2012 +0100

    xf86: migrate PointerMoved from index to ScrnInfoPtr (ABI/API)

    This migrates PointerMoved from an index to ScrnInfoPtr.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit aa60a2f38679d0eeb979a9c2648c9bc771409bf9
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:20:46 2012 +0100

    xf86: migrate PMEvent to a ScrnInfoPtr (ABI/API)

    This migrates the PMEvent from index to ScrnInfoPtr.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d3f28ef44371ed4a039ffc5dd7eb6408d1269ba2
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:18:30 2012 +0100

    xf86: migrate SetDGAMode from index to ScrnInfoPtr (ABI/API)

    This migrates the SetDGAMode callback from an index to ScrnInfoPtr.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit baf5e4818a74f2b68c3dfdcc56f54322351039a0
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:14:11 2012 +0100

    xf86: migrate ChangeGamma from index to ScrnInfoPtr (ABI/API) (v2)

    This migrates the ChangeGamma interface to avoid passing a index.

    v2: fix xf86RandR12.c + xf86cmap.c call

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 51e5f90ada929d6b23176090badbb42fdb3fa550
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:11:09 2012 +0100

    xf86/exa: migrate index to screen types for EnableDisableFBAccess (ABI/API)

    The EXA interface migrates to ScreenPtr,
    and the xf86 interface migrated to ScrnInfoPtr.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 94f1f21d17e86f96d4a54292a399160950087675
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 15:02:11 2012 +0100

    xf86: migrate ValidMode callback to ScrnInfoPtr (ABI/API)

    This migrates the ValidMode to passing a ScrnInfoPtr instead
    of an index.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 3f8f18198fed4f39ec805b508a3482e91eea26b2
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:59:46 2012 +0100

    xf86: migrate SwitchMode to taking ScrnInfoPtr (ABI/API) (v2)

    This migrate the SwitchMode interface to take a ScrnInfoPtr
    instead of an index.

    v2: drop flags.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit d06a038a5c49328ab3a8d969d24f9fcd22c63202
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:50:37 2012 +0100

    xf86: move AdjustFrame to passing ScrnInfoPtr (ABI/API) (v2)

    This converts AdjustFrame code paths to passing a ScrnInfoPtr
    instead of an integer index.

    v2: drop flags args.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 53d2f8608ffd4090d08e7d5cf2e92fb954959b90
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:41:27 2012 +0100

    xf86: modify FreeScreen callback to take pScrn instead of index. (ABI/API) (v2)

    Another index->pScrn conversion.

    v2: drop flags arg.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 60db37c0b247052e0f5c54b1921fe58a3609c2e3
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:35:41 2012 +0100

    xf86: change EnterVT/LeaveVT to take a ScrnInfoPtr (ABI/API break) (v2)

    This modifies the EnterVT/LeaveVT interfaces to take a ScrnInfoPtr
    instead of an index into xf86Screens. This allows dropping more
    public dereferences of the xf86Screens and screenInfo.

    v2: drop flags args as suggested by Keith, fix docs.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>

commit 06729dbbc804a20242e6499f446acb5d94023c3c
Author: Dave Airlie <airlied@gmail.com>
Date:   Tue Apr 10 14:04:59 2012 +0100

    xserver: remove index from CloseScreen (API/ABI breakage)

    This drops the index from the CloseScreen callback,
    its always been useless really, since the pScreen contains it.

    Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Aaron Plattner <aplattner@nvidia.com>
    Reviewed-by: Adam Jackson <ajax@redhat.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Dave Airlie 2012-06-05 13:22:18 +01:00
parent 3476eb3806
commit 1f0e8bd5eb
117 changed files with 620 additions and 721 deletions

View File

@ -150,7 +150,7 @@ static GCFuncs XineramaGCFuncs = {
(pGC)->funcs = &XineramaGCFuncs; (pGC)->funcs = &XineramaGCFuncs;
static Bool static Bool
XineramaCloseScreen(int i, ScreenPtr pScreen) XineramaCloseScreen(ScreenPtr pScreen)
{ {
PanoramiXScreenPtr pScreenPriv = (PanoramiXScreenPtr) PanoramiXScreenPtr pScreenPriv = (PanoramiXScreenPtr)
dixLookupPrivate(&pScreen->devPrivates, PanoramiXScreenKey); dixLookupPrivate(&pScreen->devPrivates, PanoramiXScreenKey);
@ -163,7 +163,7 @@ XineramaCloseScreen(int i, ScreenPtr pScreen)
free((pointer) pScreenPriv); free((pointer) pScreenPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static Bool static Bool

View File

@ -202,14 +202,14 @@ CheckForShmSyscall(void)
#endif #endif
static Bool static Bool
ShmCloseScreen(int i, ScreenPtr pScreen) ShmCloseScreen(ScreenPtr pScreen)
{ {
ShmScrPrivateRec *screen_priv = ShmGetScreenPriv(pScreen); ShmScrPrivateRec *screen_priv = ShmGetScreenPriv(pScreen);
pScreen->CloseScreen = screen_priv->CloseScreen; pScreen->CloseScreen = screen_priv->CloseScreen;
dixSetPrivate(&pScreen->devPrivates, shmScrPrivateKey, NULL); dixSetPrivate(&pScreen->devPrivates, shmScrPrivateKey, NULL);
free(screen_priv); free(screen_priv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static ShmScrPrivateRec * static ShmScrPrivateRec *

View File

@ -215,7 +215,7 @@ typedef struct {
DestroyWindowProcPtr DestroyWindow; DestroyWindowProcPtr DestroyWindow;
DestroyPixmapProcPtr DestroyPixmap; DestroyPixmapProcPtr DestroyPixmap;
CloseScreenProcPtr CloseScreen; CloseScreenProcPtr CloseScreen;
Bool (*ddCloseScreen) (int, ScreenPtr); Bool (*ddCloseScreen) (ScreenPtr);
int (*ddQueryAdaptors) (ScreenPtr, XvAdaptorPtr *, int *); int (*ddQueryAdaptors) (ScreenPtr, XvAdaptorPtr *, int *);
DevUnion devPriv; DevUnion devPriv;
} XvScreenRec, *XvScreenPtr; } XvScreenRec, *XvScreenPtr;

View File

@ -129,7 +129,7 @@ static void WriteSwappedVideoNotifyEvent(xvEvent *, xvEvent *);
static void WriteSwappedPortNotifyEvent(xvEvent *, xvEvent *); static void WriteSwappedPortNotifyEvent(xvEvent *, xvEvent *);
static Bool CreateResourceTypes(void); static Bool CreateResourceTypes(void);
static Bool XvCloseScreen(int, ScreenPtr); static Bool XvCloseScreen(ScreenPtr);
static Bool XvDestroyPixmap(PixmapPtr); static Bool XvDestroyPixmap(PixmapPtr);
static Bool XvDestroyWindow(WindowPtr); static Bool XvDestroyWindow(WindowPtr);
static void XvResetProc(ExtensionEntry *); static void XvResetProc(ExtensionEntry *);
@ -290,7 +290,7 @@ XvScreenInit(ScreenPtr pScreen)
} }
static Bool static Bool
XvCloseScreen(int ii, ScreenPtr pScreen) XvCloseScreen(ScreenPtr pScreen)
{ {
XvScreenPtr pxvs; XvScreenPtr pxvs;
@ -301,13 +301,13 @@ XvCloseScreen(int ii, ScreenPtr pScreen)
pScreen->DestroyWindow = pxvs->DestroyWindow; pScreen->DestroyWindow = pxvs->DestroyWindow;
pScreen->CloseScreen = pxvs->CloseScreen; pScreen->CloseScreen = pxvs->CloseScreen;
(*pxvs->ddCloseScreen) (ii, pScreen); (*pxvs->ddCloseScreen) (pScreen);
free(pxvs); free(pxvs);
dixSetPrivate(&pScreen->devPrivates, XvScreenKey, NULL); dixSetPrivate(&pScreen->devPrivates, XvScreenKey, NULL);
return (*pScreen->CloseScreen) (ii, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static void static void

View File

@ -709,7 +709,7 @@ XvMCExtensionInit(void)
} }
static Bool static Bool
XvMCCloseScreen(int i, ScreenPtr pScreen) XvMCCloseScreen(ScreenPtr pScreen)
{ {
XvMCScreenPtr pScreenPriv = XVMC_GET_PRIVATE(pScreen); XvMCScreenPtr pScreenPriv = XVMC_GET_PRIVATE(pScreen);
@ -717,7 +717,7 @@ XvMCCloseScreen(int i, ScreenPtr pScreen)
free(pScreenPriv); free(pScreenPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
int int

View File

@ -55,14 +55,13 @@ compScreenUpdate(ScreenPtr pScreen)
} }
static void static void
compBlockHandler(int i, pointer blockData, pointer pTimeout, pointer pReadmask) compBlockHandler(ScreenPtr pScreen, pointer pTimeout, pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[i];
CompScreenPtr cs = GetCompScreen(pScreen); CompScreenPtr cs = GetCompScreen(pScreen);
pScreen->BlockHandler = cs->BlockHandler; pScreen->BlockHandler = cs->BlockHandler;
compScreenUpdate(pScreen); compScreenUpdate(pScreen);
(*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
/* Next damage will restore the block handler */ /* Next damage will restore the block handler */
cs->BlockHandler = NULL; cs->BlockHandler = NULL;

View File

@ -53,7 +53,7 @@ DevPrivateKeyRec CompWindowPrivateKeyRec;
DevPrivateKeyRec CompSubwindowsPrivateKeyRec; DevPrivateKeyRec CompSubwindowsPrivateKeyRec;
static Bool static Bool
compCloseScreen(int index, ScreenPtr pScreen) compCloseScreen(ScreenPtr pScreen)
{ {
CompScreenPtr cs = GetCompScreen(pScreen); CompScreenPtr cs = GetCompScreen(pScreen);
Bool ret; Bool ret;
@ -82,7 +82,7 @@ compCloseScreen(int index, ScreenPtr pScreen)
free(cs); free(cs);
dixSetPrivate(&pScreen->devPrivates, CompScreenPrivateKey, NULL); dixSetPrivate(&pScreen->devPrivates, CompScreenPrivateKey, NULL);
ret = (*pScreen->CloseScreen) (index, pScreen); ret = (*pScreen->CloseScreen) (pScreen);
return ret; return ret;
} }

View File

@ -3725,8 +3725,7 @@ with its screen number, a pointer to its ScreenRec, argc, and argv.
*/ */
int int
AddScreen(Bool (*pfnInit) (int /*index */ , AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
ScreenPtr /*pScreen */ ,
int /*argc */ , int /*argc */ ,
char ** /*argv */ char ** /*argv */
), int argc, char **argv) ), int argc, char **argv)
@ -3794,7 +3793,7 @@ AddScreen(Bool (*pfnInit) (int /*index */ ,
*/ */
screenInfo.screens[i] = pScreen; screenInfo.screens[i] = pScreen;
screenInfo.numScreens++; screenInfo.numScreens++;
if (!(*pfnInit) (i, pScreen, argc, argv)) { if (!(*pfnInit) (pScreen, argc, argv)) {
dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN); dixFreePrivates(pScreen->devPrivates, PRIVATE_SCREEN);
free(pScreen); free(pScreen);
screenInfo.numScreens--; screenInfo.numScreens--;

View File

@ -384,9 +384,8 @@ BlockHandler(pointer pTimeout, pointer pReadmask)
++inHandler; ++inHandler;
for (i = 0; i < screenInfo.numScreens; i++) for (i = 0; i < screenInfo.numScreens; i++)
(*screenInfo.screens[i]->BlockHandler) (i, (*screenInfo.screens[i]->BlockHandler) (screenInfo.screens[i],
screenInfo.screens[i]-> pTimeout, pReadmask);
blockData, pTimeout, pReadmask);
for (i = 0; i < numHandlers; i++) for (i = 0; i < numHandlers; i++)
if (!handlers[i].deleted) if (!handlers[i].deleted)
(*handlers[i].BlockHandler) (handlers[i].blockData, (*handlers[i].BlockHandler) (handlers[i].blockData,
@ -421,9 +420,8 @@ WakeupHandler(int result, pointer pReadmask)
(*handlers[i].WakeupHandler) (handlers[i].blockData, (*handlers[i].WakeupHandler) (handlers[i].blockData,
result, pReadmask); result, pReadmask);
for (i = 0; i < screenInfo.numScreens; i++) for (i = 0; i < screenInfo.numScreens; i++)
(*screenInfo.screens[i]->WakeupHandler) (i, (*screenInfo.screens[i]->WakeupHandler) (screenInfo.screens[i],
screenInfo.screens[i]-> result, pReadmask);
wakeupData, result, pReadmask);
if (handlerDeleted) { if (handlerDeleted) {
for (i = 0; i < numHandlers;) for (i = 0; i < numHandlers;)
if (handlers[i].deleted) { if (handlers[i].deleted) {

130
dix/gc.c
View File

@ -458,6 +458,60 @@ ChangeGCXIDs(ClientPtr client, GC * pGC, BITS32 mask, CARD32 *pC32)
return ChangeGC(client, pGC, mask, vals); return ChangeGC(client, pGC, mask, vals);
} }
static GCPtr
NewGCObject(ScreenPtr pScreen, int depth)
{
GCPtr pGC;
pGC = dixAllocateObjectWithPrivates(GC, PRIVATE_GC);
if (!pGC) {
return (GCPtr) NULL;
}
pGC->pScreen = pScreen;
pGC->depth = depth;
pGC->alu = GXcopy; /* dst <- src */
pGC->planemask = ~0;
pGC->serialNumber = 0;
pGC->funcs = 0;
pGC->fgPixel = 0;
pGC->bgPixel = 1;
pGC->lineWidth = 0;
pGC->lineStyle = LineSolid;
pGC->capStyle = CapButt;
pGC->joinStyle = JoinMiter;
pGC->fillStyle = FillSolid;
pGC->fillRule = EvenOddRule;
pGC->arcMode = ArcPieSlice;
pGC->tile.pixel = 0;
pGC->tile.pixmap = NullPixmap;
pGC->tileIsPixel = TRUE;
pGC->patOrg.x = 0;
pGC->patOrg.y = 0;
pGC->subWindowMode = ClipByChildren;
pGC->graphicsExposures = TRUE;
pGC->clipOrg.x = 0;
pGC->clipOrg.y = 0;
pGC->clientClipType = CT_NONE;
pGC->clientClip = (pointer) NULL;
pGC->numInDashList = 2;
pGC->dash = DefaultDash;
pGC->dashOffset = 0;
/* use the default font and stipple */
pGC->font = defaultFont;
if (pGC->font) /* necessary, because open of default font could fail */
pGC->font->refcnt++;
pGC->stipple = pGC->pScreen->PixmapPerDepth[0];
if (pGC->stipple)
pGC->stipple->refcnt++;
/* this is not a scratch GC */
pGC->scratch_inuse = FALSE;
return pGC;
}
/* CreateGC(pDrawable, mask, pval, pStatus) /* CreateGC(pDrawable, mask, pval, pStatus)
creates a default GC for the given drawable, using mask to fill creates a default GC for the given drawable, using mask to fill
in any non-default values. in any non-default values.
@ -473,29 +527,13 @@ CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus,
{ {
GCPtr pGC; GCPtr pGC;
pGC = dixAllocateObjectWithPrivates(GC, PRIVATE_GC); pGC = NewGCObject(pDrawable->pScreen, pDrawable->depth);
if (!pGC) { if (!pGC) {
*pStatus = BadAlloc; *pStatus = BadAlloc;
return (GCPtr) NULL; return (GCPtr) NULL;
} }
pGC->pScreen = pDrawable->pScreen;
pGC->depth = pDrawable->depth;
pGC->alu = GXcopy; /* dst <- src */
pGC->planemask = ~0;
pGC->serialNumber = GC_CHANGE_SERIAL_BIT; pGC->serialNumber = GC_CHANGE_SERIAL_BIT;
pGC->funcs = 0;
pGC->fgPixel = 0;
pGC->bgPixel = 1;
pGC->lineWidth = 0;
pGC->lineStyle = LineSolid;
pGC->capStyle = CapButt;
pGC->joinStyle = JoinMiter;
pGC->fillStyle = FillSolid;
pGC->fillRule = EvenOddRule;
pGC->arcMode = ArcPieSlice;
pGC->tile.pixel = 0;
pGC->tile.pixmap = NullPixmap;
if (mask & GCForeground) { if (mask & GCForeground) {
/* /*
* magic special case -- ChangeGC checks for this condition * magic special case -- ChangeGC checks for this condition
@ -507,27 +545,6 @@ CreateGC(DrawablePtr pDrawable, BITS32 mask, XID *pval, int *pStatus,
pGC->tileIsPixel = TRUE; pGC->tileIsPixel = TRUE;
} }
pGC->patOrg.x = 0;
pGC->patOrg.y = 0;
pGC->subWindowMode = ClipByChildren;
pGC->graphicsExposures = TRUE;
pGC->clipOrg.x = 0;
pGC->clipOrg.y = 0;
pGC->clientClipType = CT_NONE;
pGC->clientClip = (pointer) NULL;
pGC->numInDashList = 2;
pGC->dash = DefaultDash;
pGC->dashOffset = 0;
/* use the default font and stipple */
pGC->font = defaultFont;
defaultFont->refcnt++;
pGC->stipple = pGC->pScreen->PixmapPerDepth[0];
pGC->stipple->refcnt++;
/* this is not a scratch GC */
pGC->scratch_inuse = FALSE;
/* security creation/labeling check */ /* security creation/labeling check */
*pStatus = XaceHook(XACE_RESOURCE_ACCESS, client, gcid, RT_GC, pGC, *pStatus = XaceHook(XACE_RESOURCE_ACCESS, client, gcid, RT_GC, pGC,
RT_NONE, NULL, DixCreateAccess | DixSetAttrAccess); RT_NONE, NULL, DixCreateAccess | DixSetAttrAccess);
@ -784,45 +801,10 @@ CreateScratchGC(ScreenPtr pScreen, unsigned depth)
{ {
GCPtr pGC; GCPtr pGC;
pGC = dixAllocateObjectWithPrivates(GC, PRIVATE_GC); pGC = NewGCObject(pScreen, depth);
if (!pGC) if (!pGC)
return (GCPtr) NULL; return (GCPtr) NULL;
pGC->pScreen = pScreen;
pGC->depth = depth;
pGC->alu = GXcopy; /* dst <- src */
pGC->planemask = ~0;
pGC->serialNumber = 0;
pGC->fgPixel = 0;
pGC->bgPixel = 1;
pGC->lineWidth = 0;
pGC->lineStyle = LineSolid;
pGC->capStyle = CapButt;
pGC->joinStyle = JoinMiter;
pGC->fillStyle = FillSolid;
pGC->fillRule = EvenOddRule;
pGC->arcMode = ArcPieSlice;
pGC->font = defaultFont;
if (pGC->font) /* necessary, because open of default font could fail */
pGC->font->refcnt++;
pGC->tileIsPixel = TRUE;
pGC->tile.pixel = 0;
pGC->tile.pixmap = NullPixmap;
pGC->stipple = NullPixmap;
pGC->patOrg.x = 0;
pGC->patOrg.y = 0;
pGC->subWindowMode = ClipByChildren;
pGC->graphicsExposures = TRUE;
pGC->clipOrg.x = 0;
pGC->clipOrg.y = 0;
pGC->clientClipType = CT_NONE;
pGC->dashOffset = 0;
pGC->numInDashList = 2;
pGC->dash = DefaultDash;
/* scratch GCs in the GCperDepth pool start off unused */
pGC->scratch_inuse = FALSE;
pGC->stateChanges = GCAllBits; pGC->stateChanges = GCAllBits;
if (!(*pScreen->CreateGC) (pGC)) { if (!(*pScreen->CreateGC) (pGC)) {
FreeGC(pGC, (XID) 0); FreeGC(pGC, (XID) 0);

View File

@ -209,7 +209,7 @@ main(int argc, char *argv[], char *envp[])
for (i = 0; i < screenInfo.numScreens; i++) { for (i = 0; i < screenInfo.numScreens; i++) {
ScreenPtr pScreen = screenInfo.screens[i]; ScreenPtr pScreen = screenInfo.screens[i];
if (!CreateScratchPixmapsForScreen(i)) if (!CreateScratchPixmapsForScreen(pScreen))
FatalError("failed to create scratch pixmaps"); FatalError("failed to create scratch pixmaps");
if (pScreen->CreateScreenResources && if (pScreen->CreateScreenResources &&
!(*pScreen->CreateScreenResources) (pScreen)) !(*pScreen->CreateScreenResources) (pScreen))
@ -322,10 +322,10 @@ main(int argc, char *argv[], char *envp[])
CloseDownEvents(); CloseDownEvents();
for (i = screenInfo.numScreens - 1; i >= 0; i--) { for (i = screenInfo.numScreens - 1; i >= 0; i--) {
FreeScratchPixmapsForScreen(i); FreeScratchPixmapsForScreen(screenInfo.screens[i]);
FreeGCperDepth(i); FreeGCperDepth(i);
FreeDefaultStipple(i); FreeDefaultStipple(i);
(*screenInfo.screens[i]->CloseScreen) (i, screenInfo.screens[i]); (*screenInfo.screens[i]->CloseScreen) (screenInfo.screens[i]);
dixFreePrivates(screenInfo.screens[i]->devPrivates, PRIVATE_SCREEN); dixFreePrivates(screenInfo.screens[i]->devPrivates, PRIVATE_SCREEN);
free(screenInfo.screens[i]); free(screenInfo.screens[i]);
screenInfo.numScreens = i; screenInfo.numScreens = i;

View File

@ -84,23 +84,23 @@ FreeScratchPixmapHeader(PixmapPtr pPixmap)
} }
Bool Bool
CreateScratchPixmapsForScreen(int scrnum) CreateScratchPixmapsForScreen(ScreenPtr pScreen)
{ {
unsigned int pixmap_size; unsigned int pixmap_size;
pixmap_size = sizeof(PixmapRec) + dixPrivatesSize(PRIVATE_PIXMAP); pixmap_size = sizeof(PixmapRec) + dixPrivatesSize(PRIVATE_PIXMAP);
screenInfo.screens[scrnum]->totalPixmapSize = pScreen->totalPixmapSize =
BitmapBytePad(pixmap_size * 8); BitmapBytePad(pixmap_size * 8);
/* let it be created on first use */ /* let it be created on first use */
screenInfo.screens[scrnum]->pScratchPixmap = NULL; pScreen->pScratchPixmap = NULL;
return TRUE; return TRUE;
} }
void void
FreeScratchPixmapsForScreen(int scrnum) FreeScratchPixmapsForScreen(ScreenPtr pScreen)
{ {
FreeScratchPixmapHeader(screenInfo.screens[scrnum]->pScratchPixmap); FreeScratchPixmapHeader(pScreen->pScratchPixmap);
} }
/* callable by ddx */ /* callable by ddx */

View File

@ -680,7 +680,7 @@ pReadmask is a pointer to the information describing the descriptors
that will be waited on. that will be waited on.
</para> </para>
<para> <para>
In the sample server, pTimeout is a struct timeval **, and pReadmask is In the sample server, pTimeout is a pointer, and pReadmask is
the address of the select() mask for reading. the address of the select() mask for reading.
</para> </para>
<para> <para>
@ -688,15 +688,14 @@ The DIX BlockHandler() iterates through the Screens, for each one calling
its BlockHandler. A BlockHandler is declared thus: its BlockHandler. A BlockHandler is declared thus:
<blockquote> <blockquote>
<programlisting> <programlisting>
void xxxBlockHandler(nscreen, pbdata, pptv, pReadmask) void xxxBlockHandler(pScreen, pTimeout, pReadmask)
int nscreen; ScreenPtr pScreen;
pointer pbdata; pointer pTimeout;
struct timeval ** pptv;
pointer pReadmask; pointer pReadmask;
</programlisting> </programlisting>
</blockquote> </blockquote>
The arguments are the index of the Screen, the blockData field The arguments are a pointer to the Screen, and the arguments to the
of the Screen, and the arguments to the DIX BlockHandler(). DIX BlockHandler().
</para> </para>
<para> <para>
Immediately after WaitForSomething returns from the Immediately after WaitForSomething returns from the
@ -721,15 +720,14 @@ The DIX WakeupHandler() calls each Screen's
WakeupHandler. A WakeupHandler is declared thus: WakeupHandler. A WakeupHandler is declared thus:
<blockquote> <blockquote>
<programlisting> <programlisting>
void xxxWakeupHandler(nscreen, pbdata, err, pReadmask) void xxxWakeupHandler(pScreen, result, pReadmask)
int nscreen; ScreenPtr pScreen;
pointer pbdata;
unsigned long result; unsigned long result;
pointer pReadmask; pointer pReadmask;
</programlisting> </programlisting>
</blockquote> </blockquote>
The arguments are the index of the Screen, the blockData field The arguments are the Screen, of the Screen, and the arguments to
of the Screen, and the arguments to the DIX WakeupHandler(). the DIX WakeupHandler().
</para> </para>
<para> <para>
In addition to the per-screen BlockHandlers, any module may register In addition to the per-screen BlockHandlers, any module may register
@ -1942,18 +1940,15 @@ FALSE.</para>
The scrInitProc should be of the following form: The scrInitProc should be of the following form:
<blockquote><programlisting> <blockquote><programlisting>
Bool scrInitProc(iScreen, pScreen, argc, argv) Bool scrInitProc(pScreen, argc, argv)
int iScreen;
ScreenPtr pScreen; ScreenPtr pScreen;
int argc; int argc;
char **argv; char **argv;
</programlisting></blockquote> </programlisting></blockquote>
iScreen is the index for this screen; 0 for the first one initialized, pScreen is the pointer to the screen's new ScreenRec. argc and argv
1 for the second, etc. pScreen is the pointer to the screen's new are as before. Your screen initialize procedure should return TRUE
ScreenRec. argc and argv are as before. Your screen initialize upon success or FALSE if the screen cannot be initialized (for
procedure should return TRUE upon success or FALSE if the screen instance, if the screen hardware does not exist on this machine).</para>
cannot be initialized (for instance, if the screen hardware does not
exist on this machine).</para>
<para> <para>
This procedure must determine what actual device it is supposed to initialize. This procedure must determine what actual device it is supposed to initialize.
If you have a different procedure for each screen, then it is no problem. If you have a different procedure for each screen, then it is no problem.

View File

@ -704,11 +704,9 @@ exaCreateScreenResources(ScreenPtr pScreen)
} }
static void static void
ExaBlockHandler(int screenNum, pointer blockData, pointer pTimeout, ExaBlockHandler(ScreenPtr pScreen, pointer pTimeout,
pointer pReadmask) pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[screenNum];
ExaScreenPriv(pScreen); ExaScreenPriv(pScreen);
/* Move any deferred results from a software fallback to the driver pixmap */ /* Move any deferred results from a software fallback to the driver pixmap */
@ -716,7 +714,7 @@ ExaBlockHandler(int screenNum, pointer blockData, pointer pTimeout,
exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap); exaMoveInPixmap_mixed(pExaScr->deferred_mixed_pixmap);
unwrap(pExaScr, pScreen, BlockHandler); unwrap(pExaScr, pScreen, BlockHandler);
(*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask); (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
wrap(pExaScr, pScreen, BlockHandler, ExaBlockHandler); wrap(pExaScr, pScreen, BlockHandler, ExaBlockHandler);
/* The rest only applies to classic EXA */ /* The rest only applies to classic EXA */
@ -736,15 +734,13 @@ ExaBlockHandler(int screenNum, pointer blockData, pointer pTimeout,
} }
static void static void
ExaWakeupHandler(int screenNum, pointer wakeupData, unsigned long result, ExaWakeupHandler(ScreenPtr pScreen, unsigned long result,
pointer pReadmask) pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[screenNum];
ExaScreenPriv(pScreen); ExaScreenPriv(pScreen);
unwrap(pExaScr, pScreen, WakeupHandler); unwrap(pExaScr, pScreen, WakeupHandler);
(*pScreen->WakeupHandler) (screenNum, wakeupData, result, pReadmask); (*pScreen->WakeupHandler) (pScreen, result, pReadmask);
wrap(pExaScr, pScreen, WakeupHandler, ExaWakeupHandler); wrap(pExaScr, pScreen, WakeupHandler, ExaWakeupHandler);
if (result == 0 && pExaScr->numOffscreenAvailable > 1) { if (result == 0 && pExaScr->numOffscreenAvailable > 1) {
@ -762,7 +758,7 @@ ExaWakeupHandler(int screenNum, pointer wakeupData, unsigned long result,
* screen private, before calling down to the next CloseSccreen. * screen private, before calling down to the next CloseSccreen.
*/ */
static Bool static Bool
exaCloseScreen(int i, ScreenPtr pScreen) exaCloseScreen(ScreenPtr pScreen)
{ {
ExaScreenPriv(pScreen); ExaScreenPriv(pScreen);
PictureScreenPtr ps = GetPictureScreenIfSet(pScreen); PictureScreenPtr ps = GetPictureScreenIfSet(pScreen);
@ -797,7 +793,7 @@ exaCloseScreen(int i, ScreenPtr pScreen)
free(pExaScr); free(pExaScr);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
/** /**

View File

@ -789,7 +789,7 @@ extern _X_EXPORT void
ExaOffscreenMarkUsed(PixmapPtr pPixmap); ExaOffscreenMarkUsed(PixmapPtr pPixmap);
extern _X_EXPORT void extern _X_EXPORT void
exaEnableDisableFBAccess(int index, Bool enable); exaEnableDisableFBAccess(ScreenPtr pScreen, Bool enable);
extern _X_EXPORT Bool extern _X_EXPORT Bool
exaDrawableIsOffscreen(DrawablePtr pDrawable); exaDrawableIsOffscreen(DrawablePtr pDrawable);

View File

@ -360,10 +360,8 @@ ExaOffscreenSwapIn(ScreenPtr pScreen)
* swapped out. * swapped out.
*/ */
void void
exaEnableDisableFBAccess(int index, Bool enable) exaEnableDisableFBAccess(ScreenPtr pScreen, Bool enable)
{ {
ScreenPtr pScreen = screenInfo.screens[index];
ExaScreenPriv(pScreen); ExaScreenPriv(pScreen);
if (pExaScr->info->flags & EXA_HANDLES_PIXMAPS) if (pExaScr->info->flags & EXA_HANDLES_PIXMAPS)

View File

@ -147,7 +147,7 @@ typedef struct _ExaMigrationRec {
RegionPtr pReg; RegionPtr pReg;
} ExaMigrationRec, *ExaMigrationPtr; } ExaMigrationRec, *ExaMigrationPtr;
typedef void (*EnableDisableFBAccessProcPtr) (int, Bool); typedef void (*EnableDisableFBAccessProcPtr) (ScreenPtr, Bool);
typedef struct { typedef struct {
ExaDriverPtr info; ExaDriverPtr info;
ScreenBlockHandlerProcPtr SavedBlockHandler; ScreenBlockHandlerProcPtr SavedBlockHandler;

View File

@ -1419,7 +1419,7 @@ fbPushPixels(GCPtr pGC,
*/ */
extern _X_EXPORT Bool extern _X_EXPORT Bool
fbCloseScreen(int indx, ScreenPtr pScreen); fbCloseScreen(ScreenPtr pScreen);
extern _X_EXPORT Bool extern _X_EXPORT Bool
fbRealizeFont(ScreenPtr pScreen, FontPtr pFont); fbRealizeFont(ScreenPtr pScreen, FontPtr pFont);

View File

@ -81,7 +81,7 @@ fbOverlayCreateWindow(WindowPtr pWin)
} }
Bool Bool
fbOverlayCloseScreen(int iScreen, ScreenPtr pScreen) fbOverlayCloseScreen(ScreenPtr pScreen)
{ {
FbOverlayScrPrivPtr pScrPriv = fbOverlayGetScrPriv(pScreen); FbOverlayScrPrivPtr pScrPriv = fbOverlayGetScrPriv(pScreen);
int i; int i;

View File

@ -63,7 +63,7 @@ extern _X_EXPORT Bool
fbOverlayCreateWindow(WindowPtr pWin); fbOverlayCreateWindow(WindowPtr pWin);
extern _X_EXPORT Bool extern _X_EXPORT Bool
fbOverlayCloseScreen(int iScreen, ScreenPtr pScreen); fbOverlayCloseScreen(ScreenPtr pScreen);
extern _X_EXPORT int extern _X_EXPORT int
fbOverlayWindowLayer(WindowPtr pWin); fbOverlayWindowLayer(WindowPtr pWin);

View File

@ -27,7 +27,7 @@
#include "fb.h" #include "fb.h"
Bool Bool
fbCloseScreen(int index, ScreenPtr pScreen) fbCloseScreen(ScreenPtr pScreen)
{ {
int d; int d;
DepthPtr depths = pScreen->allowedDepths; DepthPtr depths = pScreen->allowedDepths;

View File

@ -846,18 +846,17 @@ static const __DRIextension *loader_extensions[] = {
}; };
static Bool static Bool
glxDRIEnterVT(int index, int flags) glxDRIEnterVT(ScrnInfoPtr scrn)
{ {
ScrnInfoPtr scrn = xf86Screens[index];
Bool ret; Bool ret;
__GLXDRIscreen *screen = (__GLXDRIscreen *) __GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]); glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n"); LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
scrn->EnterVT = screen->enterVT; scrn->EnterVT = screen->enterVT;
ret = scrn->EnterVT(index, flags); ret = scrn->EnterVT(scrn);
screen->enterVT = scrn->EnterVT; screen->enterVT = scrn->EnterVT;
scrn->EnterVT = glxDRIEnterVT; scrn->EnterVT = glxDRIEnterVT;
@ -871,18 +870,17 @@ glxDRIEnterVT(int index, int flags)
} }
static void static void
glxDRILeaveVT(int index, int flags) glxDRILeaveVT(ScrnInfoPtr scrn)
{ {
ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *) __GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]); glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n"); LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients(); glxSuspendClients();
scrn->LeaveVT = screen->leaveVT; scrn->LeaveVT = screen->leaveVT;
(*screen->leaveVT) (index, flags); (*screen->leaveVT) (scrn);
screen->leaveVT = scrn->LeaveVT; screen->leaveVT = scrn->LeaveVT;
scrn->LeaveVT = glxDRILeaveVT; scrn->LeaveVT = glxDRILeaveVT;
} }

View File

@ -587,18 +587,17 @@ static const __DRIextension *loader_extensions[] = {
}; };
static Bool static Bool
glxDRIEnterVT(int index, int flags) glxDRIEnterVT(ScrnInfoPtr scrn)
{ {
ScrnInfoPtr scrn = xf86Screens[index];
Bool ret; Bool ret;
__GLXDRIscreen *screen = (__GLXDRIscreen *) __GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]); glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n"); LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
scrn->EnterVT = screen->enterVT; scrn->EnterVT = screen->enterVT;
ret = scrn->EnterVT(index, flags); ret = scrn->EnterVT(scrn);
screen->enterVT = scrn->EnterVT; screen->enterVT = scrn->EnterVT;
scrn->EnterVT = glxDRIEnterVT; scrn->EnterVT = glxDRIEnterVT;
@ -612,18 +611,17 @@ glxDRIEnterVT(int index, int flags)
} }
static void static void
glxDRILeaveVT(int index, int flags) glxDRILeaveVT(ScrnInfoPtr scrn)
{ {
ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *) __GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]); glxGetScreen(xf86ScrnToScreen(scrn));
LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n"); LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
glxSuspendClients(); glxSuspendClients();
scrn->LeaveVT = screen->leaveVT; scrn->LeaveVT = screen->leaveVT;
(*screen->leaveVT) (index, flags); (*screen->leaveVT) (scrn);
screen->leaveVT = scrn->LeaveVT; screen->leaveVT = scrn->LeaveVT;
scrn->LeaveVT = glxDRILeaveVT; scrn->LeaveVT = glxDRILeaveVT;
} }

View File

@ -177,7 +177,7 @@ static char GLXServerExtensions[] =
"GLX_SGIX_pbuffer " "GLX_MESA_copy_sub_buffer " "GLX_INTEL_swap_event"; "GLX_SGIX_pbuffer " "GLX_MESA_copy_sub_buffer " "GLX_INTEL_swap_event";
static Bool static Bool
glxCloseScreen(int index, ScreenPtr pScreen) glxCloseScreen(ScreenPtr pScreen)
{ {
__GLXscreen *pGlxScreen = glxGetScreen(pScreen); __GLXscreen *pGlxScreen = glxGetScreen(pScreen);
@ -185,7 +185,7 @@ glxCloseScreen(int index, ScreenPtr pScreen)
pGlxScreen->destroy(pGlxScreen); pGlxScreen->destroy(pGlxScreen);
return pScreen->CloseScreen(index, pScreen); return pScreen->CloseScreen(pScreen);
} }
__GLXscreen * __GLXscreen *

View File

@ -153,7 +153,7 @@ struct __GLXscreen {
unsigned GLXminor; unsigned GLXminor;
/*@} */ /*@} */
Bool (*CloseScreen) (int index, ScreenPtr pScreen); Bool (*CloseScreen) (ScreenPtr pScreen);
}; };
void __glXScreenInit(__GLXscreen * screen, ScreenPtr pScreen); void __glXScreenInit(__GLXscreen * screen, ScreenPtr pScreen);

View File

@ -1318,7 +1318,7 @@ dmxAttachScreen(int idx, DMXScreenAttributesPtr attr)
} }
/* Initialize the BE screen resources */ /* Initialize the BE screen resources */
dmxBEScreenInit(idx, screenInfo.screens[idx]); dmxBEScreenInit(screenInfo.screens[idx]);
/* TODO: Handle GLX visual initialization. GLXProxy needs to be /* TODO: Handle GLX visual initialization. GLXProxy needs to be
* updated to handle dynamic addition/removal of screens. */ * updated to handle dynamic addition/removal of screens. */

View File

@ -59,7 +59,7 @@
#include "mipointer.h" #include "mipointer.h"
#include "micmap.h" #include "micmap.h"
extern Bool dmxCloseScreen(int idx, ScreenPtr pScreen); extern Bool dmxCloseScreen(ScreenPtr pScreen);
static Bool dmxSaveScreen(ScreenPtr pScreen, int what); static Bool dmxSaveScreen(ScreenPtr pScreen, int what);
static unsigned long dmxGeneration; static unsigned long dmxGeneration;
@ -77,9 +77,9 @@ DevPrivateKeyRec dmxGlyphSetPrivateKeyRec;
/** Initialize the parts of screen \a idx that require access to the /** Initialize the parts of screen \a idx that require access to the
* back-end server. */ * back-end server. */
void void
dmxBEScreenInit(int idx, ScreenPtr pScreen) dmxBEScreenInit(ScreenPtr pScreen)
{ {
DMXScreenInfo *dmxScreen = &dmxScreens[idx]; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
XSetWindowAttributes attribs; XSetWindowAttributes attribs;
XGCValues gcvals; XGCValues gcvals;
unsigned long mask; unsigned long mask;
@ -192,11 +192,11 @@ dmxBEScreenInit(int idx, ScreenPtr pScreen)
} }
} }
/** Initialize screen number \a idx. */ /** Initialize screen number \a pScreen->myNum. */
Bool Bool
dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[]) dmxScreenInit(ScreenPtr pScreen, int argc, char *argv[])
{ {
DMXScreenInfo *dmxScreen = &dmxScreens[idx]; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
int i, j; int i, j;
if (!dixRegisterPrivateKey(&dmxScreenPrivateKeyRec, PRIVATE_SCREEN, 0)) if (!dixRegisterPrivateKey(&dmxScreenPrivateKeyRec, PRIVATE_SCREEN, 0))
@ -286,20 +286,20 @@ dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[])
} }
else { else {
MAXSCREENSALLOC(dmxCursorGeneration); MAXSCREENSALLOC(dmxCursorGeneration);
if (dmxCursorGeneration[idx] != serverGeneration) { if (dmxCursorGeneration[pScreen->myNum] != serverGeneration) {
if (!(miPointerInitialize(pScreen, if (!(miPointerInitialize(pScreen,
&dmxPointerSpriteFuncs, &dmxPointerSpriteFuncs,
&dmxPointerCursorFuncs, FALSE))) &dmxPointerCursorFuncs, FALSE)))
return FALSE; return FALSE;
dmxCursorGeneration[idx] = serverGeneration; dmxCursorGeneration[pScreen->myNum] = serverGeneration;
} }
} }
DMX_WRAP(CloseScreen, dmxCloseScreen, dmxScreen, pScreen); DMX_WRAP(CloseScreen, dmxCloseScreen, dmxScreen, pScreen);
DMX_WRAP(SaveScreen, dmxSaveScreen, dmxScreen, pScreen); DMX_WRAP(SaveScreen, dmxSaveScreen, dmxScreen, pScreen);
dmxBEScreenInit(idx, pScreen); dmxBEScreenInit(pScreen);
if (!dmxShadowFB) { if (!dmxShadowFB) {
/* Wrap GC functions */ /* Wrap GC functions */
@ -422,12 +422,12 @@ dmxBECloseScreen(ScreenPtr pScreen)
/** Close screen number \a idx. */ /** Close screen number \a idx. */
Bool Bool
dmxCloseScreen(int idx, ScreenPtr pScreen) dmxCloseScreen(ScreenPtr pScreen)
{ {
DMXScreenInfo *dmxScreen = &dmxScreens[idx]; DMXScreenInfo *dmxScreen = &dmxScreens[pScreen->myNum];
/* Reset the proc vectors */ /* Reset the proc vectors */
if (idx == 0) { if (pScreen->myNum == 0) {
dmxResetRender(); dmxResetRender();
dmxResetFonts(); dmxResetFonts();
} }
@ -498,7 +498,7 @@ dmxCloseScreen(int idx, ScreenPtr pScreen)
} }
DMX_UNWRAP(CloseScreen, dmxScreen, pScreen); DMX_UNWRAP(CloseScreen, dmxScreen, pScreen);
return pScreen->CloseScreen(idx, pScreen); return pScreen->CloseScreen(pScreen);
} }
static Bool static Bool

View File

@ -40,9 +40,9 @@
#include "scrnintstr.h" #include "scrnintstr.h"
extern Bool dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[]); extern Bool dmxScreenInit(ScreenPtr pScreen, int argc, char *argv[]);
extern void dmxBEScreenInit(int idx, ScreenPtr pScreen); extern void dmxBEScreenInit(ScreenPtr pScreen);
extern void dmxBECloseScreen(ScreenPtr pScreen); extern void dmxBECloseScreen(ScreenPtr pScreen);
#endif /* DMXSCRINIT_H */ #endif /* DMXSCRINIT_H */

View File

@ -640,7 +640,7 @@ dmxCloseConsole(myPrivate * priv)
} }
static Bool static Bool
dmxCloseConsoleScreen(int idx, ScreenPtr pScreen) dmxCloseConsoleScreen(ScreenPtr pScreen)
{ {
myPrivate *priv, *last; myPrivate *priv, *last;
@ -650,7 +650,7 @@ dmxCloseConsoleScreen(int idx, ScreenPtr pScreen)
dmxCloseConsole(last = priv); dmxCloseConsole(last = priv);
DMX_UNWRAP(CloseScreen, last, pScreen); DMX_UNWRAP(CloseScreen, last, pScreen);
return pScreen->CloseScreen(idx, pScreen); return pScreen->CloseScreen(pScreen);
} }
static Cursor static Cursor

View File

@ -606,7 +606,7 @@ KdCreateScreenResources(ScreenPtr pScreen)
} }
Bool Bool
KdCloseScreen(int index, ScreenPtr pScreen) KdCloseScreen(ScreenPtr pScreen)
{ {
KdScreenPriv(pScreen); KdScreenPriv(pScreen);
KdScreenInfo *screen = pScreenPriv->screen; KdScreenInfo *screen = pScreenPriv->screen;
@ -616,7 +616,7 @@ KdCloseScreen(int index, ScreenPtr pScreen)
pScreenPriv->closed = TRUE; pScreenPriv->closed = TRUE;
pScreen->CloseScreen = pScreenPriv->CloseScreen; pScreen->CloseScreen = pScreenPriv->CloseScreen;
if (pScreen->CloseScreen) if (pScreen->CloseScreen)
ret = (*pScreen->CloseScreen) (index, pScreen); ret = (*pScreen->CloseScreen) (pScreen);
else else
ret = TRUE; ret = TRUE;
@ -776,7 +776,7 @@ KdSetSubpixelOrder(ScreenPtr pScreen, Rotation randr)
static KdScreenInfo *kdCurrentScreen; static KdScreenInfo *kdCurrentScreen;
Bool Bool
KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) KdScreenInit(ScreenPtr pScreen, int argc, char **argv)
{ {
KdScreenInfo *screen = kdCurrentScreen; KdScreenInfo *screen = kdCurrentScreen;
KdCardInfo *card = screen->card; KdCardInfo *card = screen->card;

View File

@ -442,13 +442,13 @@ Bool
KdCreateScreenResources(ScreenPtr pScreen); KdCreateScreenResources(ScreenPtr pScreen);
Bool Bool
KdCloseScreen(int index, ScreenPtr pScreen); KdCloseScreen(ScreenPtr pScreen);
Bool Bool
KdSaveScreen(ScreenPtr pScreen, int on); KdSaveScreen(ScreenPtr pScreen, int on);
Bool Bool
KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv); KdScreenInit(ScreenPtr pScreen, int argc, char **argv);
void void
@ -537,12 +537,12 @@ void
void void
KdBlockHandler(int screen, KdBlockHandler(ScreenPtr pScreen,
pointer blockData, pointer timeout, pointer readmask); pointer blockData, pointer timeout, pointer readmask);
void void
KdWakeupHandler(int screen, KdWakeupHandler(ScreenPtr pScreen,
pointer data, unsigned long result, pointer readmask); pointer data, unsigned long result, pointer readmask);
void void

View File

@ -1972,7 +1972,7 @@ _KdEnqueuePointerEvent(KdPointerInfo * pi, int type, int x, int y, int z,
} }
void void
KdBlockHandler(int screen, pointer blockData, pointer timeout, pointer readmask) KdBlockHandler(ScreenPtr pScreen, pointer blockData, pointer timeout, pointer readmask)
{ {
KdPointerInfo *pi; KdPointerInfo *pi;
int myTimeout = 0; int myTimeout = 0;
@ -1998,7 +1998,7 @@ KdBlockHandler(int screen, pointer blockData, pointer timeout, pointer readmask)
} }
void void
KdWakeupHandler(int screen, KdWakeupHandler(ScreenPtr pScreen,
pointer data, unsigned long lresult, pointer readmask) pointer data, unsigned long lresult, pointer readmask)
{ {
int result = (int) lresult; int result = (int) lresult;

View File

@ -58,7 +58,7 @@ of the copyright holder.
/* XvScreenRec fields */ /* XvScreenRec fields */
static Bool KdXVCloseScreen(int, ScreenPtr); static Bool KdXVCloseScreen(ScreenPtr);
static int KdXVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *); static int KdXVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *);
/* XvAdaptorRec fields */ /* XvAdaptorRec fields */
@ -1118,7 +1118,7 @@ KdXVClipNotify(WindowPtr pWin, int dx, int dy)
/**** Required XvScreenRec fields ****/ /**** Required XvScreenRec fields ****/
static Bool static Bool
KdXVCloseScreen(int i, ScreenPtr pScreen) KdXVCloseScreen(ScreenPtr pScreen)
{ {
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
KdXVScreenPtr ScreenPriv = GET_KDXV_SCREEN(pScreen); KdXVScreenPtr ScreenPriv = GET_KDXV_SCREEN(pScreen);

View File

@ -760,9 +760,9 @@ static miPointerScreenFuncRec vfbPointerCursorFuncs = {
}; };
static Bool static Bool
vfbCloseScreen(int index, ScreenPtr pScreen) vfbCloseScreen(ScreenPtr pScreen)
{ {
vfbScreenInfoPtr pvfb = &vfbScreens[index]; vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
int i; int i;
pScreen->CloseScreen = pvfb->closeScreen; pScreen->CloseScreen = pvfb->closeScreen;
@ -781,13 +781,13 @@ vfbCloseScreen(int index, ScreenPtr pScreen)
(*pScreen->DestroyPixmap) (pScreen->devPrivate); (*pScreen->DestroyPixmap) (pScreen->devPrivate);
pScreen->devPrivate = NULL; pScreen->devPrivate = NULL;
return pScreen->CloseScreen(index, pScreen); return pScreen->CloseScreen(pScreen);
} }
static Bool static Bool
vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
{ {
vfbScreenInfoPtr pvfb = &vfbScreens[index]; vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
int dpix = monitorResolution, dpiy = monitorResolution; int dpix = monitorResolution, dpiy = monitorResolution;
int ret; int ret;
char *pbits; char *pbits;

View File

@ -244,7 +244,7 @@ extern _X_EXPORT void xf86AddDriver(DriverPtr driver, pointer module,
int flags); int flags);
extern _X_EXPORT void xf86DeleteDriver(int drvIndex); extern _X_EXPORT void xf86DeleteDriver(int drvIndex);
extern _X_EXPORT ScrnInfoPtr xf86AllocateScreen(DriverPtr drv, int flags); extern _X_EXPORT ScrnInfoPtr xf86AllocateScreen(DriverPtr drv, int flags);
extern _X_EXPORT void xf86DeleteScreen(int scrnIndex, int flags); extern _X_EXPORT void xf86DeleteScreen(ScrnInfoPtr pScrn);
extern _X_EXPORT int xf86AllocateScrnInfoPrivateIndex(void); extern _X_EXPORT int xf86AllocateScrnInfoPrivateIndex(void);
extern _X_EXPORT Bool xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, extern _X_EXPORT Bool xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp,
int pad); int pad);
@ -256,7 +256,7 @@ extern _X_EXPORT Bool xf86SetDefaultVisual(ScrnInfoPtr scrp, int visual);
extern _X_EXPORT Bool xf86SetGamma(ScrnInfoPtr scrp, Gamma newGamma); extern _X_EXPORT Bool xf86SetGamma(ScrnInfoPtr scrp, Gamma newGamma);
extern _X_EXPORT void xf86SetDpi(ScrnInfoPtr pScrn, int x, int y); extern _X_EXPORT void xf86SetDpi(ScrnInfoPtr pScrn, int x, int y);
extern _X_EXPORT void xf86SetBlackWhitePixels(ScreenPtr pScreen); extern _X_EXPORT void xf86SetBlackWhitePixels(ScreenPtr pScreen);
extern _X_EXPORT void xf86EnableDisableFBAccess(int scrnIndex, Bool enable); extern _X_EXPORT void xf86EnableDisableFBAccess(ScrnInfoPtr pScrn, Bool enable);
extern _X_EXPORT void extern _X_EXPORT void
xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb, xf86VDrvMsgVerb(int scrnIndex, MessageType type, int verb,
const char *format, va_list args) const char *format, va_list args)
@ -347,7 +347,7 @@ xf86SetBackingStore(ScreenPtr pScreen);
extern _X_EXPORT void extern _X_EXPORT void
xf86SetSilkenMouse(ScreenPtr pScreen); xf86SetSilkenMouse(ScreenPtr pScreen);
extern _X_EXPORT pointer extern _X_EXPORT pointer
xf86FindXvOptions(int scrnIndex, int adapt_index, char *port_name, xf86FindXvOptions(ScrnInfoPtr pScrn, int adapt_index, char *port_name,
char **adaptor_name, pointer *adaptor_options); char **adaptor_name, pointer *adaptor_options);
extern _X_EXPORT void extern _X_EXPORT void
xf86GetOS(const char **name, int *major, int *minor, int *teeny); xf86GetOS(const char **name, int *major, int *minor, int *teeny);
@ -357,7 +357,7 @@ xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag,
EntityProc enter, EntityProc leave, pointer private); EntityProc enter, EntityProc leave, pointer private);
extern _X_EXPORT Bool extern _X_EXPORT Bool
xf86IsScreenPrimary(int scrnIndex); xf86IsScreenPrimary(ScrnInfoPtr pScrn);
extern _X_EXPORT int extern _X_EXPORT int
xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type, xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
int format, unsigned long len, pointer value); int format, unsigned long len, pointer value);
@ -458,4 +458,6 @@ extern _X_EXPORT ScreenPtr xf86ScrnToScreen(ScrnInfoPtr pScrn);
#define XF86_HAS_SCRN_CONV 1 /* define for drivers to use in api compat */ #define XF86_HAS_SCRN_CONV 1 /* define for drivers to use in api compat */
#define XF86_SCRN_INTERFACE 1 /* define for drivers to use in api compat */
#endif /* _XF86_H */ #endif /* _XF86_H */

View File

@ -179,7 +179,7 @@ xf86BusConfig(void)
xf86Msg(X_ERROR, xf86Msg(X_ERROR,
"Screen %d deleted because of no matching config section.\n", "Screen %d deleted because of no matching config section.\n",
i); i);
xf86DeleteScreen(i--, 0); xf86DeleteScreen(xf86Screens[i--]);
} }
} }
@ -377,13 +377,12 @@ xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex)
} }
/* /*
* xf86ClearEntitiesForScreen() - called when a screen is deleted * xf86ClearEntityListForScreen() - called when a screen is deleted
* to mark it's entities unused. Called by xf86DeleteScreen(). * to mark it's entities unused. Called by xf86DeleteScreen().
*/ */
void void
xf86ClearEntityListForScreen(int scrnIndex) xf86ClearEntityListForScreen(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
int i, entityIndex; int i, entityIndex;
if (pScrn->entityList == NULL || pScrn->numEntities == 0) if (pScrn->entityList == NULL || pScrn->numEntities == 0)

View File

@ -66,7 +66,7 @@ static Bool xf86CursorOffScreen(ScreenPtr *pScreen, int *x, int *y);
static void xf86CrossScreen(ScreenPtr pScreen, Bool entering); static void xf86CrossScreen(ScreenPtr pScreen, Bool entering);
static void xf86WarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y); static void xf86WarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y);
static void xf86PointerMoved(int scrnIndex, int x, int y); static void xf86PointerMoved(ScrnInfoPtr pScrn, int x, int y);
static miPointerScreenFuncRec xf86PointerScreenFuncs = { static miPointerScreenFuncRec xf86PointerScreenFuncs = {
xf86CursorOffScreen, xf86CursorOffScreen,
@ -135,14 +135,13 @@ xf86SetViewport(ScreenPtr pScreen, int x, int y)
{ {
ScrnInfoPtr pScr = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScr = xf86ScreenToScrn(pScreen);
(*pScr->PointerMoved) (pScreen->myNum, x, y); (*pScr->PointerMoved) (pScr, x, y);
} }
static void static void
xf86PointerMoved(int scrnIndex, int x, int y) xf86PointerMoved(ScrnInfoPtr pScr, int x, int y)
{ {
Bool frameChanged = FALSE; Bool frameChanged = FALSE;
ScrnInfoPtr pScr = xf86Screens[scrnIndex];
/* /*
* check wether (x,y) belongs to the visual part of the screen * check wether (x,y) belongs to the visual part of the screen
@ -173,7 +172,7 @@ xf86PointerMoved(int scrnIndex, int x, int y)
} }
if (frameChanged && pScr->AdjustFrame != NULL) if (frameChanged && pScr->AdjustFrame != NULL)
pScr->AdjustFrame(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0); pScr->AdjustFrame(pScr, pScr->frameX0, pScr->frameY0);
} }
/* /*
@ -230,7 +229,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
miPointerGetPosition(dev, &px, &py); miPointerGetPosition(dev, &px, &py);
was_blocked = xf86BlockSIGIO(); was_blocked = xf86BlockSIGIO();
Switched = (*pScr->SwitchMode) (pScr->scrnIndex, mode, 0); Switched = (*pScr->SwitchMode) (pScr, mode);
if (Switched) { if (Switched) {
pScr->currentMode = mode; pScr->currentMode = mode;
@ -271,7 +270,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
xf86UnblockSIGIO(was_blocked); xf86UnblockSIGIO(was_blocked);
if (pScr->AdjustFrame) if (pScr->AdjustFrame)
(*pScr->AdjustFrame) (pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0); (*pScr->AdjustFrame) (pScr, pScr->frameX0, pScr->frameY0);
/* The original code centered the frame around the cursor if possible. /* The original code centered the frame around the cursor if possible.
* Since this is hard to achieve with multiple cursors, we do the following: * Since this is hard to achieve with multiple cursors, we do the following:

View File

@ -56,7 +56,7 @@ static DevPrivateKeyRec DGAScreenKeyRec;
#define DGAScreenKeyRegistered dixPrivateKeyRegistered(&DGAScreenKeyRec) #define DGAScreenKeyRegistered dixPrivateKeyRegistered(&DGAScreenKeyRec)
static Bool mieq_installed; static Bool mieq_installed;
static Bool DGACloseScreen(int i, ScreenPtr pScreen); static Bool DGACloseScreen(ScreenPtr pScreen);
static void DGADestroyColormap(ColormapPtr pmap); static void DGADestroyColormap(ColormapPtr pmap);
static void DGAInstallColormap(ColormapPtr pmap); static void DGAInstallColormap(ColormapPtr pmap);
static void DGAUninstallColormap(ColormapPtr pmap); static void DGAUninstallColormap(ColormapPtr pmap);
@ -235,7 +235,7 @@ FreeMarkedVisuals(ScreenPtr pScreen)
} }
static Bool static Bool
DGACloseScreen(int i, ScreenPtr pScreen) DGACloseScreen(ScreenPtr pScreen)
{ {
DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
@ -256,7 +256,7 @@ DGACloseScreen(int i, ScreenPtr pScreen)
free(pScreenPriv); free(pScreenPriv);
return ((*pScreen->CloseScreen) (i, pScreen)); return ((*pScreen->CloseScreen) (pScreen));
} }
static void static void
@ -323,11 +323,10 @@ DGAUninstallColormap(ColormapPtr pmap)
} }
int int
xf86SetDGAMode(int index, int num, DGADevicePtr devRet) xf86SetDGAMode(ScrnInfoPtr pScrn, int num, DGADevicePtr devRet)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
DGAScreenPtr pScreenPriv; DGAScreenPtr pScreenPriv;
ScrnInfoPtr pScrn;
DGADevicePtr device; DGADevicePtr device;
PixmapPtr pPix = NULL; PixmapPtr pPix = NULL;
DGAModePtr pMode = NULL; DGAModePtr pMode = NULL;
@ -338,7 +337,6 @@ xf86SetDGAMode(int index, int num, DGADevicePtr devRet)
pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen);
if (!pScreenPriv) if (!pScreenPriv)
return BadValue; return BadValue;
pScrn = pScreenPriv->pScrn;
if (!num) { if (!num) {
if (pScreenPriv->current) { if (pScreenPriv->current) {
@ -359,7 +357,7 @@ xf86SetDGAMode(int index, int num, DGADevicePtr devRet)
pScreenPriv->savedColormap = NULL; pScreenPriv->savedColormap = NULL;
} }
pScreenPriv->dgaColormap = NULL; pScreenPriv->dgaColormap = NULL;
(*pScrn->EnableDisableFBAccess) (index, TRUE); (*pScrn->EnableDisableFBAccess) (pScrn, TRUE);
FreeMarkedVisuals(pScreen); FreeMarkedVisuals(pScreen);
} }
@ -385,7 +383,7 @@ xf86SetDGAMode(int index, int num, DGADevicePtr devRet)
Bool oldVTSema = pScrn->vtSema; Bool oldVTSema = pScrn->vtSema;
pScrn->vtSema = FALSE; /* kludge until we rewrite VT switching */ pScrn->vtSema = FALSE; /* kludge until we rewrite VT switching */
(*pScrn->EnableDisableFBAccess) (index, FALSE); (*pScrn->EnableDisableFBAccess) (pScrn, FALSE);
pScrn->vtSema = oldVTSema; pScrn->vtSema = oldVTSema;
} }
@ -564,7 +562,7 @@ DGAShutdown(void)
for (i = 0; i < screenInfo.numScreens; i++) { for (i = 0; i < screenInfo.numScreens; i++) {
pScrn = xf86Screens[i]; pScrn = xf86Screens[i];
(void) (*pScrn->SetDGAMode) (pScrn->scrnIndex, 0, NULL); (void) (*pScrn->SetDGAMode) (pScrn, 0, NULL);
} }
} }
@ -579,7 +577,7 @@ DGASetMode(int index, int num, XDGAModePtr mode, PixmapPtr *pPix)
/* We rely on the extension to check that DGA is available */ /* We rely on the extension to check that DGA is available */
ret = (*pScrn->SetDGAMode) (index, num, &device); ret = (*pScrn->SetDGAMode) (pScrn, num, &device);
if ((ret == Success) && num) { if ((ret == Success) && num) {
DGACopyModeInfo(device.mode, mode); DGACopyModeInfo(device.mode, mode);
*pPix = device.pPix; *pPix = device.pPix;

View File

@ -49,7 +49,7 @@
#ifdef DPMSExtension #ifdef DPMSExtension
static DevPrivateKeyRec DPMSKeyRec; static DevPrivateKeyRec DPMSKeyRec;
static DevPrivateKey DPMSKey; static DevPrivateKey DPMSKey;
static Bool DPMSClose(int i, ScreenPtr pScreen); static Bool DPMSClose(ScreenPtr pScreen);
static int DPMSCount = 0; static int DPMSCount = 0;
#endif #endif
@ -99,10 +99,10 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags)
#ifdef DPMSExtension #ifdef DPMSExtension
static Bool static Bool
DPMSClose(int i, ScreenPtr pScreen) DPMSClose(ScreenPtr pScreen)
{ {
DPMSPtr pDPMS; DPMSPtr pDPMS;
ScrnInfoPtr pScrn;
/* This shouldn't happen */ /* This shouldn't happen */
if (DPMSKey == NULL) if (DPMSKey == NULL)
return FALSE; return FALSE;
@ -114,20 +114,20 @@ DPMSClose(int i, ScreenPtr pScreen)
return FALSE; return FALSE;
pScreen->CloseScreen = pDPMS->CloseScreen; pScreen->CloseScreen = pDPMS->CloseScreen;
pScrn = xf86ScreenToScrn(pScreen);
/* /*
* Turn on DPMS when shutting down. If this function can be used * Turn on DPMS when shutting down. If this function can be used
* depends on the order the driver wraps things. If this is called * depends on the order the driver wraps things. If this is called
* after the driver has shut down everything the driver will have * after the driver has shut down everything the driver will have
* to deal with this internally. * to deal with this internally.
*/ */
if (xf86Screens[i]->vtSema && xf86Screens[i]->DPMSSet) { if (pScrn->vtSema && pScrn->DPMSSet) {
xf86Screens[i]->DPMSSet(xf86Screens[i], DPMSModeOn, 0); pScrn->DPMSSet(pScrn, DPMSModeOn, 0);
} }
if (--DPMSCount == 0) if (--DPMSCount == 0)
DPMSKey = NULL; DPMSKey = NULL;
return pScreen->CloseScreen(i, pScreen); return pScreen->CloseScreen(pScreen);
} }
/* /*

View File

@ -438,7 +438,7 @@ xf86VTSwitch(void)
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (!(dispatchException & DE_TERMINATE)) if (!(dispatchException & DE_TERMINATE))
if (xf86Screens[i]->EnableDisableFBAccess) if (xf86Screens[i]->EnableDisableFBAccess)
(*xf86Screens[i]->EnableDisableFBAccess) (i, FALSE); (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], FALSE);
} }
/* /*
@ -459,7 +459,7 @@ xf86VTSwitch(void)
prevSIGIO = xf86BlockSIGIO(); prevSIGIO = xf86BlockSIGIO();
for (i = 0; i < xf86NumScreens; i++) for (i = 0; i < xf86NumScreens; i++)
xf86Screens[i]->LeaveVT(i, 0); xf86Screens[i]->LeaveVT(xf86Screens[i]);
xf86AccessLeave(); /* We need this here, otherwise */ xf86AccessLeave(); /* We need this here, otherwise */
@ -471,13 +471,13 @@ xf86VTSwitch(void)
DebugF("xf86VTSwitch: Leave failed\n"); DebugF("xf86VTSwitch: Leave failed\n");
xf86AccessEnter(); xf86AccessEnter();
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (!xf86Screens[i]->EnterVT(i, 0)) if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
FatalError("EnterVT failed for screen %d\n", i); FatalError("EnterVT failed for screen %d\n", i);
} }
if (!(dispatchException & DE_TERMINATE)) { if (!(dispatchException & DE_TERMINATE)) {
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->EnableDisableFBAccess) if (xf86Screens[i]->EnableDisableFBAccess)
(*xf86Screens[i]->EnableDisableFBAccess) (i, TRUE); (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], TRUE);
} }
} }
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
@ -527,12 +527,12 @@ xf86VTSwitch(void)
xf86AccessEnter(); xf86AccessEnter();
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
xf86Screens[i]->vtSema = TRUE; xf86Screens[i]->vtSema = TRUE;
if (!xf86Screens[i]->EnterVT(i, 0)) if (!xf86Screens[i]->EnterVT(xf86Screens[i]))
FatalError("EnterVT failed for screen %d\n", i); FatalError("EnterVT failed for screen %d\n", i);
} }
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->EnableDisableFBAccess) if (xf86Screens[i]->EnableDisableFBAccess)
(*xf86Screens[i]->EnableDisableFBAccess) (i, TRUE); (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], TRUE);
} }
/* Turn screen saver off when switching back */ /* Turn screen saver off when switching back */

View File

@ -198,24 +198,22 @@ xf86AllocateScreen(DriverPtr drv, int flags)
*/ */
void void
xf86DeleteScreen(int scrnIndex, int flags) xf86DeleteScreen(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn;
int i; int i;
int scrnIndex;
/* First check if the screen is valid */ /* First check if the screen is valid */
if (xf86NumScreens == 0 || xf86Screens == NULL) if (xf86NumScreens == 0 || xf86Screens == NULL)
return; return;
if (scrnIndex > xf86NumScreens - 1) if (!pScrn)
return;
if (!(pScrn = xf86Screens[scrnIndex]))
return; return;
scrnIndex = pScrn->scrnIndex;
/* If a FreeScreen function is defined, call it here */ /* If a FreeScreen function is defined, call it here */
if (pScrn->FreeScreen != NULL) if (pScrn->FreeScreen != NULL)
pScrn->FreeScreen(scrnIndex, 0); pScrn->FreeScreen(pScrn);
while (pScrn->modes) while (pScrn->modes)
xf86DeleteMode(&pScrn->modes, pScrn->modes); xf86DeleteMode(&pScrn->modes, pScrn->modes);
@ -233,7 +231,7 @@ xf86DeleteScreen(int scrnIndex, int flags)
free(pScrn->privates); free(pScrn->privates);
xf86ClearEntityListForScreen(scrnIndex); xf86ClearEntityListForScreen(pScrn);
free(pScrn); free(pScrn);
@ -1027,9 +1025,8 @@ xf86SetBlackWhitePixels(ScreenPtr pScreen)
* private data, and therefore don't need to access pScrnInfo->vtSema. * private data, and therefore don't need to access pScrnInfo->vtSema.
*/ */
void void
xf86EnableDisableFBAccess(int scrnIndex, Bool enable) xf86EnableDisableFBAccess(ScrnInfoPtr pScrnInfo, Bool enable)
{ {
ScrnInfoPtr pScrnInfo = xf86Screens[scrnIndex];
ScreenPtr pScreen = pScrnInfo->pScreen; ScreenPtr pScreen = pScrnInfo->pScreen;
PixmapPtr pspix; PixmapPtr pspix;
@ -1651,10 +1648,9 @@ xf86SetSilkenMouse(ScreenPtr pScreen)
/* Wrote this function for the PM2 Xv driver, preliminary. */ /* Wrote this function for the PM2 Xv driver, preliminary. */
pointer pointer
xf86FindXvOptions(int scrnIndex, int adaptor_index, char *port_name, xf86FindXvOptions(ScrnInfoPtr pScrn, int adaptor_index, char *port_name,
char **adaptor_name, pointer *adaptor_options) char **adaptor_name, pointer *adaptor_options)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
confXvAdaptorPtr adaptor; confXvAdaptorPtr adaptor;
int i; int i;
@ -1726,9 +1722,8 @@ xf86ConfigFbEntity(ScrnInfoPtr pScrn, int scrnFlag, int entityIndex,
} }
Bool Bool
xf86IsScreenPrimary(int scrnIndex) xf86IsScreenPrimary(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
int i; int i;
for (i = 0; i < pScrn->numEntities; i++) { for (i = 0; i < pScrn->numEntities; i++) {

View File

@ -591,7 +591,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
} }
for (i = 0; i < xf86NumScreens; i++) for (i = 0; i < xf86NumScreens; i++)
if (!xf86Screens[i]->configured) if (!xf86Screens[i]->configured)
xf86DeleteScreen(i--, 0); xf86DeleteScreen(xf86Screens[i--]);
/* /*
* If no screens left, return now. * If no screens left, return now.
@ -1040,7 +1040,7 @@ AbortDDX(enum ExitCode error)
* screen explicitely. * screen explicitely.
*/ */
xf86VGAarbiterLock(xf86Screens[i]); xf86VGAarbiterLock(xf86Screens[i]);
(xf86Screens[i]->LeaveVT) (i, 0); (xf86Screens[i]->LeaveVT) (xf86Screens[i]);
xf86VGAarbiterUnlock(xf86Screens[i]); xf86VGAarbiterUnlock(xf86Screens[i]);
} }
} }

View File

@ -950,7 +950,7 @@ xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode,
mode->SynthClock /= 2; mode->SynthClock /= 2;
} }
status = (*scrp->ValidMode) (scrp->scrnIndex, mode, FALSE, status = (*scrp->ValidMode) (scrp, mode, FALSE,
MODECHECK_INITIAL); MODECHECK_INITIAL);
if (status != MODE_OK) if (status != MODE_OK)
return status; return status;
@ -1840,7 +1840,7 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
scrp->virtualX = newVirtX; scrp->virtualX = newVirtX;
scrp->virtualY = newVirtY; scrp->virtualY = newVirtY;
scrp->displayWidth = newLinePitch; scrp->displayWidth = newLinePitch;
p->status = (scrp->ValidMode) (scrp->scrnIndex, p, FALSE, p->status = (scrp->ValidMode) (scrp, p, FALSE,
MODECHECK_FINAL); MODECHECK_FINAL);
if (p->status != MODE_OK) { if (p->status != MODE_OK) {

View File

@ -82,7 +82,7 @@ typedef enum {
* mask is 0xFFFF0000. * mask is 0xFFFF0000.
*/ */
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(12, 0) #define ABI_VIDEODRV_VERSION SET_ABI_VERSION(13, 0)
#define ABI_XINPUT_VERSION SET_ABI_VERSION(17, 0) #define ABI_XINPUT_VERSION SET_ABI_VERSION(17, 0)
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(6, 0) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(6, 0)
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 6) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)

View File

@ -102,7 +102,7 @@ suspend(pmEvent event, Bool undo)
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->EnableDisableFBAccess) if (xf86Screens[i]->EnableDisableFBAccess)
(*xf86Screens[i]->EnableDisableFBAccess) (i, FALSE); (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], FALSE);
} }
pInfo = xf86InputDevs; pInfo = xf86InputDevs;
while (pInfo) { while (pInfo) {
@ -112,9 +112,9 @@ suspend(pmEvent event, Bool undo)
sigio_blocked_for_suspend = xf86BlockSIGIO(); sigio_blocked_for_suspend = xf86BlockSIGIO();
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->PMEvent) if (xf86Screens[i]->PMEvent)
xf86Screens[i]->PMEvent(i, event, undo); xf86Screens[i]->PMEvent(xf86Screens[i], event, undo);
else { else {
xf86Screens[i]->LeaveVT(i, 0); xf86Screens[i]->LeaveVT(xf86Screens[i]);
xf86Screens[i]->vtSema = FALSE; xf86Screens[i]->vtSema = FALSE;
} }
} }
@ -131,16 +131,16 @@ resume(pmEvent event, Bool undo)
xf86AccessEnter(); xf86AccessEnter();
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->PMEvent) if (xf86Screens[i]->PMEvent)
xf86Screens[i]->PMEvent(i, event, undo); xf86Screens[i]->PMEvent(xf86Screens[i], event, undo);
else { else {
xf86Screens[i]->vtSema = TRUE; xf86Screens[i]->vtSema = TRUE;
xf86Screens[i]->EnterVT(i, 0); xf86Screens[i]->EnterVT(xf86Screens[i]);
} }
} }
xf86UnblockSIGIO(sigio_blocked_for_suspend); xf86UnblockSIGIO(sigio_blocked_for_suspend);
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->EnableDisableFBAccess) if (xf86Screens[i]->EnableDisableFBAccess)
(*xf86Screens[i]->EnableDisableFBAccess) (i, TRUE); (*xf86Screens[i]->EnableDisableFBAccess) (xf86Screens[i], TRUE);
} }
dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset);
pInfo = xf86InputDevs; pInfo = xf86InputDevs;
@ -187,7 +187,7 @@ DoApmEvent(pmEvent event, Bool undo)
was_blocked = xf86BlockSIGIO(); was_blocked = xf86BlockSIGIO();
for (i = 0; i < xf86NumScreens; i++) { for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->PMEvent) { if (xf86Screens[i]->PMEvent) {
xf86Screens[i]->PMEvent(i, event, undo); xf86Screens[i]->PMEvent(xf86Screens[i], event, undo);
} }
} }
xf86UnblockSIGIO(was_blocked); xf86UnblockSIGIO(was_blocked);

View File

@ -114,7 +114,7 @@ extern _X_EXPORT void xf86BusProbe(void);
extern _X_EXPORT void xf86AccessEnter(void); extern _X_EXPORT void xf86AccessEnter(void);
extern _X_EXPORT void xf86AccessLeave(void); extern _X_EXPORT void xf86AccessLeave(void);
extern _X_EXPORT void xf86PostProbe(void); extern _X_EXPORT void xf86PostProbe(void);
extern _X_EXPORT void xf86ClearEntityListForScreen(int scrnIndex); extern _X_EXPORT void xf86ClearEntityListForScreen(ScrnInfoPtr pScrn);
extern _X_EXPORT void xf86AddDevToEntity(int entityIndex, GDevPtr dev); extern _X_EXPORT void xf86AddDevToEntity(int entityIndex, GDevPtr dev);
extern _X_EXPORT void xf86RemoveDevFromEntity(int entityIndex, GDevPtr dev); extern _X_EXPORT void xf86RemoveDevFromEntity(int entityIndex, GDevPtr dev);

View File

@ -159,7 +159,7 @@ xf86RandRSetMode(ScreenPtr pScreen,
Bool ret = TRUE; Bool ret = TRUE;
if (pRoot && scrp->vtSema) if (pRoot && scrp->vtSema)
(*scrp->EnableDisableFBAccess) (pScreen->myNum, FALSE); (*scrp->EnableDisableFBAccess) (scrp, FALSE);
if (useVirtual) { if (useVirtual) {
scrp->virtualX = randrp->virtualX; scrp->virtualX = randrp->virtualX;
scrp->virtualY = randrp->virtualY; scrp->virtualY = randrp->virtualY;
@ -220,7 +220,7 @@ xf86RandRSetMode(ScreenPtr pScreen,
xf86SetViewport(pScreen, pScreen->width, pScreen->height); xf86SetViewport(pScreen, pScreen->width, pScreen->height);
xf86SetViewport(pScreen, 0, 0); xf86SetViewport(pScreen, 0, 0);
if (pRoot && scrp->vtSema) if (pRoot && scrp->vtSema)
(*scrp->EnableDisableFBAccess) (pScreen->myNum, TRUE); (*scrp->EnableDisableFBAccess) (scrp, TRUE);
return ret; return ret;
} }
@ -365,7 +365,7 @@ xf86RandRCreateScreenResources(ScreenPtr pScreen)
* Reset size back to original * Reset size back to original
*/ */
static Bool static Bool
xf86RandRCloseScreen(int index, ScreenPtr pScreen) xf86RandRCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr scrp = xf86ScreenToScrn(pScreen); ScrnInfoPtr scrp = xf86ScreenToScrn(pScreen);
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
@ -376,7 +376,7 @@ xf86RandRCloseScreen(int index, ScreenPtr pScreen)
pScreen->CloseScreen = randrp->CloseScreen; pScreen->CloseScreen = randrp->CloseScreen;
free(randrp); free(randrp);
dixSetPrivate(&pScreen->devPrivates, xf86RandRKey, NULL); dixSetPrivate(&pScreen->devPrivates, xf86RandRKey, NULL);
return (*pScreen->CloseScreen) (index, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
Rotation Rotation

View File

@ -221,7 +221,7 @@ xf86VGAarbiterWrapFunctions(void)
/* Screen funcs */ /* Screen funcs */
static Bool static Bool
VGAarbiterCloseScreen(int i, ScreenPtr pScreen) VGAarbiterCloseScreen(ScreenPtr pScreen)
{ {
Bool val; Bool val;
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
@ -258,34 +258,30 @@ VGAarbiterCloseScreen(int i, ScreenPtr pScreen)
UNWRAP_SPRITE; UNWRAP_SPRITE;
free((pointer) pScreenPriv); free((pointer) pScreenPriv);
xf86VGAarbiterLock(xf86Screens[i]); xf86VGAarbiterLock(xf86ScreenToScrn(pScreen));
val = (*pScreen->CloseScreen) (i, pScreen); val = (*pScreen->CloseScreen) (pScreen);
xf86VGAarbiterUnlock(xf86Screens[i]); xf86VGAarbiterUnlock(xf86ScreenToScrn(pScreen));
return val; return val;
} }
static void static void
VGAarbiterBlockHandler(int i, VGAarbiterBlockHandler(ScreenPtr pScreen,
pointer blockData, pointer pTimeout, pointer pReadmask) pointer pTimeout, pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[i];
SCREEN_PROLOG(BlockHandler); SCREEN_PROLOG(BlockHandler);
VGAGet(pScreen); VGAGet(pScreen);
pScreen->BlockHandler(i, blockData, pTimeout, pReadmask); pScreen->BlockHandler(pScreen, pTimeout, pReadmask);
VGAPut(); VGAPut();
SCREEN_EPILOG(BlockHandler, VGAarbiterBlockHandler); SCREEN_EPILOG(BlockHandler, VGAarbiterBlockHandler);
} }
static void static void
VGAarbiterWakeupHandler(int i, pointer blockData, unsigned long result, VGAarbiterWakeupHandler(ScreenPtr pScreen, unsigned long result,
pointer pReadmask) pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[i];
SCREEN_PROLOG(WakeupHandler); SCREEN_PROLOG(WakeupHandler);
VGAGet(pScreen); VGAGet(pScreen);
pScreen->WakeupHandler(i, blockData, result, pReadmask); pScreen->WakeupHandler(pScreen, result, pReadmask);
VGAPut(); VGAPut();
SCREEN_EPILOG(WakeupHandler, VGAarbiterWakeupHandler); SCREEN_EPILOG(WakeupHandler, VGAarbiterWakeupHandler);
} }
@ -466,46 +462,45 @@ VGAarbiterSetCursorPosition(DeviceIntPtr pDev,
} }
static void static void
VGAarbiterAdjustFrame(int index, int x, int y, int flags) VGAarbiterAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
VGAarbiterScreenPtr pScreenPriv = VGAarbiterScreenPtr pScreenPriv =
(VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
VGAarbiterScreenKey); VGAarbiterScreenKey);
VGAGet(pScreen); VGAGet(pScreen);
(*pScreenPriv->AdjustFrame) (index, x, y, flags); (*pScreenPriv->AdjustFrame) (pScrn, x, y);
VGAPut(); VGAPut();
} }
static Bool static Bool
VGAarbiterSwitchMode(int index, DisplayModePtr mode, int flags) VGAarbiterSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
Bool val; Bool val;
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
VGAarbiterScreenPtr pScreenPriv = VGAarbiterScreenPtr pScreenPriv =
(VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
VGAarbiterScreenKey); VGAarbiterScreenKey);
VGAGet(pScreen); VGAGet(pScreen);
val = (*pScreenPriv->SwitchMode) (index, mode, flags); val = (*pScreenPriv->SwitchMode) (pScrn, mode);
VGAPut(); VGAPut();
return val; return val;
} }
static Bool static Bool
VGAarbiterEnterVT(int index, int flags) VGAarbiterEnterVT(ScrnInfoPtr pScrn)
{ {
Bool val; Bool val;
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
VGAarbiterScreenPtr pScreenPriv = VGAarbiterScreenPtr pScreenPriv =
(VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
VGAarbiterScreenKey); VGAarbiterScreenKey);
VGAGet(pScreen); VGAGet(pScreen);
pScrn->EnterVT = pScreenPriv->EnterVT; pScrn->EnterVT = pScreenPriv->EnterVT;
val = (*pScrn->EnterVT) (index, flags); val = (*pScrn->EnterVT) (pScrn);
pScreenPriv->EnterVT = pScrn->EnterVT; pScreenPriv->EnterVT = pScrn->EnterVT;
pScrn->EnterVT = VGAarbiterEnterVT; pScrn->EnterVT = VGAarbiterEnterVT;
VGAPut(); VGAPut();
@ -513,32 +508,31 @@ VGAarbiterEnterVT(int index, int flags)
} }
static void static void
VGAarbiterLeaveVT(int index, int flags) VGAarbiterLeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
VGAarbiterScreenPtr pScreenPriv = VGAarbiterScreenPtr pScreenPriv =
(VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
VGAarbiterScreenKey); VGAarbiterScreenKey);
VGAGet(pScreen); VGAGet(pScreen);
pScrn->LeaveVT = pScreenPriv->LeaveVT; pScrn->LeaveVT = pScreenPriv->LeaveVT;
(*pScreenPriv->LeaveVT) (index, flags); (*pScreenPriv->LeaveVT) (pScrn);
pScreenPriv->LeaveVT = pScrn->LeaveVT; pScreenPriv->LeaveVT = pScrn->LeaveVT;
pScrn->LeaveVT = VGAarbiterLeaveVT; pScrn->LeaveVT = VGAarbiterLeaveVT;
VGAPut(); VGAPut();
} }
static void static void
VGAarbiterFreeScreen(int index, int flags) VGAarbiterFreeScreen(ScrnInfoPtr pScrn)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
VGAarbiterScreenPtr pScreenPriv = VGAarbiterScreenPtr pScreenPriv =
(VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (VGAarbiterScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
VGAarbiterScreenKey); VGAarbiterScreenKey);
VGAGet(pScreen); VGAGet(pScreen);
(*pScreenPriv->FreeScreen) (index, flags); (*pScreenPriv->FreeScreen) (pScrn);
VGAPut(); VGAPut();
} }

View File

@ -125,11 +125,11 @@ typedef struct _VGAarbiterScreen {
UnrealizeCursorProcPtr UnrealizeCursor; UnrealizeCursorProcPtr UnrealizeCursor;
RecolorCursorProcPtr RecolorCursor; RecolorCursorProcPtr RecolorCursor;
SetCursorPositionProcPtr SetCursorPosition; SetCursorPositionProcPtr SetCursorPosition;
void (*AdjustFrame) (int, int, int, int); void (*AdjustFrame) (ScrnInfoPtr, int, int);
Bool (*SwitchMode) (int, DisplayModePtr, int); Bool (*SwitchMode) (ScrnInfoPtr, DisplayModePtr);
Bool (*EnterVT) (int, int); Bool (*EnterVT) (ScrnInfoPtr);
void (*LeaveVT) (int, int); void (*LeaveVT) (ScrnInfoPtr);
void (*FreeScreen) (int, int); void (*FreeScreen) (ScrnInfoPtr);
miPointerSpriteFuncPtr miSprite; miPointerSpriteFuncPtr miSprite;
CompositeProcPtr Composite; CompositeProcPtr Composite;
GlyphsProcPtr Glyphs; GlyphsProcPtr Glyphs;
@ -142,11 +142,11 @@ typedef struct _VGAarbiterGC {
} VGAarbiterGCRec, *VGAarbiterGCPtr; } VGAarbiterGCRec, *VGAarbiterGCPtr;
/* Screen funcs */ /* Screen funcs */
static void VGAarbiterBlockHandler(int i, pointer blockData, pointer pTimeout, static void VGAarbiterBlockHandler(ScreenPtr pScreen, pointer pTimeout,
pointer pReadmask); pointer pReadmask);
static void VGAarbiterWakeupHandler(int i, pointer blockData, static void VGAarbiterWakeupHandler(ScreenPtr pScreen,
unsigned long result, pointer pReadmask); unsigned long result, pointer pReadmask);
static Bool VGAarbiterCloseScreen(int i, ScreenPtr pScreen); static Bool VGAarbiterCloseScreen(ScreenPtr pScreen);
static void VGAarbiterGetImage(DrawablePtr pDrawable, int sx, int sy, int w, static void VGAarbiterGetImage(DrawablePtr pDrawable, int sx, int sy, int w,
int h, unsigned int format, int h, unsigned int format,
unsigned long planemask, char *pdstLine); unsigned long planemask, char *pdstLine);
@ -176,11 +176,11 @@ static Bool VGAarbiterDisplayCursor(DeviceIntPtr pDev, ScreenPtr pScreen,
static Bool VGAarbiterSetCursorPosition(DeviceIntPtr pDev, ScreenPtr static Bool VGAarbiterSetCursorPosition(DeviceIntPtr pDev, ScreenPtr
pScreen, int x, int y, pScreen, int x, int y,
Bool generateEvent); Bool generateEvent);
static void VGAarbiterAdjustFrame(int index, int x, int y, int flags); static void VGAarbiterAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
static Bool VGAarbiterSwitchMode(int index, DisplayModePtr mode, int flags); static Bool VGAarbiterSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
static Bool VGAarbiterEnterVT(int index, int flags); static Bool VGAarbiterEnterVT(ScrnInfoPtr pScrn);
static void VGAarbiterLeaveVT(int index, int flags); static void VGAarbiterLeaveVT(ScrnInfoPtr pScrn);
static void VGAarbiterFreeScreen(int index, int flags); static void VGAarbiterFreeScreen(ScrnInfoPtr pScrn);
/* GC funcs */ /* GC funcs */
static void VGAarbiterValidateGC(GCPtr pGC, unsigned long changes, static void VGAarbiterValidateGC(GCPtr pGC, unsigned long changes,

View File

@ -50,7 +50,7 @@
static DevPrivateKeyRec VidModeKeyRec; static DevPrivateKeyRec VidModeKeyRec;
static DevPrivateKey VidModeKey; static DevPrivateKey VidModeKey;
static int VidModeCount = 0; static int VidModeCount = 0;
static Bool VidModeClose(int i, ScreenPtr pScreen); static Bool VidModeClose(ScreenPtr pScreen);
#define VMPTR(p) ((VidModePtr)dixLookupPrivate(&(p)->devPrivates, VidModeKey)) #define VMPTR(p) ((VidModePtr)dixLookupPrivate(&(p)->devPrivates, VidModeKey))
@ -93,7 +93,7 @@ VidModeExtensionInit(ScreenPtr pScreen)
#ifdef XF86VIDMODE #ifdef XF86VIDMODE
static Bool static Bool
VidModeClose(int i, ScreenPtr pScreen) VidModeClose(ScreenPtr pScreen)
{ {
VidModePtr pVidMode = VMPTR(pScreen); VidModePtr pVidMode = VMPTR(pScreen);
@ -108,7 +108,7 @@ VidModeClose(int i, ScreenPtr pScreen)
dixSetPrivate(&pScreen->devPrivates, VidModeKey, NULL); dixSetPrivate(&pScreen->devPrivates, VidModeKey, NULL);
VidModeKey = NULL; VidModeKey = NULL;
} }
return pScreen->CloseScreen(i, pScreen); return pScreen->CloseScreen(pScreen);
} }
Bool Bool
@ -303,7 +303,7 @@ VidModeSetViewPort(int scrnIndex, int x, int y)
pScrn->virtualY - pScrn->currentMode->VDisplay); pScrn->virtualY - pScrn->currentMode->VDisplay);
pScrn->frameY1 = pScrn->frameY0 + pScrn->currentMode->VDisplay - 1; pScrn->frameY1 = pScrn->frameY0 + pScrn->currentMode->VDisplay - 1;
if (pScrn->AdjustFrame != NULL) if (pScrn->AdjustFrame != NULL)
(pScrn->AdjustFrame) (scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); (pScrn->AdjustFrame) (pScrn, pScrn->frameX0, pScrn->frameY0);
return TRUE; return TRUE;
} }

View File

@ -80,9 +80,9 @@ typedef struct {
DestroyColormapProcPtr DestroyColormap; DestroyColormapProcPtr DestroyColormap;
InstallColormapProcPtr InstallColormap; InstallColormapProcPtr InstallColormap;
StoreColorsProcPtr StoreColors; StoreColorsProcPtr StoreColors;
Bool (*EnterVT) (int, int); Bool (*EnterVT) (ScrnInfoPtr);
Bool (*SwitchMode) (int, DisplayModePtr, int); Bool (*SwitchMode) (ScrnInfoPtr, DisplayModePtr);
int (*SetDGAMode) (int, int, DGADevicePtr); int (*SetDGAMode) (ScrnInfoPtr, int, DGADevicePtr);
xf86ChangeGammaProc *ChangeGamma; xf86ChangeGammaProc *ChangeGamma;
int maxColors; int maxColors;
int sigRGBbits; int sigRGBbits;
@ -111,17 +111,17 @@ static DevPrivateKeyRec CMapColormapKeyRec;
static void CMapInstallColormap(ColormapPtr); static void CMapInstallColormap(ColormapPtr);
static void CMapStoreColors(ColormapPtr, int, xColorItem *); static void CMapStoreColors(ColormapPtr, int, xColorItem *);
static Bool CMapCloseScreen(int, ScreenPtr); static Bool CMapCloseScreen(ScreenPtr);
static Bool CMapCreateColormap(ColormapPtr); static Bool CMapCreateColormap(ColormapPtr);
static void CMapDestroyColormap(ColormapPtr); static void CMapDestroyColormap(ColormapPtr);
static Bool CMapEnterVT(int, int); static Bool CMapEnterVT(ScrnInfoPtr);
static Bool CMapSwitchMode(int, DisplayModePtr, int); static Bool CMapSwitchMode(ScrnInfoPtr, DisplayModePtr);
#ifdef XFreeXDGA #ifdef XFreeXDGA
static int CMapSetDGAMode(int, int, DGADevicePtr); static int CMapSetDGAMode(ScrnInfoPtr, int, DGADevicePtr);
#endif #endif
static int CMapChangeGamma(int, Gamma); static int CMapChangeGamma(ScrnInfoPtr, Gamma);
static void ComputeGamma(CMapScreenPtr); static void ComputeGamma(CMapScreenPtr);
static Bool CMapAllocateColormapPrivate(ColormapPtr); static Bool CMapAllocateColormapPrivate(ColormapPtr);
@ -241,11 +241,11 @@ xf86HandleColormaps(ScreenPtr pScreen,
/**** Screen functions ****/ /**** Screen functions ****/
static Bool static Bool
CMapCloseScreen(int i, ScreenPtr pScreen) CMapCloseScreen(ScreenPtr pScreen)
{ {
CMapUnwrapScreen(pScreen); CMapUnwrapScreen(pScreen);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static Bool static Bool
@ -462,16 +462,15 @@ CMapInstallColormap(ColormapPtr pmap)
/**** ScrnInfoRec functions ****/ /**** ScrnInfoRec functions ****/
static Bool static Bool
CMapEnterVT(int index, int flags) CMapEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
Bool ret; Bool ret;
CMapScreenPtr pScreenPriv = CMapScreenPtr pScreenPriv =
(CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey); (CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey);
pScrn->EnterVT = pScreenPriv->EnterVT; pScrn->EnterVT = pScreenPriv->EnterVT;
ret = (*pScreenPriv->EnterVT) (index, flags); ret = (*pScreenPriv->EnterVT) (pScrn);
pScreenPriv->EnterVT = pScrn->EnterVT; pScreenPriv->EnterVT = pScrn->EnterVT;
pScrn->EnterVT = CMapEnterVT; pScrn->EnterVT = CMapEnterVT;
if (ret) { if (ret) {
@ -483,13 +482,13 @@ CMapEnterVT(int index, int flags)
} }
static Bool static Bool
CMapSwitchMode(int index, DisplayModePtr mode, int flags) CMapSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
CMapScreenPtr pScreenPriv = CMapScreenPtr pScreenPriv =
(CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey); (CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey);
if ((*pScreenPriv->SwitchMode) (index, mode, flags)) { if ((*pScreenPriv->SwitchMode) (pScrn, mode)) {
if (GetInstalledmiColormap(pScreen)) if (GetInstalledmiColormap(pScreen))
CMapReinstallMap(GetInstalledmiColormap(pScreen)); CMapReinstallMap(GetInstalledmiColormap(pScreen));
return TRUE; return TRUE;
@ -499,16 +498,16 @@ CMapSwitchMode(int index, DisplayModePtr mode, int flags)
#ifdef XFreeXDGA #ifdef XFreeXDGA
static int static int
CMapSetDGAMode(int index, int num, DGADevicePtr dev) CMapSetDGAMode(ScrnInfoPtr pScrn, int num, DGADevicePtr dev)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
CMapScreenPtr pScreenPriv = CMapScreenPtr pScreenPriv =
(CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey); (CMapScreenPtr) dixLookupPrivate(&pScreen->devPrivates, CMapScreenKey);
int ret; int ret;
ret = (*pScreenPriv->SetDGAMode) (index, num, dev); ret = (*pScreenPriv->SetDGAMode) (pScrn, num, dev);
pScreenPriv->isDGAmode = DGAActive(index); pScreenPriv->isDGAmode = DGAActive(pScrn->scrnIndex);
if (!pScreenPriv->isDGAmode && GetInstalledmiColormap(pScreen) if (!pScreenPriv->isDGAmode && GetInstalledmiColormap(pScreen)
&& xf86ScreenToScrn(pScreen)->vtSema) && xf86ScreenToScrn(pScreen)->vtSema)
@ -908,11 +907,10 @@ ComputeGamma(CMapScreenPtr priv)
} }
int int
CMapChangeGamma(int index, Gamma gamma) CMapChangeGamma(ScrnInfoPtr pScrn, Gamma gamma)
{ {
int ret = Success; int ret = Success;
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = pScrn->pScreen;
CMapColormapPtr pColPriv; CMapColormapPtr pColPriv;
CMapScreenPtr pScreenPriv; CMapScreenPtr pScreenPriv;
CMapLinkPtr pLink; CMapLinkPtr pLink;
@ -979,7 +977,7 @@ CMapChangeGamma(int index, Gamma gamma)
pScrn->ChangeGamma = pScreenPriv->ChangeGamma; pScrn->ChangeGamma = pScreenPriv->ChangeGamma;
if (pScrn->ChangeGamma) if (pScrn->ChangeGamma)
ret = pScrn->ChangeGamma(index, gamma); ret = pScrn->ChangeGamma(pScrn, gamma);
pScrn->ChangeGamma = CMapChangeGamma; pScrn->ChangeGamma = CMapChangeGamma;
return ret; return ret;
@ -1175,7 +1173,7 @@ xf86ChangeGamma(ScreenPtr pScreen, Gamma gamma)
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
if (pScrn->ChangeGamma) if (pScrn->ChangeGamma)
return (*pScrn->ChangeGamma) (pScreen->myNum, gamma); return (*pScrn->ChangeGamma) (pScrn, gamma);
return BadImplementation; return BadImplementation;
} }

View File

@ -1149,7 +1149,7 @@ static FBManagerFuncs xf86FBManFuncs = {
}; };
static Bool static Bool
xf86FBCloseScreen(int i, ScreenPtr pScreen) xf86FBCloseScreen(ScreenPtr pScreen)
{ {
FBLinkPtr pLink, tmp; FBLinkPtr pLink, tmp;
FBLinearLinkPtr pLinearLink, tmp2; FBLinearLinkPtr pLinearLink, tmp2;
@ -1180,7 +1180,7 @@ xf86FBCloseScreen(int i, ScreenPtr pScreen)
free(offman); free(offman);
dixSetPrivate(&pScreen->devPrivates, xf86FBScreenKey, NULL); dixSetPrivate(&pScreen->devPrivates, xf86FBScreenKey, NULL);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
Bool Bool

View File

@ -667,7 +667,7 @@ xf86SbusCmapLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
} }
static Bool static Bool
xf86SbusCmapCloseScreen(int i, ScreenPtr pScreen) xf86SbusCmapCloseScreen(ScreenPtr pScreen)
{ {
sbusCmapPtr cmap; sbusCmapPtr cmap;
struct fbcmap fbcmap; struct fbcmap fbcmap;
@ -683,7 +683,7 @@ xf86SbusCmapCloseScreen(int i, ScreenPtr pScreen)
} }
pScreen->CloseScreen = cmap->CloseScreen; pScreen->CloseScreen = cmap->CloseScreen;
free(cmap); free(cmap);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
Bool Bool

View File

@ -630,18 +630,18 @@ typedef struct {
typedef Bool xf86ProbeProc(DriverPtr, int); typedef Bool xf86ProbeProc(DriverPtr, int);
typedef Bool xf86PreInitProc(ScrnInfoPtr, int); typedef Bool xf86PreInitProc(ScrnInfoPtr, int);
typedef Bool xf86ScreenInitProc(int, ScreenPtr, int, char **); typedef Bool xf86ScreenInitProc(ScreenPtr, int, char **);
typedef Bool xf86SwitchModeProc(int, DisplayModePtr, int); typedef Bool xf86SwitchModeProc(ScrnInfoPtr, DisplayModePtr);
typedef void xf86AdjustFrameProc(int, int, int, int); typedef void xf86AdjustFrameProc(ScrnInfoPtr, int, int);
typedef Bool xf86EnterVTProc(int, int); typedef Bool xf86EnterVTProc(ScrnInfoPtr);
typedef void xf86LeaveVTProc(int, int); typedef void xf86LeaveVTProc(ScrnInfoPtr);
typedef void xf86FreeScreenProc(int, int); typedef void xf86FreeScreenProc(ScrnInfoPtr);
typedef ModeStatus xf86ValidModeProc(int, DisplayModePtr, Bool, int); typedef ModeStatus xf86ValidModeProc(ScrnInfoPtr, DisplayModePtr, Bool, int);
typedef void xf86EnableDisableFBAccessProc(int, Bool); typedef void xf86EnableDisableFBAccessProc(ScrnInfoPtr, Bool);
typedef int xf86SetDGAModeProc(int, int, DGADevicePtr); typedef int xf86SetDGAModeProc(ScrnInfoPtr, int, DGADevicePtr);
typedef int xf86ChangeGammaProc(int, Gamma); typedef int xf86ChangeGammaProc(ScrnInfoPtr, Gamma);
typedef void xf86PointerMovedProc(int, int, int); typedef void xf86PointerMovedProc(ScrnInfoPtr, int, int);
typedef Bool xf86PMEventProc(int, pmEvent, Bool); typedef Bool xf86PMEventProc(ScrnInfoPtr, pmEvent, Bool);
typedef void xf86DPMSSetProc(ScrnInfoPtr, int, int); typedef void xf86DPMSSetProc(ScrnInfoPtr, int, int);
typedef void xf86LoadPaletteProc(ScrnInfoPtr, int, int *, LOCO *, VisualPtr); typedef void xf86LoadPaletteProc(ScrnInfoPtr, int, int *, LOCO *, VisualPtr);
typedef void xf86SetOverscanProc(ScrnInfoPtr, int); typedef void xf86SetOverscanProc(ScrnInfoPtr, int);

View File

@ -56,7 +56,7 @@
/* XvScreenRec fields */ /* XvScreenRec fields */
static Bool xf86XVCloseScreen(int, ScreenPtr); static Bool xf86XVCloseScreen(ScreenPtr);
static int xf86XVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *); static int xf86XVQueryAdaptors(ScreenPtr, XvAdaptorPtr *, int *);
/* XvAdaptorRec fields */ /* XvAdaptorRec fields */
@ -100,9 +100,9 @@ static void xf86XVClipNotify(WindowPtr pWin, int dx, int dy);
/* ScrnInfoRec functions */ /* ScrnInfoRec functions */
static Bool xf86XVEnterVT(int, int); static Bool xf86XVEnterVT(ScrnInfoPtr);
static void xf86XVLeaveVT(int, int); static void xf86XVLeaveVT(ScrnInfoPtr);
static void xf86XVAdjustFrame(int index, int x, int y, int flags); static void xf86XVAdjustFrame(ScrnInfoPtr, int x, int y);
static void xf86XVModeSet(ScrnInfoPtr pScrn); static void xf86XVModeSet(ScrnInfoPtr pScrn);
/* misc */ /* misc */
@ -1066,7 +1066,7 @@ xf86XVReputOrStopPort(XvPortRecPrivatePtr pPriv, WindowPtr pWin, Bool visible)
static void static void
xf86XVReputOrStopAllPorts(ScrnInfoPtr pScrn, Bool onlyChanged) xf86XVReputOrStopAllPorts(ScrnInfoPtr pScrn, Bool onlyChanged)
{ {
ScreenPtr pScreen = pScrn->pScreen; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
XvAdaptorPtr pa; XvAdaptorPtr pa;
int c, i; int c, i;
@ -1255,7 +1255,7 @@ xf86XVClipNotify(WindowPtr pWin, int dx, int dy)
/**** Required XvScreenRec fields ****/ /**** Required XvScreenRec fields ****/
static Bool static Bool
xf86XVCloseScreen(int i, ScreenPtr pScreen) xf86XVCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
@ -1299,15 +1299,14 @@ xf86XVQueryAdaptors(ScreenPtr pScreen,
/**** ScrnInfoRec fields ****/ /**** ScrnInfoRec fields ****/
static Bool static Bool
xf86XVEnterVT(int index, int flags) xf86XVEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen); XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
Bool ret; Bool ret;
pScrn->EnterVT = ScreenPriv->EnterVT; pScrn->EnterVT = ScreenPriv->EnterVT;
ret = (*ScreenPriv->EnterVT) (index, flags); ret = (*ScreenPriv->EnterVT) (pScrn);
ScreenPriv->EnterVT = pScrn->EnterVT; ScreenPriv->EnterVT = pScrn->EnterVT;
pScrn->EnterVT = xf86XVEnterVT; pScrn->EnterVT = xf86XVEnterVT;
@ -1318,10 +1317,9 @@ xf86XVEnterVT(int index, int flags)
} }
static void static void
xf86XVLeaveVT(int index, int flags) xf86XVLeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen); XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen); XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
XvAdaptorPtr pAdaptor; XvAdaptorPtr pAdaptor;
@ -1353,21 +1351,20 @@ xf86XVLeaveVT(int index, int flags)
} }
pScrn->LeaveVT = ScreenPriv->LeaveVT; pScrn->LeaveVT = ScreenPriv->LeaveVT;
(*ScreenPriv->LeaveVT) (index, flags); (*ScreenPriv->LeaveVT) (pScrn);
ScreenPriv->LeaveVT = pScrn->LeaveVT; ScreenPriv->LeaveVT = pScrn->LeaveVT;
pScrn->LeaveVT = xf86XVLeaveVT; pScrn->LeaveVT = xf86XVLeaveVT;
} }
static void static void
xf86XVAdjustFrame(int index, int x, int y, int flags) xf86XVAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = pScrn->pScreen;
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen); XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
if (ScreenPriv->AdjustFrame) { if (ScreenPriv->AdjustFrame) {
pScrn->AdjustFrame = ScreenPriv->AdjustFrame; pScrn->AdjustFrame = ScreenPriv->AdjustFrame;
(*pScrn->AdjustFrame) (index, x, y, flags); (*pScrn->AdjustFrame) (pScrn, x, y);
pScrn->AdjustFrame = xf86XVAdjustFrame; pScrn->AdjustFrame = xf86XVAdjustFrame;
} }
@ -1377,7 +1374,7 @@ xf86XVAdjustFrame(int index, int x, int y, int flags)
static void static void
xf86XVModeSet(ScrnInfoPtr pScrn) xf86XVModeSet(ScrnInfoPtr pScrn)
{ {
ScreenPtr pScreen = pScrn->pScreen; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
XF86XVScreenPtr ScreenPriv; XF86XVScreenPtr ScreenPriv;
/* Can be called before pScrn->pScreen is set */ /* Can be called before pScrn->pScreen is set */

View File

@ -132,7 +132,7 @@ xf86XvMCDestroySubpicture(XvMCSubpicturePtr pSubpicture)
} }
static Bool static Bool
xf86XvMCCloseScreen(int i, ScreenPtr pScreen) xf86XvMCCloseScreen(ScreenPtr pScreen)
{ {
xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pScreen); xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pScreen);
@ -141,7 +141,7 @@ xf86XvMCCloseScreen(int i, ScreenPtr pScreen)
free(pScreenPriv->dixinfo); free(pScreenPriv->dixinfo);
free(pScreenPriv); free(pScreenPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
Bool Bool

View File

@ -41,9 +41,9 @@ typedef struct {
ClipNotifyProcPtr ClipNotify; ClipNotifyProcPtr ClipNotify;
WindowExposuresProcPtr WindowExposures; WindowExposuresProcPtr WindowExposures;
PostValidateTreeProcPtr PostValidateTree; PostValidateTreeProcPtr PostValidateTree;
void (*AdjustFrame) (int, int, int, int); void (*AdjustFrame) (ScrnInfoPtr, int, int, int);
Bool (*EnterVT) (int, int); Bool (*EnterVT) (ScrnInfoPtr);
void (*LeaveVT) (int, int); void (*LeaveVT) (ScrnInfoPtr);
xf86ModeSetProc *ModeSet; xf86ModeSetProc *ModeSet;
} XF86XVScreenRec, *XF86XVScreenPtr; } XF86XVScreenRec, *XF86XVScreenPtr;

View File

@ -258,10 +258,9 @@ EDIDRead_DDC1(ScrnInfoPtr pScrn, DDC1SetSpeedProc DDCSpeed,
* @return NULL if no monitor attached or failure to interpret the EDID. * @return NULL if no monitor attached or failure to interpret the EDID.
*/ */
xf86MonPtr xf86MonPtr
xf86DoEDID_DDC1(int scrnIndex, DDC1SetSpeedProc DDC1SetSpeed, xf86DoEDID_DDC1(ScrnInfoPtr pScrn, DDC1SetSpeedProc DDC1SetSpeed,
unsigned int (*DDC1Read) (ScrnInfoPtr)) unsigned int (*DDC1Read) (ScrnInfoPtr))
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
unsigned char *EDID_block = NULL; unsigned char *EDID_block = NULL;
xf86MonPtr tmp = NULL; xf86MonPtr tmp = NULL;
@ -285,7 +284,7 @@ xf86DoEDID_DDC1(int scrnIndex, DDC1SetSpeedProc DDC1SetSpeed,
OsReleaseSignals(); OsReleaseSignals();
if (EDID_block) { if (EDID_block) {
tmp = xf86InterpretEDID(scrnIndex, EDID_block); tmp = xf86InterpretEDID(pScrn->scrnIndex, EDID_block);
} }
#ifdef DEBUG #ifdef DEBUG
else else
@ -323,7 +322,7 @@ DDC2MakeDevice(I2CBusPtr pBus, int address, char *name)
} }
static I2CDevPtr static I2CDevPtr
DDC2Init(int scrnIndex, I2CBusPtr pBus) DDC2Init(I2CBusPtr pBus)
{ {
I2CDevPtr dev = NULL; I2CDevPtr dev = NULL;
@ -403,9 +402,8 @@ DDC2Read(I2CDevPtr dev, int block, unsigned char *R_Buffer)
* @return NULL if no monitor attached or failure to interpret the EDID. * @return NULL if no monitor attached or failure to interpret the EDID.
*/ */
xf86MonPtr xf86MonPtr
xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete) xf86DoEEDID(ScrnInfoPtr pScrn, I2CBusPtr pBus, Bool complete)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
unsigned char *EDID_block = NULL; unsigned char *EDID_block = NULL;
xf86MonPtr tmp = NULL; xf86MonPtr tmp = NULL;
I2CDevPtr dev = NULL; I2CDevPtr dev = NULL;
@ -427,7 +425,7 @@ xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete)
if (noddc || noddc2) if (noddc || noddc2)
return NULL; return NULL;
if (!(dev = DDC2Init(scrnIndex, pBus))) if (!(dev = DDC2Init(pBus)))
return NULL; return NULL;
EDID_block = calloc(1, EDID1_LEN); EDID_block = calloc(1, EDID1_LEN);
@ -444,7 +442,7 @@ xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete)
DDC2Read(dev, i + 1, EDID_block + (EDID1_LEN * (1 + i))); DDC2Read(dev, i + 1, EDID_block + (EDID1_LEN * (1 + i)));
} }
tmp = xf86InterpretEEDID(scrnIndex, EDID_block); tmp = xf86InterpretEEDID(pScrn->scrnIndex, EDID_block);
} }
if (tmp && complete) if (tmp && complete)
@ -465,9 +463,9 @@ xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete)
* @return NULL if no monitor attached or failure to interpret the EDID. * @return NULL if no monitor attached or failure to interpret the EDID.
*/ */
xf86MonPtr xf86MonPtr
xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus) xf86DoEDID_DDC2(ScrnInfoPtr pScrn, I2CBusPtr pBus)
{ {
return xf86DoEEDID(scrnIndex, pBus, FALSE); return xf86DoEEDID(pScrn, pBus, FALSE);
} }
/* XXX write me */ /* XXX write me */
@ -489,9 +487,8 @@ DDC2ReadDisplayID(void)
* @return NULL if no monitor attached or failure to interpret the DisplayID. * @return NULL if no monitor attached or failure to interpret the DisplayID.
*/ */
xf86MonPtr xf86MonPtr
xf86DoDisplayID(int scrnIndex, I2CBusPtr pBus) xf86DoDisplayID(ScrnInfoPtr pScrn, I2CBusPtr pBus)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
unsigned char *did = NULL; unsigned char *did = NULL;
xf86MonPtr tmp = NULL; xf86MonPtr tmp = NULL;
I2CDevPtr dev = NULL; I2CDevPtr dev = NULL;
@ -513,7 +510,7 @@ xf86DoDisplayID(int scrnIndex, I2CBusPtr pBus)
if (noddc || noddc2) if (noddc || noddc2)
return NULL; return NULL;
if (!(dev = DDC2Init(scrnIndex, pBus))) if (!(dev = DDC2Init(pBus)))
return NULL; return NULL;
if ((did = DDC2ReadDisplayID())) { if ((did = DDC2ReadDisplayID())) {
@ -521,7 +518,7 @@ xf86DoDisplayID(int scrnIndex, I2CBusPtr pBus)
if (!tmp) if (!tmp)
return NULL; return NULL;
tmp->scrnIndex = scrnIndex; tmp->scrnIndex = pScrn->scrnIndex;
tmp->flags |= MONITOR_DISPLAYID; tmp->flags |= MONITOR_DISPLAYID;
tmp->rawData = did; tmp->rawData = did;
} }

View File

@ -24,15 +24,15 @@ typedef enum {
typedef void (*DDC1SetSpeedProc) (ScrnInfoPtr, xf86ddcSpeed); typedef void (*DDC1SetSpeedProc) (ScrnInfoPtr, xf86ddcSpeed);
extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC1(int scrnIndex, extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC1(ScrnInfoPtr pScrn,
DDC1SetSpeedProc DDC1SetSpeed, DDC1SetSpeedProc DDC1SetSpeed,
unsigned unsigned
int (*DDC1Read) (ScrnInfoPtr) int (*DDC1Read) (ScrnInfoPtr)
); );
extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus); extern _X_EXPORT xf86MonPtr xf86DoEDID_DDC2(ScrnInfoPtr pScrn, I2CBusPtr pBus);
extern _X_EXPORT xf86MonPtr xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool); extern _X_EXPORT xf86MonPtr xf86DoEEDID(ScrnInfoPtr pScrn, I2CBusPtr pBus, Bool);
extern _X_EXPORT xf86MonPtr xf86PrintEDID(xf86MonPtr monPtr); extern _X_EXPORT xf86MonPtr xf86PrintEDID(xf86MonPtr monPtr);
@ -50,7 +50,7 @@ extern _X_EXPORT DisplayModePtr xf86DDCGetModes(int scrnIndex, xf86MonPtr DDC);
extern _X_EXPORT Bool extern _X_EXPORT Bool
xf86MonitorIsHDMI(xf86MonPtr mon); xf86MonitorIsHDMI(xf86MonPtr mon);
extern _X_EXPORT xf86MonPtr xf86DoDisplayID(int scrnIndex, I2CBusPtr pBus); extern _X_EXPORT xf86MonPtr xf86DoDisplayID(ScrnInfoPtr pScrn, I2CBusPtr pBus);
extern _X_EXPORT void extern _X_EXPORT void
xf86DisplayIDMonitorSet(int scrnIndex, MonPtr mon, xf86MonPtr DDC); xf86DisplayIDMonitorSet(int scrnIndex, MonPtr mon, xf86MonPtr DDC);

View File

@ -1306,7 +1306,7 @@ Here is what <function>InitOutput()</function> does:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
Bool ChipScreenInit(int index, ScreenPtr pScreen, Bool ChipScreenInit(ScreenPtr pScreen,
int argc, char **argv); int argc, char **argv);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
@ -1442,7 +1442,7 @@ Here is what <function>InitOutput()</function> does:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
Bool ChipSwitchMode(int index, DisplayModePtr mode, int flags); Bool ChipSwitchMode(int index, DisplayModePtr mode);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
Initialises the new mode for the screen identified by Initialises the new mode for the screen identified by
@ -1464,7 +1464,7 @@ Here is what <function>InitOutput()</function> does:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
void ChipAdjustFrame(int index, int x, int y, int flags); void ChipAdjustFrame(int index, int x, int y);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
Changes the viewport for the screen identified by Changes the viewport for the screen identified by
@ -1572,7 +1572,7 @@ Here is what <function>InitOutput()</function> does:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
Bool ChipEnterVT(int index, int flags); Bool ChipEnterVT(ScrnInfoPtr pScrn);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
This function should initialise the current video mode and This function should initialise the current video mode and
@ -1589,7 +1589,7 @@ Here is what <function>InitOutput()</function> does:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
void ChipLeaveVT(int index, int flags); void ChipLeaveVT(ScrnInfoPtr pScrn);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
This function should restore the saved video state. If This function should restore the saved video state. If
@ -1691,7 +1691,7 @@ but their presence is optional.
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
ModeStatus ChipValidMode(int index, DisplayModePtr mode, ModeStatus ChipValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode,
Bool verbose, int flags); Bool verbose, int flags);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
@ -1739,7 +1739,7 @@ MODECHECK_FINAL are intended for checks that may involve more than one mode.
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
void ChipFreeScreen(int scrnindex, int flags); void ChipFreeScreen(ScrnInfoPtr pScrn);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
Free any driver-allocated data that may have been allocated up to Free any driver-allocated data that may have been allocated up to
@ -2824,12 +2824,12 @@ Several functions are provided to simplify resource registration:
<blockquote><para> <blockquote><para>
<programlisting> <programlisting>
Bool xf86IsScreenPrimary(int scrnIndex); Bool xf86IsScreenPrimary(ScrnInfoPtr pScrn);
</programlisting> </programlisting>
<blockquote><para> <blockquote><para>
This function returns <constant>TRUE</constant> if the primary entity This function returns <constant>TRUE</constant> if the primary entity
is registered with the screen referenced by is registered with the screen referenced by
<parameter>scrnIndex</parameter>. <parameter>pScrn</parameter>.
</para> </para>
</blockquote></para></blockquote> </blockquote></para></blockquote>
@ -9033,7 +9033,7 @@ ZZZModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
<programlisting> <programlisting>
static Bool static Bool
ZZZScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) ZZZScreenInit(ScreenPtr pScreen, int argc, char **argv)
{ {
/* Get the ScrnInfoRec */ /* Get the ScrnInfoRec */
pScrn = xf86ScreenToScrn(pScreen); pScrn = xf86ScreenToScrn(pScreen);
@ -9051,7 +9051,7 @@ ZZZScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Set the viewport if supported */ /* Set the viewport if supported */
ZZZAdjustFrame(scrnIndex, pScrn-&gt;frameX0, pScrn-&gt;frameY0, 0); ZZZAdjustFrame(pScrn, pScrn-&gt;frameX0, pScrn-&gt;frameY0);
/* /*
* Setup the screen's visuals, and initialise the framebuffer * Setup the screen's visuals, and initialise the framebuffer
@ -9220,9 +9220,9 @@ ZZZScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
<programlisting> <programlisting>
static Bool static Bool
ZZZSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) ZZZSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
return ZZZModeInit(xf86Screens[scrnIndex], mode); return ZZZModeInit(pScrn, mode);
} }
</programlisting> </programlisting>
</sect3> </sect3>
@ -9237,7 +9237,7 @@ ZZZSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
<programlisting> <programlisting>
static void static void
ZZZAdjustFrame(int scrnIndex, int x, int y, int flags) ZZZAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
{ {
/* Adjust the viewport */ /* Adjust the viewport */
} }
@ -9258,16 +9258,14 @@ ZZZAdjustFrame(int scrnIndex, int x, int y, int flags)
<programlisting> <programlisting>
static Bool static Bool
ZZZEnterVT(int scrnIndex, int flags) ZZZEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
return ZZZModeInit(pScrn, pScrn-&gt;currentMode); return ZZZModeInit(pScrn, pScrn-&gt;currentMode);
} }
static void static void
ZZZLeaveVT(int scrnIndex, int flags) ZZZLeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
ZZZRestore(pScrn); ZZZRestore(pScrn);
} }
</programlisting> </programlisting>
@ -9288,16 +9286,16 @@ ZZZLeaveVT(int scrnIndex, int flags)
<programlisting> <programlisting>
static Bool static Bool
ZZZCloseScreen(int scrnIndex, ScreenPtr pScreen) ZZZCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex]; ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
if (pScrn-&gt;vtSema) { if (pScrn-&gt;vtSema) {
ZZZRestore(pScrn); ZZZRestore(pScrn);
ZZZUnmapMem(pScrn); ZZZUnmapMem(pScrn);
} }
pScrn-&gt;vtSema = FALSE; pScrn-&gt;vtSema = FALSE;
pScreen-&gt;CloseScreen = ZZZPTR(pScrn)-&gt;CloseScreen; pScreen-&gt;CloseScreen = ZZZPTR(pScrn)-&gt;CloseScreen;
return (*pScreen-&gt;CloseScreen)(scrnIndex, pScreen); return (*pScreen-&gt;CloseScreen)(pScreen);
} }
</programlisting> </programlisting>
</sect3> </sect3>
@ -9342,13 +9340,13 @@ ZZZSaveScreen(ScreenPtr pScreen, int mode)
<programlisting> <programlisting>
static void static void
ZZZFreeScreen(int scrnIndex, int flags) ZZZFreeScreen(ScrnInfoPtr pScrn)
{ {
/* /*
* If the vgahw module is used vgaHWFreeHWRec() would be called * If the vgahw module is used vgaHWFreeHWRec() would be called
* here. * here.
*/ */
ZZZFreeRec(xf86Screens[scrnIndex]); ZZZFreeRec(pScrn);
} }
</programlisting> </programlisting>

View File

@ -1618,7 +1618,7 @@ DRIWakeupHandler(pointer wakeupData, int result, pointer pReadmask)
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
if (pDRIPriv && pDRIPriv->pDriverInfo->wrap.WakeupHandler) if (pDRIPriv && pDRIPriv->pDriverInfo->wrap.WakeupHandler)
(*pDRIPriv->pDriverInfo->wrap.WakeupHandler) (i, wakeupData, (*pDRIPriv->pDriverInfo->wrap.WakeupHandler) (pScreen,
result, pReadmask); result, pReadmask);
} }
} }
@ -1633,16 +1633,15 @@ DRIBlockHandler(pointer blockData, OSTimePtr pTimeout, pointer pReadmask)
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
if (pDRIPriv && pDRIPriv->pDriverInfo->wrap.BlockHandler) if (pDRIPriv && pDRIPriv->pDriverInfo->wrap.BlockHandler)
(*pDRIPriv->pDriverInfo->wrap.BlockHandler) (i, blockData, (*pDRIPriv->pDriverInfo->wrap.BlockHandler) (pScreen,
pTimeout, pReadmask); pTimeout, pReadmask);
} }
} }
void void
DRIDoWakeupHandler(int screenNum, pointer wakeupData, DRIDoWakeupHandler(ScreenPtr pScreen,
unsigned long result, pointer pReadmask) unsigned long result, pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[screenNum];
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
DRILock(pScreen, 0); DRILock(pScreen, 0);
@ -1658,10 +1657,9 @@ DRIDoWakeupHandler(int screenNum, pointer wakeupData,
} }
void void
DRIDoBlockHandler(int screenNum, pointer blockData, DRIDoBlockHandler(ScreenPtr pScreen,
pointer pTimeout, pointer pReadmask) pointer pTimeout, pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[screenNum];
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
if (pDRIPriv->pDriverInfo->driverSwapMethod == DRI_HIDE_X_CONTEXT) { if (pDRIPriv->pDriverInfo->driverSwapMethod == DRI_HIDE_X_CONTEXT) {
@ -2307,15 +2305,14 @@ _DRIAdjustFrame(ScrnInfoPtr pScrn, DRIScreenPrivPtr pDRIPriv, int x, int y)
} }
void void
DRIAdjustFrame(int scrnIndex, int x, int y, int flags) DRIAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
{ {
ScreenPtr pScreen = screenInfo.screens[scrnIndex]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
int px, py; int px, py;
if (!pDRIPriv || !pDRIPriv->pSAREA) { if (!pDRIPriv || !pDRIPriv->pSAREA) {
DRIDrvMsg(scrnIndex, X_ERROR, "[DRI] No SAREA (%p %p)\n", DRIDrvMsg(pScrn->scrnIndex, X_ERROR, "[DRI] No SAREA (%p %p)\n",
pDRIPriv, pDRIPriv ? pDRIPriv->pSAREA : NULL); pDRIPriv, pDRIPriv ? pDRIPriv->pSAREA : NULL);
return; return;
} }
@ -2347,7 +2344,7 @@ DRIAdjustFrame(int scrnIndex, int x, int y, int flags)
/* unwrap */ /* unwrap */
pScrn->AdjustFrame = pDRIPriv->wrap.AdjustFrame; pScrn->AdjustFrame = pDRIPriv->wrap.AdjustFrame;
/* call lower layers */ /* call lower layers */
(*pScrn->AdjustFrame) (scrnIndex, x, y, flags); (*pScrn->AdjustFrame) (pScrn, x, y);
/* rewrap */ /* rewrap */
pDRIPriv->wrap.AdjustFrame = pScrn->AdjustFrame; pDRIPriv->wrap.AdjustFrame = pScrn->AdjustFrame;
pScrn->AdjustFrame = DRIAdjustFrame; pScrn->AdjustFrame = DRIAdjustFrame;

View File

@ -73,7 +73,7 @@ typedef int DRIWindowRequests;
#define DRI_ALL_WINDOWS 2 #define DRI_ALL_WINDOWS 2
typedef void (*ClipNotifyPtr) (WindowPtr, int, int); typedef void (*ClipNotifyPtr) (WindowPtr, int, int);
typedef void (*AdjustFramePtr) (int scrnIndex, int x, int y, int flags); typedef void (*AdjustFramePtr) (ScrnInfoPtr pScrn, int x, int y);
/* /*
* These functions can be wrapped by the DRI. Each of these have * These functions can be wrapped by the DRI. Each of these have
@ -271,13 +271,11 @@ extern _X_EXPORT void DRIWakeupHandler(pointer wakeupData,
extern _X_EXPORT void DRIBlockHandler(pointer blockData, extern _X_EXPORT void DRIBlockHandler(pointer blockData,
OSTimePtr pTimeout, pointer pReadmask); OSTimePtr pTimeout, pointer pReadmask);
extern _X_EXPORT void DRIDoWakeupHandler(int screenNum, extern _X_EXPORT void DRIDoWakeupHandler(ScreenPtr pScreen,
pointer wakeupData,
unsigned long result, unsigned long result,
pointer pReadmask); pointer pReadmask);
extern _X_EXPORT void DRIDoBlockHandler(int screenNum, extern _X_EXPORT void DRIDoBlockHandler(ScreenPtr pScreen,
pointer blockData,
pointer pTimeout, pointer pReadmask); pointer pTimeout, pointer pReadmask);
extern _X_EXPORT void DRISwapContext(int drmFD, void *oldctx, void *newctx); extern _X_EXPORT void DRISwapContext(int drmFD, void *oldctx, void *newctx);
@ -334,7 +332,7 @@ extern _X_EXPORT drm_context_t DRIGetContext(ScreenPtr pScreen);
extern _X_EXPORT void DRIQueryVersion(int *majorVersion, extern _X_EXPORT void DRIQueryVersion(int *majorVersion,
int *minorVersion, int *patchVersion); int *minorVersion, int *patchVersion);
extern _X_EXPORT void DRIAdjustFrame(int scrnIndex, int x, int y, int flags); extern _X_EXPORT void DRIAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
extern _X_EXPORT void DRIMoveBuffersHelper(ScreenPtr pScreen, extern _X_EXPORT void DRIMoveBuffersHelper(ScreenPtr pScreen,
int dx, int dx,

View File

@ -38,7 +38,7 @@
typedef struct _ExaXorgScreenPrivRec { typedef struct _ExaXorgScreenPrivRec {
CloseScreenProcPtr SavedCloseScreen; CloseScreenProcPtr SavedCloseScreen;
EnableDisableFBAccessProcPtr SavedEnableDisableFBAccess; xf86EnableDisableFBAccessProc *SavedEnableDisableFBAccess;
OptionInfoPtr options; OptionInfoPtr options;
} ExaXorgScreenPrivRec, *ExaXorgScreenPrivPtr; } ExaXorgScreenPrivRec, *ExaXorgScreenPrivPtr;
@ -70,7 +70,7 @@ static const OptionInfoRec EXAOptions[] = {
}; };
static Bool static Bool
exaXorgCloseScreen(int i, ScreenPtr pScreen) exaXorgCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
ExaXorgScreenPrivPtr pScreenPriv = (ExaXorgScreenPrivPtr) ExaXorgScreenPrivPtr pScreenPriv = (ExaXorgScreenPrivPtr)
@ -83,24 +83,24 @@ exaXorgCloseScreen(int i, ScreenPtr pScreen)
free(pScreenPriv->options); free(pScreenPriv->options);
free(pScreenPriv); free(pScreenPriv);
return pScreen->CloseScreen(i, pScreen); return pScreen->CloseScreen(pScreen);
} }
static void static void
exaXorgEnableDisableFBAccess(int index, Bool enable) exaXorgEnableDisableFBAccess(ScrnInfoPtr pScrn, Bool enable)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ExaXorgScreenPrivPtr pScreenPriv = (ExaXorgScreenPrivPtr) ExaXorgScreenPrivPtr pScreenPriv = (ExaXorgScreenPrivPtr)
dixLookupPrivate(&pScreen->devPrivates, exaXorgScreenPrivateKey); dixLookupPrivate(&pScreen->devPrivates, exaXorgScreenPrivateKey);
if (!enable) if (!enable)
exaEnableDisableFBAccess(index, enable); exaEnableDisableFBAccess(pScreen, enable);
if (pScreenPriv->SavedEnableDisableFBAccess) if (pScreenPriv->SavedEnableDisableFBAccess)
pScreenPriv->SavedEnableDisableFBAccess(index, enable); pScreenPriv->SavedEnableDisableFBAccess(pScrn, enable);
if (enable) if (enable)
exaEnableDisableFBAccess(index, enable); exaEnableDisableFBAccess(pScreen, enable);
} }
/** /**

View File

@ -775,10 +775,8 @@ fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
/* these can be hooked directly into ScrnInfoRec */ /* these can be hooked directly into ScrnInfoRec */
ModeStatus ModeStatus
fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) fbdevHWValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
if (!fbdevHWSetMode(pScrn, mode, TRUE)) if (!fbdevHWSetMode(pScrn, mode, TRUE))
return MODE_BAD; return MODE_BAD;
@ -786,10 +784,8 @@ fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags)
} }
Bool Bool
fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
if (!fbdevHWSetMode(pScrn, mode, FALSE)) if (!fbdevHWSetMode(pScrn, mode, FALSE))
return FALSE; return FALSE;
@ -797,9 +793,8 @@ fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
} }
void void
fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags) fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
fbdevHWPtr fPtr = FBDEVHWPTR(pScrn); fbdevHWPtr fPtr = FBDEVHWPTR(pScrn);
if (x < 0 || x + fPtr->var.xres > fPtr->var.xres_virtual || if (x < 0 || x + fPtr->var.xres > fPtr->var.xres_virtual ||
@ -809,26 +804,22 @@ fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags)
fPtr->var.xoffset = x; fPtr->var.xoffset = x;
fPtr->var.yoffset = y; fPtr->var.yoffset = y;
if (-1 == ioctl(fPtr->fd, FBIOPAN_DISPLAY, (void *) &fPtr->var)) if (-1 == ioctl(fPtr->fd, FBIOPAN_DISPLAY, (void *) &fPtr->var))
xf86DrvMsgVerb(scrnIndex, X_WARNING, 5, xf86DrvMsgVerb(pScrn->scrnIndex, X_WARNING, 5,
"FBIOPAN_DISPLAY: %s\n", strerror(errno)); "FBIOPAN_DISPLAY: %s\n", strerror(errno));
} }
Bool Bool
fbdevHWEnterVT(int scrnIndex, int flags) fbdevHWEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
if (!fbdevHWModeInit(pScrn, pScrn->currentMode)) if (!fbdevHWModeInit(pScrn, pScrn->currentMode))
return FALSE; return FALSE;
fbdevHWAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0); fbdevHWAdjustFrame(pScrn, pScrn->frameX0, pScrn->frameY0);
return TRUE; return TRUE;
} }
void void
fbdevHWLeaveVT(int scrnIndex, int flags) fbdevHWLeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
fbdevHWRestore(pScrn); fbdevHWRestore(pScrn);
} }

View File

@ -44,14 +44,12 @@ extern _X_EXPORT void fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors,
int *indices, LOCO * colors, int *indices, LOCO * colors,
VisualPtr pVisual); VisualPtr pVisual);
extern _X_EXPORT ModeStatus fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, extern _X_EXPORT ModeStatus fbdevHWValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode,
Bool verbose, int flags); Bool verbose, int flags);
extern _X_EXPORT Bool fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, extern _X_EXPORT Bool fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
int flags); extern _X_EXPORT void fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y);
extern _X_EXPORT void fbdevHWAdjustFrame(int scrnIndex, int x, int y, extern _X_EXPORT Bool fbdevHWEnterVT(ScrnInfoPtr pScrn);
int flags); extern _X_EXPORT void fbdevHWLeaveVT(ScrnInfoPtr pScrn);
extern _X_EXPORT Bool fbdevHWEnterVT(int scrnIndex, int flags);
extern _X_EXPORT void fbdevHWLeaveVT(int scrnIndex, int flags);
extern _X_EXPORT void fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags); extern _X_EXPORT void fbdevHWDPMSSet(ScrnInfoPtr pScrn, int mode, int flags);
extern _X_EXPORT Bool fbdevHWSaveScreen(ScreenPtr pScreen, int mode); extern _X_EXPORT Bool fbdevHWSaveScreen(ScreenPtr pScreen, int mode);

View File

@ -131,30 +131,30 @@ fbdevHWLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices,
} }
ModeStatus ModeStatus
fbdevHWValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) fbdevHWValidMode(ScrnInfoPtr pScrn, DisplayModePtr mode, Bool verbose, int flags)
{ {
return MODE_ERROR; return MODE_ERROR;
} }
Bool Bool
fbdevHWSwitchMode(int scrnIndex, DisplayModePtr mode, int flags) fbdevHWSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
return FALSE; return FALSE;
} }
void void
fbdevHWAdjustFrame(int scrnIndex, int x, int y, int flags) fbdevHWAdjustFrame(ScrnInfoPtr pScrn, int x, int y, int flags)
{ {
} }
Bool Bool
fbdevHWEnterVT(int scrnIndex, int flags) fbdevHWEnterVT(ScrnInfoPtr pScrn)
{ {
return FALSE; return FALSE;
} }
void void
fbdevHWLeaveVT(int scrnIndex, int flags) fbdevHWLeaveVT(ScrnInfoPtr pScrn)
{ {
} }

View File

@ -709,6 +709,7 @@ xf86CreateI2CBusRec(void)
if (b != NULL) { if (b != NULL) {
b->scrnIndex = -1; b->scrnIndex = -1;
b->pScrn = NULL;
b->HoldTime = 5; /* 100 kHz bus */ b->HoldTime = 5; /* 100 kHz bus */
b->BitTimeout = 5; b->BitTimeout = 5;
b->ByteTimeout = 5; b->ByteTimeout = 5;

View File

@ -6,6 +6,7 @@
#define _XF86I2C_H #define _XF86I2C_H
#include "regionstr.h" #include "regionstr.h"
#include "xf86.h"
typedef unsigned char I2CByte; typedef unsigned char I2CByte;
typedef unsigned short I2CSlaveAddr; typedef unsigned short I2CSlaveAddr;
@ -18,6 +19,7 @@ typedef struct _I2CDevRec *I2CDevPtr;
typedef struct _I2CBusRec { typedef struct _I2CBusRec {
char *BusName; char *BusName;
int scrnIndex; int scrnIndex;
ScrnInfoPtr pScrn;
void (*I2CUDelay) (I2CBusPtr b, int usec); void (*I2CUDelay) (I2CBusPtr b, int usec);

View File

@ -70,12 +70,12 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
void *base = 0; void *base = 0;
void *vbiosMem = 0; void *vbiosMem = 0;
void *options = NULL; void *options = NULL;
int screen;
legacyVGARec vga; legacyVGARec vga;
ScrnInfoPtr pScrn;
screen = (xf86FindScreenForEntity(entityIndex))->scrnIndex; pScrn = xf86FindScreenForEntity(entityIndex);
options = xf86HandleInt10Options(xf86Screens[screen], entityIndex); options = xf86HandleInt10Options(pScrn, entityIndex);
if (int10skip(options)) { if (int10skip(options)) {
free(options); free(options);
@ -89,7 +89,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
pInt->mem = &genericMem; pInt->mem = &genericMem;
pInt->private = (pointer) xnfcalloc(1, sizeof(genericInt10Priv)); pInt->private = (pointer) xnfcalloc(1, sizeof(genericInt10Priv));
INTPriv(pInt)->alloc = (pointer) xnfcalloc(1, ALLOC_ENTRIES(getpagesize())); INTPriv(pInt)->alloc = (pointer) xnfcalloc(1, ALLOC_ENTRIES(getpagesize()));
pInt->scrnIndex = screen; pInt->pScrn = pScrn;
base = INTPriv(pInt)->base = xnfalloc(SYS_BIOS); base = INTPriv(pInt)->base = xnfalloc(SYS_BIOS);
/* FIXME: Shouldn't this be a failure case? Leaving dev as NULL seems like /* FIXME: Shouldn't this be a failure case? Leaving dev as NULL seems like
@ -109,7 +109,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
INTPriv(pInt)->sysMem = sysMem; INTPriv(pInt)->sysMem = sysMem;
if (xf86ReadBIOS(0, 0, base, LOW_PAGE_SIZE) < 0) { if (xf86ReadBIOS(0, 0, base, LOW_PAGE_SIZE) < 0) {
xf86DrvMsg(screen, X_ERROR, "Cannot read int vect\n"); xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot read int vect\n");
goto error1; goto error1;
} }
@ -148,7 +148,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
vbiosMem = (unsigned char *) base + bios_location; vbiosMem = (unsigned char *) base + bios_location;
err = pci_device_read_rom(rom_device, vbiosMem); err = pci_device_read_rom(rom_device, vbiosMem);
if (err) { if (err) {
xf86DrvMsg(screen, X_ERROR, "Cannot read V_BIOS (3) %s\n", xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Cannot read V_BIOS (3) %s\n",
strerror(err)); strerror(err));
goto error1; goto error1;
} }
@ -249,7 +249,6 @@ MapVRam(xf86Int10InfoPtr pInt)
static void static void
UnmapVRam(xf86Int10InfoPtr pInt) UnmapVRam(xf86Int10InfoPtr pInt)
{ {
int screen = pInt->scrnIndex;
int pagesize = getpagesize(); int pagesize = getpagesize();
int size = ((VRAM_SIZE + pagesize - 1) / pagesize) * pagesize; int size = ((VRAM_SIZE + pagesize - 1) / pagesize) * pagesize;

View File

@ -125,7 +125,7 @@ run_bios_int(int num, xf86Int10InfoPtr pInt)
if (MEM_RW(pInt, (num << 2) + 2) == (SYS_BIOS >> 4)) { /* SYS_BIOS_SEG ? */ if (MEM_RW(pInt, (num << 2) + 2) == (SYS_BIOS >> 4)) { /* SYS_BIOS_SEG ? */
if (num == 21 && X86_AH == 0x4e) { if (num == 21 && X86_AH == 0x4e) {
xf86DrvMsg(pInt->scrnIndex, X_NOTICE, xf86DrvMsg(pInt->pScrn->scrnIndex, X_NOTICE,
"Failing Find-Matching-File on non-PC" "Failing Find-Matching-File on non-PC"
" (int 21, func 4e)\n"); " (int 21, func 4e)\n");
X86_AX = 2; X86_AX = 2;
@ -133,7 +133,7 @@ run_bios_int(int num, xf86Int10InfoPtr pInt)
return 1; return 1;
} }
else { else {
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"Ignoring int 0x%02x call\n", num); "Ignoring int 0x%02x call\n", num);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
dump_registers(pInt); dump_registers(pInt);
@ -169,7 +169,7 @@ dump_code(xf86Int10InfoPtr pInt)
int i; int i;
CARD32 lina = SEG_ADR((CARD32), X86_CS, IP); CARD32 lina = SEG_ADR((CARD32), X86_CS, IP);
xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3, "code at 0x%8.8" PRIx32 ":\n", xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_INFO, 3, "code at 0x%8.8" PRIx32 ":\n",
lina); lina);
for (i = 0; i < 0x10; i++) for (i = 0; i < 0x10; i++)
xf86ErrorFVerb(3, " %2.2x", MEM_RB(pInt, lina + i)); xf86ErrorFVerb(3, " %2.2x", MEM_RB(pInt, lina + i));
@ -182,19 +182,19 @@ dump_code(xf86Int10InfoPtr pInt)
void void
dump_registers(xf86Int10InfoPtr pInt) dump_registers(xf86Int10InfoPtr pInt)
{ {
xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_INFO, 3,
"EAX=0x%8.8lx, EBX=0x%8.8lx, ECX=0x%8.8lx, EDX=0x%8.8lx\n", "EAX=0x%8.8lx, EBX=0x%8.8lx, ECX=0x%8.8lx, EDX=0x%8.8lx\n",
(unsigned long) X86_EAX, (unsigned long) X86_EBX, (unsigned long) X86_EAX, (unsigned long) X86_EBX,
(unsigned long) X86_ECX, (unsigned long) X86_EDX); (unsigned long) X86_ECX, (unsigned long) X86_EDX);
xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_INFO, 3,
"ESP=0x%8.8lx, EBP=0x%8.8lx, ESI=0x%8.8lx, EDI=0x%8.8lx\n", "ESP=0x%8.8lx, EBP=0x%8.8lx, ESI=0x%8.8lx, EDI=0x%8.8lx\n",
(unsigned long) X86_ESP, (unsigned long) X86_EBP, (unsigned long) X86_ESP, (unsigned long) X86_EBP,
(unsigned long) X86_ESI, (unsigned long) X86_EDI); (unsigned long) X86_ESI, (unsigned long) X86_EDI);
xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_INFO, 3,
"CS=0x%4.4x, SS=0x%4.4x," "CS=0x%4.4x, SS=0x%4.4x,"
" DS=0x%4.4x, ES=0x%4.4x, FS=0x%4.4x, GS=0x%4.4x\n", " DS=0x%4.4x, ES=0x%4.4x, FS=0x%4.4x, GS=0x%4.4x\n",
X86_CS, X86_SS, X86_DS, X86_ES, X86_FS, X86_GS); X86_CS, X86_SS, X86_DS, X86_ES, X86_FS, X86_GS);
xf86DrvMsgVerb(pInt->scrnIndex, X_INFO, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_INFO, 3,
"EIP=0x%8.8lx, EFLAGS=0x%8.8lx\n", "EIP=0x%8.8lx, EFLAGS=0x%8.8lx\n",
(unsigned long) X86_EIP, (unsigned long) X86_EFLAGS); (unsigned long) X86_EIP, (unsigned long) X86_EFLAGS);
} }
@ -337,7 +337,7 @@ x_inb(CARD16 port)
} }
else if (port < 0x0100) { /* Don't interfere with mainboard */ else if (port < 0x0100) { /* Don't interfere with mainboard */
val = 0; val = 0;
xf86DrvMsgVerb(Int10Current->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(Int10Current->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"inb 0x%4.4x\n", port); "inb 0x%4.4x\n", port);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
dump_registers(Int10Current); dump_registers(Int10Current);
@ -395,7 +395,7 @@ x_outb(CARD16 port, CARD8 val)
#ifdef __NOT_YET__ #ifdef __NOT_YET__
} }
else if (port < 0x0100) { /* Don't interfere with mainboard */ else if (port < 0x0100) { /* Don't interfere with mainboard */
xf86DrvMsgVerb(Int10Current->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(Int10Current->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"outb 0x%4.4x,0x%2.2x\n", port, val); "outb 0x%4.4x,0x%2.2x\n", port, val);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
dump_registers(Int10Current); dump_registers(Int10Current);

View File

@ -281,7 +281,7 @@ xf86int10GetBiosLocationType(const xf86Int10InfoPtr pInt)
#define CHECK_V_SEGMENT_RANGE(x) \ #define CHECK_V_SEGMENT_RANGE(x) \
if (((x) << 4) < V_BIOS) { \ if (((x) << 4) < V_BIOS) { \
xf86DrvMsg(pInt->scrnIndex, X_ERROR, \ xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, \
"V_BIOS address 0x%lx out of range\n", \ "V_BIOS address 0x%lx out of range\n", \
(unsigned long)(x) << 4); \ (unsigned long)(x) << 4); \
return FALSE; \ return FALSE; \
@ -306,17 +306,17 @@ xf86int10GetBiosSegment(xf86Int10InfoPtr pInt, void *base)
CHECK_V_SEGMENT_RANGE(cs); CHECK_V_SEGMENT_RANGE(cs);
vbiosMem = (unsigned char *) base + (cs << 4); vbiosMem = (unsigned char *) base + (cs << 4);
if (int10_check_bios(pInt->scrnIndex, cs, vbiosMem)) { if (int10_check_bios(pInt->pScrn->scrnIndex, cs, vbiosMem)) {
break; break;
} }
} }
if (segments[i] == ~0) { if (segments[i] == ~0) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "No V_BIOS found\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "No V_BIOS found\n");
return FALSE; return FALSE;
} }
xf86DrvMsg(pInt->scrnIndex, X_INFO, "Primary V_BIOS segment is: 0x%lx\n", xf86DrvMsg(pInt->pScrn->scrnIndex, X_INFO, "Primary V_BIOS segment is: 0x%lx\n",
(unsigned long) cs); (unsigned long) cs);
pInt->BIOSseg = cs; pInt->BIOSseg = cs;

View File

@ -57,7 +57,7 @@ int_handler(xf86Int10InfoPtr pInt)
ret = run_bios_int(num, pInt); ret = run_bios_int(num, pInt);
if (!ret) { if (!ret) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "Halting on int 0x%2.2x!\n", num); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "Halting on int 0x%2.2x!\n", num);
dump_registers(pInt); dump_registers(pInt);
stack_trace(pInt); stack_trace(pInt);
} }
@ -257,7 +257,7 @@ int42_handler(xf86Int10InfoPtr pInt)
/* DL = character column */ /* DL = character column */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x04) -- Get Light Pen Position\n", "int 0x%2.2x(AH=0x04) -- Get Light Pen Position\n",
pInt->num); pInt->num);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -314,10 +314,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: Nothing */ /* Leave: Nothing */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x06) -- Initialise or Scroll Window Up\n", "int 0x%2.2x(AH=0x06) -- Initialise or Scroll Window Up\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
" AL=0x%2.2x, BH=0x%2.2x," " AL=0x%2.2x, BH=0x%2.2x,"
" CH=0x%2.2x, CL=0x%2.2x, DH=0x%2.2x, DL=0x%2.2x\n", " CH=0x%2.2x, CL=0x%2.2x, DH=0x%2.2x, DL=0x%2.2x\n",
X86_AL, X86_BH, X86_CH, X86_CL, X86_DH, X86_DL); X86_AL, X86_BH, X86_CH, X86_CL, X86_DH, X86_DL);
@ -339,10 +339,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: Nothing */ /* Leave: Nothing */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x07) -- Initialise or Scroll Window Down\n", "int 0x%2.2x(AH=0x07) -- Initialise or Scroll Window Down\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
" AL=0x%2.2x, BH=0x%2.2x," " AL=0x%2.2x, BH=0x%2.2x,"
" CH=0x%2.2x, CL=0x%2.2x, DH=0x%2.2x, DL=0x%2.2x\n", " CH=0x%2.2x, CL=0x%2.2x, DH=0x%2.2x, DL=0x%2.2x\n",
X86_AL, X86_BH, X86_CH, X86_CL, X86_DH, X86_DL); X86_AL, X86_BH, X86_CH, X86_CL, X86_DH, X86_DL);
@ -360,10 +360,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* AL = character */ /* AL = character */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x08) -- Read Character and Attribute at" "int 0x%2.2x(AH=0x08) -- Read Character and Attribute at"
" Cursor\n", pInt->num); " Cursor\n", pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"BH=0x%2.2x\n", X86_BH); "BH=0x%2.2x\n", X86_BH);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
dump_registers(pInt); dump_registers(pInt);
@ -382,10 +382,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: Nothing */ /* Leave: Nothing */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x09) -- Write Character and Attribute at" "int 0x%2.2x(AH=0x09) -- Write Character and Attribute at"
" Cursor\n", pInt->num); " Cursor\n", pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x\n", "AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x\n",
X86_AL, X86_BH, X86_BL, X86_CX); X86_AL, X86_BH, X86_BL, X86_CX);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -404,10 +404,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: Nothing */ /* Leave: Nothing */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x0A) -- Write Character at Cursor\n", "int 0x%2.2x(AH=0x0A) -- Write Character at Cursor\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x\n", "AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x\n",
X86_AL, X86_BH, X86_BL, X86_CX); X86_AL, X86_BH, X86_BL, X86_CX);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -450,10 +450,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: Nothing */ /* Leave: Nothing */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x0C) -- Write Graphics Pixel\n", "int 0x%2.2x(AH=0x0C) -- Write Graphics Pixel\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"AL=0x%2.2x, BH=0x%2.2x, CX=0x%4.4x, DX=0x%4.4x\n", "AL=0x%2.2x, BH=0x%2.2x, CX=0x%4.4x, DX=0x%4.4x\n",
X86_AL, X86_BH, X86_CX, X86_DX); X86_AL, X86_BH, X86_CX, X86_DX);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -471,10 +471,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* Leave: AL = pixel value */ /* Leave: AL = pixel value */
/* Not Implemented */ /* Not Implemented */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x0D) -- Read Graphics Pixel\n", "int 0x%2.2x(AH=0x0D) -- Read Graphics Pixel\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"BH=0x%2.2x, CX=0x%4.4x, DX=0x%4.4x\n", X86_BH, X86_CX, "BH=0x%2.2x, CX=0x%4.4x, DX=0x%4.4x\n", X86_BH, X86_CX,
X86_DX); X86_DX);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -498,10 +498,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* which might or might not have been */ /* which might or might not have been */
/* installed yet. */ /* installed yet. */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x0E) -- Write Character in Teletype Mode\n", "int 0x%2.2x(AH=0x0E) -- Write Character in Teletype Mode\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x\n", "AL=0x%2.2x, BH=0x%2.2x, BL=0x%2.2x\n",
X86_AL, X86_BH, X86_BL); X86_AL, X86_BH, X86_BL);
if (xf86GetVerbosity() > 3) { if (xf86GetVerbosity() > 3) {
@ -564,10 +564,10 @@ int42_handler(xf86Int10InfoPtr pInt)
/* which might or might not have been */ /* which might or might not have been */
/* installed yet. */ /* installed yet. */
{ /* Localise */ { /* Localise */
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x%2.2x(AH=0x13) -- Write String in Teletype Mode\n", "int 0x%2.2x(AH=0x13) -- Write String in Teletype Mode\n",
pInt->num); pInt->num);
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 3, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 3,
"AL=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x," "AL=0x%2.2x, BL=0x%2.2x, CX=0x%4.4x,"
" DH=0x%2.2x, DL=0x%2.2x, ES:BP=0x%4.4x:0x%4.4x\n", " DH=0x%2.2x, DL=0x%2.2x, ES:BP=0x%4.4x:0x%4.4x\n",
X86_AL, X86_BL, X86_CX, X86_DH, X86_DL, X86_ES, X86_BP); X86_AL, X86_BL, X86_CX, X86_DH, X86_DL, X86_ES, X86_BP);
@ -840,7 +840,7 @@ int1A_handler(xf86Int10InfoPtr pInt)
#endif #endif
return 1; return 1;
default: default:
xf86DrvMsgVerb(pInt->scrnIndex, X_NOT_IMPLEMENTED, 2, xf86DrvMsgVerb(pInt->pScrn->scrnIndex, X_NOT_IMPLEMENTED, 2,
"int 0x1a subfunction\n"); "int 0x1a subfunction\n");
dump_registers(pInt); dump_registers(pInt);
if (xf86GetVerbosity() > 3) if (xf86GetVerbosity() > 3)

View File

@ -21,10 +21,10 @@
/* int10 info structure */ /* int10 info structure */
typedef struct { typedef struct {
int entityIndex; int entityIndex;
int scrnIndex;
pointer cpuRegs;
CARD16 BIOSseg; CARD16 BIOSseg;
CARD16 inb40time; CARD16 inb40time;
ScrnInfoPtr pScrn;
pointer cpuRegs;
char *BIOSScratch; char *BIOSScratch;
int Flags; int Flags;
pointer private; pointer private;

View File

@ -716,7 +716,7 @@ xf86CrtcCreateScreenResources(ScreenPtr screen)
* Clean up config on server reset * Clean up config on server reset
*/ */
static Bool static Bool
xf86CrtcCloseScreen(int index, ScreenPtr screen) xf86CrtcCloseScreen(ScreenPtr screen)
{ {
ScrnInfoPtr scrn = xf86ScreenToScrn(screen); ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn); xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
@ -738,7 +738,7 @@ xf86CrtcCloseScreen(int index, ScreenPtr screen)
} }
xf86RandR12CloseScreen(screen); xf86RandR12CloseScreen(screen);
return screen->CloseScreen(index, screen); return screen->CloseScreen(screen);
} }
/* /*
@ -3009,7 +3009,7 @@ xf86OutputGetEDID(xf86OutputPtr output, I2CBusPtr pDDCBus)
ScrnInfoPtr scrn = output->scrn; ScrnInfoPtr scrn = output->scrn;
xf86MonPtr mon; xf86MonPtr mon;
mon = xf86DoEEDID(scrn->scrnIndex, pDDCBus, TRUE); mon = xf86DoEEDID(scrn, pDDCBus, TRUE);
if (mon) if (mon)
xf86DDCApplyQuirks(scrn->scrnIndex, mon); xf86DDCApplyQuirks(scrn->scrnIndex, mon);

View File

@ -137,7 +137,7 @@ xf86_dga_get_viewport(ScrnInfoPtr scrn)
static void static void
xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags) xf86_dga_set_viewport(ScrnInfoPtr scrn, int x, int y, int flags)
{ {
scrn->AdjustFrame(scrn->pScreen->myNum, x, y, flags); scrn->AdjustFrame(scrn, x, y);
} }
static Bool static Bool

View File

@ -515,7 +515,7 @@ xf86RandR12SetMode(ScreenPtr pScreen,
Bool ret = TRUE; Bool ret = TRUE;
if (pRoot) if (pRoot)
(*scrp->EnableDisableFBAccess) (pScreen->myNum, FALSE); (*scrp->EnableDisableFBAccess) (scrp, FALSE);
if (useVirtual) { if (useVirtual) {
scrp->virtualX = randrp->virtualX; scrp->virtualX = randrp->virtualX;
scrp->virtualY = randrp->virtualY; scrp->virtualY = randrp->virtualY;
@ -568,7 +568,7 @@ xf86RandR12SetMode(ScreenPtr pScreen,
xf86SetViewport(pScreen, pScreen->width, pScreen->height); xf86SetViewport(pScreen, pScreen->width, pScreen->height);
xf86SetViewport(pScreen, 0, 0); xf86SetViewport(pScreen, 0, 0);
if (pRoot) if (pRoot)
(*scrp->EnableDisableFBAccess) (pScreen->myNum, TRUE); (*scrp->EnableDisableFBAccess) (scrp, TRUE);
return ret; return ret;
} }
@ -685,7 +685,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
} }
} }
if (pRoot && pScrn->vtSema) if (pRoot && pScrn->vtSema)
(*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE); (*pScrn->EnableDisableFBAccess) (pScrn, FALSE);
/* Let the driver update virtualX and virtualY */ /* Let the driver update virtualX and virtualY */
if (!(*config->funcs->resize) (pScrn, width, height)) if (!(*config->funcs->resize) (pScrn, width, height))
@ -724,7 +724,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
update_desktop_dimensions(); update_desktop_dimensions();
if (pRoot && pScrn->vtSema) if (pRoot && pScrn->vtSema)
(*pScrn->EnableDisableFBAccess) (pScreen->myNum, TRUE); (*pScrn->EnableDisableFBAccess) (pScrn, TRUE);
#if RANDR_12_INTERFACE #if RANDR_12_INTERFACE
if (xf86RandR12Key && pScreen->root && ret) if (xf86RandR12Key && pScreen->root && ret)
RRScreenSizeNotify(pScreen); RRScreenSizeNotify(pScreen);
@ -1596,10 +1596,9 @@ xf86RandR12TellChanged(ScreenPtr pScreen)
} }
static void static void
xf86RandR12PointerMoved(int scrnIndex, int x, int y) xf86RandR12PointerMoved(ScrnInfoPtr pScrn, int x, int y)
{ {
ScreenPtr pScreen = screenInfo.screens[scrnIndex]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScrnInfoPtr pScrn = XF86SCRNINFO(pScreen);
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn); xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(pScrn);
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
int c; int c;
@ -1688,10 +1687,9 @@ gamma_to_ramp(float gamma, CARD16 *ramp, int size)
} }
static int static int
xf86RandR12ChangeGamma(int scrnIndex, Gamma gamma) xf86RandR12ChangeGamma(ScrnInfoPtr pScrn, Gamma gamma)
{ {
CARD16 *points, *red, *green, *blue; CARD16 *points, *red, *green, *blue;
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn); RRCrtcPtr crtc = xf86CompatRRCrtc(pScrn);
int size; int size;
@ -1723,10 +1721,9 @@ xf86RandR12ChangeGamma(int scrnIndex, Gamma gamma)
} }
static Bool static Bool
xf86RandR12EnterVT(int screen_index, int flags) xf86RandR12EnterVT(ScrnInfoPtr pScrn)
{ {
ScreenPtr pScreen = screenInfo.screens[screen_index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScrnInfoPtr pScrn = xf86Screens[screen_index];
XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen);
rrScrPrivPtr rp = rrGetScrPriv(pScreen); rrScrPrivPtr rp = rrGetScrPriv(pScreen);
Bool ret; Bool ret;
@ -1734,7 +1731,7 @@ xf86RandR12EnterVT(int screen_index, int flags)
if (randrp->orig_EnterVT) { if (randrp->orig_EnterVT) {
pScrn->EnterVT = randrp->orig_EnterVT; pScrn->EnterVT = randrp->orig_EnterVT;
ret = pScrn->EnterVT(screen_index, flags); ret = pScrn->EnterVT(pScrn);
randrp->orig_EnterVT = pScrn->EnterVT; randrp->orig_EnterVT = pScrn->EnterVT;
pScrn->EnterVT = xf86RandR12EnterVT; pScrn->EnterVT = xf86RandR12EnterVT;
if (!ret) if (!ret)

View File

@ -250,17 +250,16 @@ xf86RotateRedisplay(ScreenPtr pScreen)
} }
static void static void
xf86RotateBlockHandler(int screenNum, pointer blockData, xf86RotateBlockHandler(ScreenPtr pScreen,
pointer pTimeout, pointer pReadmask) pointer pTimeout, pointer pReadmask)
{ {
ScreenPtr pScreen = screenInfo.screens[screenNum]; ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
ScrnInfoPtr pScrn = xf86Screens[screenNum];
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
Bool rotation_active; Bool rotation_active;
rotation_active = xf86RotateRedisplay(pScreen); rotation_active = xf86RotateRedisplay(pScreen);
pScreen->BlockHandler = xf86_config->BlockHandler; pScreen->BlockHandler = xf86_config->BlockHandler;
(*pScreen->BlockHandler) (screenNum, blockData, pTimeout, pReadmask); (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
/* cannot avoid re-wrapping until all wrapping is audited */ /* cannot avoid re-wrapping until all wrapping is audited */
xf86_config->BlockHandler = pScreen->BlockHandler; xf86_config->BlockHandler = pScreen->BlockHandler;
pScreen->BlockHandler = xf86RotateBlockHandler; pScreen->BlockHandler = xf86RotateBlockHandler;

View File

@ -52,7 +52,6 @@ typedef struct {
int highMem; int highMem;
char *base; char *base;
char *base_high; char *base_high;
int screen;
char *alloc; char *alloc;
} linuxInt10Priv; } linuxInt10Priv;
@ -89,15 +88,16 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
memType cs; memType cs;
legacyVGARec vga; legacyVGARec vga;
Bool videoBiosMapped = FALSE; Bool videoBiosMapped = FALSE;
ScrnInfoPtr pScrn;
if (int10Generation != serverGeneration) { if (int10Generation != serverGeneration) {
counter = 0; counter = 0;
int10Generation = serverGeneration; int10Generation = serverGeneration;
} }
screen = (xf86FindScreenForEntity(entityIndex))->scrnIndex; pScrn = xf86FindScreenForEntity(entityIndex);
screen = pScrn->scrnIndex;
options = xf86HandleInt10Options(xf86Screens[screen], entityIndex); options = xf86HandleInt10Options(pScrn, entityIndex);
if (int10skip(options)) { if (int10skip(options)) {
free(options); free(options);
@ -106,7 +106,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
#if defined DoSubModules #if defined DoSubModules
if (loadedSubModule == INT10_NOT_LOADED) if (loadedSubModule == INT10_NOT_LOADED)
loadedSubModule = int10LinuxLoadSubModule(xf86Screens[screen]); loadedSubModule = int10LinuxLoadSubModule(pScrn);
if (loadedSubModule == INT10_LOAD_FAILED) if (loadedSubModule == INT10_LOAD_FAILED)
return NULL; return NULL;
@ -145,7 +145,7 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
} }
pInt = (xf86Int10InfoPtr) xnfcalloc(1, sizeof(xf86Int10InfoRec)); pInt = (xf86Int10InfoPtr) xnfcalloc(1, sizeof(xf86Int10InfoRec));
pInt->scrnIndex = screen; pInt->pScrn = pScrn;
pInt->entityIndex = entityIndex; pInt->entityIndex = entityIndex;
pInt->dev = xf86GetPciInfoForEntity(entityIndex); pInt->dev = xf86GetPciInfoForEntity(entityIndex);
@ -154,7 +154,6 @@ xf86ExtendedInitInt10(int entityIndex, int Flags)
pInt->mem = &linuxMem; pInt->mem = &linuxMem;
pagesize = getpagesize(); pagesize = getpagesize();
pInt->private = (pointer) xnfcalloc(1, sizeof(linuxInt10Priv)); pInt->private = (pointer) xnfcalloc(1, sizeof(linuxInt10Priv));
((linuxInt10Priv *) pInt->private)->screen = screen;
((linuxInt10Priv *) pInt->private)->alloc = ((linuxInt10Priv *) pInt->private)->alloc =
(pointer) xnfcalloc(1, ALLOC_ENTRIES(pagesize)); (pointer) xnfcalloc(1, ALLOC_ENTRIES(pagesize));
@ -333,28 +332,28 @@ MapCurrentInt10(xf86Int10InfoPtr pInt)
addr = addr =
shmat(((linuxInt10Priv *) pInt->private)->lowMem, (char *) 1, SHM_RND); shmat(((linuxInt10Priv *) pInt->private)->lowMem, (char *) 1, SHM_RND);
if (addr == SHMERRORPTR) { if (addr == SHMERRORPTR) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "Cannot shmat() low memory\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "Cannot shmat() low memory\n");
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"shmat(low_mem) error: %s\n", strerror(errno)); "shmat(low_mem) error: %s\n", strerror(errno));
return FALSE; return FALSE;
} }
if (mprotect((void *) 0, V_RAM, PROT_READ | PROT_WRITE | PROT_EXEC) != 0) if (mprotect((void *) 0, V_RAM, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"Cannot set EXEC bit on low memory: %s\n", strerror(errno)); "Cannot set EXEC bit on low memory: %s\n", strerror(errno));
if (((linuxInt10Priv *) pInt->private)->highMem >= 0) { if (((linuxInt10Priv *) pInt->private)->highMem >= 0) {
addr = shmat(((linuxInt10Priv *) pInt->private)->highMem, addr = shmat(((linuxInt10Priv *) pInt->private)->highMem,
(char *) HIGH_MEM, 0); (char *) HIGH_MEM, 0);
if (addr == SHMERRORPTR) { if (addr == SHMERRORPTR) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"Cannot shmat() high memory\n"); "Cannot shmat() high memory\n");
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"shmget error: %s\n", strerror(errno)); "shmget error: %s\n", strerror(errno));
return FALSE; return FALSE;
} }
if (mprotect((void *) HIGH_MEM, HIGH_MEM_SIZE, if (mprotect((void *) HIGH_MEM, HIGH_MEM_SIZE,
PROT_READ | PROT_WRITE | PROT_EXEC) != 0) PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"Cannot set EXEC bit on high memory: %s\n", "Cannot set EXEC bit on high memory: %s\n",
strerror(errno)); strerror(errno));
} }
@ -364,13 +363,13 @@ MapCurrentInt10(xf86Int10InfoPtr pInt)
PROT_READ | PROT_WRITE | PROT_EXEC, PROT_READ | PROT_WRITE | PROT_EXEC,
MAP_SHARED | MAP_FIXED, fd, V_BIOS) MAP_SHARED | MAP_FIXED, fd, V_BIOS)
== MAP_FAILED) { == MAP_FAILED) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "Cannot map V_BIOS\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "Cannot map V_BIOS\n");
close(fd); close(fd);
return FALSE; return FALSE;
} }
} }
else { else {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "Cannot open %s\n", DEV_MEM); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "Cannot open %s\n", DEV_MEM);
return FALSE; return FALSE;
} }
close(fd); close(fd);

View File

@ -210,19 +210,19 @@ vm86_GP_fault(xf86Int10InfoPtr pInt)
return FALSE; return FALSE;
case 0x0f: case 0x0f:
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"CPU 0x0f Trap at CS:EIP=0x%4.4x:0x%8.8lx\n", X86_CS, "CPU 0x0f Trap at CS:EIP=0x%4.4x:0x%8.8lx\n", X86_CS,
X86_EIP); X86_EIP);
goto op0ferr; goto op0ferr;
default: default:
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "unknown reason for exception\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "unknown reason for exception\n");
op0ferr: op0ferr:
dump_registers(pInt); dump_registers(pInt);
stack_trace(pInt); stack_trace(pInt);
dump_code(pInt); dump_code(pInt);
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "cannot continue\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "cannot continue\n");
return FALSE; return FALSE;
} /* end of switch() */ } /* end of switch() */
return TRUE; return TRUE;
@ -238,7 +238,7 @@ do_vm86(xf86Int10InfoPtr pInt)
xf86InterceptSignals(NULL); xf86InterceptSignals(NULL);
if (signo >= 0) { if (signo >= 0) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"vm86() syscall generated signal %d.\n", signo); "vm86() syscall generated signal %d.\n", signo);
dump_registers(pInt); dump_registers(pInt);
dump_code(pInt); dump_code(pInt);
@ -252,7 +252,7 @@ do_vm86(xf86Int10InfoPtr pInt)
return 0; return 0;
break; break;
case VM86_STI: case VM86_STI:
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "vm86_sti :-((\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "vm86_sti :-((\n");
dump_registers(pInt); dump_registers(pInt);
dump_code(pInt); dump_code(pInt);
stack_trace(pInt); stack_trace(pInt);
@ -260,7 +260,7 @@ do_vm86(xf86Int10InfoPtr pInt)
case VM86_INTx: case VM86_INTx:
pInt->num = VM86_ARG(retval); pInt->num = VM86_ARG(retval);
if (!int_handler(pInt)) { if (!int_handler(pInt)) {
xf86DrvMsg(pInt->scrnIndex, X_ERROR, xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR,
"Unknown vm86_int: 0x%X\n\n", VM86_ARG(retval)); "Unknown vm86_int: 0x%X\n\n", VM86_ARG(retval));
dump_registers(pInt); dump_registers(pInt);
dump_code(pInt); dump_code(pInt);
@ -275,10 +275,10 @@ do_vm86(xf86Int10InfoPtr pInt)
* we used to warn here and bail out - but now the sigio stuff * we used to warn here and bail out - but now the sigio stuff
* always fires signals at us. So we just ignore them for now. * always fires signals at us. So we just ignore them for now.
*/ */
xf86DrvMsg(pInt->scrnIndex, X_WARNING, "received signal\n"); xf86DrvMsg(pInt->pScrn->scrnIndex, X_WARNING, "received signal\n");
return 0; return 0;
default: default:
xf86DrvMsg(pInt->scrnIndex, X_ERROR, "unknown type(0x%x)=0x%x\n", xf86DrvMsg(pInt->pScrn->scrnIndex, X_ERROR, "unknown type(0x%x)=0x%x\n",
VM86_ARG(retval), VM86_TYPE(retval)); VM86_ARG(retval), VM86_TYPE(retval));
dump_registers(pInt); dump_registers(pInt);
dump_code(pInt); dump_code(pInt);

View File

@ -43,14 +43,14 @@ static miPointerSpriteFuncRec xf86CursorSpriteFuncs = {
static void xf86CursorInstallColormap(ColormapPtr); static void xf86CursorInstallColormap(ColormapPtr);
static void xf86CursorRecolorCursor(DeviceIntPtr pDev, ScreenPtr, CursorPtr, static void xf86CursorRecolorCursor(DeviceIntPtr pDev, ScreenPtr, CursorPtr,
Bool); Bool);
static Bool xf86CursorCloseScreen(int, ScreenPtr); static Bool xf86CursorCloseScreen(ScreenPtr);
static void xf86CursorQueryBestSize(int, unsigned short *, unsigned short *, static void xf86CursorQueryBestSize(int, unsigned short *, unsigned short *,
ScreenPtr); ScreenPtr);
/* ScrnInfoRec functions */ /* ScrnInfoRec functions */
static void xf86CursorEnableDisableFBAccess(int, Bool); static void xf86CursorEnableDisableFBAccess(ScrnInfoPtr, Bool);
static Bool xf86CursorSwitchMode(int, DisplayModePtr, int); static Bool xf86CursorSwitchMode(ScrnInfoPtr, DisplayModePtr);
Bool Bool
xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr) xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
@ -118,7 +118,7 @@ xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
/***** Screen functions *****/ /***** Screen functions *****/
static Bool static Bool
xf86CursorCloseScreen(int i, ScreenPtr pScreen) xf86CursorCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
miPointerScreenPtr PointPriv = miPointerScreenPtr PointPriv =
@ -149,7 +149,7 @@ xf86CursorCloseScreen(int i, ScreenPtr pScreen)
free(ScreenPriv->transparentData); free(ScreenPriv->transparentData);
free(ScreenPriv); free(ScreenPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static void static void
@ -203,11 +203,11 @@ xf86CursorRecolorCursor(DeviceIntPtr pDev,
/***** ScrnInfoRec functions *********/ /***** ScrnInfoRec functions *********/
static void static void
xf86CursorEnableDisableFBAccess(int index, Bool enable) xf86CursorEnableDisableFBAccess(ScrnInfoPtr pScrn, Bool enable)
{ {
DeviceIntPtr pDev = inputInfo.pointer; DeviceIntPtr pDev = inputInfo.pointer;
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
xf86CursorScreenPtr ScreenPriv = xf86CursorScreenPtr ScreenPriv =
(xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
xf86CursorScreenKey); xf86CursorScreenKey);
@ -223,7 +223,7 @@ xf86CursorEnableDisableFBAccess(int index, Bool enable)
} }
if (ScreenPriv->EnableDisableFBAccess) if (ScreenPriv->EnableDisableFBAccess)
(*ScreenPriv->EnableDisableFBAccess) (index, enable); (*ScreenPriv->EnableDisableFBAccess) (pScrn, enable);
if (enable && ScreenPriv->SavedCursor) { if (enable && ScreenPriv->SavedCursor) {
/* /*
@ -237,10 +237,10 @@ xf86CursorEnableDisableFBAccess(int index, Bool enable)
} }
static Bool static Bool
xf86CursorSwitchMode(int index, DisplayModePtr mode, int flags) xf86CursorSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{ {
Bool ret; Bool ret;
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
xf86CursorScreenPtr ScreenPriv = xf86CursorScreenPtr ScreenPriv =
(xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates, (xf86CursorScreenPtr) dixLookupPrivate(&pScreen->devPrivates,
xf86CursorScreenKey); xf86CursorScreenKey);
@ -250,7 +250,7 @@ xf86CursorSwitchMode(int index, DisplayModePtr mode, int flags)
ScreenPriv->isUp = FALSE; ScreenPriv->isUp = FALSE;
} }
ret = (*ScreenPriv->SwitchMode) (index, mode, flags); ret = (*ScreenPriv->SwitchMode) (pScrn, mode);
/* /*
* Cannot restore cursor here because the new frame[XY][01] haven't been * Cannot restore cursor here because the new frame[XY][01] haven't been

View File

@ -26,7 +26,7 @@ typedef struct {
miPointerSpriteFuncPtr spriteFuncs; miPointerSpriteFuncPtr spriteFuncs;
Bool PalettedCursor; Bool PalettedCursor;
ColormapPtr pInstalledMap; ColormapPtr pInstalledMap;
Bool (*SwitchMode) (int, DisplayModePtr, int); Bool (*SwitchMode) (ScrnInfoPtr, DisplayModePtr);
xf86EnableDisableFBAccessProc *EnableDisableFBAccess; xf86EnableDisableFBAccessProc *EnableDisableFBAccess;
CursorPtr SavedCursor; CursorPtr SavedCursor;

View File

@ -28,13 +28,13 @@
#include "picturestr.h" #include "picturestr.h"
static Bool ShadowCloseScreen(int i, ScreenPtr pScreen); static Bool ShadowCloseScreen(ScreenPtr pScreen);
static void ShadowCopyWindow(WindowPtr pWin, static void ShadowCopyWindow(WindowPtr pWin,
DDXPointRec ptOldOrg, RegionPtr prgn); DDXPointRec ptOldOrg, RegionPtr prgn);
static Bool ShadowCreateGC(GCPtr pGC); static Bool ShadowCreateGC(GCPtr pGC);
static Bool ShadowEnterVT(int index, int flags); static Bool ShadowEnterVT(ScrnInfoPtr pScrn);
static void ShadowLeaveVT(int index, int flags); static void ShadowLeaveVT(ScrnInfoPtr pScrn);
static void ShadowComposite(CARD8 op, static void ShadowComposite(CARD8 op,
PicturePtr pSrc, PicturePtr pSrc,
@ -56,8 +56,8 @@ typedef struct {
CreateGCProcPtr CreateGC; CreateGCProcPtr CreateGC;
ModifyPixmapHeaderProcPtr ModifyPixmapHeader; ModifyPixmapHeaderProcPtr ModifyPixmapHeader;
CompositeProcPtr Composite; CompositeProcPtr Composite;
Bool (*EnterVT) (int, int); Bool (*EnterVT) (ScrnInfoPtr);
void (*LeaveVT) (int, int); void (*LeaveVT) (ScrnInfoPtr);
Bool vtSema; Bool vtSema;
} ShadowScreenRec, *ShadowScreenPtr; } ShadowScreenRec, *ShadowScreenPtr;
@ -192,14 +192,13 @@ ShadowFBInit(ScreenPtr pScreen, RefreshAreaFuncPtr refreshArea)
/**********************************************************/ /**********************************************************/
static Bool static Bool
ShadowEnterVT(int index, int flags) ShadowEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index];
Bool ret; Bool ret;
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen); ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen);
pScrn->EnterVT = pPriv->EnterVT; pScrn->EnterVT = pPriv->EnterVT;
ret = (*pPriv->EnterVT) (index, flags); ret = (*pPriv->EnterVT) (pScrn);
pPriv->EnterVT = pScrn->EnterVT; pPriv->EnterVT = pScrn->EnterVT;
pScrn->EnterVT = ShadowEnterVT; pScrn->EnterVT = ShadowEnterVT;
if (ret) { if (ret) {
@ -211,15 +210,14 @@ ShadowEnterVT(int index, int flags)
} }
static void static void
ShadowLeaveVT(int index, int flags) ShadowLeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen);
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(xf86Screens[index]->pScreen);
pPriv->vtSema = FALSE; pPriv->vtSema = FALSE;
pScrn->LeaveVT = pPriv->LeaveVT; pScrn->LeaveVT = pPriv->LeaveVT;
(*pPriv->LeaveVT) (index, flags); (*pPriv->LeaveVT) (pScrn);
pPriv->LeaveVT = pScrn->LeaveVT; pPriv->LeaveVT = pScrn->LeaveVT;
pScrn->LeaveVT = ShadowLeaveVT; pScrn->LeaveVT = ShadowLeaveVT;
} }
@ -227,7 +225,7 @@ ShadowLeaveVT(int index, int flags)
/**********************************************************/ /**********************************************************/
static Bool static Bool
ShadowCloseScreen(int i, ScreenPtr pScreen) ShadowCloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScreen); ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScreen);
@ -247,7 +245,7 @@ ShadowCloseScreen(int i, ScreenPtr pScreen)
free((pointer) pPriv); free((pointer) pPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static void static void

View File

@ -179,7 +179,7 @@ static Bool
vbeProbeDDC(vbeInfoPtr pVbe) vbeProbeDDC(vbeInfoPtr pVbe)
{ {
const char *ddc_level; const char *ddc_level;
int screen = pVbe->pInt10->scrnIndex; int screen = pVbe->pInt10->pScrn->scrnIndex;
if (pVbe->ddc == DDC_NONE) if (pVbe->ddc == DDC_NONE)
return FALSE; return FALSE;
@ -262,7 +262,8 @@ vbeReadEDID(vbeInfoPtr pVbe)
unsigned char *tmp = NULL; unsigned char *tmp = NULL;
Bool novbe = FALSE; Bool novbe = FALSE;
Bool noddc = FALSE; Bool noddc = FALSE;
int screen = pVbe->pInt10->scrnIndex; ScrnInfoPtr pScrn = pVbe->pInt10->pScrn;
int screen = pScrn->scrnIndex;
OptionInfoPtr options; OptionInfoPtr options;
if (!page) if (!page)
@ -270,7 +271,7 @@ vbeReadEDID(vbeInfoPtr pVbe)
options = xnfalloc(sizeof(VBEOptions)); options = xnfalloc(sizeof(VBEOptions));
(void) memcpy(options, VBEOptions, sizeof(VBEOptions)); (void) memcpy(options, VBEOptions, sizeof(VBEOptions));
xf86ProcessOptions(screen, xf86Screens[screen]->options, options); xf86ProcessOptions(screen, pScrn->options, options);
xf86GetOptValBool(options, VBEOPT_NOVBE, &novbe); xf86GetOptValBool(options, VBEOPT_NOVBE, &novbe);
xf86GetOptValBool(options, VBEOPT_NODDC, &noddc); xf86GetOptValBool(options, VBEOPT_NODDC, &noddc);
free(options); free(options);
@ -330,7 +331,7 @@ vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule)
if (!(pModule = pDDCModule)) { if (!(pModule = pDDCModule)) {
pModule = pModule =
xf86LoadSubModule(xf86Screens[pVbe->pInt10->scrnIndex], "ddc"); xf86LoadSubModule(pVbe->pInt10->pScrn, "ddc");
if (!pModule) if (!pModule)
return NULL; return NULL;
} }
@ -340,7 +341,7 @@ vbeDoEDID(vbeInfoPtr pVbe, pointer pDDCModule)
if (!DDC_data) if (!DDC_data)
return NULL; return NULL;
pMonitor = xf86InterpretEDID(pVbe->pInt10->scrnIndex, DDC_data); pMonitor = xf86InterpretEDID(pVbe->pInt10->pScrn->scrnIndex, DDC_data);
if (!pDDCModule) if (!pDDCModule)
xf86UnloadSubModule(pModule); xf86UnloadSubModule(pModule);
@ -598,7 +599,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
*/ */
if ((pVbe->version & 0xff00) > 0x100) { if ((pVbe->version & 0xff00) > 0x100) {
int screen = pVbe->pInt10->scrnIndex; int screen = pVbe->pInt10->pScrn->scrnIndex;
if (function == MODE_QUERY || (function == MODE_SAVE && !*memory)) { if (function == MODE_QUERY || (function == MODE_SAVE && !*memory)) {
/* Query amount of memory to save state */ /* Query amount of memory to save state */
@ -904,7 +905,7 @@ VBEBuildVbeModeList(vbeInfoPtr pVbe, VbeInfoBlock * vbe)
m->n = id; m->n = id;
m->next = ModeList; m->next = ModeList;
xf86DrvMsgVerb(pVbe->pInt10->scrnIndex, X_PROBED, 3, xf86DrvMsgVerb(pVbe->pInt10->pScrn->scrnIndex, X_PROBED, 3,
"BIOS reported VESA mode 0x%x: x:%i y:%i bpp:%i\n", "BIOS reported VESA mode 0x%x: x:%i y:%i bpp:%i\n",
m->n, m->width, m->height, m->bpp); m->n, m->width, m->height, m->bpp);
@ -1026,23 +1027,22 @@ VBEDPMSSet(vbeInfoPtr pVbe, int mode)
} }
void void
VBEInterpretPanelID(int scrnIndex, struct vbePanelID *data) VBEInterpretPanelID(ScrnInfoPtr pScrn, struct vbePanelID *data)
{ {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
DisplayModePtr mode; DisplayModePtr mode;
const float PANEL_HZ = 60.0; const float PANEL_HZ = 60.0;
if (!data) if (!data)
return; return;
xf86DrvMsg(scrnIndex, X_INFO, "PanelID returned panel resolution %dx%d\n", xf86DrvMsg(pScrn->scrnIndex, X_INFO, "PanelID returned panel resolution %dx%d\n",
data->hsize, data->vsize); data->hsize, data->vsize);
if (pScrn->monitor->nHsync || pScrn->monitor->nVrefresh) if (pScrn->monitor->nHsync || pScrn->monitor->nVrefresh)
return; return;
if (data->hsize < 320 || data->vsize < 240) { if (data->hsize < 320 || data->vsize < 240) {
xf86DrvMsg(scrnIndex, X_INFO, "...which I refuse to believe\n"); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "...which I refuse to believe\n");
return; return;
} }
@ -1069,7 +1069,7 @@ VBEReadPanelID(vbeInfoPtr pVbe)
int RealOff = pVbe->real_mode_base; int RealOff = pVbe->real_mode_base;
pointer page = pVbe->memory; pointer page = pVbe->memory;
void *tmp = NULL; void *tmp = NULL;
int screen = pVbe->pInt10->scrnIndex; int screen = pVbe->pInt10->pScrn->scrnIndex;
pVbe->pInt10->ax = 0x4F11; pVbe->pInt10->ax = 0x4F11;
pVbe->pInt10->bx = 0x01; pVbe->pInt10->bx = 0x01;

View File

@ -350,7 +350,7 @@ struct vbePanelID {
char reserved[14]; char reserved[14];
}; };
extern _X_EXPORT void VBEInterpretPanelID(int scrnIndex, extern _X_EXPORT void VBEInterpretPanelID(ScrnInfoPtr pScrn,
struct vbePanelID *data); struct vbePanelID *data);
extern _X_EXPORT struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe); extern _X_EXPORT struct vbePanelID *VBEReadPanelID(vbeInfoPtr pVbe);

View File

@ -27,7 +27,7 @@
#define MIN_OFFPIX_SIZE (320*200) #define MIN_OFFPIX_SIZE (320*200)
static Bool XAACloseScreen(int i, ScreenPtr pScreen); static Bool XAACloseScreen(ScreenPtr pScreen);
static void XAAGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h, static void XAAGetImage(DrawablePtr pDrawable, int sx, int sy, int w, int h,
unsigned int format, unsigned long planemask, unsigned int format, unsigned long planemask,
char *pdstLine); char *pdstLine);
@ -36,10 +36,10 @@ static void XAAGetSpans(DrawablePtr pDrawable, int wMax, DDXPointPtr ppt,
static PixmapPtr XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth, static PixmapPtr XAACreatePixmap(ScreenPtr pScreen, int w, int h, int depth,
unsigned usage_hint); unsigned usage_hint);
static Bool XAADestroyPixmap(PixmapPtr pPixmap); static Bool XAADestroyPixmap(PixmapPtr pPixmap);
static Bool XAAEnterVT(int index, int flags); static Bool XAAEnterVT(ScrnInfoPtr pScrn);
static void XAALeaveVT(int index, int flags); static void XAALeaveVT(ScrnInfoPtr pScrn);
static int XAASetDGAMode(int index, int num, DGADevicePtr devRet); static int XAASetDGAMode(ScrnInfoPtr pScrn, int num, DGADevicePtr devRet);
static void XAAEnableDisableFBAccess(int index, Bool enable); static void XAAEnableDisableFBAccess(ScrnInfoPtr pScrn, Bool enable);
static Bool XAAChangeWindowAttributes(WindowPtr pWin, unsigned long mask); static Bool XAAChangeWindowAttributes(WindowPtr pWin, unsigned long mask);
static DevPrivateKeyRec XAAScreenKeyRec; static DevPrivateKeyRec XAAScreenKeyRec;
@ -214,7 +214,7 @@ XAAInit(ScreenPtr pScreen, XAAInfoRecPtr infoRec)
} }
static Bool static Bool
XAACloseScreen(int i, ScreenPtr pScreen) XAACloseScreen(ScreenPtr pScreen)
{ {
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
XAAScreenPtr pScreenPriv = XAAScreenPtr pScreenPriv =
@ -238,7 +238,7 @@ XAACloseScreen(int i, ScreenPtr pScreen)
free((pointer) pScreenPriv); free((pointer) pScreenPriv);
return (*pScreen->CloseScreen) (i, pScreen); return (*pScreen->CloseScreen) (pScreen);
} }
static void static void
@ -509,26 +509,24 @@ XAAChangeWindowAttributes(WindowPtr pWin, unsigned long mask)
/* These two aren't really needed for anything */ /* These two aren't really needed for anything */
static Bool static Bool
XAAEnterVT(int index, int flags) XAAEnterVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index];
Bool ret; Bool ret;
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
XAAScreenPtr pScreenPriv = XAAScreenPtr pScreenPriv =
(XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey); (XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
pScrn->EnterVT = pScreenPriv->EnterVT; pScrn->EnterVT = pScreenPriv->EnterVT;
ret = ((*pScreenPriv->EnterVT) (index, flags)); ret = ((*pScreenPriv->EnterVT) (pScrn));
pScreenPriv->EnterVT = pScrn->EnterVT; pScreenPriv->EnterVT = pScrn->EnterVT;
pScrn->EnterVT = XAAEnterVT; pScrn->EnterVT = XAAEnterVT;
return ret; return ret;
} }
static void static void
XAALeaveVT(int index, int flags) XAALeaveVT(ScrnInfoPtr pScrn)
{ {
ScrnInfoPtr pScrn = xf86Screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
ScreenPtr pScreen = screenInfo.screens[index];
XAAScreenPtr pScreenPriv = XAAScreenPtr pScreenPriv =
(XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey); (XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
XAAInfoRecPtr infoRec = pScreenPriv->AccelInfoRec; XAAInfoRecPtr infoRec = pScreenPriv->AccelInfoRec;
@ -539,7 +537,7 @@ XAALeaveVT(int index, int flags)
} }
pScrn->LeaveVT = pScreenPriv->LeaveVT; pScrn->LeaveVT = pScreenPriv->LeaveVT;
(*pScreenPriv->LeaveVT) (index, flags); (*pScreenPriv->LeaveVT) (pScrn);
pScreenPriv->LeaveVT = pScrn->LeaveVT; pScreenPriv->LeaveVT = pScrn->LeaveVT;
pScrn->LeaveVT = XAALeaveVT; pScrn->LeaveVT = XAALeaveVT;
} }
@ -551,9 +549,9 @@ typedef struct {
} SavedCacheState, *SavedCacheStatePtr; } SavedCacheState, *SavedCacheStatePtr;
static int static int
XAASetDGAMode(int index, int num, DGADevicePtr devRet) XAASetDGAMode(ScrnInfoPtr pScrn, int num, DGADevicePtr devRet)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
XAAScreenPtr pScreenPriv = XAAScreenPtr pScreenPriv =
(XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey); (XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
@ -569,7 +567,7 @@ XAASetDGAMode(int index, int num, DGADevicePtr devRet)
infoRec->dgaSaves = NULL; infoRec->dgaSaves = NULL;
} }
ret = (*pScreenPriv->SetDGAMode) (index, num, devRet); ret = (*pScreenPriv->SetDGAMode) (pScrn, num, devRet);
if (ret != Success) if (ret != Success)
return ret; return ret;
@ -612,9 +610,9 @@ XAASetDGAMode(int index, int num, DGADevicePtr devRet)
} }
static void static void
XAAEnableDisableFBAccess(int index, Bool enable) XAAEnableDisableFBAccess(ScrnInfoPtr pScrn, Bool enable)
{ {
ScreenPtr pScreen = screenInfo.screens[index]; ScreenPtr pScreen = xf86ScrnToScreen(pScrn);
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen); XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
XAAScreenPtr pScreenPriv = XAAScreenPtr pScreenPriv =
(XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey); (XAAScreenPtr) dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
@ -627,7 +625,7 @@ XAAEnableDisableFBAccess(int index, Bool enable)
SwitchedOut = TRUE; SwitchedOut = TRUE;
} }
(*pScreenPriv->EnableDisableFBAccess) (index, enable); (*pScreenPriv->EnableDisableFBAccess) (pScrn, enable);
if (enable) { if (enable) {
if ((infoRec->Flags & OFFSCREEN_PIXMAPS) && (infoRec->OffscreenPixmaps)) if ((infoRec->Flags & OFFSCREEN_PIXMAPS) && (infoRec->OffscreenPixmaps))

View File

@ -47,10 +47,10 @@ typedef struct _XAAScreen {
DestroyPixmapProcPtr DestroyPixmap; DestroyPixmapProcPtr DestroyPixmap;
ChangeWindowAttributesProcPtr ChangeWindowAttributes; ChangeWindowAttributesProcPtr ChangeWindowAttributes;
XAAInfoRecPtr AccelInfoRec; XAAInfoRecPtr AccelInfoRec;
Bool (*EnterVT) (int, int); Bool (*EnterVT) (ScrnInfoPtr);
void (*LeaveVT) (int, int); void (*LeaveVT) (ScrnInfoPtr);
int (*SetDGAMode) (int, int, DGADevicePtr); int (*SetDGAMode) (ScrnInfoPtr, int, DGADevicePtr);
void (*EnableDisableFBAccess) (int, Bool); void (*EnableDisableFBAccess) (ScrnInfoPtr, Bool);
CompositeProcPtr Composite; CompositeProcPtr Composite;
GlyphsProcPtr Glyphs; GlyphsProcPtr Glyphs;
} XAAScreenRec, *XAAScreenPtr; } XAAScreenRec, *XAAScreenPtr;

View File

@ -129,7 +129,7 @@ static miPointerSpriteFuncRec xnestPointerSpriteFuncs = {
}; };
Bool Bool
xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[]) xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
{ {
VisualPtr visuals; VisualPtr visuals;
DepthPtr depths; DepthPtr depths;
@ -309,8 +309,6 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[])
pScreen->BlockHandler = (ScreenBlockHandlerProcPtr) NoopDDA; pScreen->BlockHandler = (ScreenBlockHandlerProcPtr) NoopDDA;
pScreen->WakeupHandler = (ScreenWakeupHandlerProcPtr) NoopDDA; pScreen->WakeupHandler = (ScreenWakeupHandlerProcPtr) NoopDDA;
pScreen->blockData = NULL;
pScreen->wakeupData = NULL;
miDCInitialize(pScreen, &xnestPointerCursorFuncs); /* init SW rendering */ miDCInitialize(pScreen, &xnestPointerCursorFuncs); /* init SW rendering */
PointPriv = dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey); PointPriv = dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
@ -409,7 +407,7 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[])
} }
Bool Bool
xnestCloseScreen(int index, ScreenPtr pScreen) xnestCloseScreen(ScreenPtr pScreen)
{ {
int i; int i;

View File

@ -19,7 +19,7 @@ extern Window xnestDefaultWindows[MAXSCREENS];
extern Window xnestScreenSaverWindows[MAXSCREENS]; extern Window xnestScreenSaverWindows[MAXSCREENS];
ScreenPtr xnestScreen(Window window); ScreenPtr xnestScreen(Window window);
Bool xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[]); Bool xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[]);
Bool xnestCloseScreen(int index, ScreenPtr pScreen); Bool xnestCloseScreen(ScreenPtr pScreen);
#endif /* XNESTSCREEN_H */ #endif /* XNESTSCREEN_H */

View File

@ -193,7 +193,7 @@ DarwinSaveScreen(ScreenPtr pScreen, int on)
* Initialize the screen and communicate information about it back to dix. * Initialize the screen and communicate information about it back to dix.
*/ */
static Bool static Bool
DarwinScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) DarwinScreenInit(ScreenPtr pScreen, int argc, char **argv)
{ {
int dpi; int dpi;
static int foundIndex = 0; static int foundIndex = 0;
@ -204,7 +204,7 @@ DarwinScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
return FALSE; return FALSE;
// reset index of found screens for each server generation // reset index of found screens for each server generation
if (index == 0) { if (pScreen->myNum == 0) {
foundIndex = 0; foundIndex = 0;
// reset the visual list // reset the visual list
@ -275,7 +275,7 @@ DarwinScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
pScreen->SaveScreen = DarwinSaveScreen; pScreen->SaveScreen = DarwinSaveScreen;
// finish mode dependent screen setup including cursor support // finish mode dependent screen setup including cursor support
if (!QuartzSetupScreen(index, pScreen)) { if (!QuartzSetupScreen(pScreen->myNum, pScreen)) {
return FALSE; return FALSE;
} }

View File

@ -275,7 +275,7 @@ typedef void (*winShadowUpdateProcPtr) (ScreenPtr, shadowBufPtr);
typedef Bool (*winInitScreenProcPtr) (ScreenPtr); typedef Bool (*winInitScreenProcPtr) (ScreenPtr);
typedef Bool (*winCloseScreenProcPtr) (int, ScreenPtr); typedef Bool (*winCloseScreenProcPtr) (ScreenPtr);
typedef Bool (*winInitVisualsProcPtr) (ScreenPtr); typedef Bool (*winInitVisualsProcPtr) (ScreenPtr);
@ -779,7 +779,7 @@ void winSetAuthorization(void);
void void
winBlockHandler(int nScreen, winBlockHandler(ScreenPtr pScreen,
pointer pBlockData, pointer pTimeout, pointer pReadMask); pointer pBlockData, pointer pTimeout, pointer pReadMask);
#ifdef XWIN_NATIVEGDI #ifdef XWIN_NATIVEGDI
@ -1070,7 +1070,7 @@ winPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDrawable,
*/ */
Bool Bool
winScreenInit(int index, ScreenPtr pScreen, int argc, char **argv); winScreenInit(ScreenPtr pScreen, int argc, char **argv);
Bool Bool
winFinishScreenInitFB(int index, ScreenPtr pScreen, int argc, char **argv); winFinishScreenInitFB(int index, ScreenPtr pScreen, int argc, char **argv);
@ -1122,7 +1122,7 @@ Bool
void void
winWakeupHandler(int nScreen, winWakeupHandler(ScreenPtr pScreen,
pointer pWakeupData, pointer pWakeupData,
unsigned long ulResult, pointer pReadmask); unsigned long ulResult, pointer pReadmask);

View File

@ -36,7 +36,7 @@
/* See Porting Layer Definition - p. 6 */ /* See Porting Layer Definition - p. 6 */
void void
winBlockHandler(int nScreen, winBlockHandler(ScreenPtr pScreen,
pointer pBlockData, pointer pTimeout, pointer pReadMask) pointer pBlockData, pointer pTimeout, pointer pReadMask)
{ {
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW) #if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)

View File

@ -44,7 +44,7 @@ static void
winShadowUpdateNativeGDI(ScreenPtr pScreen, shadowBufPtr pBuf); winShadowUpdateNativeGDI(ScreenPtr pScreen, shadowBufPtr pBuf);
static Bool static Bool
winCloseScreenNativeGDI(int nIndex, ScreenPtr pScreen); winCloseScreenNativeGDI(ScreenPtr pScreen);
static Bool static Bool
winInitVisualsNativeGDI(ScreenPtr pScreen); winInitVisualsNativeGDI(ScreenPtr pScreen);
@ -104,7 +104,7 @@ winInitScreenNativeGDI(ScreenPtr pScreen)
*/ */
static Bool static Bool
winCloseScreenNativeGDI(int nIndex, ScreenPtr pScreen) winCloseScreenNativeGDI(ScreenPtr pScreen)
{ {
winScreenPriv(pScreen); winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo; winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;

View File

@ -44,7 +44,7 @@ static Bool
winAllocateFBPrimaryDD(ScreenPtr pScreen); winAllocateFBPrimaryDD(ScreenPtr pScreen);
static Bool static Bool
winCloseScreenPrimaryDD(int nIndex, ScreenPtr pScreen); winCloseScreenPrimaryDD(ScreenPtr pScreen);
static Bool static Bool
winInitVisualsPrimaryDD(ScreenPtr pScreen); winInitVisualsPrimaryDD(ScreenPtr pScreen);
@ -264,7 +264,7 @@ winInitScreenPrimaryDD(ScreenPtr pScreen)
*/ */
static Bool static Bool
winCloseScreenPrimaryDD(int nIndex, ScreenPtr pScreen) winCloseScreenPrimaryDD(ScreenPtr pScreen)
{ {
winScreenPriv(pScreen); winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo; winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
@ -279,7 +279,7 @@ winCloseScreenPrimaryDD(int nIndex, ScreenPtr pScreen)
/* Call the wrapped CloseScreen procedure */ /* Call the wrapped CloseScreen procedure */
WIN_UNWRAP(CloseScreen); WIN_UNWRAP(CloseScreen);
if (pScreen->CloseScreen) if (pScreen->CloseScreen)
fReturn = (*pScreen->CloseScreen) (nIndex, pScreen); fReturn = (*pScreen->CloseScreen) (pScreen);
/* Delete the window property */ /* Delete the window property */
RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP); RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP);

View File

@ -81,9 +81,9 @@ static Bool
*/ */
Bool Bool
winScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) winScreenInit(ScreenPtr pScreen, int argc, char **argv)
{ {
winScreenInfoPtr pScreenInfo = &g_ScreenInfo[index]; winScreenInfoPtr pScreenInfo = &g_ScreenInfo[pScreen->myNum];
winPrivScreenPtr pScreenPriv; winPrivScreenPtr pScreenPriv;
HDC hdc; HDC hdc;
DWORD dwInitialBPP; DWORD dwInitialBPP;
@ -202,11 +202,11 @@ winScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
miClearVisualTypes(); miClearVisualTypes();
/* Call the engine dependent screen initialization procedure */ /* Call the engine dependent screen initialization procedure */
if (!((*pScreenPriv->pwinFinishScreenInit) (index, pScreen, argc, argv))) { if (!((*pScreenPriv->pwinFinishScreenInit) (pScreen->myNum, pScreen, argc, argv))) {
ErrorF("winScreenInit - winFinishScreenInit () failed\n"); ErrorF("winScreenInit - winFinishScreenInit () failed\n");
/* call the engine dependent screen close procedure to clean up from a failure */ /* call the engine dependent screen close procedure to clean up from a failure */
pScreenPriv->pwinCloseScreen(index, pScreen); pScreenPriv->pwinCloseScreen(pScreen);
return FALSE; return FALSE;
} }
@ -224,7 +224,7 @@ winScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
pScreen->y = pScreenInfo->dwInitialY - GetSystemMetrics(SM_YVIRTUALSCREEN); pScreen->y = pScreenInfo->dwInitialY - GetSystemMetrics(SM_YVIRTUALSCREEN);
ErrorF("Screen %d added at virtual desktop coordinate (%d,%d).\n", ErrorF("Screen %d added at virtual desktop coordinate (%d,%d).\n",
index, pScreen->x, pScreen->y); pScreen->myNum, pScreen->x, pScreen->y);
#if CYGDEBUG || YES #if CYGDEBUG || YES
winDebug("winScreenInit - returning\n"); winDebug("winScreenInit - returning\n");
@ -355,8 +355,6 @@ winFinishScreenInitFB(int index, ScreenPtr pScreen, int argc, char **argv)
*/ */
pScreen->BlockHandler = winBlockHandler; pScreen->BlockHandler = winBlockHandler;
pScreen->WakeupHandler = winWakeupHandler; pScreen->WakeupHandler = winWakeupHandler;
pScreen->blockData = pScreen;
pScreen->wakeupData = pScreen;
/* Render extension initialization, calls miPictureInit */ /* Render extension initialization, calls miPictureInit */
if (!fbPictureInit(pScreen, NULL, 0)) { if (!fbPictureInit(pScreen, NULL, 0)) {
@ -636,8 +634,6 @@ winFinishScreenInitNativeGDI(int index,
*/ */
pScreen->BlockHandler = winBlockHandler; pScreen->BlockHandler = winBlockHandler;
pScreen->WakeupHandler = winWakeupHandler; pScreen->WakeupHandler = winWakeupHandler;
pScreen->blockData = pScreen;
pScreen->wakeupData = pScreen;
/* Place our save screen function */ /* Place our save screen function */
pScreen->SaveScreen = winSaveScreen; pScreen->SaveScreen = winSaveScreen;

View File

@ -65,7 +65,7 @@ static void
winShadowUpdateDD(ScreenPtr pScreen, shadowBufPtr pBuf); winShadowUpdateDD(ScreenPtr pScreen, shadowBufPtr pBuf);
static Bool static Bool
winCloseScreenShadowDD(int nIndex, ScreenPtr pScreen); winCloseScreenShadowDD(ScreenPtr pScreen);
static Bool static Bool
winInitVisualsShadowDD(ScreenPtr pScreen); winInitVisualsShadowDD(ScreenPtr pScreen);
@ -648,7 +648,7 @@ winInitScreenShadowDD(ScreenPtr pScreen)
*/ */
static Bool static Bool
winCloseScreenShadowDD(int nIndex, ScreenPtr pScreen) winCloseScreenShadowDD(ScreenPtr pScreen)
{ {
winScreenPriv(pScreen); winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo; winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
@ -665,7 +665,7 @@ winCloseScreenShadowDD(int nIndex, ScreenPtr pScreen)
/* Call the wrapped CloseScreen procedure */ /* Call the wrapped CloseScreen procedure */
WIN_UNWRAP(CloseScreen); WIN_UNWRAP(CloseScreen);
if (pScreen->CloseScreen) if (pScreen->CloseScreen)
fReturn = (*pScreen->CloseScreen) (nIndex, pScreen); fReturn = (*pScreen->CloseScreen) (pScreen);
winFreeFBShadowDD(pScreen); winFreeFBShadowDD(pScreen);

View File

@ -67,7 +67,7 @@ static void
winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf); winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf);
static Bool static Bool
winCloseScreenShadowDDNL(int nIndex, ScreenPtr pScreen); winCloseScreenShadowDDNL(ScreenPtr pScreen);
static Bool static Bool
winInitVisualsShadowDDNL(ScreenPtr pScreen); winInitVisualsShadowDDNL(ScreenPtr pScreen);
@ -719,7 +719,7 @@ winInitScreenShadowDDNL(ScreenPtr pScreen)
*/ */
static Bool static Bool
winCloseScreenShadowDDNL(int nIndex, ScreenPtr pScreen) winCloseScreenShadowDDNL(ScreenPtr pScreen)
{ {
winScreenPriv(pScreen); winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo; winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
@ -736,7 +736,7 @@ winCloseScreenShadowDDNL(int nIndex, ScreenPtr pScreen)
/* Call the wrapped CloseScreen procedure */ /* Call the wrapped CloseScreen procedure */
WIN_UNWRAP(CloseScreen); WIN_UNWRAP(CloseScreen);
if (pScreen->CloseScreen) if (pScreen->CloseScreen)
fReturn = (*pScreen->CloseScreen) (nIndex, pScreen); fReturn = (*pScreen->CloseScreen) (pScreen);
winFreeFBShadowDDNL(pScreen); winFreeFBShadowDDNL(pScreen);

View File

@ -50,7 +50,7 @@ static void
winShadowUpdateGDI(ScreenPtr pScreen, shadowBufPtr pBuf); winShadowUpdateGDI(ScreenPtr pScreen, shadowBufPtr pBuf);
static Bool static Bool
winCloseScreenShadowGDI(int nIndex, ScreenPtr pScreen); winCloseScreenShadowGDI(ScreenPtr pScreen);
static Bool static Bool
winInitVisualsShadowGDI(ScreenPtr pScreen); winInitVisualsShadowGDI(ScreenPtr pScreen);
@ -579,7 +579,7 @@ winInitScreenShadowGDI(ScreenPtr pScreen)
*/ */
static Bool static Bool
winCloseScreenShadowGDI(int nIndex, ScreenPtr pScreen) winCloseScreenShadowGDI(ScreenPtr pScreen)
{ {
winScreenPriv(pScreen); winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo; winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
@ -596,7 +596,7 @@ winCloseScreenShadowGDI(int nIndex, ScreenPtr pScreen)
/* Call the wrapped CloseScreen procedure */ /* Call the wrapped CloseScreen procedure */
WIN_UNWRAP(CloseScreen); WIN_UNWRAP(CloseScreen);
if (pScreen->CloseScreen) if (pScreen->CloseScreen)
fReturn = (*pScreen->CloseScreen) (nIndex, pScreen); fReturn = (*pScreen->CloseScreen) (pScreen);
/* Delete the window property */ /* Delete the window property */
RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP); RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP);

View File

@ -38,7 +38,7 @@
/* See Porting Layer Definition - p. 7 */ /* See Porting Layer Definition - p. 7 */
void void
winWakeupHandler(int nScreen, winWakeupHandler(ScreenPtr pScreen,
pointer pWakeupData, unsigned long ulResult, pointer pReadmask) pointer pWakeupData, unsigned long ulResult, pointer pReadmask)
{ {
MSG msg; MSG msg;

View File

@ -100,9 +100,9 @@ extern _X_EXPORT PixmapPtr GetScratchPixmapHeader(ScreenPtr /*pScreen */ ,
extern _X_EXPORT void FreeScratchPixmapHeader(PixmapPtr /*pPixmap */ ); extern _X_EXPORT void FreeScratchPixmapHeader(PixmapPtr /*pPixmap */ );
extern _X_EXPORT Bool CreateScratchPixmapsForScreen(int /*scrnum */ ); extern _X_EXPORT Bool CreateScratchPixmapsForScreen(ScreenPtr /*pScreen */ );
extern _X_EXPORT void FreeScratchPixmapsForScreen(int /*scrnum */ ); extern _X_EXPORT void FreeScratchPixmapsForScreen(ScreenPtr /*pScreen */ );
extern _X_EXPORT PixmapPtr AllocatePixmap(ScreenPtr /*pScreen */ , extern _X_EXPORT PixmapPtr AllocatePixmap(ScreenPtr /*pScreen */ ,
int /*pixDataSize */ ); int /*pixDataSize */ );

View File

@ -55,7 +55,6 @@ typedef struct _Depth *DepthPtr;
typedef struct _Screen *ScreenPtr; typedef struct _Screen *ScreenPtr;
extern _X_EXPORT int AddScreen(Bool (* /*pfnInit */ )( extern _X_EXPORT int AddScreen(Bool (* /*pfnInit */ )(
int /*index */ ,
ScreenPtr /*pScreen */ ScreenPtr /*pScreen */
, ,
int /*argc */ , int /*argc */ ,

Some files were not shown because too many files have changed in this diff Show More