From cdbf824d703cac4f3f5dc4ec23d1619ce0fc2905 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 9 Sep 2025 18:58:37 +0200 Subject: [PATCH] kdrive: use screenInfo insead of pointer passed to InitOutput() We only have one global screenInfo struct ever, and many other parts of the Xserver can only operate on global screenInfo, so it's time to phase out this extra pointer. Once the same has done on the other DDXes, it will be dropped from InitOutput()'s parameter list. Signed-off-by: Enrico Weigelt, metux IT consult --- hw/kdrive/ephyr/ephyrinit.c | 2 +- hw/kdrive/fbdev/fbinit.c | 2 +- hw/kdrive/src/kdrive.c | 37 ++++++++++++++++--------------------- hw/kdrive/src/kdrive.h | 6 ++---- 4 files changed, 20 insertions(+), 27 deletions(-) diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c index 75bfe8983..556c7919d 100644 --- a/hw/kdrive/ephyr/ephyrinit.c +++ b/hw/kdrive/ephyr/ephyrinit.c @@ -65,7 +65,7 @@ InitCard(char *name) void InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) { - KdInitOutput(pScreenInfo, argc, argv); + KdInitOutput(argc, argv); } void diff --git a/hw/kdrive/fbdev/fbinit.c b/hw/kdrive/fbdev/fbinit.c index 4956d323f..a54b83108 100644 --- a/hw/kdrive/fbdev/fbinit.c +++ b/hw/kdrive/fbdev/fbinit.c @@ -59,7 +59,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) if (serverGeneration == 1) ephyrExtensionInit(); - KdInitOutput(pScreenInfo, argc, argv); + KdInitOutput(argc, argv); } void diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index e36cc13b6..93b1a223d 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -972,8 +972,7 @@ Bool KdScreenInit(ScreenPtr pScreen, int argc, char **argv) return TRUE; } -void KdInitScreen(ScreenInfo * pScreenInfo, - KdScreenInfo * screen, int argc, char **argv) +void KdInitScreen(KdScreenInfo * screen, int argc, char **argv) { KdCardInfo *card = screen->card; @@ -986,8 +985,7 @@ void KdInitScreen(ScreenInfo * pScreenInfo, screen->softCursor = TRUE; } -static Bool -KdSetPixmapFormats(ScreenInfo * pScreenInfo) +static Bool KdSetPixmapFormats(void) { CARD8 depthToBpp[33]; /* depth -> bpp map */ KdCardInfo *card; @@ -1024,16 +1022,15 @@ KdSetPixmapFormats(ScreenInfo * pScreenInfo) if (!depthToBpp[kdDepths[i].depth]) depthToBpp[kdDepths[i].depth] = kdDepths[i].bpp; - pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER; - pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; - pScreenInfo->bitmapScanlinePad = BITMAP_SCANLINE_PAD; - pScreenInfo->bitmapBitOrder = BITMAP_BIT_ORDER; - - pScreenInfo->numPixmapFormats = 0; + screenInfo.imageByteOrder = IMAGE_BYTE_ORDER; + screenInfo.bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; + screenInfo.bitmapScanlinePad = BITMAP_SCANLINE_PAD; + screenInfo.bitmapBitOrder = BITMAP_BIT_ORDER; + screenInfo.numPixmapFormats = 0; for (i = 1; i <= 32; i++) { if (depthToBpp[i]) { - format = &pScreenInfo->formats[pScreenInfo->numPixmapFormats++]; + format = &screenInfo.formats[screenInfo.numPixmapFormats++]; format->depth = i; format->bitsPerPixel = depthToBpp[i]; format->scanlinePad = BITMAP_SCANLINE_PAD; @@ -1043,28 +1040,26 @@ KdSetPixmapFormats(ScreenInfo * pScreenInfo) return TRUE; } -static void -KdAddScreen(ScreenInfo * pScreenInfo, - KdScreenInfo * screen, int argc, char **argv) +static void KdAddScreen(KdScreenInfo * screen, int argc, char **argv) { int i; /* * Fill in fb visual type masks for this screen */ - for (i = 0; i < pScreenInfo->numPixmapFormats; i++) { + for (i = 0; i < screenInfo.numPixmapFormats; i++) { unsigned long visuals; Pixel rm, gm, bm; visuals = 0; rm = gm = bm = 0; - if (pScreenInfo->formats[i].depth == screen->fb.depth) { + if (screenInfo.formats[i].depth == screen->fb.depth) { visuals = screen->fb.visuals; rm = screen->fb.redMask; gm = screen->fb.greenMask; bm = screen->fb.blueMask; } - fbSetVisualTypesAndMasks(pScreenInfo->formats[i].depth, + fbSetVisualTypesAndMasks(screenInfo.formats[i].depth, visuals, 8, rm, gm, bm); } @@ -1095,7 +1090,7 @@ KdSignalWrapper(int signum) } void -KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) +KdInitOutput(int argc, char **argv) { KdCardInfo *card; KdScreenInfo *screen; @@ -1117,7 +1112,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) ret = (*card->cfuncs->cardinit) (card); if (ret) { for (screen = card->screenList; screen; screen = screen->next) - KdInitScreen(pScreenInfo, screen, argc, argv); + KdInitScreen(screen, argc, argv); } } @@ -1125,7 +1120,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) * Merge the various pixmap formats together, this can fail * when two screens share depth but not bitsPerPixel */ - if (!KdSetPixmapFormats(pScreenInfo)) + if (!KdSetPixmapFormats()) return; /* @@ -1133,7 +1128,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) */ for (card = kdCardInfo; card; card = card->next) for (screen = card->screenList; screen; screen = screen->next) - KdAddScreen(pScreenInfo, screen, argc, argv); + KdAddScreen(screen, argc, argv); OsRegisterSigWrapper(KdSignalWrapper); xorgGlxCreateVendor(); diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index de938ef5d..bf9d27521 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -386,8 +386,7 @@ extern miPointerScreenFuncRec kdPointerScreenFuncs; void KdSuspend(void); -void KdInitScreen(ScreenInfo * pScreenInfo, - KdScreenInfo * screen, int argc, char **argv); +void KdInitScreen(KdScreenInfo * screen, int argc, char **argv); void KdDisableScreen(ScreenPtr pScreen); @@ -450,8 +449,7 @@ Bool KdScreenInit(ScreenPtr pScreen, int argc, char **argv); void KdInitCard(ScreenInfo * pScreenInfo, KdCardInfo * card, int argc, char **argv); -void - KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv); +void KdInitOutput(int argc, char **argv); void KdSetSubpixelOrder(ScreenPtr pScreen, Rotation randr);