diff options
Diffstat (limited to 'xorg-server/hw')
57 files changed, 1760 insertions, 4775 deletions
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c index c3b3aeff5..6e61b8c5d 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.c +++ b/xorg-server/hw/kdrive/ephyr/ephyr.c @@ -104,77 +104,77 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv) }
if (EphyrWantGrayScale)
- screen->fb[0].depth = 8;
+ screen->fb.depth = 8;
- if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
+ if (screen->fb.depth && screen->fb.depth != hostx_get_depth())
{
- if (screen->fb[0].depth < hostx_get_depth()
- && (screen->fb[0].depth == 24 || screen->fb[0].depth == 16
- || screen->fb[0].depth == 8))
+ if (screen->fb.depth < hostx_get_depth()
+ && (screen->fb.depth == 24 || screen->fb.depth == 16
+ || screen->fb.depth == 8))
{
- hostx_set_server_depth(screen, screen->fb[0].depth);
+ hostx_set_server_depth(screen, screen->fb.depth);
}
else
ErrorF("\nXephyr: requested screen depth not supported, setting to match hosts.\n");
}
- screen->fb[0].depth = hostx_get_server_depth(screen);
+ screen->fb.depth = hostx_get_server_depth(screen);
screen->rate = 72;
- if (screen->fb[0].depth <= 8)
+ if (screen->fb.depth <= 8)
{
if (EphyrWantGrayScale)
- screen->fb[0].visuals = ((1 << StaticGray) | (1 << GrayScale));
+ screen->fb.visuals = ((1 << StaticGray) | (1 << GrayScale));
else
- screen->fb[0].visuals = ((1 << StaticGray) |
- (1 << GrayScale) |
- (1 << StaticColor) |
- (1 << PseudoColor) |
- (1 << TrueColor) |
- (1 << DirectColor));
+ screen->fb.visuals = ((1 << StaticGray) |
+ (1 << GrayScale) |
+ (1 << StaticColor) |
+ (1 << PseudoColor) |
+ (1 << TrueColor) |
+ (1 << DirectColor));
- screen->fb[0].redMask = 0x00;
- screen->fb[0].greenMask = 0x00;
- screen->fb[0].blueMask = 0x00;
- screen->fb[0].depth = 8;
- screen->fb[0].bitsPerPixel = 8;
+ screen->fb.redMask = 0x00;
+ screen->fb.greenMask = 0x00;
+ screen->fb.blueMask = 0x00;
+ screen->fb.depth = 8;
+ screen->fb.bitsPerPixel = 8;
}
else
{
- screen->fb[0].visuals = (1 << TrueColor);
+ screen->fb.visuals = (1 << TrueColor);
- if (screen->fb[0].depth <= 15)
+ if (screen->fb.depth <= 15)
{
- screen->fb[0].depth = 15;
- screen->fb[0].bitsPerPixel = 16;
+ screen->fb.depth = 15;
+ screen->fb.bitsPerPixel = 16;
}
- else if (screen->fb[0].depth <= 16)
+ else if (screen->fb.depth <= 16)
{
- screen->fb[0].depth = 16;
- screen->fb[0].bitsPerPixel = 16;
+ screen->fb.depth = 16;
+ screen->fb.bitsPerPixel = 16;
}
- else if (screen->fb[0].depth <= 24)
+ else if (screen->fb.depth <= 24)
{
- screen->fb[0].depth = 24;
- screen->fb[0].bitsPerPixel = 32;
+ screen->fb.depth = 24;
+ screen->fb.bitsPerPixel = 32;
}
- else if (screen->fb[0].depth <= 30)
+ else if (screen->fb.depth <= 30)
{
- screen->fb[0].depth = 30;
- screen->fb[0].bitsPerPixel = 32;
+ screen->fb.depth = 30;
+ screen->fb.bitsPerPixel = 32;
}
else
{
ErrorF("\nXephyr: Unsupported screen depth %d\n",
- screen->fb[0].depth);
+ screen->fb.depth);
return FALSE;
}
hostx_get_visual_masks (screen, &redMask, &greenMask, &blueMask);
- screen->fb[0].redMask = (Pixel) redMask;
- screen->fb[0].greenMask = (Pixel) greenMask;
- screen->fb[0].blueMask = (Pixel) blueMask;
+ screen->fb.redMask = (Pixel) redMask;
+ screen->fb.greenMask = (Pixel) greenMask;
+ screen->fb.blueMask = (Pixel) blueMask;
}
@@ -223,6 +223,22 @@ ephyrWindowLinear (ScreenPtr pScreen, return priv->base + row * priv->bytes_per_line + offset;
}
+/**
+ * Figure out display buffer size. If fakexa is enabled, allocate a larger
+ * buffer so that fakexa has space to put offscreen pixmaps.
+ */
+int
+ephyrBufferHeight(KdScreenInfo *screen)
+{
+ int buffer_height;
+ if (ephyrFuncs.initAccel == NULL)
+ buffer_height = screen->height;
+ else
+ buffer_height = 3 * screen->height;
+ return buffer_height;
+}
+
+
Bool
ephyrMapFramebuffer (KdScreenInfo *screen)
{
@@ -237,30 +253,19 @@ ephyrMapFramebuffer (KdScreenInfo *screen) KdComputePointerMatrix (&m, scrpriv->randr, screen->width, screen->height);
KdSetPointerMatrix (&m);
- priv->bytes_per_line = ((screen->width * screen->fb[0].bitsPerPixel + 31) >> 5) << 2;
-
- /* point the framebuffer to the data in an XImage */
- /* If fakexa is enabled, allocate a larger buffer so that fakexa has space to
- * put offscreen pixmaps.
- */
- if (ephyrFuncs.initAccel == NULL)
- buffer_height = screen->height;
- else
- buffer_height = 3 * screen->height;
+ priv->bytes_per_line = ((screen->width * screen->fb.bitsPerPixel + 31) >> 5) << 2;
+
+ buffer_height = ephyrBufferHeight(screen);
priv->base = hostx_screen_init (screen, screen->width, screen->height, buffer_height);
- screen->memory_base = (CARD8 *) (priv->base);
- screen->memory_size = priv->bytes_per_line * buffer_height;
- screen->off_screen_base = priv->bytes_per_line * screen->height;
-
if ((scrpriv->randr & RR_Rotate_0) && !(scrpriv->randr & RR_Reflect_All))
{
scrpriv->shadow = FALSE;
- screen->fb[0].byteStride = priv->bytes_per_line;
- screen->fb[0].pixelStride = screen->width;
- screen->fb[0].frameBuffer = (CARD8 *) (priv->base);
+ screen->fb.byteStride = priv->bytes_per_line;
+ screen->fb.pixelStride = screen->width;
+ screen->fb.frameBuffer = (CARD8 *) (priv->base);
}
else
{
@@ -269,7 +274,7 @@ ephyrMapFramebuffer (KdScreenInfo *screen) EPHYR_LOG("allocing shadow");
- KdShadowFbAlloc (screen, 0,
+ KdShadowFbAlloc (screen,
scrpriv->randr & (RR_Rotate_90|RR_Rotate_270));
}
@@ -305,7 +310,7 @@ ephyrUnmapFramebuffer (KdScreenInfo *screen) EphyrScrPriv *scrpriv = screen->driver;
if (scrpriv->shadow)
- KdShadowFbFree (screen, 0);
+ KdShadowFbFree (screen);
/* Note, priv->base will get freed when XImage recreated */
@@ -569,10 +574,10 @@ ephyrRandRSetConfig (ScreenPtr pScreen, (*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap (pScreen),
pScreen->width,
pScreen->height,
- screen->fb[0].depth,
- screen->fb[0].bitsPerPixel,
- screen->fb[0].byteStride,
- screen->fb[0].frameBuffer);
+ screen->fb.depth,
+ screen->fb.bitsPerPixel,
+ screen->fb.byteStride,
+ screen->fb.frameBuffer);
/* set the subpixel order */
@@ -733,7 +738,7 @@ ephyrScreenFini (KdScreenInfo *screen) {
EphyrScrPriv *scrpriv = screen->driver;
if (scrpriv->shadow) {
- KdShadowFbFree (screen, 0);
+ KdShadowFbFree (screen);
}
xfree(screen->driver);
screen->driver = NULL;
@@ -1033,7 +1038,7 @@ ephyrCardFini (KdCardInfo *card) }
void
-ephyrGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
+ephyrGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs)
{
/* XXX Not sure if this is right */
@@ -1050,7 +1055,7 @@ ephyrGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) }
void
-ephyrPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs)
+ephyrPutColors (ScreenPtr pScreen, int n, xColorItem *pdefs)
{
int min, max, p;
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.h b/xorg-server/hw/kdrive/ephyr/ephyr.h index 5479736e3..e4ce84dee 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr.h +++ b/xorg-server/hw/kdrive/ephyr/ephyr.h @@ -118,10 +118,10 @@ void ephyrCardFini (KdCardInfo *card);
void
-ephyrGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs);
+ephyrGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs);
void
-ephyrPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs);
+ephyrPutColors (ScreenPtr pScreen, int n, xColorItem *pdefs);
Bool
ephyrMapFramebuffer (KdScreenInfo *screen);
@@ -182,6 +182,10 @@ extern Bool ephyrCursorInit(ScreenPtr pScreen); extern void ephyrCursorEnable(ScreenPtr pScreen);
+extern int ephyrBufferHeight(KdScreenInfo *screen);
+
+extern int ephyrBufferHeight(KdScreenInfo *screen);
+
/* ephyr_draw.c */
Bool
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr_draw.c b/xorg-server/hw/kdrive/ephyr/ephyr_draw.c index 7b579c24b..f9fac8007 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyr_draw.c +++ b/xorg-server/hw/kdrive/ephyr/ephyr_draw.c @@ -428,6 +428,7 @@ ephyrDrawInit(ScreenPtr pScreen) KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; EphyrScrPriv *scrpriv = screen->driver; + EphyrPriv *priv = screen->card->driver; EphyrFakexaPriv *fakexa; Bool success; @@ -441,9 +442,9 @@ ephyrDrawInit(ScreenPtr pScreen) return FALSE; } - fakexa->exa->memoryBase = screen->memory_base; - fakexa->exa->memorySize = screen->memory_size; - fakexa->exa->offScreenBase = screen->off_screen_base; + fakexa->exa->memoryBase = (CARD8 *) (priv->base); + fakexa->exa->memorySize = priv->bytes_per_line * ephyrBufferHeight(screen); + fakexa->exa->offScreenBase = priv->bytes_per_line * screen->height; /* Since we statically link against EXA, we shouldn't have to be smart about * versioning. diff --git a/xorg-server/hw/kdrive/ephyr/ephyrinit.c b/xorg-server/hw/kdrive/ephyr/ephyrinit.c index 0c638e98d..d0a4d8540 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyrinit.c +++ b/xorg-server/hw/kdrive/ephyr/ephyrinit.c @@ -40,17 +40,18 @@ extern Bool noGlxVisualInit; #endif
extern Bool ephyrNoXV;
+#ifdef KDRIVE_EVDEV
+extern KdPointerDriver LinuxEvdevMouseDriver;
+extern KdKeyboardDriver LinuxEvdevKeyboardDriver;
+#endif
+
void processScreenArg (char *screen_size, char *parent_id) ;
void
InitCard (char *name)
{
- KdCardAttr attr;
-
EPHYR_DBG("mark");
-
-
- KdCardInfoAdd (&ephyrFuncs, &attr, 0);
+ KdCardInfoAdd (&ephyrFuncs, 0);
}
#ifndef _MSC_VER
@@ -67,11 +68,11 @@ InitInput (int argc, char **argv) KdPointerInfo *pi;
KdAddKeyboardDriver(&EphyrKeyboardDriver);
-#ifdef linux
+#ifdef KDRIVE_EVDEV
KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
#endif
KdAddPointerDriver(&EphyrMouseDriver);
-#ifdef linux
+#ifdef KDRIVE_EVDEV
KdAddPointerDriver(&LinuxEvdevMouseDriver);
#endif
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrvideo.c b/xorg-server/hw/kdrive/ephyr/ephyrvideo.c index bb2ee1032..6624ab98a 100644 --- a/xorg-server/hw/kdrive/ephyr/ephyrvideo.c +++ b/xorg-server/hw/kdrive/ephyr/ephyrvideo.c @@ -302,7 +302,7 @@ ephyrInitVideo (ScreenPtr pScreen) EPHYR_LOG ("enter\n") ; - if (screen->fb[0].bitsPerPixel == 8) { + if (screen->fb.bitsPerPixel == 8) { EPHYR_LOG_ERROR ("8 bits depth not supported\n") ; return FALSE ; } diff --git a/xorg-server/hw/kdrive/fake/fake.c b/xorg-server/hw/kdrive/fake/fake.c index ea88f0edb..809e309a6 100644 --- a/xorg-server/hw/kdrive/fake/fake.c +++ b/xorg-server/hw/kdrive/fake/fake.c @@ -69,45 +69,45 @@ fakeScreenInitialize (KdScreenInfo *screen, FakeScrPriv *scrpriv) if (screen->height <= 0) screen->height = 1; - if (!screen->fb[0].depth) - screen->fb[0].depth = 16; + if (!screen->fb.depth) + screen->fb.depth = 16; - if (screen->fb[0].depth <= 8) + if (screen->fb.depth <= 8) { - screen->fb[0].visuals = ((1 << StaticGray) | - (1 << GrayScale) | - (1 << StaticColor) | - (1 << PseudoColor) | - (1 << TrueColor) | - (1 << DirectColor)); + screen->fb.visuals = ((1 << StaticGray) | + (1 << GrayScale) | + (1 << StaticColor) | + (1 << PseudoColor) | + (1 << TrueColor) | + (1 << DirectColor)); } else { - screen->fb[0].visuals = (1 << TrueColor); + screen->fb.visuals = (1 << TrueColor); #define Mask(o,l) (((1 << l) - 1) << o) - if (screen->fb[0].depth <= 15) + if (screen->fb.depth <= 15) { - screen->fb[0].depth = 15; - screen->fb[0].bitsPerPixel = 16; - screen->fb[0].redMask = Mask (10, 5); - screen->fb[0].greenMask = Mask (5, 5); - screen->fb[0].blueMask = Mask (0, 5); + screen->fb.depth = 15; + screen->fb.bitsPerPixel = 16; + screen->fb.redMask = Mask (10, 5); + screen->fb.greenMask = Mask (5, 5); + screen->fb.blueMask = Mask (0, 5); } - else if (screen->fb[0].depth <= 16) + else if (screen->fb.depth <= 16) { - screen->fb[0].depth = 16; - screen->fb[0].bitsPerPixel = 16; - screen->fb[0].redMask = Mask (11, 5); - screen->fb[0].greenMask = Mask (5, 6); - screen->fb[0].blueMask = Mask (0, 5); + screen->fb.depth = 16; + screen->fb.bitsPerPixel = 16; + screen->fb.redMask = Mask (11, 5); + screen->fb.greenMask = Mask (5, 6); + screen->fb.blueMask = Mask (0, 5); } else { - screen->fb[0].depth = 24; - screen->fb[0].bitsPerPixel = 32; - screen->fb[0].redMask = Mask (16, 8); - screen->fb[0].greenMask = Mask (8, 8); - screen->fb[0].blueMask = Mask (0, 8); + screen->fb.depth = 24; + screen->fb.bitsPerPixel = 32; + screen->fb.redMask = Mask (16, 8); + screen->fb.greenMask = Mask (8, 8); + screen->fb.blueMask = Mask (0, 8); } } @@ -167,26 +167,22 @@ fakeMapFramebuffer (KdScreenInfo *screen) KdSetPointerMatrix (&m); - priv->bytes_per_line = ((screen->width * screen->fb[0].bitsPerPixel + 31) >> 5) << 2; + priv->bytes_per_line = ((screen->width * screen->fb.bitsPerPixel + 31) >> 5) << 2; if (priv->base) free (priv->base); priv->base = malloc (priv->bytes_per_line * screen->height); - screen->memory_base = (CARD8 *) (priv->base); - screen->memory_size = 0; - screen->off_screen_base = 0; if (scrpriv->shadow) { - if (!KdShadowFbAlloc (screen, 0, - scrpriv->randr & (RR_Rotate_90|RR_Rotate_270))) + if (!KdShadowFbAlloc (screen, scrpriv->randr & (RR_Rotate_90|RR_Rotate_270))) return FALSE; } else { - screen->fb[0].byteStride = priv->bytes_per_line; - screen->fb[0].pixelStride = (priv->bytes_per_line * 8/ - screen->fb[0].bitsPerPixel); - screen->fb[0].frameBuffer = (CARD8 *) (priv->base); + screen->fb.byteStride = priv->bytes_per_line; + screen->fb.pixelStride = (priv->bytes_per_line * 8/ + screen->fb.bitsPerPixel); + screen->fb.frameBuffer = (CARD8 *) (priv->base); } return TRUE; @@ -219,7 +215,7 @@ Bool fakeUnmapFramebuffer (KdScreenInfo *screen) { FakePriv *priv = screen->card->driver; - KdShadowFbFree (screen, 0); + KdShadowFbFree (screen); if (priv->base) { free (priv->base); @@ -341,10 +337,10 @@ fakeRandRSetConfig (ScreenPtr pScreen, (*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap (pScreen), pScreen->width, pScreen->height, - screen->fb[0].depth, - screen->fb[0].bitsPerPixel, - screen->fb[0].byteStride, - screen->fb[0].frameBuffer); + screen->fb.depth, + screen->fb.bitsPerPixel, + screen->fb.byteStride, + screen->fb.frameBuffer); /* set the subpixel order */ @@ -463,7 +459,7 @@ fakeCardFini (KdCardInfo *card) } void -fakeGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) +fakeGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs) { while (n--) { @@ -475,6 +471,6 @@ fakeGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) } void -fakePutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) +fakePutColors (ScreenPtr pScreen, int n, xColorItem *pdefs) { } diff --git a/xorg-server/hw/kdrive/fake/fake.h b/xorg-server/hw/kdrive/fake/fake.h index 3c4a51bbc..d5058606a 100644 --- a/xorg-server/hw/kdrive/fake/fake.h +++ b/xorg-server/hw/kdrive/fake/fake.h @@ -85,10 +85,10 @@ void fakeCardFini (KdCardInfo *card); void -fakeGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs); +fakeGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs); void -fakePutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs); +fakePutColors (ScreenPtr pScreen, int n, xColorItem *pdefs); Bool fakeMapFramebuffer (KdScreenInfo *screen); diff --git a/xorg-server/hw/kdrive/fake/fakeinit.c b/xorg-server/hw/kdrive/fake/fakeinit.c index 0472a7183..87c221d37 100644 --- a/xorg-server/hw/kdrive/fake/fakeinit.c +++ b/xorg-server/hw/kdrive/fake/fakeinit.c @@ -28,9 +28,7 @@ void InitCard (char *name) { - KdCardAttr attr; - - KdCardInfoAdd (&fakeFuncs, &attr, 0); + KdCardInfoAdd (&fakeFuncs, 0); } void diff --git a/xorg-server/hw/kdrive/fbdev/fbdev.c b/xorg-server/hw/kdrive/fbdev/fbdev.c index 4eeca289a..d4604ad29 100644 --- a/xorg-server/hw/kdrive/fbdev/fbdev.c +++ b/xorg-server/hw/kdrive/fbdev/fbdev.c @@ -32,32 +32,31 @@ extern int KdTsPhyScreen; char *fbdevDevicePath = NULL; -Bool +static Bool fbdevInitialize (KdCardInfo *card, FbdevPriv *priv) { - int k; unsigned long off; - if (fbdevDevicePath == NULL) + if (fbdevDevicePath == NULL) fbdevDevicePath = "/dev/fb0"; if ((priv->fd = open(fbdevDevicePath, O_RDWR)) < 0) { - ErrorF("Error opening framebuffer %s: %s\n", + ErrorF("Error opening framebuffer %s: %s\n", fbdevDevicePath, strerror(errno)); return FALSE; } /* quiet valgrind */ memset (&priv->fix, '\0', sizeof (priv->fix)); - if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0) { + if (ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix) < 0) { perror("Error with /dev/fb ioctl FIOGET_FSCREENINFO"); close (priv->fd); return FALSE; } /* quiet valgrind */ memset (&priv->var, '\0', sizeof (priv->var)); - if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) { + if (ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var) < 0) { perror("Error with /dev/fb ioctl FIOGET_VSCREENINFO"); close (priv->fd); return FALSE; @@ -68,8 +67,8 @@ fbdevInitialize (KdCardInfo *card, FbdevPriv *priv) PROT_READ|PROT_WRITE, MAP_SHARED, priv->fd, 0); - - if (priv->fb_base == (char *)-1) + + if (priv->fb_base == (char *)-1) { perror("ERROR: mmap framebuffer fails!"); close (priv->fd); @@ -88,14 +87,14 @@ fbdevCardInit (KdCardInfo *card) priv = (FbdevPriv *) xalloc (sizeof (FbdevPriv)); if (!priv) return FALSE; - + if (!fbdevInitialize (card, priv)) { xfree (priv); return FALSE; } card->driver = priv; - + return TRUE; } @@ -124,7 +123,7 @@ static void fbdevConvertMonitorTiming (const KdMonitorTiming *t, struct fb_var_screeninfo *var) { memset (var, 0, sizeof (struct fb_var_screeninfo)); - + var->xres = t->horizontal; var->yres = t->vertical; var->xres_virtual = t->horizontal; @@ -148,7 +147,7 @@ fbdevConvertMonitorTiming (const KdMonitorTiming *t, struct fb_var_screeninfo *v var->sync |= FB_SYNC_VERT_HIGH_ACT; } -Bool +static Bool fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) { FbdevPriv *priv = screen->card->driver; @@ -160,10 +159,10 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) int k; k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var); - + if (!screen->width || !screen->height) { - if (k >= 0) + if (k >= 0) { screen->width = var.xres; screen->height = var.yres; @@ -175,12 +174,12 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) } screen->rate = 103; /* FIXME: should get proper value from fb driver */ } - if (!screen->fb[0].depth) + if (!screen->fb.depth) { - if (k >= 0) - screen->fb[0].depth = var.bits_per_pixel; + if (k >= 0) + screen->fb.depth = var.bits_per_pixel; else - screen->fb[0].depth = 16; + screen->fb.depth = 16; } if ((screen->width != var.xres) || (screen->height != var.yres)) @@ -196,7 +195,7 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) } var.activate = FB_ACTIVATE_NOW; - var.bits_per_pixel = screen->fb[0].depth; + var.bits_per_pixel = screen->fb.depth; var.nonstd = 0; var.grayscale = 0; @@ -217,65 +216,65 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) ioctl (priv->fd, FBIOGET_VSCREENINFO, &priv->var); depth = priv->var.bits_per_pixel; gray = priv->var.grayscale; - + switch (priv->fix.visual) { case FB_VISUAL_PSEUDOCOLOR: if (gray) { - screen->fb[0].visuals = (1 << StaticGray); + screen->fb.visuals = (1 << StaticGray); /* could also support GrayScale, but what's the point? */ } else { - screen->fb[0].visuals = ((1 << StaticGray) | + screen->fb.visuals = ((1 << StaticGray) | (1 << GrayScale) | (1 << StaticColor) | (1 << PseudoColor) | (1 << TrueColor) | (1 << DirectColor)); } - screen->fb[0].blueMask = 0x00; - screen->fb[0].greenMask = 0x00; - screen->fb[0].redMask = 0x00; + screen->fb.blueMask = 0x00; + screen->fb.greenMask = 0x00; + screen->fb.redMask = 0x00; break; case FB_VISUAL_STATIC_PSEUDOCOLOR: if (gray) { - screen->fb[0].visuals = (1 << StaticGray); + screen->fb.visuals = (1 << StaticGray); } else { - screen->fb[0].visuals = (1 << StaticColor); + screen->fb.visuals = (1 << StaticColor); } - screen->fb[0].blueMask = 0x00; - screen->fb[0].greenMask = 0x00; - screen->fb[0].redMask = 0x00; + screen->fb.blueMask = 0x00; + screen->fb.greenMask = 0x00; + screen->fb.redMask = 0x00; break; case FB_VISUAL_TRUECOLOR: case FB_VISUAL_DIRECTCOLOR: - screen->fb[0].visuals = (1 << TrueColor); + screen->fb.visuals = (1 << TrueColor); #define Mask(o,l) (((1 << l) - 1) << o) - screen->fb[0].redMask = Mask (priv->var.red.offset, priv->var.red.length); - screen->fb[0].greenMask = Mask (priv->var.green.offset, priv->var.green.length); - screen->fb[0].blueMask = Mask (priv->var.blue.offset, priv->var.blue.length); + screen->fb.redMask = Mask (priv->var.red.offset, priv->var.red.length); + screen->fb.greenMask = Mask (priv->var.green.offset, priv->var.green.length); + screen->fb.blueMask = Mask (priv->var.blue.offset, priv->var.blue.length); /* * This is a kludge so that Render will work -- fill in the gaps * in the pixel */ - screen->fb[0].redMask = fbdevMakeContig (screen->fb[0].redMask, - screen->fb[0].greenMask| - screen->fb[0].blueMask); + screen->fb.redMask = fbdevMakeContig (screen->fb.redMask, + screen->fb.greenMask| + screen->fb.blueMask); - screen->fb[0].greenMask = fbdevMakeContig (screen->fb[0].greenMask, - screen->fb[0].redMask| - screen->fb[0].blueMask); + screen->fb.greenMask = fbdevMakeContig (screen->fb.greenMask, + screen->fb.redMask| + screen->fb.blueMask); - screen->fb[0].blueMask = fbdevMakeContig (screen->fb[0].blueMask, - screen->fb[0].redMask| - screen->fb[0].greenMask); + screen->fb.blueMask = fbdevMakeContig (screen->fb.blueMask, + screen->fb.redMask| + screen->fb.greenMask); - allbits = screen->fb[0].redMask | screen->fb[0].greenMask | screen->fb[0].blueMask; + allbits = screen->fb.redMask | screen->fb.greenMask | screen->fb.blueMask; depth = 32; while (depth && !(allbits & (1 << (depth - 1)))) depth--; @@ -284,8 +283,8 @@ fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv) return FALSE; break; } - screen->fb[0].depth = depth; - screen->fb[0].bitsPerPixel = priv->var.bits_per_pixel; + screen->fb.depth = depth; + screen->fb.bitsPerPixel = priv->var.bits_per_pixel; scrpriv->randr = screen->randr; @@ -309,8 +308,8 @@ fbdevScreenInit (KdScreenInfo *screen) } return TRUE; } - -void * + +static void * fbdevWindowLinear (ScreenPtr pScreen, CARD32 row, CARD32 offset, @@ -338,36 +337,32 @@ fbdevMapFramebuffer (KdScreenInfo *screen) scrpriv->shadow = TRUE; else scrpriv->shadow = FALSE; - + KdComputePointerMatrix (&m, scrpriv->randr, screen->width, screen->height); - + KdSetPointerMatrix (&m); - + screen->width = priv->var.xres; screen->height = priv->var.yres; - screen->memory_base = (CARD8 *) (priv->fb); - screen->memory_size = priv->fix.smem_len; - + if (scrpriv->shadow) { - if (!KdShadowFbAlloc (screen, 0, + if (!KdShadowFbAlloc (screen, scrpriv->randr & (RR_Rotate_90|RR_Rotate_270))) return FALSE; - screen->off_screen_base = screen->memory_size; } else { - screen->fb[0].byteStride = priv->fix.line_length; - screen->fb[0].pixelStride = (priv->fix.line_length * 8 / + screen->fb.byteStride = priv->fix.line_length; + screen->fb.pixelStride = (priv->fix.line_length * 8 / priv->var.bits_per_pixel); - screen->fb[0].frameBuffer = (CARD8 *) (priv->fb); - screen->off_screen_base = screen->fb[0].byteStride * screen->height; + screen->fb.frameBuffer = (CARD8 *) (priv->fb); } - + return TRUE; } -void +static void fbdevSetScreenSizes (ScreenPtr pScreen) { KdScreenPriv(pScreen); @@ -391,14 +386,14 @@ fbdevSetScreenSizes (ScreenPtr pScreen) } } -Bool +static Bool fbdevUnmapFramebuffer (KdScreenInfo *screen) { - KdShadowFbFree (screen, 0); + KdShadowFbFree (screen); return TRUE; } -Bool +static Bool fbdevSetShadow (ScreenPtr pScreen) { KdScreenPriv(pScreen); @@ -449,7 +444,7 @@ fbdevSetShadow (ScreenPtr pScreen) #ifdef RANDR -Bool +static Bool fbdevRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { KdScreenPriv(pScreen); @@ -458,29 +453,29 @@ fbdevRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) RRScreenSizePtr pSize; Rotation randr; int n; - + *rotations = RR_Rotate_All|RR_Reflect_All; - + for (n = 0; n < pScreen->numDepths; n++) if (pScreen->allowedDepths[n].numVids) break; if (n == pScreen->numDepths) return FALSE; - + pSize = RRRegisterSize (pScreen, screen->width, screen->height, screen->width_mm, screen->height_mm); - + randr = KdSubRotation (scrpriv->randr, screen->randr); - + RRSetCurrentConfig (pScreen, randr, 0, pSize); - + return TRUE; } -Bool +static Bool fbdevRandRSetConfig (ScreenPtr pScreen, Rotation randr, int rate, @@ -512,20 +507,20 @@ fbdevRandRSetConfig (ScreenPtr pScreen, KdDisableScreen (pScreen); oldscr = *scrpriv; - + oldwidth = screen->width; oldheight = screen->height; oldmmwidth = pScreen->mmWidth; oldmmheight = pScreen->mmHeight; - + /* * Set new configuration */ - + scrpriv->randr = KdAddRotation (screen->randr, randr); fbdevUnmapFramebuffer (screen); - + if (!fbdevMapFramebuffer (screen)) goto bail4; @@ -542,13 +537,13 @@ fbdevRandRSetConfig (ScreenPtr pScreen, (*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap (pScreen), pScreen->width, pScreen->height, - screen->fb[0].depth, - screen->fb[0].bitsPerPixel, - screen->fb[0].byteStride, - screen->fb[0].frameBuffer); - + screen->fb.depth, + screen->fb.bitsPerPixel, + screen->fb.byteStride, + screen->fb.frameBuffer); + /* set the subpixel order */ - + KdSetSubpixelOrder (pScreen, scrpriv->randr); if (wasEnabled) KdEnableScreen (pScreen); @@ -563,17 +558,17 @@ bail4: pScreen->height = oldheight; pScreen->mmWidth = oldmmwidth; pScreen->mmHeight = oldmmheight; - + if (wasEnabled) KdEnableScreen (pScreen); return FALSE; } -Bool +static Bool fbdevRandRInit (ScreenPtr pScreen) { rrScrPrivPtr pScrPriv; - + if (!RRScreenInit (pScreen)) return FALSE; @@ -584,7 +579,7 @@ fbdevRandRInit (ScreenPtr pScreen) } #endif -Bool +static Bool fbdevCreateColormap (ColormapPtr pmap) { ScreenPtr pScreen = pmap->pScreen; @@ -594,7 +589,7 @@ fbdevCreateColormap (ColormapPtr pmap) int i; int nent; xColorItem *pdefs; - + switch (priv->fix.visual) { case FB_VISUAL_STATIC_PSEUDOCOLOR: pVisual = pmap->pVisual; @@ -604,7 +599,7 @@ fbdevCreateColormap (ColormapPtr pmap) return FALSE; for (i = 0; i < nent; i++) pdefs[i].pixel = i; - fbdevGetColors (pScreen, 0, nent, pdefs); + fbdevGetColors (pScreen, nent, pdefs); for (i = 0; i < nent; i++) { pmap->red[i].co.local.red = pdefs[i].red; @@ -639,7 +634,7 @@ fbdevFinishInitScreen (ScreenPtr pScreen) if (!fbdevRandRInit (pScreen)) return FALSE; #endif - + return TRUE; } @@ -655,6 +650,21 @@ fbdevPreserve (KdCardInfo *card) { } +static int +fbdevUpdateFbColormap(FbdevPriv *priv, int minidx, int maxidx) +{ + struct fb_cmap cmap; + + cmap.start = minidx; + cmap.len = maxidx - minidx + 1; + cmap.red = &priv->red[minidx]; + cmap.green = &priv->green[minidx]; + cmap.blue = &priv->blue[minidx]; + cmap.transp = 0; + + return ioctl(priv->fd, FBIOPUTCMAP, &cmap); +} + Bool fbdevEnable (ScreenPtr pScreen) { @@ -663,7 +673,7 @@ fbdevEnable (ScreenPtr pScreen) int k; priv->var.activate = FB_ACTIVATE_NOW|FB_CHANGE_CMAP_VBL; - + /* display it on the LCD */ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var); if (k < 0) @@ -671,13 +681,12 @@ fbdevEnable (ScreenPtr pScreen) perror ("FBIOPUT_VSCREENINFO"); return FALSE; } - + if (priv->fix.visual == FB_VISUAL_DIRECTCOLOR) { - struct fb_cmap cmap; int i; - for (i = 0; + for (i = 0; i < (1 << priv->var.red.length) || i < (1 << priv->var.green.length) || i < (1 << priv->var.blue.length); i++) @@ -686,13 +695,8 @@ fbdevEnable (ScreenPtr pScreen) priv->green[i] = i * 65535 / ((1 << priv->var.green.length) - 1); priv->blue[i] = i * 65535 / ((1 << priv->var.blue.length) - 1); } - cmap.start = 0; - cmap.len = i; - cmap.red = &priv->red[0]; - cmap.green = &priv->green[0]; - cmap.blue = &priv->blue[0]; - cmap.transp = 0; - ioctl (priv->fd, FBIOPUTCMAP, &cmap); + + fbdevUpdateFbColormap(priv, 0, i); } return TRUE; } @@ -742,14 +746,17 @@ void fbdevCardFini (KdCardInfo *card) { FbdevPriv *priv = card->driver; - + munmap (priv->fb_base, priv->fix.smem_len); close (priv->fd); xfree (priv); } +/* + * Retrieve actual colormap and return selected n entries in pdefs. + */ void -fbdevGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) +fbdevGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs) { KdScreenPriv(pScreen); FbdevPriv *priv = pScreenPriv->card->driver; @@ -789,12 +796,14 @@ fbdevGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) } } +/* + * Change colormap by updating n entries described in pdefs. + */ void -fbdevPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) +fbdevPutColors (ScreenPtr pScreen, int n, xColorItem *pdefs) { KdScreenPriv(pScreen); FbdevPriv *priv = pScreenPriv->card->driver; - struct fb_cmap cmap; int p; int min, max; @@ -812,11 +821,6 @@ fbdevPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs) max = p; pdefs++; } - cmap.start = min; - cmap.len = max - min + 1; - cmap.red = &priv->red[min]; - cmap.green = &priv->green[min]; - cmap.blue = &priv->blue[min]; - cmap.transp = 0; - ioctl (priv->fd, FBIOPUTCMAP, &cmap); + + fbdevUpdateFbColormap(priv, min, max); } diff --git a/xorg-server/hw/kdrive/fbdev/fbdev.h b/xorg-server/hw/kdrive/fbdev/fbdev.h index 3da8e4753..ebac6ad8b 100644 --- a/xorg-server/hw/kdrive/fbdev/fbdev.h +++ b/xorg-server/hw/kdrive/fbdev/fbdev.h @@ -52,18 +52,12 @@ extern KdCardFuncs fbdevFuncs; extern char* fbdevDevicePath; Bool -fbdevInitialize (KdCardInfo *card, FbdevPriv *priv); - -Bool fbdevCardInit (KdCardInfo *card); Bool fbdevScreenInit (KdScreenInfo *screen); Bool -fbdevScreenInitialize (KdScreenInfo *screen, FbdevScrPriv *scrpriv); - -Bool fbdevInitScreen (ScreenPtr pScreen); Bool @@ -94,46 +88,12 @@ void fbdevCardFini (KdCardInfo *card); void -fbdevGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs); +fbdevGetColors (ScreenPtr pScreen, int n, xColorItem *pdefs); void -fbdevPutColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs); +fbdevPutColors (ScreenPtr pScreen, int n, xColorItem *pdefs); Bool fbdevMapFramebuffer (KdScreenInfo *screen); -void * -fbdevWindowLinear (ScreenPtr pScreen, - CARD32 row, - CARD32 offset, - int mode, - CARD32 *size, - void *closure); - -void -fbdevSetScreenSizes (ScreenPtr pScreen); - -Bool -fbdevUnmapFramebuffer (KdScreenInfo *screen); - -Bool -fbdevSetShadow (ScreenPtr pScreen); - -Bool -fbdevCreateColormap (ColormapPtr pmap); - -#ifdef RANDR -Bool -fbdevRandRGetInfo (ScreenPtr pScreen, Rotation *rotations); - -Bool -fbdevRandRSetConfig (ScreenPtr pScreen, - Rotation randr, - int rate, - RRScreenSizePtr pSize); -Bool -fbdevRandRInit (ScreenPtr pScreen); - -#endif - #endif /* _FBDEV_H_ */ diff --git a/xorg-server/hw/kdrive/fbdev/fbinit.c b/xorg-server/hw/kdrive/fbdev/fbinit.c index de80c79aa..93646f6d7 100644 --- a/xorg-server/hw/kdrive/fbdev/fbinit.c +++ b/xorg-server/hw/kdrive/fbdev/fbinit.c @@ -28,9 +28,7 @@ void InitCard (char *name) { - KdCardAttr attr; - - KdCardInfoAdd (&fbdevFuncs, &attr, 0); + KdCardInfoAdd (&fbdevFuncs, 0); } void @@ -60,11 +58,11 @@ ddxProcessArgument (int argc, char **argv, int i) { if (!strcmp (argv[i], "-fb")) { - if (i+1 < argc) + if (i+1 < argc) { fbdevDevicePath = argv[i+1]; return 2; - } + } UseMsg(); exit(1); } @@ -86,18 +84,18 @@ KdCardFuncs fbdevFuncs = { fbdevRestore, /* restore */ fbdevScreenFini, /* scrfini */ fbdevCardFini, /* cardfini */ - + 0, /* initCursor */ 0, /* enableCursor */ 0, /* disableCursor */ 0, /* finiCursor */ 0, /* recolorCursor */ - + 0, /* initAccel */ 0, /* enableAccel */ 0, /* disableAccel */ 0, /* finiAccel */ - + fbdevGetColors, /* getColors */ fbdevPutColors, /* putColors */ }; diff --git a/xorg-server/hw/kdrive/linux/Makefile.am b/xorg-server/hw/kdrive/linux/Makefile.am index 13df142f7..fe4a3d183 100644 --- a/xorg-server/hw/kdrive/linux/Makefile.am +++ b/xorg-server/hw/kdrive/linux/Makefile.am @@ -6,19 +6,22 @@ AM_CFLAGS = -DHAVE_DIX_CONFIG_H noinst_LTLIBRARIES = liblinux.la -if TSLIB -TSLIB_C = tslib.c +liblinux_la_SOURCES = + +liblinux_la_SOURCES += linux.c klinux.h + +if KDRIVE_KBD +liblinux_la_SOURCES += keyboard.c +endif + +if KDRIVE_EVDEV +liblinux_la_SOURCES += evdev.c endif -KDRIVE_HW_SOURCES = \ - evdev.c \ - keyboard.c \ - linux.c - -liblinux_la_SOURCES = \ - bus.c \ - mouse.c \ - ms.c \ - ps2.c \ - $(KDRIVE_HW_SOURCES) \ - $(TSLIB_C) +if KDRIVE_MOUSE +liblinux_la_SOURCES += mouse.c ms.c ps2.c +endif + +if TSLIB +liblinux_la_SOURCES += tslib.c +endif diff --git a/xorg-server/hw/kdrive/linux/bus.c b/xorg-server/hw/kdrive/linux/bus.c deleted file mode 100644 index de9b90f5a..000000000 --- a/xorg-server/hw/kdrive/linux/bus.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright © 2000 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_CONFIG_H -#include <kdrive-config.h> -#endif -#include <X11/X.h> -#include <X11/Xproto.h> -#include <X11/Xpoll.h> -#include "inputstr.h" -#include "scrnintstr.h" -#include "kdrive.h" - -/* /dev/adbmouse is a busmouse */ - -static void -BusRead (int adbPort, void *closure) -{ - unsigned char buf[3]; - int n; - int dx, dy; - unsigned long flags; - - n = read (adbPort, buf, 3); - if (n == 3) - { - flags = KD_MOUSE_DELTA; - dx = (char) buf[1]; - dy = -(char) buf[2]; - if ((buf[0] & 4) == 0) - flags |= KD_BUTTON_1; - if ((buf[0] & 2) == 0) - flags |= KD_BUTTON_2; - if ((buf[0] & 1) == 0) - flags |= KD_BUTTON_3; - KdEnqueuePointerEvent (closure, flags, dx, dy, 0); - } -} - -char *BusNames[] = { - "/dev/adbmouse", - "/dev/mouse", -}; - -#define NUM_BUS_NAMES (sizeof (BusNames) / sizeof (BusNames[0])) - -static int -BusInit (KdPointerInfo *pi) -{ - int i, fd = 0; - - if (!pi->path || (strcmp(pi->path, "auto") == 0)) - { - for (i = 0; i < NUM_BUS_NAMES; i++) - { - if ((fd = open (BusNames[i], 0)) >= 0) - { - close(fd); - xfree(pi->path); - pi->path = strdup(BusNames[i]); - return Success; - } - } - } - else - { - if ((fd = open(pi->path, 0)) >= 0) - { - close(fd); - return Success; - } - } - - return !Success; -} - -static int -BusEnable (KdPointerInfo *pi) -{ - int fd = open(pi->path, 0); - - if (fd >= 0) - { - KdRegisterFd(fd, BusRead, pi); - pi->driverPrivate = (void *)fd; - return Success; - } - else - { - return !Success; - } -} - -static void -BusDisable (KdPointerInfo *pi) -{ - KdUnregisterFd(pi, (int)pi->driverPrivate, TRUE); -} - -static void -BusFini (KdPointerInfo *pi) -{ - return; -} - -KdPointerDriver BusMouseDriver = { - "bus", - BusInit, - BusEnable, - BusDisable, - BusFini, - NULL -}; diff --git a/xorg-server/hw/kdrive/linux/evdev.c b/xorg-server/hw/kdrive/linux/evdev.c index 096a2ddc3..485a2b557 100644 --- a/xorg-server/hw/kdrive/linux/evdev.c +++ b/xorg-server/hw/kdrive/linux/evdev.c @@ -48,7 +48,7 @@ typedef struct _kevdev { int abs[ABS_MAX + 1]; int prevabs[ABS_MAX + 1]; long key[NBITS(KEY_MAX + 1)]; - + /* supported device info */ long relbits[NBITS(REL_MAX + 1)]; long absbits[NBITS(ABS_MAX + 1)]; @@ -106,12 +106,12 @@ EvdevPtrMotion (KdPointerInfo *pi, struct input_event *ev) int a; for (a = 0; a <= ke->max_rel; a++) { - if (ISBITSET (ke->relbits, a)) + if (ISBITSET (ke->relbits, a)) { if (a == 0) KdEnqueuePointerEvent(pi, flags, ke->rel[a], 0, 0); else if (a == 1) - KdEnqueuePointerEvent(pi, flags, 0, ke->rel[a], 0); + KdEnqueuePointerEvent(pi, flags, 0, ke->rel[a], 0); } ke->rel[a] = 0; } @@ -131,9 +131,9 @@ EvdevPtrMotion (KdPointerInfo *pi, struct input_event *ev) ErrorF ("\n"); break; } - - if (ev->code == REL_WHEEL) { - for (i = 0; i < abs (ev->value); i++) + + if (ev->code == REL_WHEEL) { + for (i = 0; i < abs (ev->value); i++) { if (ev->value > 0) flags |= KD_BUTTON_4; @@ -150,7 +150,7 @@ EvdevPtrMotion (KdPointerInfo *pi, struct input_event *ev) KdEnqueuePointerEvent (pi, flags, 0, 0, 0); } } - + } static void @@ -164,7 +164,7 @@ EvdevPtrRead (int evdevPort, void *closure) n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event)); if (n <= 0) { - if (errno == ENODEV) + if (errno == ENODEV) DeleteInputDeviceRequest(pi->dixdev); return; } @@ -231,7 +231,7 @@ EvdevPtrInit (KdPointerInfo *pi) static Status EvdevPtrEnable (KdPointerInfo *pi) -{ +{ int fd; unsigned long ev[NBITS(EV_MAX)]; Kevdev *ke; @@ -352,7 +352,7 @@ EvdevPtrFini (KdPointerInfo *pi) /* - * Evdev keyboard functions + * Evdev keyboard functions */ static void @@ -374,7 +374,7 @@ EvdevKbdRead (int evdevPort, void *closure) n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event)); if (n <= 0) { - if (errno == ENODEV) + if (errno == ENODEV) DeleteInputDeviceRequest(ki->dixdev); return; } @@ -395,7 +395,7 @@ static Status EvdevKbdInit (KdKeyboardInfo *ki) { int fd; - + if (!ki->path) { ErrorF("Couldn't find evdev device path\n"); return BadValue; diff --git a/xorg-server/hw/kdrive/linux/linux.c b/xorg-server/hw/kdrive/linux/linux.c index f76c2cbd9..9863c1424 100644 --- a/xorg-server/hw/kdrive/linux/linux.c +++ b/xorg-server/hw/kdrive/linux/linux.c @@ -33,6 +33,22 @@ #include <X11/keysym.h> #include <linux/apm_bios.h> +#ifdef KDRIVE_MOUSE +extern KdPointerDriver LinuxMouseDriver; +extern KdPointerDriver Ps2MouseDriver; +extern KdPointerDriver MsMouseDriver; +#endif +#ifdef TSLIB +extern KdPointerDriver TsDriver; +#endif +#ifdef KDRIVE_EVDEV +extern KdPointerDriver LinuxEvdevMouseDriver; +extern KdKeyboardDriver LinuxEvdevKeyboardDriver; +#endif +#ifdef KDRIVE_KBD +extern KdKeyboardDriver LinuxKeyboardDriver; +#endif + static int vtno; int LinuxConsoleFd; int LinuxApmFd = -1; @@ -79,7 +95,7 @@ LinuxInit (void) vtno = kdVirtualTerminal; else { - if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) + if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) { FatalError( "LinuxInit: Cannot open /dev/tty0 (%s)\n", @@ -129,8 +145,8 @@ LinuxSetSwitchMode (int mode) { struct sigaction act; struct vt_mode VT; - - if (ioctl(LinuxConsoleFd, VT_GETMODE, &VT) < 0) + + if (ioctl(LinuxConsoleFd, VT_GETMODE, &VT) < 0) { FatalError ("LinuxInit: VT_GETMODE failed\n"); } @@ -141,7 +157,7 @@ LinuxSetSwitchMode (int mode) sigemptyset (&act.sa_mask); act.sa_flags = 0; sigaction (SIGUSR1, &act, 0); - + VT.mode = mode; VT.relsig = SIGUSR1; VT.acqsig = SIGUSR1; @@ -152,12 +168,12 @@ LinuxSetSwitchMode (int mode) sigemptyset (&act.sa_mask); act.sa_flags = 0; sigaction (SIGUSR1, &act, 0); - + VT.mode = mode; VT.relsig = 0; VT.acqsig = 0; } - if (ioctl(LinuxConsoleFd, VT_SETMODE, &VT) < 0) + if (ioctl(LinuxConsoleFd, VT_SETMODE, &VT) < 0) { FatalError("LinuxInit: VT_SETMODE failed\n"); } @@ -237,7 +253,7 @@ LinuxEnable (void) */ LinuxApmFd = open ("/dev/apm_bios", 2); if (LinuxApmFd < 0 && errno == ENOENT) - LinuxApmFd = open ("/dev/misc/apm_bios", 2); + LinuxApmFd = open ("/dev/misc/apm_bios", 2); if (LinuxApmFd >= 0) { LinuxApmRunning = TRUE; @@ -245,7 +261,7 @@ LinuxEnable (void) RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0); AddEnabledDevice (LinuxApmFd); } - + /* * now get the VT */ @@ -308,8 +324,8 @@ LinuxFini (void) * Find a legal VT to switch to, either the one we started from * or the lowest active one that isn't ours */ - if (activeVT < 0 || - activeVT == vts.v_active || + if (activeVT < 0 || + activeVT == vts.v_active || !(vts.v_state & (1 << activeVT))) { for (activeVT = 1; activeVT < 16; activeVT++) @@ -345,15 +361,21 @@ LinuxFini (void) void KdOsAddInputDrivers (void) { +#ifdef KDRIVE_MOUSE KdAddPointerDriver(&LinuxMouseDriver); KdAddPointerDriver(&MsMouseDriver); KdAddPointerDriver(&Ps2MouseDriver); +#endif #ifdef TSLIB KdAddPointerDriver(&TsDriver); #endif +#ifdef KDRIVE_EVDEV KdAddPointerDriver(&LinuxEvdevMouseDriver); - KdAddKeyboardDriver(&LinuxKeyboardDriver); KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver); +#endif +#ifdef KDRIVE_KBD + KdAddKeyboardDriver(&LinuxKeyboardDriver); +#endif } static void diff --git a/xorg-server/hw/kdrive/linux/mouse.c b/xorg-server/hw/kdrive/linux/mouse.c index 6f399b586..007263e4b 100644 --- a/xorg-server/hw/kdrive/linux/mouse.c +++ b/xorg-server/hw/kdrive/linux/mouse.c @@ -112,7 +112,7 @@ MouseFlush (Kbufio *b, char *buf, int size) CARD32 done = now + 100; int c; int n = 0; - + while ((c = MouseReadByte (b, done - now)) != -1) { if (buf) @@ -170,7 +170,7 @@ static Bool MouseWriteByte (int fd, unsigned char c, int timeout) { int ret; - + #ifdef DEBUG_BYTES ErrorF ("\tput %02x\n", c); #endif @@ -234,7 +234,7 @@ typedef struct _kmouse { int invalid;/* total invalid bytes for this protocol */ unsigned long state; /* private per protocol, init to prot->state */ } Kmouse; - + static int mouseValid (KdPointerInfo *pi, unsigned char *ev, int ne) { Kmouse *km = pi->driverPrivate; @@ -271,16 +271,16 @@ static Bool MouseReasonable (KdPointerInfo *pi, unsigned long flags, int dx, int { Kmouse *km = pi->driverPrivate; - if (km->stage == MouseWorking) + if (km->stage == MouseWorking) return TRUE; - if (dx < -50 || dx > 50) + if (dx < -50 || dx > 50) { #ifdef DEBUG ErrorF ("Large X %d\n", dx); #endif return FALSE; } - if (dy < -50 || dy > 50) + if (dy < -50 || dy > 50) { #ifdef DEBUG ErrorF ("Large Y %d\n", dy); @@ -299,7 +299,7 @@ static Bool ps2Parse (KdPointerInfo *pi, unsigned char *ev, int ne) int dx, dy, dz; unsigned long flags; unsigned long flagsrelease = 0; - + flags = KD_MOUSE_DELTA; if (ev[0] & 4) flags |= KD_BUTTON_2; @@ -307,7 +307,7 @@ static Bool ps2Parse (KdPointerInfo *pi, unsigned char *ev, int ne) flags |= KD_BUTTON_3; if (ev[0] & 1) flags |= KD_BUTTON_1; - + if (ne > 3) { dz = (int) (signed char) ev[3]; @@ -322,7 +322,7 @@ static Bool ps2Parse (KdPointerInfo *pi, unsigned char *ev, int ne) flagsrelease = KD_BUTTON_5; } } - + dx = ev[1]; if (ev[0] & 0x10) dx -= 256; @@ -407,14 +407,14 @@ static const KmouseProt exps2Prot = { #define PSM_4DMOUSE_ID 6 #define PSM_4DPLUS_ID 8 -static unsigned char ps2_init[] = { +static unsigned char ps2_init[] = { PSMC_ENABLE_DEV, 0, }; #define NINIT_PS2 1 -static unsigned char wheel_3button_init[] = { +static unsigned char wheel_3button_init[] = { PSMC_SET_SAMPLING_RATE, 200, PSMC_SET_SAMPLING_RATE, 100, PSMC_SET_SAMPLING_RATE, 80, @@ -431,7 +431,7 @@ static unsigned char wheel_5button_init[] = { PSMC_SET_SAMPLING_RATE, 200, PSMC_SET_SAMPLING_RATE, 200, PSMC_SET_SAMPLING_RATE, 80, - PSMC_SEND_DEV_ID, + PSMC_SEND_DEV_ID, 0 }; @@ -439,8 +439,8 @@ static unsigned char wheel_5button_init[] = { static unsigned char intelli_init[] = { PSMC_SET_SAMPLING_RATE, 200, - PSMC_SET_SAMPLING_RATE, 100, - PSMC_SET_SAMPLING_RATE, 80, + PSMC_SET_SAMPLING_RATE, 100, + PSMC_SET_SAMPLING_RATE, 80, 0 }; @@ -453,7 +453,7 @@ ps2SkipInit (KdPointerInfo *pi, int ninit, Bool ret_next) int c = -1; int skipping; Bool waiting; - + skipping = 0; waiting = FALSE; while (ninit || ret_next) @@ -486,7 +486,7 @@ ps2Init (KdPointerInfo *pi) int id; unsigned char *init; int ninit; - + /* Send Intellimouse initialization sequence */ MouseWriteBytes (km->iob.fd, intelli_init, strlen ((char *) intelli_init), 100); /* @@ -530,7 +530,7 @@ static Bool busParse (KdPointerInfo *pi, unsigned char *ev, int ne) Kmouse *km = pi->driverPrivate; int dx, dy; unsigned long flags; - + flags = KD_MOUSE_DELTA; dx = (signed char) ev[1]; dy = -(signed char) ev[2]; @@ -636,14 +636,14 @@ static Bool logiParse (KdPointerInfo *pi, unsigned char *ev, int ne) unsigned long flags; flags = KD_MOUSE_DELTA; - + if (ne == 3) { if (ev[0] & 0x20) flags |= KD_BUTTON_1; if (ev[0] & 0x10) flags |= KD_BUTTON_3; - + dx = (signed char)(((ev[0] & 0x03) << 6) | (ev[1] & 0x3F)); dy = (signed char)(((ev[0] & 0x0C) << 4) | (ev[2] & 0x3F)); flags |= km->state & KD_BUTTON_2; @@ -686,7 +686,7 @@ static Bool mscParse (KdPointerInfo *pi, unsigned char *ev, int ne) unsigned long flags; flags = KD_MOUSE_DELTA; - + if (!(ev[0] & 0x4)) flags |= KD_BUTTON_1; if (!(ev[0] & 0x2)) @@ -871,7 +871,7 @@ MouseRead (int mousePort, void *closure) switch (km->stage) { case MouseBroken: -#ifdef DEBUG +#ifdef DEBUG ErrorF ("Mouse protocol %s seems OK\n", km->prot->name); #endif @@ -939,7 +939,7 @@ MouseInit (KdPointerInfo *pi) if (!pi) return BadImplementation; - + if (!pi->path || strcmp(pi->path, "auto") == 0) { for (i = 0; i < NUM_DEFAULT_MOUSE; i++) { fd = open (kdefaultMouse[i], 2); @@ -952,7 +952,7 @@ MouseInit (KdPointerInfo *pi) else { fd = open (pi->path, 2); } - + if (fd < 0) return BadMatch; @@ -1008,7 +1008,7 @@ MouseDisable (KdPointerInfo *pi) Kmouse *km; if (!pi || !pi->driverPrivate) return; - + km = pi->driverPrivate; KdUnregisterFd (pi, km->iob.fd, TRUE); } diff --git a/xorg-server/hw/kdrive/linux/ms.c b/xorg-server/hw/kdrive/linux/ms.c index 5786ed170..b6151cd90 100644 --- a/xorg-server/hw/kdrive/linux/ms.c +++ b/xorg-server/hw/kdrive/linux/ms.c @@ -83,7 +83,7 @@ MsRead (int port, void *closure) flags |= KD_BUTTON_1; if (b[0] & 0x10) flags |= KD_BUTTON_3; - + dx = (char)(((b[0] & 0x03) << 6) | (b[1] & 0x3F)); dy = (char)(((b[0] & 0x0C) << 4) | (b[2] & 0x3F)); n -= 3; @@ -103,8 +103,8 @@ MsInit (KdPointerInfo *pi) pi->path = strdup("/dev/mouse"); if (!pi->name) pi->name = strdup("Microsoft protocol mouse"); - - return Success; + + return Success; } static Status diff --git a/xorg-server/hw/kdrive/linux/ps2.c b/xorg-server/hw/kdrive/linux/ps2.c index 396758481..552a3c7cb 100644 --- a/xorg-server/hw/kdrive/linux/ps2.c +++ b/xorg-server/hw/kdrive/linux/ps2.c @@ -99,7 +99,7 @@ Ps2Read (int ps2Port, void *closure) flags |= right_button; if (b[0] & 1) flags |= left_button; - + dx = b[1]; if (b[0] & 0x10) dx -= 256; @@ -146,7 +146,7 @@ static Status Ps2Enable (KdPointerInfo *pi) { int fd; - + if (!pi) return BadImplementation; diff --git a/xorg-server/hw/kdrive/src/Makefile.am b/xorg-server/hw/kdrive/src/Makefile.am index 7ac23c2aa..51375b950 100644 --- a/xorg-server/hw/kdrive/src/Makefile.am +++ b/xorg-server/hw/kdrive/src/Makefile.am @@ -15,12 +15,10 @@ endif libkdrive_la_SOURCES = \ fourcc.h \ kcmap.c \ - kcurscol.c \ kdrive.c \ kdrive.h \ kinfo.c \ kinput.c \ - kmap.c \ kmode.c \ kshadow.c \ $(KDRIVE_XV_SOURCES) \ diff --git a/xorg-server/hw/kdrive/src/kcmap.c b/xorg-server/hw/kdrive/src/kcmap.c index 2c33e798a..40697e091 100644 --- a/xorg-server/hw/kdrive/src/kcmap.c +++ b/xorg-server/hw/kdrive/src/kcmap.c @@ -30,10 +30,10 @@ */ void -KdSetColormap (ScreenPtr pScreen, int fb) +KdSetColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); - ColormapPtr pCmap = pScreenPriv->pInstalledmap[fb]; + ColormapPtr pCmap = pScreenPriv->pInstalledmap; Pixel pixels[KD_MAX_PSEUDO_SIZE]; xrgb colors[KD_MAX_PSEUDO_SIZE]; xColorItem defs[KD_MAX_PSEUDO_SIZE]; @@ -41,12 +41,12 @@ KdSetColormap (ScreenPtr pScreen, int fb) if (!pScreenPriv->card->cfuncs->putColors) return; - if (pScreenPriv->screen->fb[fb].depth > KD_MAX_PSEUDO_DEPTH) + if (pScreenPriv->screen->fb.depth > KD_MAX_PSEUDO_DEPTH) return; - + if (!pScreenPriv->enabled) return; - + if (!pCmap) return; @@ -54,13 +54,13 @@ KdSetColormap (ScreenPtr pScreen, int fb) * Make DIX convert pixels into RGB values -- this handles * true/direct as well as pseudo/static visuals */ - - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) + + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) pixels[i] = i; - QueryColors (pCmap, (1 << pScreenPriv->screen->fb[fb].depth), pixels, colors); - - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) + QueryColors (pCmap, (1 << pScreenPriv->screen->fb.depth), pixels, colors); + + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) { defs[i].pixel = i; defs[i].red = colors[i].red; @@ -69,8 +69,8 @@ KdSetColormap (ScreenPtr pScreen, int fb) defs[i].flags = DoRed|DoGreen|DoBlue; } - (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), + (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, + (1 << pScreenPriv->screen->fb.depth), defs); /* recolor hardware cursor */ @@ -87,77 +87,35 @@ KdEnableColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); int i; - int fb; - Bool done = FALSE; if (!pScreenPriv->card->cfuncs->putColors) return; - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) + + if (pScreenPriv->screen->fb.depth <= KD_MAX_PSEUDO_DEPTH) { - if (pScreenPriv->screen->fb[fb].depth <= KD_MAX_PSEUDO_DEPTH && !done) - { - for (i = 0; i < (1 << pScreenPriv->screen->fb[fb].depth); i++) - pScreenPriv->systemPalette[i].pixel = i; - (*pScreenPriv->card->cfuncs->getColors) (pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), - pScreenPriv->systemPalette); - done = TRUE; - } - KdSetColormap (pScreen, fb); + for (i = 0; i < (1 << pScreenPriv->screen->fb.depth); i++) + pScreenPriv->systemPalette[i].pixel = i; + (*pScreenPriv->card->cfuncs->getColors) (pScreen, + (1 << pScreenPriv->screen->fb.depth), + pScreenPriv->systemPalette); } + KdSetColormap (pScreen); } void KdDisableColormap (ScreenPtr pScreen) { KdScreenPriv(pScreen); - int fb; if (!pScreenPriv->card->cfuncs->putColors) return; - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) - { - if (pScreenPriv->screen->fb[fb].depth <= KD_MAX_PSEUDO_DEPTH) - { - (*pScreenPriv->card->cfuncs->putColors) (pScreen, fb, - (1 << pScreenPriv->screen->fb[fb].depth), - pScreenPriv->systemPalette); - break; - } - } -} -static int -KdColormapFb (ColormapPtr pCmap) -{ - ScreenPtr pScreen = pCmap->pScreen; - KdScreenPriv (pScreen); - KdScreenInfo *screen = pScreenPriv->screen; - int d; - DepthPtr depth; - int v; - VisualID vid = pCmap->pVisual->vid; - int fb; - - if (screen->fb[1].depth) + if (pScreenPriv->screen->fb.depth <= KD_MAX_PSEUDO_DEPTH) { - for (d = 0; d < pScreen->numDepths; d++) - { - depth = &pScreen->allowedDepths[d]; - for (v = 0; v < depth->numVids; v++) - { - if (depth->vids[v] == vid) - { - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - { - if (depth->depth == screen->fb[fb].depth) - return fb; - } - } - } - } + (*pScreenPriv->card->cfuncs->putColors) (pScreen, + (1 << pScreenPriv->screen->fb.depth), + pScreenPriv->systemPalette); } - return 0; } /* @@ -173,21 +131,20 @@ void KdInstallColormap (ColormapPtr pCmap) { KdScreenPriv(pCmap->pScreen); - int fb = KdColormapFb (pCmap); - if (pCmap == pScreenPriv->pInstalledmap[fb]) + if (pCmap == pScreenPriv->pInstalledmap) return; /* Tell X clients that the installed colormap is going away. */ - if (pScreenPriv->pInstalledmap[fb]) - WalkTree(pScreenPriv->pInstalledmap[fb]->pScreen, TellLostMap, - (pointer) &(pScreenPriv->pInstalledmap[fb]->mid)); + if (pScreenPriv->pInstalledmap) + WalkTree(pScreenPriv->pInstalledmap->pScreen, TellLostMap, + (pointer) &(pScreenPriv->pInstalledmap->mid)); /* Take note of the new installed colorscreen-> */ - pScreenPriv->pInstalledmap[fb] = pCmap; + pScreenPriv->pInstalledmap = pCmap; + + KdSetColormap (pCmap->pScreen); - KdSetColormap (pCmap->pScreen, fb); - /* Tell X clients of the new colormap */ WalkTree(pCmap->pScreen, TellGainedMap, (pointer) &(pCmap->mid)); } @@ -195,7 +152,7 @@ KdInstallColormap (ColormapPtr pCmap) /* * KdUninstallColormap * - * This function uninstalls a colormap by either installing + * This function uninstalls a colormap by either installing * the default X colormap or erasing the installed colormap pointer. * The default X colormap itself cannot be uninstalled. */ @@ -203,12 +160,11 @@ void KdUninstallColormap (ColormapPtr pCmap) { KdScreenPriv(pCmap->pScreen); - int fb = KdColormapFb (pCmap); Colormap defMapID; ColormapPtr defMap; /* ignore if not installed */ - if (pCmap != pScreenPriv->pInstalledmap[fb]) + if (pCmap != pScreenPriv->pInstalledmap) return; /* ignore attempts to uninstall default colormap */ @@ -216,17 +172,17 @@ KdUninstallColormap (ColormapPtr pCmap) if ((Colormap) pCmap->mid == defMapID) return; - /* install default if on same fb */ + /* install default */ dixLookupResourceByType((pointer *)&defMap, defMapID, RT_COLORMAP, serverClient, DixInstallAccess); - if (defMap && KdColormapFb (defMap) == fb) + if (defMap) (*pCmap->pScreen->InstallColormap)(defMap); else { /* uninstall and clear colormap pointer */ WalkTree(pCmap->pScreen, TellLostMap, (pointer) &(pCmap->mid)); - pScreenPriv->pInstalledmap[fb] = 0; + pScreenPriv->pInstalledmap = 0; } } @@ -234,16 +190,12 @@ int KdListInstalledColormaps (ScreenPtr pScreen, Colormap *pCmaps) { KdScreenPriv(pScreen); - int fb; int n = 0; - - for (fb = 0; fb < KD_MAX_FB && pScreenPriv->screen->fb[fb].depth; fb++) + + if (pScreenPriv->pInstalledmap) { - if (pScreenPriv->pInstalledmap[fb]) - { - *pCmaps++ = pScreenPriv->pInstalledmap[fb]->mid; - n++; - } + *pCmaps++ = pScreenPriv->pInstalledmap->mid; + n++; } return n; } @@ -261,20 +213,19 @@ KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs) KdScreenPriv(pCmap->pScreen); VisualPtr pVisual; xColorItem expanddefs[KD_MAX_PSEUDO_SIZE]; - int fb = KdColormapFb (pCmap); - if (pCmap != pScreenPriv->pInstalledmap[fb]) + if (pCmap != pScreenPriv->pInstalledmap) return; - + if (!pScreenPriv->card->cfuncs->putColors) return; - - if (pScreenPriv->screen->fb[fb].depth > KD_MAX_PSEUDO_DEPTH) + + if (pScreenPriv->screen->fb.depth > KD_MAX_PSEUDO_DEPTH) return; - + if (!pScreenPriv->enabled) return; - + /* Check for DirectColor or TrueColor being simulated on a PseudoColor device. */ pVisual = pCmap->pVisual; if ((pVisual->class | DynamicClass) == DirectColor) @@ -287,8 +238,8 @@ KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs) pdefs = expanddefs; } - (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, fb, ndef, pdefs); - + (*pScreenPriv->card->cfuncs->putColors) (pCmap->pScreen, ndef, pdefs); + /* recolor hardware cursor */ if (pScreenPriv->card->cfuncs->recolorCursor) (*pScreenPriv->card->cfuncs->recolorCursor) (pCmap->pScreen, ndef, pdefs); diff --git a/xorg-server/hw/kdrive/src/kcurscol.c b/xorg-server/hw/kdrive/src/kcurscol.c deleted file mode 100644 index 6a17df30f..000000000 --- a/xorg-server/hw/kdrive/src/kcurscol.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_CONFIG_H -#include <kdrive-config.h> -#endif -#include "kdrive.h" -#include "cursorstr.h" - -static int -KdComputeCmapShift (unsigned long mask) -{ - int shift; - unsigned long bit; - - shift = 16; - bit = 0x80000000; - while (!(mask & bit)) - { - shift--; - bit >>= 1; - } - return shift; -} - -#define Shift(v,d) ((d) < 0 ? ((v) >> (-d)) : ((v) << (d))) - -void -KdAllocateCursorPixels (ScreenPtr pScreen, - int fb, - CursorPtr pCursor, - Pixel *source, - Pixel *mask) -{ - xColorItem sourceColor, maskColor; - int r, g, b; - KdScreenPriv(pScreen); - - if (pScreenPriv->screen->fb[fb].redMask) - { - - r = KdComputeCmapShift (pScreenPriv->screen->fb[fb].redMask); - g = KdComputeCmapShift (pScreenPriv->screen->fb[fb].greenMask); - b = KdComputeCmapShift (pScreenPriv->screen->fb[fb].blueMask); - *source = ((Shift(pCursor->foreRed,r) & pScreenPriv->screen->fb[fb].redMask) | - (Shift(pCursor->foreGreen,g) & pScreenPriv->screen->fb[fb].greenMask) | - (Shift(pCursor->foreBlue,b) & pScreenPriv->screen->fb[fb].blueMask)); - *mask = ((Shift(pCursor->backRed,r) & pScreenPriv->screen->fb[fb].redMask) | - (Shift(pCursor->backGreen,g) & pScreenPriv->screen->fb[fb].greenMask) | - (Shift(pCursor->backBlue,b) & pScreenPriv->screen->fb[fb].blueMask)); - } - else - { - /* - * Set these to an invalid pixel value so that - * when the store colors comes through, the cursor - * won't get recolored - */ - *source = ~0; - *mask = ~0; - - sourceColor.red = pCursor->foreRed; - sourceColor.green = pCursor->foreGreen; - sourceColor.blue = pCursor->foreBlue; - FakeAllocColor(pScreenPriv->pInstalledmap[fb], &sourceColor); - maskColor.red = pCursor->backRed; - maskColor.green = pCursor->backGreen; - maskColor.blue = pCursor->backBlue; - FakeAllocColor(pScreenPriv->pInstalledmap[fb], &maskColor); - FakeFreeColor(pScreenPriv->pInstalledmap[fb], sourceColor.pixel); - FakeFreeColor(pScreenPriv->pInstalledmap[fb], maskColor.pixel); - *source = sourceColor.pixel; - *mask = maskColor.pixel; - } -} diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c index f79b96f6f..7e3d3a095 100644 --- a/xorg-server/hw/kdrive/src/kdrive.c +++ b/xorg-server/hw/kdrive/src/kdrive.c @@ -1,1334 +1,1291 @@ -/* - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_CONFIG_H -#include <kdrive-config.h> -#endif -#include "kdrive.h" -#include <mivalidate.h> -#include <dixstruct.h> -#include "privates.h" -#ifdef RANDR -#include <randrstr.h> -#endif - -#ifdef XV -#include "kxv.h" -#endif - -#ifdef DPMSExtension -#include "dpmsproc.h" -#endif - -#ifdef HAVE_EXECINFO_H -#include <execinfo.h> -#endif - -#include <signal.h> - -typedef struct _kdDepths { - CARD8 depth; - CARD8 bpp; -} KdDepths; - -KdDepths kdDepths[] = { - { 1, 1 }, - { 4, 4 }, - { 8, 8 }, - { 15, 16 }, - { 16, 16 }, - { 24, 32 }, - { 32, 32 } -}; - -#define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0])) - -#define KD_DEFAULT_BUTTONS 5 - -static int kdScreenPrivateKeyIndex; -DevPrivateKey kdScreenPrivateKey = &kdScreenPrivateKeyIndex; -unsigned long kdGeneration; - -Bool kdVideoTest; -unsigned long kdVideoTestTime; -Bool kdEmulateMiddleButton; -Bool kdRawPointerCoordinates; -Bool kdDisableZaphod; -Bool kdAllowZap; -Bool kdEnabled; -int kdSubpixelOrder; -int kdVirtualTerminal = -1; -Bool kdSwitchPending; -char *kdSwitchCmd; -DDXPointRec kdOrigin; -Bool kdHasPointer = FALSE; -Bool kdHasKbd = FALSE; - -static Bool kdCaughtSignal = FALSE; - -/* - * Carry arguments from InitOutput through driver initialization - * to KdScreenInit - */ - -KdOsFuncs *kdOsFuncs; - -void -KdSetRootClip (ScreenPtr pScreen, BOOL enable) -{ - WindowPtr pWin = WindowTable[pScreen->myNum]; - WindowPtr pChild; - Bool WasViewable; - Bool anyMarked = FALSE; - WindowPtr pLayerWin; - BoxRec box; - - if (!pWin) - return; - WasViewable = (Bool)(pWin->viewable); - if (WasViewable) - { - for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib) - { - (void) (*pScreen->MarkOverlappedWindows)(pChild, - pChild, - &pLayerWin); - } - (*pScreen->MarkWindow) (pWin); - anyMarked = TRUE; - if (pWin->valdata) - { - if (HasBorder (pWin)) - { - RegionPtr borderVisible; - - borderVisible = REGION_CREATE(pScreen, NullBox, 1); - REGION_SUBTRACT(pScreen, borderVisible, - &pWin->borderClip, &pWin->winSize); - pWin->valdata->before.borderVisible = borderVisible; - } - pWin->valdata->before.resized = TRUE; - } - } - - if (enable) - { - box.x1 = 0; - box.y1 = 0; - box.x2 = pScreen->width; - box.y2 = pScreen->height; - pWin->drawable.width = pScreen->width; - pWin->drawable.height = pScreen->height; - REGION_INIT (pScreen, &pWin->winSize, &box, 1); - REGION_INIT (pScreen, &pWin->borderSize, &box, 1); - REGION_RESET(pScreen, &pWin->borderClip, &box); - REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList); - } - else - { - REGION_EMPTY(pScreen, &pWin->borderClip); - REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList); - } - - ResizeChildrenWinSize (pWin, 0, 0, 0, 0); - - if (WasViewable) - { - if (pWin->firstChild) - { - anyMarked |= (*pScreen->MarkOverlappedWindows)(pWin->firstChild, - pWin->firstChild, - (WindowPtr *)NULL); - } - else - { - (*pScreen->MarkWindow) (pWin); - anyMarked = TRUE; - } - - - if (anyMarked) - (*pScreen->ValidateTree)(pWin, NullWindow, VTOther); - } - - if (WasViewable) - { - if (anyMarked) - (*pScreen->HandleExposures)(pWin); - if (anyMarked && pScreen->PostValidateTree) - (*pScreen->PostValidateTree)(pWin, NullWindow, VTOther); - } - if (pWin->realized) - WindowsRestructured (); -} - -void -KdDisableScreen (ScreenPtr pScreen) -{ - KdScreenPriv(pScreen); - - if (!pScreenPriv->enabled) - return; - if (!pScreenPriv->closed) - KdSetRootClip (pScreen, FALSE); - KdDisableColormap (pScreen); - if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->disableAccel) - (*pScreenPriv->card->cfuncs->disableAccel) (pScreen); - if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->disableCursor) - (*pScreenPriv->card->cfuncs->disableCursor) (pScreen); - if (pScreenPriv->card->cfuncs->dpms) - (*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL); - pScreenPriv->enabled = FALSE; - if(pScreenPriv->card->cfuncs->disable) - (*pScreenPriv->card->cfuncs->disable) (pScreen); -} - -static void -KdDoSwitchCmd (char *reason) -{ - if (kdSwitchCmd) - { - char *command = xalloc (strlen (kdSwitchCmd) + - 1 + - strlen (reason) + - 1); - if (!command) - return; - strcpy (command, kdSwitchCmd); - strcat (command, " "); - strcat (command, reason); - system (command); - xfree (command); - } -} - -void -KdSuspend (void) -{ - KdCardInfo *card; - KdScreenInfo *screen; - - if (kdEnabled) - { - for (card = kdCardInfo; card; card = card->next) - { - for (screen = card->screenList; screen; screen = screen->next) - if (screen->mynum == card->selected && screen->pScreen) - KdDisableScreen (screen->pScreen); - if (card->driver && card->cfuncs->restore) - (*card->cfuncs->restore) (card); - } - KdDisableInput (); - KdDoSwitchCmd ("suspend"); - } -} - -void -KdDisableScreens (void) -{ - KdSuspend (); - if (kdEnabled) - { - if (kdOsFuncs->Disable) - (*kdOsFuncs->Disable) (); - kdEnabled = FALSE; - } -} - -Bool -KdEnableScreen (ScreenPtr pScreen) -{ - KdScreenPriv (pScreen); - - if (pScreenPriv->enabled) - return TRUE; - if(pScreenPriv->card->cfuncs->enable) - if (!(*pScreenPriv->card->cfuncs->enable) (pScreen)) - return FALSE; - pScreenPriv->enabled = TRUE; - pScreenPriv->dpmsState = KD_DPMS_NORMAL; - pScreenPriv->card->selected = pScreenPriv->screen->mynum; - if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor) - (*pScreenPriv->card->cfuncs->enableCursor) (pScreen); - if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->enableAccel) - (*pScreenPriv->card->cfuncs->enableAccel) (pScreen); - KdEnableColormap (pScreen); - KdSetRootClip (pScreen, TRUE); - if (pScreenPriv->card->cfuncs->dpms) - (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState); - return TRUE; -} - -void -KdResume (void) -{ - KdCardInfo *card; - KdScreenInfo *screen; - - if (kdEnabled) - { - KdDoSwitchCmd ("resume"); - for (card = kdCardInfo; card; card = card->next) - { - if(card->cfuncs->preserve) - (*card->cfuncs->preserve) (card); - for (screen = card->screenList; screen; screen = screen->next) - if (screen->mynum == card->selected && screen->pScreen) - KdEnableScreen (screen->pScreen); - } - KdEnableInput (); - KdReleaseAllKeys (); - } -} - -void -KdEnableScreens (void) -{ - if (!kdEnabled) - { - kdEnabled = TRUE; - if (kdOsFuncs->Enable) - (*kdOsFuncs->Enable) (); - } - KdResume (); -} - -void -KdProcessSwitch (void) -{ - if (kdEnabled) - KdDisableScreens (); - else - KdEnableScreens (); -} - -#ifndef _MSC_VER -void -AbortDDX(void) -{ - KdDisableScreens (); - if (kdOsFuncs) - { - if (kdEnabled && kdOsFuncs->Disable) - (*kdOsFuncs->Disable) (); - if (kdOsFuncs->Fini) - (*kdOsFuncs->Fini) (); - KdDoSwitchCmd ("stop"); - } - - if (kdCaughtSignal) - abort(); -} - -void -ddxGiveUp (void) -{ - AbortDDX (); -} -#endif - -Bool kdDumbDriver; -Bool kdSoftCursor; - -char * -KdParseFindNext (char *cur, char *delim, char *save, char *last) -{ - while (*cur && !strchr (delim, *cur)) - { - *save++ = *cur++; - } - *save = 0; - *last = *cur; - if (*cur) - cur++; - return cur; -} - -Rotation -KdAddRotation (Rotation a, Rotation b) -{ - Rotation rotate = (a & RR_Rotate_All) * (b & RR_Rotate_All); - Rotation reflect = (a & RR_Reflect_All) ^ (b & RR_Reflect_All); - - if (rotate > RR_Rotate_270) - rotate /= (RR_Rotate_270 * RR_Rotate_90); - return reflect | rotate; -} - -Rotation -KdSubRotation (Rotation a, Rotation b) -{ - Rotation rotate = (a & RR_Rotate_All) * 16 / (b & RR_Rotate_All); - Rotation reflect = (a & RR_Reflect_All) ^ (b & RR_Reflect_All); - - if (rotate > RR_Rotate_270) - rotate /= (RR_Rotate_270 * RR_Rotate_90); - return reflect | rotate; -} - -void -KdParseScreen (KdScreenInfo *screen, - char *arg) -{ - char delim; - char save[1024]; - int fb; - int i; - int pixels, mm; - - screen->dumb = kdDumbDriver; - screen->softCursor = kdSoftCursor; - screen->origin = kdOrigin; - screen->randr = RR_Rotate_0; - screen->width = 0; - screen->height = 0; - screen->width_mm = 0; - screen->height_mm = 0; - screen->subpixel_order = kdSubpixelOrder; - screen->rate = 0; - for (fb = 0; fb < KD_MAX_FB; fb++) - screen->fb[fb].depth = 0; - if (!arg) - return; - if (strlen (arg) >= sizeof (save)) - return; - - for (i = 0; i < 2; i++) - { - arg = KdParseFindNext (arg, "x/@XY", save, &delim); - if (!save[0]) - return; - - pixels = atoi(save); - mm = 0; - - if (delim == '/') - { - arg = KdParseFindNext (arg, "x@XY", save, &delim); - if (!save[0]) - return; - mm = atoi(save); - } - - if (i == 0) - { - screen->width = pixels; - screen->width_mm = mm; - } - else - { - screen->height = pixels; - screen->height_mm = mm; - } - if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y') - return; - } - - kdOrigin.x += screen->width; - kdOrigin.y = 0; - kdDumbDriver = FALSE; - kdSoftCursor = FALSE; - kdSubpixelOrder = SubPixelUnknown; - - if (delim == '@') - { - arg = KdParseFindNext (arg, "xXY", save, &delim); - if (save[0]) - { - int rotate = atoi (save); - if (rotate < 45) - screen->randr = RR_Rotate_0; - else if (rotate < 135) - screen->randr = RR_Rotate_90; - else if (rotate < 225) - screen->randr = RR_Rotate_180; - else if (rotate < 315) - screen->randr = RR_Rotate_270; - else - screen->randr = RR_Rotate_0; - } - } - if (delim == 'X') - { - arg = KdParseFindNext (arg, "xY", save, &delim); - screen->randr |= RR_Reflect_X; - } - - if (delim == 'Y') - { - arg = KdParseFindNext (arg, "xY", save, &delim); - screen->randr |= RR_Reflect_Y; - } - - fb = 0; - while (fb < KD_MAX_FB) - { - arg = KdParseFindNext (arg, "x/,", save, &delim); - if (!save[0]) - break; - screen->fb[fb].depth = atoi(save); - if (delim == '/') - { - arg = KdParseFindNext (arg, "x,", save, &delim); - if (!save[0]) - break; - screen->fb[fb].bitsPerPixel = atoi (save); - } - else - screen->fb[fb].bitsPerPixel = 0; - if (delim != ',') - break; - fb++; - } - - if (delim == 'x') - { - arg = KdParseFindNext (arg, "x", save, &delim); - if (save[0]) - screen->rate = atoi(save); - } -} - -/* - * Mouse argument syntax: - * - * device,protocol,options... - * - * Options are any of: - * 1-5 n button mouse - * 2button emulate middle button - * {NMO} Reorder buttons - */ - -void -KdParseRgba (char *rgba) -{ - if (!strcmp (rgba, "rgb")) - kdSubpixelOrder = SubPixelHorizontalRGB; - else if (!strcmp (rgba, "bgr")) - kdSubpixelOrder = SubPixelHorizontalBGR; - else if (!strcmp (rgba, "vrgb")) - kdSubpixelOrder = SubPixelVerticalRGB; - else if (!strcmp (rgba, "vbgr")) - kdSubpixelOrder = SubPixelVerticalBGR; - else if (!strcmp (rgba, "none")) - kdSubpixelOrder = SubPixelNone; - else - kdSubpixelOrder = SubPixelUnknown; -} - -void -KdUseMsg (void) -{ - ErrorF("\nTinyX Device Dependent Usage:\n"); - ErrorF("-screen WIDTH[/WIDTHMM]xHEIGHT[/HEIGHTMM][@ROTATION][X][Y][xDEPTH/BPP{,DEPTH/BPP}[xFREQ]] Specify screen characteristics\n"); - ErrorF("-rgba rgb/bgr/vrgb/vbgr/none Specify subpixel ordering for LCD panels\n"); - ErrorF("-mouse driver [,n,,options] Specify the pointer driver and its options (n is the number of buttons)\n"); - ErrorF("-keybd driver [,,options] Specify the keyboard driver and its options\n"); - ErrorF("-zaphod Disable cursor screen switching\n"); - ErrorF("-2button Emulate 3 button mouse\n"); - ErrorF("-3button Disable 3 button mouse emulation\n"); - ErrorF("-rawcoord Don't transform pointer coordinates on rotation\n"); - ErrorF("-dumb Disable hardware acceleration\n"); - ErrorF("-softCursor Force software cursor\n"); - ErrorF("-videoTest Start the server, pause momentarily and exit\n"); - ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n"); - ErrorF("-switchCmd Command to execute on vt switch\n"); - ErrorF("-zap Terminate server on Ctrl+Alt+Backspace\n"); - ErrorF("vtxx Use virtual terminal xx instead of the next available\n"); -} - -int -KdProcessArgument (int argc, char **argv, int i) -{ - KdCardInfo *card; - KdScreenInfo *screen; - - if (!strcmp (argv[i], "-screen")) - { - if ((i+1) < argc) - { - card = KdCardInfoLast (); - if (!card) - { - InitCard (0); - card = KdCardInfoLast (); - } - if (card) { - screen = KdScreenInfoAdd (card); - KdParseScreen (screen, argv[i+1]); - } else - ErrorF("No matching card found!\n"); - } - else - UseMsg (); - return 2; - } - if (!strcmp (argv[i], "-zaphod")) - { - kdDisableZaphod = TRUE; - return 1; - } - if (!strcmp (argv[i], "-zap")) - { - kdAllowZap = TRUE; - return 1; - } - if (!strcmp (argv[i], "-3button")) - { - kdEmulateMiddleButton = FALSE; - return 1; - } - if (!strcmp (argv[i], "-2button")) - { - kdEmulateMiddleButton = TRUE; - return 1; - } - if (!strcmp (argv[i], "-rawcoord")) - { - kdRawPointerCoordinates = 1; - return 1; - } - if (!strcmp (argv[i], "-dumb")) - { - kdDumbDriver = TRUE; - return 1; - } - if (!strcmp (argv[i], "-softCursor")) - { - kdSoftCursor = TRUE; - return 1; - } - if (!strcmp (argv[i], "-videoTest")) - { - kdVideoTest = TRUE; - return 1; - } - if (!strcmp (argv[i], "-origin")) - { - if ((i+1) < argc) - { - char *x = argv[i+1]; - char *y = strchr (x, ','); - if (x) - kdOrigin.x = atoi (x); - else - kdOrigin.x = 0; - if (y) - kdOrigin.y = atoi(y+1); - else - kdOrigin.y = 0; - } - else - UseMsg (); - return 2; - } - if (!strcmp (argv[i], "-rgba")) - { - if ((i+1) < argc) - KdParseRgba (argv[i+1]); - else - UseMsg (); - return 2; - } - if (!strcmp (argv[i], "-switchCmd")) - { - if ((i+1) < argc) - kdSwitchCmd = argv[i+1]; - else - UseMsg (); - return 2; - } - if (!strncmp (argv[i], "vt", 2) && - sscanf (argv[i], "vt%2d", &kdVirtualTerminal) == 1) - { - return 1; - } - if (!strcmp (argv[i], "-mouse") || - !strcmp (argv[i], "-pointer")) { - if (i + 1 >= argc) - UseMsg(); - KdAddConfigPointer(argv[i + 1]); - kdHasPointer = TRUE; - return 2; - } - if (!strcmp (argv[i], "-keybd")) { - if (i + 1 >= argc) - UseMsg(); - KdAddConfigKeyboard(argv[i + 1]); - kdHasKbd = TRUE; - return 2; - } - - return 0; -} - -/* - * These are getting tossed in here until I can think of where - * they really belong - */ - -void -KdOsInit (KdOsFuncs *pOsFuncs) -{ - kdOsFuncs = pOsFuncs; - if (pOsFuncs) - { - if (serverGeneration == 1) - { - KdDoSwitchCmd ("start"); - if (pOsFuncs->Init) - (*pOsFuncs->Init) (); - } - } -} - -Bool -KdAllocatePrivates (ScreenPtr pScreen) -{ - KdPrivScreenPtr pScreenPriv; - - if (kdGeneration != serverGeneration) - kdGeneration = serverGeneration; - - pScreenPriv = xcalloc(1, sizeof (*pScreenPriv)); - if (!pScreenPriv) - return FALSE; - KdSetScreenPriv (pScreen, pScreenPriv); - return TRUE; -} - -Bool -KdCreateScreenResources (ScreenPtr pScreen) -{ - KdScreenPriv(pScreen); - KdCardInfo *card = pScreenPriv->card; - Bool ret; - - pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources; - if(pScreen->CreateScreenResources) - ret = (*pScreen->CreateScreenResources) (pScreen); - else - ret= -1; - pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources; - pScreen->CreateScreenResources = KdCreateScreenResources; - if (ret && card->cfuncs->createRes) - ret = (*card->cfuncs->createRes) (pScreen); - return ret; -} - -Bool -KdCloseScreen (int index, ScreenPtr pScreen) -{ - KdScreenPriv(pScreen); - KdScreenInfo *screen = pScreenPriv->screen; - KdCardInfo *card = pScreenPriv->card; - Bool ret; - - pScreenPriv->closed = TRUE; - pScreen->CloseScreen = pScreenPriv->CloseScreen; - if(pScreen->CloseScreen) - ret = (*pScreen->CloseScreen) (index, pScreen); - else - ret = TRUE; - - if (pScreenPriv->dpmsState != KD_DPMS_NORMAL) - (*card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL); - - if (screen->mynum == card->selected) - KdDisableScreen (pScreen); - - /* - * Restore video hardware when last screen is closed - */ - if (screen == card->screenList) - { - if (kdEnabled && card->cfuncs->restore) - (*card->cfuncs->restore) (card); - } - - if (!pScreenPriv->screen->dumb && card->cfuncs->finiAccel) - (*card->cfuncs->finiAccel) (pScreen); - - if (!pScreenPriv->screen->softCursor && card->cfuncs->finiCursor) - (*card->cfuncs->finiCursor) (pScreen); - - if(card->cfuncs->scrfini) - (*card->cfuncs->scrfini) (screen); - - /* - * Clean up card when last screen is closed, DIX closes them in - * reverse order, thus we check for when the first in the list is closed - */ - if (screen == card->screenList) - { - if(card->cfuncs->cardfini) - (*card->cfuncs->cardfini) (card); - /* - * Clean up OS when last card is closed - */ - if (card == kdCardInfo) - { - if (kdEnabled) - { - kdEnabled = FALSE; - if(kdOsFuncs->Disable) - (*kdOsFuncs->Disable) (); - } - } - } - - pScreenPriv->screen->pScreen = 0; - - xfree ((pointer) pScreenPriv); - return ret; -} - -Bool -KdSaveScreen (ScreenPtr pScreen, int on) -{ - KdScreenPriv(pScreen); - int dpmsState; - - if (!pScreenPriv->card->cfuncs->dpms) - return FALSE; - - dpmsState = pScreenPriv->dpmsState; - switch (on) { - case SCREEN_SAVER_OFF: - dpmsState = KD_DPMS_NORMAL; - break; - case SCREEN_SAVER_ON: - if (dpmsState == KD_DPMS_NORMAL) - dpmsState = KD_DPMS_NORMAL+1; - break; - case SCREEN_SAVER_CYCLE: - if (dpmsState < KD_DPMS_MAX) - dpmsState++; - break; - case SCREEN_SAVER_FORCER: - break; - } - if (dpmsState != pScreenPriv->dpmsState) - { - if (pScreenPriv->enabled) - (*pScreenPriv->card->cfuncs->dpms) (pScreen, dpmsState); - pScreenPriv->dpmsState = dpmsState; - } - return TRUE; -} - -static Bool -KdCreateWindow (WindowPtr pWin) -{ -#ifndef PHOENIX - if (!pWin->parent) - { - KdScreenPriv(pWin->drawable.pScreen); - - if (!pScreenPriv->enabled) - { - REGION_EMPTY (pWin->drawable.pScreen, &pWin->borderClip); - REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList); - } - } -#endif - return fbCreateWindow (pWin); -} - -void -KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr) -{ - KdScreenPriv(pScreen); - KdScreenInfo *screen = pScreenPriv->screen; - int subpixel_order = screen->subpixel_order; - Rotation subpixel_dir; - int i; - - static struct { - int subpixel_order; - Rotation direction; - } orders[] = { - { SubPixelHorizontalRGB, RR_Rotate_0 }, - { SubPixelHorizontalBGR, RR_Rotate_180 }, - { SubPixelVerticalRGB, RR_Rotate_270 }, - { SubPixelVerticalBGR, RR_Rotate_90 }, - }; - - static struct { - int bit; - int normal; - int reflect; - } reflects[] = { - { RR_Reflect_X, SubPixelHorizontalRGB, SubPixelHorizontalBGR }, - { RR_Reflect_X, SubPixelHorizontalBGR, SubPixelHorizontalRGB }, - { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalBGR }, - { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalRGB }, - }; - - /* map subpixel to direction */ - for (i = 0; i < 4; i++) - if (orders[i].subpixel_order == subpixel_order) - break; - if (i < 4) - { - subpixel_dir = KdAddRotation (randr & RR_Rotate_All, orders[i].direction); - - /* map back to subpixel order */ - for (i = 0; i < 4; i++) - if (orders[i].direction & subpixel_dir) - { - subpixel_order = orders[i].subpixel_order; - break; - } - /* reflect */ - for (i = 0; i < 4; i++) - if ((randr & reflects[i].bit) && - reflects[i].normal == subpixel_order) - { - subpixel_order = reflects[i].reflect; - break; - } - } - PictureSetSubpixelOrder (pScreen, subpixel_order); -} - -/* Pass through AddScreen, which doesn't take any closure */ -static KdScreenInfo *kdCurrentScreen; - -Bool -KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) -{ - KdScreenInfo *screen = kdCurrentScreen; - KdCardInfo *card = screen->card; - KdPrivScreenPtr pScreenPriv; - int fb; - /* - * note that screen->fb is set up for the nominal orientation - * of the screen; that means if randr is rotated, the values - * there should reflect a rotated frame buffer (or shadow). - */ - Bool rotated = (screen->randr & (RR_Rotate_90|RR_Rotate_270)) != 0; - int width, height, *width_mmp, *height_mmp; - - KdAllocatePrivates (pScreen); - - pScreenPriv = KdGetScreenPriv(pScreen); - - if (!rotated) - { - width = screen->width; - height = screen->height; - width_mmp = &screen->width_mm; - height_mmp = &screen->height_mm; - } - else - { - width = screen->height; - height = screen->width; - width_mmp = &screen->height_mm; - height_mmp = &screen->width_mm; - } - screen->pScreen = pScreen; - pScreenPriv->screen = screen; - pScreenPriv->card = card; - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - pScreenPriv->bytesPerPixel[fb] = screen->fb[fb].bitsPerPixel >> 3; - pScreenPriv->dpmsState = KD_DPMS_NORMAL; -#ifdef PANORAMIX - dixScreenOrigins[pScreen->myNum] = screen->origin; -#endif - - if (!monitorResolution) - monitorResolution = 75; - /* - * This is done in this order so that backing store wraps - * our GC functions; fbFinishScreenInit initializes MI - * backing store - */ - if (!fbSetupScreen (pScreen, - screen->fb[0].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[0].bitsPerPixel)) - { - return FALSE; - } - - /* - * Set colormap functions - */ - pScreen->InstallColormap = KdInstallColormap; - pScreen->UninstallColormap = KdUninstallColormap; - pScreen->ListInstalledColormaps = KdListInstalledColormaps; - pScreen->StoreColors = KdStoreColors; - - pScreen->SaveScreen = KdSaveScreen; - pScreen->CreateWindow = KdCreateWindow; - -#if KD_MAX_FB > 1 - if (screen->fb[1].depth) - { - if (!fbOverlayFinishScreenInit (pScreen, - screen->fb[0].frameBuffer, - screen->fb[1].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[1].pixelStride, - screen->fb[0].bitsPerPixel, - screen->fb[1].bitsPerPixel, - screen->fb[0].depth, - screen->fb[1].depth)) - { - return FALSE; - } - } - else -#endif - { - if (!fbFinishScreenInit (pScreen, - screen->fb[0].frameBuffer, - width, height, - monitorResolution, monitorResolution, - screen->fb[0].pixelStride, - screen->fb[0].bitsPerPixel)) - { - return FALSE; - } - } - - /* - * Fix screen sizes; for some reason mi takes dpi instead of mm. - * Rounding errors are annoying - */ - if (*width_mmp) - pScreen->mmWidth = *width_mmp; - else - *width_mmp = pScreen->mmWidth; - if (*height_mmp) - pScreen->mmHeight = *height_mmp; - else - *height_mmp = pScreen->mmHeight; - - /* - * Plug in our own block/wakeup handlers. - * miScreenInit installs NoopDDA in both places - */ - pScreen->BlockHandler = KdBlockHandler; - pScreen->WakeupHandler = KdWakeupHandler; - -#ifdef RENDER - if (!fbPictureInit (pScreen, 0, 0)) - return FALSE; -#endif - if (card->cfuncs->initScreen) - if (!(*card->cfuncs->initScreen) (pScreen)) - return FALSE; - - if (!screen->dumb && card->cfuncs->initAccel) - if (!(*card->cfuncs->initAccel) (pScreen)) - screen->dumb = TRUE; - - if (card->cfuncs->finishInitScreen) - if (!(*card->cfuncs->finishInitScreen) (pScreen)) - return FALSE; - -#if 0 - fbInitValidateTree (pScreen); -#endif - -#if 0 - pScreen->backingStoreSupport = Always; - miInitializeBackingStore (pScreen); -#endif - - - /* - * Wrap CloseScreen, the order now is: - * KdCloseScreen - * miBSCloseScreen - * fbCloseScreen - */ - pScreenPriv->CloseScreen = pScreen->CloseScreen; - pScreen->CloseScreen = KdCloseScreen; - - pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources; - pScreen->CreateScreenResources = KdCreateScreenResources; - - if (screen->softCursor || - !card->cfuncs->initCursor || - !(*card->cfuncs->initCursor) (pScreen)) - { - /* Use MI for cursor display and event queueing. */ - screen->softCursor = TRUE; - miDCInitialize(pScreen, &kdPointerScreenFuncs); - } - - - if (!fbCreateDefColormap (pScreen)) - { - return FALSE; - } - - KdSetSubpixelOrder (pScreen, screen->randr); - - /* - * Enable the hardware - */ - if (!kdEnabled) - { - kdEnabled = TRUE; - if(kdOsFuncs->Enable) - (*kdOsFuncs->Enable) (); - } - - if (screen->mynum == card->selected) - { - if(card->cfuncs->preserve) - (*card->cfuncs->preserve) (card); - if(card->cfuncs->enable) - if (!(*card->cfuncs->enable) (pScreen)) - return FALSE; - pScreenPriv->enabled = TRUE; - if (!screen->softCursor && card->cfuncs->enableCursor) - (*card->cfuncs->enableCursor) (pScreen); - KdEnableColormap (pScreen); - if (!screen->dumb && card->cfuncs->enableAccel) - (*card->cfuncs->enableAccel) (pScreen); - } - - return TRUE; -} - -void -KdInitScreen (ScreenInfo *pScreenInfo, - KdScreenInfo *screen, - int argc, - char **argv) -{ - KdCardInfo *card = screen->card; - - (*card->cfuncs->scrinit) (screen); - - if (!card->cfuncs->initAccel) - screen->dumb = TRUE; - if (!card->cfuncs->initCursor) - screen->softCursor = TRUE; -} - -static Bool -KdSetPixmapFormats (ScreenInfo *pScreenInfo) -{ - CARD8 depthToBpp[33]; /* depth -> bpp map */ - KdCardInfo *card; - KdScreenInfo *screen; - int i; - int bpp; - int fb; - PixmapFormatRec *format; - - for (i = 1; i <= 32; i++) - depthToBpp[i] = 0; - - /* - * Generate mappings between bitsPerPixel and depth, - * also ensure that all screens comply with protocol - * restrictions on equivalent formats for the same - * depth on different screens - */ - for (card = kdCardInfo; card; card = card->next) - { - for (screen = card->screenList; screen; screen = screen->next) - { - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - { - bpp = screen->fb[fb].bitsPerPixel; - if (bpp == 24) - bpp = 32; - if (!depthToBpp[screen->fb[fb].depth]) - depthToBpp[screen->fb[fb].depth] = bpp; - else if (depthToBpp[screen->fb[fb].depth] != bpp) - return FALSE; - } - } - } - - /* - * Fill in additional formats - */ - for (i = 0; i < NUM_KD_DEPTHS; i++) - 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; - - for (i = 1; i <= 32; i++) - { - if (depthToBpp[i]) - { - format = &pScreenInfo->formats[pScreenInfo->numPixmapFormats++]; - format->depth = i; - format->bitsPerPixel = depthToBpp[i]; - format->scanlinePad = BITMAP_SCANLINE_PAD; - } - } - - return TRUE; -} - -static void -KdAddScreen (ScreenInfo *pScreenInfo, - KdScreenInfo *screen, - int argc, - char **argv) -{ - int i; - /* - * Fill in fb visual type masks for this screen - */ - for (i = 0; i < pScreenInfo->numPixmapFormats; i++) - { - unsigned long visuals; - Pixel rm, gm, bm; - int fb; - - visuals = 0; - rm = gm = bm = 0; - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) - { - if (pScreenInfo->formats[i].depth == screen->fb[fb].depth) - { - visuals = screen->fb[fb].visuals; - rm = screen->fb[fb].redMask; - gm = screen->fb[fb].greenMask; - bm = screen->fb[fb].blueMask; - break; - } - } - fbSetVisualTypesAndMasks (pScreenInfo->formats[i].depth, - visuals, - 8, - rm, gm, bm); - } - - kdCurrentScreen = screen; - - AddScreen (KdScreenInit, argc, argv); -} - -#if 0 /* This function is not used currently */ - -int -KdDepthToFb (ScreenPtr pScreen, int depth) -{ - KdScreenPriv(pScreen); - int fb; - - for (fb = 0; fb <= KD_MAX_FB && pScreenPriv->screen->fb[fb].frameBuffer; fb++) - if (pScreenPriv->screen->fb[fb].depth == depth) - return fb; -} - -#endif - -static int -KdSignalWrapper (int signum) -{ - kdCaughtSignal = TRUE; - return 1; /* use generic OS layer cleanup & abort */ -} - -void -KdInitOutput (ScreenInfo *pScreenInfo, - int argc, - char **argv) -{ - KdCardInfo *card; - KdScreenInfo *screen; - - if (!kdCardInfo) - { - InitCard (0); - if (!(card = KdCardInfoLast ())) - FatalError("No matching cards found!\n"); - screen = KdScreenInfoAdd (card); - KdParseScreen (screen, 0); - } - /* - * Initialize all of the screens for all of the cards - */ - for (card = kdCardInfo; card; card = card->next) - { - int ret=1; - if(card->cfuncs->cardinit) - ret=(*card->cfuncs->cardinit) (card); - if (ret) - { - for (screen = card->screenList; screen; screen = screen->next) - KdInitScreen (pScreenInfo, screen, argc, argv); - } - } - - /* - * Merge the various pixmap formats together, this can fail - * when two screens share depth but not bitsPerPixel - */ - if (!KdSetPixmapFormats (pScreenInfo)) - return; - - /* - * Add all of the screens - */ - for (card = kdCardInfo; card; card = card->next) - for (screen = card->screenList; screen; screen = screen->next) - KdAddScreen (pScreenInfo, screen, argc, argv); - - OsRegisterSigWrapper(KdSignalWrapper); -} - -#ifndef _MSC_VER -void -OsVendorFatalError(void) -{ -} -#endif - -#ifndef _MSC_VER -int -DPMSSet(ClientPtr client, int level) -{ - return Success; -} - -Bool -DPMSSupported (void) -{ - return FALSE; -} -#endif +/*
+ * Copyright © 1999 Keith Packard
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <kdrive-config.h>
+#endif
+#include "kdrive.h"
+#include <mivalidate.h>
+#include <dixstruct.h>
+#include "privates.h"
+#ifdef RANDR
+#include <randrstr.h>
+#endif
+
+#ifdef XV
+#include "kxv.h"
+#endif
+
+#ifdef DPMSExtension
+#include "dpmsproc.h"
+#endif
+
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#endif
+
+#include <signal.h>
+
+typedef struct _kdDepths {
+ CARD8 depth;
+ CARD8 bpp;
+} KdDepths;
+
+KdDepths kdDepths[] = {
+ { 1, 1 },
+ { 4, 4 },
+ { 8, 8 },
+ { 15, 16 },
+ { 16, 16 },
+ { 24, 32 },
+ { 32, 32 }
+};
+
+#define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
+
+#define KD_DEFAULT_BUTTONS 5
+
+static int kdScreenPrivateKeyIndex;
+DevPrivateKey kdScreenPrivateKey = &kdScreenPrivateKeyIndex;
+unsigned long kdGeneration;
+
+Bool kdVideoTest;
+unsigned long kdVideoTestTime;
+Bool kdEmulateMiddleButton;
+Bool kdRawPointerCoordinates;
+Bool kdDisableZaphod;
+Bool kdAllowZap;
+Bool kdEnabled;
+int kdSubpixelOrder;
+int kdVirtualTerminal = -1;
+Bool kdSwitchPending;
+char *kdSwitchCmd;
+DDXPointRec kdOrigin;
+Bool kdHasPointer = FALSE;
+Bool kdHasKbd = FALSE;
+
+static Bool kdCaughtSignal = FALSE;
+
+/*
+ * Carry arguments from InitOutput through driver initialization
+ * to KdScreenInit
+ */
+
+KdOsFuncs *kdOsFuncs;
+
+void
+KdSetRootClip (ScreenPtr pScreen, BOOL enable)
+{
+ WindowPtr pWin = WindowTable[pScreen->myNum];
+ WindowPtr pChild;
+ Bool WasViewable;
+ Bool anyMarked = FALSE;
+ WindowPtr pLayerWin;
+ BoxRec box;
+
+ if (!pWin)
+ return;
+ WasViewable = (Bool)(pWin->viewable);
+ if (WasViewable)
+ {
+ for (pChild = pWin->firstChild; pChild; pChild = pChild->nextSib)
+ {
+ (void) (*pScreen->MarkOverlappedWindows)(pChild,
+ pChild,
+ &pLayerWin);
+ }
+ (*pScreen->MarkWindow) (pWin);
+ anyMarked = TRUE;
+ if (pWin->valdata)
+ {
+ if (HasBorder (pWin))
+ {
+ RegionPtr borderVisible;
+
+ borderVisible = REGION_CREATE(pScreen, NullBox, 1);
+ REGION_SUBTRACT(pScreen, borderVisible,
+ &pWin->borderClip, &pWin->winSize);
+ pWin->valdata->before.borderVisible = borderVisible;
+ }
+ pWin->valdata->before.resized = TRUE;
+ }
+ }
+
+ if (enable)
+ {
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = pScreen->width;
+ box.y2 = pScreen->height;
+ pWin->drawable.width = pScreen->width;
+ pWin->drawable.height = pScreen->height;
+ REGION_INIT (pScreen, &pWin->winSize, &box, 1);
+ REGION_INIT (pScreen, &pWin->borderSize, &box, 1);
+ REGION_RESET(pScreen, &pWin->borderClip, &box);
+ REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
+ }
+ else
+ {
+ REGION_EMPTY(pScreen, &pWin->borderClip);
+ REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
+ }
+
+ ResizeChildrenWinSize (pWin, 0, 0, 0, 0);
+
+ if (WasViewable)
+ {
+ if (pWin->firstChild)
+ {
+ anyMarked |= (*pScreen->MarkOverlappedWindows)(pWin->firstChild,
+ pWin->firstChild,
+ (WindowPtr *)NULL);
+ }
+ else
+ {
+ (*pScreen->MarkWindow) (pWin);
+ anyMarked = TRUE;
+ }
+
+
+ if (anyMarked)
+ (*pScreen->ValidateTree)(pWin, NullWindow, VTOther);
+ }
+
+ if (WasViewable)
+ {
+ if (anyMarked)
+ (*pScreen->HandleExposures)(pWin);
+ if (anyMarked && pScreen->PostValidateTree)
+ (*pScreen->PostValidateTree)(pWin, NullWindow, VTOther);
+ }
+ if (pWin->realized)
+ WindowsRestructured ();
+}
+
+void
+KdDisableScreen (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+
+ if (!pScreenPriv->enabled)
+ return;
+ if (!pScreenPriv->closed)
+ KdSetRootClip (pScreen, FALSE);
+ KdDisableColormap (pScreen);
+ if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->disableAccel)
+ (*pScreenPriv->card->cfuncs->disableAccel) (pScreen);
+ if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->disableCursor)
+ (*pScreenPriv->card->cfuncs->disableCursor) (pScreen);
+ if (pScreenPriv->card->cfuncs->dpms)
+ (*pScreenPriv->card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL);
+ pScreenPriv->enabled = FALSE;
+ if(pScreenPriv->card->cfuncs->disable)
+ (*pScreenPriv->card->cfuncs->disable) (pScreen);
+}
+
+static void
+KdDoSwitchCmd (char *reason)
+{
+ if (kdSwitchCmd)
+ {
+ char *command = xalloc (strlen (kdSwitchCmd) +
+ 1 +
+ strlen (reason) +
+ 1);
+ if (!command)
+ return;
+ strcpy (command, kdSwitchCmd);
+ strcat (command, " ");
+ strcat (command, reason);
+ system (command);
+ xfree (command);
+ }
+}
+
+void
+KdSuspend (void)
+{
+ KdCardInfo *card;
+ KdScreenInfo *screen;
+
+ if (kdEnabled)
+ {
+ for (card = kdCardInfo; card; card = card->next)
+ {
+ for (screen = card->screenList; screen; screen = screen->next)
+ if (screen->mynum == card->selected && screen->pScreen)
+ KdDisableScreen (screen->pScreen);
+ if (card->driver && card->cfuncs->restore)
+ (*card->cfuncs->restore) (card);
+ }
+ KdDisableInput ();
+ KdDoSwitchCmd ("suspend");
+ }
+}
+
+void
+KdDisableScreens (void)
+{
+ KdSuspend ();
+ if (kdEnabled)
+ {
+ if (kdOsFuncs->Disable)
+ (*kdOsFuncs->Disable) ();
+ kdEnabled = FALSE;
+ }
+}
+
+Bool
+KdEnableScreen (ScreenPtr pScreen)
+{
+ KdScreenPriv (pScreen);
+
+ if (pScreenPriv->enabled)
+ return TRUE;
+ if(pScreenPriv->card->cfuncs->enable)
+ if (!(*pScreenPriv->card->cfuncs->enable) (pScreen))
+ return FALSE;
+ pScreenPriv->enabled = TRUE;
+ pScreenPriv->dpmsState = KD_DPMS_NORMAL;
+ pScreenPriv->card->selected = pScreenPriv->screen->mynum;
+ if (!pScreenPriv->screen->softCursor && pScreenPriv->card->cfuncs->enableCursor)
+ (*pScreenPriv->card->cfuncs->enableCursor) (pScreen);
+ if (!pScreenPriv->screen->dumb && pScreenPriv->card->cfuncs->enableAccel)
+ (*pScreenPriv->card->cfuncs->enableAccel) (pScreen);
+ KdEnableColormap (pScreen);
+ KdSetRootClip (pScreen, TRUE);
+ if (pScreenPriv->card->cfuncs->dpms)
+ (*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
+ return TRUE;
+}
+
+void
+KdResume (void)
+{
+ KdCardInfo *card;
+ KdScreenInfo *screen;
+
+ if (kdEnabled)
+ {
+ KdDoSwitchCmd ("resume");
+ for (card = kdCardInfo; card; card = card->next)
+ {
+ if(card->cfuncs->preserve)
+ (*card->cfuncs->preserve) (card);
+ for (screen = card->screenList; screen; screen = screen->next)
+ if (screen->mynum == card->selected && screen->pScreen)
+ KdEnableScreen (screen->pScreen);
+ }
+ KdEnableInput ();
+ KdReleaseAllKeys ();
+ }
+}
+
+void
+KdEnableScreens (void)
+{
+ if (!kdEnabled)
+ {
+ kdEnabled = TRUE;
+ if (kdOsFuncs->Enable)
+ (*kdOsFuncs->Enable) ();
+ }
+ KdResume ();
+}
+
+void
+KdProcessSwitch (void)
+{
+ if (kdEnabled)
+ KdDisableScreens ();
+ else
+ KdEnableScreens ();
+}
+
+#ifndef _MSC_VER
+void
+AbortDDX(void)
+{
+ KdDisableScreens ();
+ if (kdOsFuncs)
+ {
+ if (kdEnabled && kdOsFuncs->Disable)
+ (*kdOsFuncs->Disable) ();
+ if (kdOsFuncs->Fini)
+ (*kdOsFuncs->Fini) ();
+ KdDoSwitchCmd ("stop");
+ }
+
+ if (kdCaughtSignal)
+ abort();
+}
+
+void
+ddxGiveUp (void)
+{
+ AbortDDX ();
+}
+#endif
+
+Bool kdDumbDriver;
+Bool kdSoftCursor;
+
+char *
+KdParseFindNext (char *cur, char *delim, char *save, char *last)
+{
+ while (*cur && !strchr (delim, *cur))
+ {
+ *save++ = *cur++;
+ }
+ *save = 0;
+ *last = *cur;
+ if (*cur)
+ cur++;
+ return cur;
+}
+
+Rotation
+KdAddRotation (Rotation a, Rotation b)
+{
+ Rotation rotate = (a & RR_Rotate_All) * (b & RR_Rotate_All);
+ Rotation reflect = (a & RR_Reflect_All) ^ (b & RR_Reflect_All);
+
+ if (rotate > RR_Rotate_270)
+ rotate /= (RR_Rotate_270 * RR_Rotate_90);
+ return reflect | rotate;
+}
+
+Rotation
+KdSubRotation (Rotation a, Rotation b)
+{
+ Rotation rotate = (a & RR_Rotate_All) * 16 / (b & RR_Rotate_All);
+ Rotation reflect = (a & RR_Reflect_All) ^ (b & RR_Reflect_All);
+
+ if (rotate > RR_Rotate_270)
+ rotate /= (RR_Rotate_270 * RR_Rotate_90);
+ return reflect | rotate;
+}
+
+void
+KdParseScreen (KdScreenInfo *screen,
+ char *arg)
+{
+ char delim;
+ char save[1024];
+ int i;
+ int pixels, mm;
+
+ screen->dumb = kdDumbDriver;
+ screen->softCursor = kdSoftCursor;
+ screen->origin = kdOrigin;
+ screen->randr = RR_Rotate_0;
+ screen->width = 0;
+ screen->height = 0;
+ screen->width_mm = 0;
+ screen->height_mm = 0;
+ screen->subpixel_order = kdSubpixelOrder;
+ screen->rate = 0;
+ screen->fb.depth = 0;
+ if (!arg)
+ return;
+ if (strlen (arg) >= sizeof (save))
+ return;
+
+ for (i = 0; i < 2; i++)
+ {
+ arg = KdParseFindNext (arg, "x/@XY", save, &delim);
+ if (!save[0])
+ return;
+
+ pixels = atoi(save);
+ mm = 0;
+
+ if (delim == '/')
+ {
+ arg = KdParseFindNext (arg, "x@XY", save, &delim);
+ if (!save[0])
+ return;
+ mm = atoi(save);
+ }
+
+ if (i == 0)
+ {
+ screen->width = pixels;
+ screen->width_mm = mm;
+ }
+ else
+ {
+ screen->height = pixels;
+ screen->height_mm = mm;
+ }
+ if (delim != 'x' && delim != '@' && delim != 'X' && delim != 'Y')
+ return;
+ }
+
+ kdOrigin.x += screen->width;
+ kdOrigin.y = 0;
+ kdDumbDriver = FALSE;
+ kdSoftCursor = FALSE;
+ kdSubpixelOrder = SubPixelUnknown;
+
+ if (delim == '@')
+ {
+ arg = KdParseFindNext (arg, "xXY", save, &delim);
+ if (save[0])
+ {
+ int rotate = atoi (save);
+ if (rotate < 45)
+ screen->randr = RR_Rotate_0;
+ else if (rotate < 135)
+ screen->randr = RR_Rotate_90;
+ else if (rotate < 225)
+ screen->randr = RR_Rotate_180;
+ else if (rotate < 315)
+ screen->randr = RR_Rotate_270;
+ else
+ screen->randr = RR_Rotate_0;
+ }
+ }
+ if (delim == 'X')
+ {
+ arg = KdParseFindNext (arg, "xY", save, &delim);
+ screen->randr |= RR_Reflect_X;
+ }
+
+ if (delim == 'Y')
+ {
+ arg = KdParseFindNext (arg, "xY", save, &delim);
+ screen->randr |= RR_Reflect_Y;
+ }
+
+ arg = KdParseFindNext (arg, "x/,", save, &delim);
+ if (save[0])
+ {
+ screen->fb.depth = atoi(save);
+ if (delim == '/')
+ {
+ arg = KdParseFindNext (arg, "x,", save, &delim);
+ if (save[0])
+ screen->fb.bitsPerPixel = atoi (save);
+ }
+ else
+ screen->fb.bitsPerPixel = 0;
+ }
+
+ if (delim == 'x')
+ {
+ arg = KdParseFindNext (arg, "x", save, &delim);
+ if (save[0])
+ screen->rate = atoi(save);
+ }
+}
+
+/*
+ * Mouse argument syntax:
+ *
+ * device,protocol,options...
+ *
+ * Options are any of:
+ * 1-5 n button mouse
+ * 2button emulate middle button
+ * {NMO} Reorder buttons
+ */
+
+void
+KdParseRgba (char *rgba)
+{
+ if (!strcmp (rgba, "rgb"))
+ kdSubpixelOrder = SubPixelHorizontalRGB;
+ else if (!strcmp (rgba, "bgr"))
+ kdSubpixelOrder = SubPixelHorizontalBGR;
+ else if (!strcmp (rgba, "vrgb"))
+ kdSubpixelOrder = SubPixelVerticalRGB;
+ else if (!strcmp (rgba, "vbgr"))
+ kdSubpixelOrder = SubPixelVerticalBGR;
+ else if (!strcmp (rgba, "none"))
+ kdSubpixelOrder = SubPixelNone;
+ else
+ kdSubpixelOrder = SubPixelUnknown;
+}
+
+void
+KdUseMsg (void)
+{
+ ErrorF("\nTinyX Device Dependent Usage:\n");
+ ErrorF("-screen WIDTH[/WIDTHMM]xHEIGHT[/HEIGHTMM][@ROTATION][X][Y][xDEPTH/BPP[xFREQ]] Specify screen characteristics\n");
+ ErrorF("-rgba rgb/bgr/vrgb/vbgr/none Specify subpixel ordering for LCD panels\n");
+ ErrorF("-mouse driver [,n,,options] Specify the pointer driver and its options (n is the number of buttons)\n");
+ ErrorF("-keybd driver [,,options] Specify the keyboard driver and its options\n");
+ ErrorF("-zaphod Disable cursor screen switching\n");
+ ErrorF("-2button Emulate 3 button mouse\n");
+ ErrorF("-3button Disable 3 button mouse emulation\n");
+ ErrorF("-rawcoord Don't transform pointer coordinates on rotation\n");
+ ErrorF("-dumb Disable hardware acceleration\n");
+ ErrorF("-softCursor Force software cursor\n");
+ ErrorF("-videoTest Start the server, pause momentarily and exit\n");
+ ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n");
+ ErrorF("-switchCmd Command to execute on vt switch\n");
+ ErrorF("-zap Terminate server on Ctrl+Alt+Backspace\n");
+ ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
+}
+
+int
+KdProcessArgument (int argc, char **argv, int i)
+{
+ KdCardInfo *card;
+ KdScreenInfo *screen;
+
+ if (!strcmp (argv[i], "-screen"))
+ {
+ if ((i+1) < argc)
+ {
+ card = KdCardInfoLast ();
+ if (!card)
+ {
+ InitCard (0);
+ card = KdCardInfoLast ();
+ }
+ if (card) {
+ screen = KdScreenInfoAdd (card);
+ KdParseScreen (screen, argv[i+1]);
+ } else
+ ErrorF("No matching card found!\n");
+ }
+ else
+ UseMsg ();
+ return 2;
+ }
+ if (!strcmp (argv[i], "-zaphod"))
+ {
+ kdDisableZaphod = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-zap"))
+ {
+ kdAllowZap = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-3button"))
+ {
+ kdEmulateMiddleButton = FALSE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-2button"))
+ {
+ kdEmulateMiddleButton = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-rawcoord"))
+ {
+ kdRawPointerCoordinates = 1;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-dumb"))
+ {
+ kdDumbDriver = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-softCursor"))
+ {
+ kdSoftCursor = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-videoTest"))
+ {
+ kdVideoTest = TRUE;
+ return 1;
+ }
+ if (!strcmp (argv[i], "-origin"))
+ {
+ if ((i+1) < argc)
+ {
+ char *x = argv[i+1];
+ char *y = strchr (x, ',');
+ if (x)
+ kdOrigin.x = atoi (x);
+ else
+ kdOrigin.x = 0;
+ if (y)
+ kdOrigin.y = atoi(y+1);
+ else
+ kdOrigin.y = 0;
+ }
+ else
+ UseMsg ();
+ return 2;
+ }
+ if (!strcmp (argv[i], "-rgba"))
+ {
+ if ((i+1) < argc)
+ KdParseRgba (argv[i+1]);
+ else
+ UseMsg ();
+ return 2;
+ }
+ if (!strcmp (argv[i], "-switchCmd"))
+ {
+ if ((i+1) < argc)
+ kdSwitchCmd = argv[i+1];
+ else
+ UseMsg ();
+ return 2;
+ }
+ if (!strncmp (argv[i], "vt", 2) &&
+ sscanf (argv[i], "vt%2d", &kdVirtualTerminal) == 1)
+ {
+ return 1;
+ }
+ if (!strcmp (argv[i], "-mouse") ||
+ !strcmp (argv[i], "-pointer")) {
+ if (i + 1 >= argc)
+ UseMsg();
+ KdAddConfigPointer(argv[i + 1]);
+ kdHasPointer = TRUE;
+ return 2;
+ }
+ if (!strcmp (argv[i], "-keybd")) {
+ if (i + 1 >= argc)
+ UseMsg();
+ KdAddConfigKeyboard(argv[i + 1]);
+ kdHasKbd = TRUE;
+ return 2;
+ }
+
+ return 0;
+}
+
+/*
+ * These are getting tossed in here until I can think of where
+ * they really belong
+ */
+
+void
+KdOsInit (KdOsFuncs *pOsFuncs)
+{
+ kdOsFuncs = pOsFuncs;
+ if (pOsFuncs)
+ {
+ if (serverGeneration == 1)
+ {
+ KdDoSwitchCmd ("start");
+ if (pOsFuncs->Init)
+ (*pOsFuncs->Init) ();
+ }
+ }
+}
+
+Bool
+KdAllocatePrivates (ScreenPtr pScreen)
+{
+ KdPrivScreenPtr pScreenPriv;
+
+ if (kdGeneration != serverGeneration)
+ kdGeneration = serverGeneration;
+
+ pScreenPriv = xcalloc(1, sizeof (*pScreenPriv));
+ if (!pScreenPriv)
+ return FALSE;
+ KdSetScreenPriv (pScreen, pScreenPriv);
+ return TRUE;
+}
+
+Bool
+KdCreateScreenResources (ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdCardInfo *card = pScreenPriv->card;
+ Bool ret;
+
+ pScreen->CreateScreenResources = pScreenPriv->CreateScreenResources;
+ if(pScreen->CreateScreenResources)
+ ret = (*pScreen->CreateScreenResources) (pScreen);
+ else
+ ret= -1;
+ pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources;
+ pScreen->CreateScreenResources = KdCreateScreenResources;
+ if (ret && card->cfuncs->createRes)
+ ret = (*card->cfuncs->createRes) (pScreen);
+ return ret;
+}
+
+Bool
+KdCloseScreen (int index, ScreenPtr pScreen)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ KdCardInfo *card = pScreenPriv->card;
+ Bool ret;
+
+ pScreenPriv->closed = TRUE;
+ pScreen->CloseScreen = pScreenPriv->CloseScreen;
+ if(pScreen->CloseScreen)
+ ret = (*pScreen->CloseScreen) (index, pScreen);
+ else
+ ret = TRUE;
+
+ if (pScreenPriv->dpmsState != KD_DPMS_NORMAL)
+ (*card->cfuncs->dpms) (pScreen, KD_DPMS_NORMAL);
+
+ if (screen->mynum == card->selected)
+ KdDisableScreen (pScreen);
+
+ /*
+ * Restore video hardware when last screen is closed
+ */
+ if (screen == card->screenList)
+ {
+ if (kdEnabled && card->cfuncs->restore)
+ (*card->cfuncs->restore) (card);
+ }
+
+ if (!pScreenPriv->screen->dumb && card->cfuncs->finiAccel)
+ (*card->cfuncs->finiAccel) (pScreen);
+
+ if (!pScreenPriv->screen->softCursor && card->cfuncs->finiCursor)
+ (*card->cfuncs->finiCursor) (pScreen);
+
+ if(card->cfuncs->scrfini)
+ (*card->cfuncs->scrfini) (screen);
+
+ /*
+ * Clean up card when last screen is closed, DIX closes them in
+ * reverse order, thus we check for when the first in the list is closed
+ */
+ if (screen == card->screenList)
+ {
+ if(card->cfuncs->cardfini)
+ (*card->cfuncs->cardfini) (card);
+ /*
+ * Clean up OS when last card is closed
+ */
+ if (card == kdCardInfo)
+ {
+ if (kdEnabled)
+ {
+ kdEnabled = FALSE;
+ if(kdOsFuncs->Disable)
+ (*kdOsFuncs->Disable) ();
+ }
+ }
+ }
+
+ pScreenPriv->screen->pScreen = 0;
+
+ xfree ((pointer) pScreenPriv);
+ return ret;
+}
+
+Bool
+KdSaveScreen (ScreenPtr pScreen, int on)
+{
+ KdScreenPriv(pScreen);
+ int dpmsState;
+
+ if (!pScreenPriv->card->cfuncs->dpms)
+ return FALSE;
+
+ dpmsState = pScreenPriv->dpmsState;
+ switch (on) {
+ case SCREEN_SAVER_OFF:
+ dpmsState = KD_DPMS_NORMAL;
+ break;
+ case SCREEN_SAVER_ON:
+ if (dpmsState == KD_DPMS_NORMAL)
+ dpmsState = KD_DPMS_NORMAL+1;
+ break;
+ case SCREEN_SAVER_CYCLE:
+ if (dpmsState < KD_DPMS_MAX)
+ dpmsState++;
+ break;
+ case SCREEN_SAVER_FORCER:
+ break;
+ }
+ if (dpmsState != pScreenPriv->dpmsState)
+ {
+ if (pScreenPriv->enabled)
+ (*pScreenPriv->card->cfuncs->dpms) (pScreen, dpmsState);
+ pScreenPriv->dpmsState = dpmsState;
+ }
+ return TRUE;
+}
+
+static Bool
+KdCreateWindow (WindowPtr pWin)
+{
+#ifndef PHOENIX
+ if (!pWin->parent)
+ {
+ KdScreenPriv(pWin->drawable.pScreen);
+
+ if (!pScreenPriv->enabled)
+ {
+ REGION_EMPTY (pWin->drawable.pScreen, &pWin->borderClip);
+ REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
+ }
+ }
+#endif
+ return fbCreateWindow (pWin);
+}
+
+void
+KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr)
+{
+ KdScreenPriv(pScreen);
+ KdScreenInfo *screen = pScreenPriv->screen;
+ int subpixel_order = screen->subpixel_order;
+ Rotation subpixel_dir;
+ int i;
+
+ static struct {
+ int subpixel_order;
+ Rotation direction;
+ } orders[] = {
+ { SubPixelHorizontalRGB, RR_Rotate_0 },
+ { SubPixelHorizontalBGR, RR_Rotate_180 },
+ { SubPixelVerticalRGB, RR_Rotate_270 },
+ { SubPixelVerticalBGR, RR_Rotate_90 },
+ };
+
+ static struct {
+ int bit;
+ int normal;
+ int reflect;
+ } reflects[] = {
+ { RR_Reflect_X, SubPixelHorizontalRGB, SubPixelHorizontalBGR },
+ { RR_Reflect_X, SubPixelHorizontalBGR, SubPixelHorizontalRGB },
+ { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalBGR },
+ { RR_Reflect_Y, SubPixelVerticalRGB, SubPixelVerticalRGB },
+ };
+
+ /* map subpixel to direction */
+ for (i = 0; i < 4; i++)
+ if (orders[i].subpixel_order == subpixel_order)
+ break;
+ if (i < 4)
+ {
+ subpixel_dir = KdAddRotation (randr & RR_Rotate_All, orders[i].direction);
+
+ /* map back to subpixel order */
+ for (i = 0; i < 4; i++)
+ if (orders[i].direction & subpixel_dir)
+ {
+ subpixel_order = orders[i].subpixel_order;
+ break;
+ }
+ /* reflect */
+ for (i = 0; i < 4; i++)
+ if ((randr & reflects[i].bit) &&
+ reflects[i].normal == subpixel_order)
+ {
+ subpixel_order = reflects[i].reflect;
+ break;
+ }
+ }
+ PictureSetSubpixelOrder (pScreen, subpixel_order);
+}
+
+/* Pass through AddScreen, which doesn't take any closure */
+static KdScreenInfo *kdCurrentScreen;
+
+Bool
+KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
+{
+ KdScreenInfo *screen = kdCurrentScreen;
+ KdCardInfo *card = screen->card;
+ KdPrivScreenPtr pScreenPriv;
+ /*
+ * note that screen->fb is set up for the nominal orientation
+ * of the screen; that means if randr is rotated, the values
+ * there should reflect a rotated frame buffer (or shadow).
+ */
+ Bool rotated = (screen->randr & (RR_Rotate_90|RR_Rotate_270)) != 0;
+ int width, height, *width_mmp, *height_mmp;
+
+ KdAllocatePrivates (pScreen);
+
+ pScreenPriv = KdGetScreenPriv(pScreen);
+
+ if (!rotated)
+ {
+ width = screen->width;
+ height = screen->height;
+ width_mmp = &screen->width_mm;
+ height_mmp = &screen->height_mm;
+ }
+ else
+ {
+ width = screen->height;
+ height = screen->width;
+ width_mmp = &screen->height_mm;
+ height_mmp = &screen->width_mm;
+ }
+ screen->pScreen = pScreen;
+ pScreenPriv->screen = screen;
+ pScreenPriv->card = card;
+ pScreenPriv->bytesPerPixel = screen->fb.bitsPerPixel >> 3;
+ pScreenPriv->dpmsState = KD_DPMS_NORMAL;
+#ifdef PANORAMIX
+ dixScreenOrigins[pScreen->myNum] = screen->origin;
+#endif
+
+ if (!monitorResolution)
+ monitorResolution = 75;
+ /*
+ * This is done in this order so that backing store wraps
+ * our GC functions; fbFinishScreenInit initializes MI
+ * backing store
+ */
+ if (!fbSetupScreen (pScreen,
+ screen->fb.frameBuffer,
+ width, height,
+ monitorResolution, monitorResolution,
+ screen->fb.pixelStride,
+ screen->fb.bitsPerPixel))
+ {
+ return FALSE;
+ }
+
+ /*
+ * Set colormap functions
+ */
+ pScreen->InstallColormap = KdInstallColormap;
+ pScreen->UninstallColormap = KdUninstallColormap;
+ pScreen->ListInstalledColormaps = KdListInstalledColormaps;
+ pScreen->StoreColors = KdStoreColors;
+
+ pScreen->SaveScreen = KdSaveScreen;
+ pScreen->CreateWindow = KdCreateWindow;
+
+ if (!fbFinishScreenInit (pScreen,
+ screen->fb.frameBuffer,
+ width, height,
+ monitorResolution, monitorResolution,
+ screen->fb.pixelStride,
+ screen->fb.bitsPerPixel))
+ {
+ return FALSE;
+ }
+
+ /*
+ * Fix screen sizes; for some reason mi takes dpi instead of mm.
+ * Rounding errors are annoying
+ */
+ if (*width_mmp)
+ pScreen->mmWidth = *width_mmp;
+ else
+ *width_mmp = pScreen->mmWidth;
+ if (*height_mmp)
+ pScreen->mmHeight = *height_mmp;
+ else
+ *height_mmp = pScreen->mmHeight;
+
+ /*
+ * Plug in our own block/wakeup handlers.
+ * miScreenInit installs NoopDDA in both places
+ */
+ pScreen->BlockHandler = KdBlockHandler;
+ pScreen->WakeupHandler = KdWakeupHandler;
+
+#ifdef RENDER
+ if (!fbPictureInit (pScreen, 0, 0))
+ return FALSE;
+#endif
+ if (card->cfuncs->initScreen)
+ if (!(*card->cfuncs->initScreen) (pScreen))
+ return FALSE;
+
+ if (!screen->dumb && card->cfuncs->initAccel)
+ if (!(*card->cfuncs->initAccel) (pScreen))
+ screen->dumb = TRUE;
+
+ if (card->cfuncs->finishInitScreen)
+ if (!(*card->cfuncs->finishInitScreen) (pScreen))
+ return FALSE;
+
+#if 0
+ fbInitValidateTree (pScreen);
+#endif
+
+#if 0
+ pScreen->backingStoreSupport = Always;
+ miInitializeBackingStore (pScreen);
+#endif
+
+
+ /*
+ * Wrap CloseScreen, the order now is:
+ * KdCloseScreen
+ * miBSCloseScreen
+ * fbCloseScreen
+ */
+ pScreenPriv->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = KdCloseScreen;
+
+ pScreenPriv->CreateScreenResources = pScreen->CreateScreenResources;
+ pScreen->CreateScreenResources = KdCreateScreenResources;
+
+ if (screen->softCursor ||
+ !card->cfuncs->initCursor ||
+ !(*card->cfuncs->initCursor) (pScreen))
+ {
+ /* Use MI for cursor display and event queueing. */
+ screen->softCursor = TRUE;
+ miDCInitialize(pScreen, &kdPointerScreenFuncs);
+ }
+
+
+ if (!fbCreateDefColormap (pScreen))
+ {
+ return FALSE;
+ }
+
+ KdSetSubpixelOrder (pScreen, screen->randr);
+
+ /*
+ * Enable the hardware
+ */
+ if (!kdEnabled)
+ {
+ kdEnabled = TRUE;
+ if(kdOsFuncs->Enable)
+ (*kdOsFuncs->Enable) ();
+ }
+
+ if (screen->mynum == card->selected)
+ {
+ if(card->cfuncs->preserve)
+ (*card->cfuncs->preserve) (card);
+ if(card->cfuncs->enable)
+ if (!(*card->cfuncs->enable) (pScreen))
+ return FALSE;
+ pScreenPriv->enabled = TRUE;
+ if (!screen->softCursor && card->cfuncs->enableCursor)
+ (*card->cfuncs->enableCursor) (pScreen);
+ KdEnableColormap (pScreen);
+ if (!screen->dumb && card->cfuncs->enableAccel)
+ (*card->cfuncs->enableAccel) (pScreen);
+ }
+
+ return TRUE;
+}
+
+void
+KdInitScreen (ScreenInfo *pScreenInfo,
+ KdScreenInfo *screen,
+ int argc,
+ char **argv)
+{
+ KdCardInfo *card = screen->card;
+
+ (*card->cfuncs->scrinit) (screen);
+
+ if (!card->cfuncs->initAccel)
+ screen->dumb = TRUE;
+ if (!card->cfuncs->initCursor)
+ screen->softCursor = TRUE;
+}
+
+static Bool
+KdSetPixmapFormats (ScreenInfo *pScreenInfo)
+{
+ CARD8 depthToBpp[33]; /* depth -> bpp map */
+ KdCardInfo *card;
+ KdScreenInfo *screen;
+ int i;
+ int bpp;
+ PixmapFormatRec *format;
+
+ for (i = 1; i <= 32; i++)
+ depthToBpp[i] = 0;
+
+ /*
+ * Generate mappings between bitsPerPixel and depth,
+ * also ensure that all screens comply with protocol
+ * restrictions on equivalent formats for the same
+ * depth on different screens
+ */
+ for (card = kdCardInfo; card; card = card->next)
+ {
+ for (screen = card->screenList; screen; screen = screen->next)
+ {
+ bpp = screen->fb.bitsPerPixel;
+ if (bpp == 24)
+ bpp = 32;
+ if (!depthToBpp[screen->fb.depth])
+ depthToBpp[screen->fb.depth] = bpp;
+ else if (depthToBpp[screen->fb.depth] != bpp)
+ return FALSE;
+ }
+ }
+
+ /*
+ * Fill in additional formats
+ */
+ for (i = 0; i < NUM_KD_DEPTHS; i++)
+ 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;
+
+ for (i = 1; i <= 32; i++)
+ {
+ if (depthToBpp[i])
+ {
+ format = &pScreenInfo->formats[pScreenInfo->numPixmapFormats++];
+ format->depth = i;
+ format->bitsPerPixel = depthToBpp[i];
+ format->scanlinePad = BITMAP_SCANLINE_PAD;
+ }
+ }
+
+ return TRUE;
+}
+
+static void
+KdAddScreen (ScreenInfo *pScreenInfo,
+ KdScreenInfo *screen,
+ int argc,
+ char **argv)
+{
+ int i;
+ /*
+ * Fill in fb visual type masks for this screen
+ */
+ for (i = 0; i < pScreenInfo->numPixmapFormats; i++)
+ {
+ unsigned long visuals;
+ Pixel rm, gm, bm;
+
+ visuals = 0;
+ rm = gm = bm = 0;
+ if (pScreenInfo->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,
+ visuals,
+ 8,
+ rm, gm, bm);
+ }
+
+ kdCurrentScreen = screen;
+
+ AddScreen (KdScreenInit, argc, argv);
+}
+
+#if 0 /* This function is not used currently */
+
+int
+KdDepthToFb (ScreenPtr pScreen, int depth)
+{
+ KdScreenPriv(pScreen);
+
+ for (fb = 0; fb <= KD_MAX_FB && pScreenPriv->screen->fb.frameBuffer; fb++)
+ if (pScreenPriv->screen->fb.depth == depth)
+ return fb;
+}
+
+#endif
+
+static int
+KdSignalWrapper (int signum)
+{
+ kdCaughtSignal = TRUE;
+ return 1; /* use generic OS layer cleanup & abort */
+}
+
+void
+KdInitOutput (ScreenInfo *pScreenInfo,
+ int argc,
+ char **argv)
+{
+ KdCardInfo *card;
+ KdScreenInfo *screen;
+
+ if (!kdCardInfo)
+ {
+ InitCard (0);
+ if (!(card = KdCardInfoLast ()))
+ FatalError("No matching cards found!\n");
+ screen = KdScreenInfoAdd (card);
+ KdParseScreen (screen, 0);
+ }
+ /*
+ * Initialize all of the screens for all of the cards
+ */
+ for (card = kdCardInfo; card; card = card->next)
+ {
+ int ret=1;
+ if(card->cfuncs->cardinit)
+ ret=(*card->cfuncs->cardinit) (card);
+ if (ret)
+ {
+ for (screen = card->screenList; screen; screen = screen->next)
+ KdInitScreen (pScreenInfo, screen, argc, argv);
+ }
+ }
+
+ /*
+ * Merge the various pixmap formats together, this can fail
+ * when two screens share depth but not bitsPerPixel
+ */
+ if (!KdSetPixmapFormats (pScreenInfo))
+ return;
+
+ /*
+ * Add all of the screens
+ */
+ for (card = kdCardInfo; card; card = card->next)
+ for (screen = card->screenList; screen; screen = screen->next)
+ KdAddScreen (pScreenInfo, screen, argc, argv);
+
+ OsRegisterSigWrapper(KdSignalWrapper);
+}
+
+#ifndef _MSC_VER
+void
+OsVendorFatalError(void)
+{
+}
+#endif
+
+#ifndef _MSC_VER
+int
+DPMSSet(ClientPtr client, int level)
+{
+ return Success;
+}
+
+Bool
+DPMSSupported (void)
+{
+ return FALSE;
+}
+#endif
diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h index 9620391c6..35ce03660 100644 --- a/xorg-server/hw/kdrive/src/kdrive.h +++ b/xorg-server/hw/kdrive/src/kdrive.h @@ -53,45 +53,15 @@ #define KD_DPMS_POWERDOWN 3 #define KD_DPMS_MAX KD_DPMS_POWERDOWN -#ifndef KD_MAX_FB -#define KD_MAX_FB FB_OVERLAY_MAX -#endif - -#ifndef KD_MAX_CARD_ADDRESS -#define KD_MAX_CARD_ADDRESS 8 -#endif - #define Status int -/* - * Configuration information per video card - */ - -typedef struct _KdCardAttr { - CARD32 io; - CARD32 address[KD_MAX_CARD_ADDRESS]; - int naddr; - - /* PCI bus info */ - CARD16 vendorID; - CARD16 deviceID; - CARD8 domain; - CARD8 bus; - CARD8 slot; - CARD8 func; -} KdCardAttr; - typedef struct _KdCardInfo { struct _KdCardFuncs *cfuncs; void *closure; - KdCardAttr attr; void *driver; struct _KdScreenInfo *screenList; int selected; struct _KdCardInfo *next; - - Bool needSync; - int lastMarker; } KdCardInfo; extern KdCardInfo *kdCardInfo; @@ -130,10 +100,7 @@ typedef struct _KdScreenInfo { Bool softCursor; int mynum; DDXPointRec origin; - KdFrameBuffer fb[KD_MAX_FB]; - CARD8 *memory_base; - unsigned long memory_size; - unsigned long off_screen_base; + KdFrameBuffer fb; } KdScreenInfo; typedef struct _KdCardFuncs { @@ -161,8 +128,8 @@ typedef struct _KdCardFuncs { void (*disableAccel) (ScreenPtr); void (*finiAccel) (ScreenPtr); - void (*getColors) (ScreenPtr, int, int, xColorItem *); - void (*putColors) (ScreenPtr, int, int, xColorItem *); + void (*getColors) (ScreenPtr, int, xColorItem *); + void (*putColors) (ScreenPtr, int, xColorItem *); } KdCardFuncs; @@ -175,11 +142,11 @@ typedef struct { Bool enabled; Bool closed; - int bytesPerPixel[KD_MAX_FB]; + int bytesPerPixel; int dpmsState; - ColormapPtr pInstalledmap[KD_MAX_FB]; /* current colormap */ + ColormapPtr pInstalledmap; /* current colormap */ xColorItem systemPalette[KD_MAX_PSEUDO_SIZE];/* saved windows colors */ CreateScreenResourcesProcPtr CreateScreenResources; @@ -242,7 +209,7 @@ struct _KdPointerInfo { int z; int flags; int absrel; - } heldEvent; + } heldEvent; unsigned char buttonState; Bool transformCoordinates; int pressureThreshold; @@ -392,12 +359,9 @@ extern KdOsFuncs *kdOsFuncs; dixSetPrivate(&(pScreen)->devPrivates, kdScreenPrivateKey, v) #define KdScreenPriv(pScreen) KdPrivScreenPtr pScreenPriv = KdGetScreenPriv(pScreen) -/* knoop.c */ -extern GCOps kdNoopOps; - /* kcmap.c */ void -KdSetColormap (ScreenPtr pScreen, int fb); +KdSetColormap (ScreenPtr pScreen); void KdEnableColormap (ScreenPtr pScreen); @@ -417,14 +381,6 @@ KdListInstalledColormaps (ScreenPtr pScreen, Colormap *pCmaps); void KdStoreColors (ColormapPtr pCmap, int ndef, xColorItem *pdefs); -/* kcurscol.c */ -void -KdAllocateCursorPixels (ScreenPtr pScreen, - int fb, - CursorPtr pCursor, - Pixel *source, - Pixel *mask); - /* kdrive.c */ extern miPointerScreenFuncRec kdPointerScreenFuncs; @@ -517,17 +473,16 @@ void KdInitOutput (ScreenInfo *pScreenInfo, int argc, char **argv); - + void KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr); void KdBacktrace (int signum); - + /* kinfo.c */ KdCardInfo * KdCardInfoAdd (KdCardFuncs *funcs, - KdCardAttr *attr, void *closure); KdCardInfo * @@ -584,7 +539,7 @@ _KdEnqueuePointerEvent(KdPointerInfo *pi, int type, int x, int y, int z, void KdReleaseAllKeys (void); - + void KdSetLed (KdKeyboardInfo *ki, int led, Bool on); @@ -604,7 +559,7 @@ KdBlockHandler (int screen, pointer readmask); void -KdWakeupHandler (int screen, +KdWakeupHandler (int screen, pointer data, unsigned long result, pointer readmask); @@ -624,37 +579,6 @@ KdRingBell (KdKeyboardInfo *ki, int pitch, int duration); -extern KdPointerDriver LinuxMouseDriver; -extern KdPointerDriver LinuxEvdevMouseDriver; -extern KdPointerDriver Ps2MouseDriver; -extern KdPointerDriver BusMouseDriver; -extern KdPointerDriver MsMouseDriver; -extern KdPointerDriver TsDriver; -extern KdKeyboardDriver LinuxKeyboardDriver; -extern KdKeyboardDriver LinuxEvdevKeyboardDriver; -extern KdOsFuncs LinuxFuncs; - -extern KdPointerDriver VxWorksMouseDriver; -extern KdKeyboardDriver VxWorksKeyboardDriver; -extern KdOsFuncs VxWorksFuncs; - -/* kmap.c */ - -#define KD_MAPPED_MODE_REGISTERS 0 -#define KD_MAPPED_MODE_FRAMEBUFFER 1 - -void * -KdMapDevice (CARD32 addr, CARD32 size); - -void -KdUnmapDevice (void *addr, CARD32 size); - -void -KdSetMappedMode (CARD32 addr, CARD32 size, int mode); - -void -KdResetMappedMode (CARD32 addr, CARD32 size, int mode); - /* kmode.c */ const KdMonitorTiming * KdFindMode (KdScreenInfo *screen, @@ -669,14 +593,14 @@ KdTuneMode (KdScreenInfo *screen, #ifdef RANDR Bool -KdRandRGetInfo (ScreenPtr pScreen, +KdRandRGetInfo (ScreenPtr pScreen, int randr, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *)); const KdMonitorTiming * KdRandRGetTiming (ScreenPtr pScreen, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *), int rate, RRScreenSizePtr pSize); @@ -684,14 +608,14 @@ KdRandRGetTiming (ScreenPtr pScreen, /* kshadow.c */ Bool -KdShadowFbAlloc (KdScreenInfo *screen, int fb, Bool rotate); +KdShadowFbAlloc (KdScreenInfo *screen, Bool rotate); void -KdShadowFbFree (KdScreenInfo *screen, int fb); +KdShadowFbFree (KdScreenInfo *screen); Bool KdShadowSet (ScreenPtr pScreen, int randr, ShadowUpdateProc update, ShadowWindowProc window); - + void KdShadowUnset (ScreenPtr pScreen); diff --git a/xorg-server/hw/kdrive/src/kinfo.c b/xorg-server/hw/kdrive/src/kinfo.c index 95afc7963..0825ee24f 100644 --- a/xorg-server/hw/kdrive/src/kinfo.c +++ b/xorg-server/hw/kdrive/src/kinfo.c @@ -29,7 +29,6 @@ KdCardInfo *kdCardInfo; KdCardInfo * KdCardInfoAdd (KdCardFuncs *funcs, - KdCardAttr *attr, void *closure) { KdCardInfo *ci, **prev; @@ -40,7 +39,6 @@ KdCardInfoAdd (KdCardFuncs *funcs, for (prev = &kdCardInfo; *prev; prev = &(*prev)->next); *prev = ci; ci->cfuncs = funcs; - ci->attr = *attr; ci->closure = closure; ci->screenList = 0; ci->selected = 0; diff --git a/xorg-server/hw/kdrive/src/kmap.c b/xorg-server/hw/kdrive/src/kmap.c deleted file mode 100644 index a10c9ec09..000000000 --- a/xorg-server/hw/kdrive/src/kmap.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#include <kdrive-config.h> -#include "kdrive.h" - -#include <errno.h> -#ifndef _MSC_VER -#include <unistd.h> -#include <sys/mman.h> -#ifdef HAVE_ASM_MTRR_H -#include <asm/mtrr.h> -#endif - -#include <sys/ioctl.h> -#else -#define DRAW_DEBUG(a) -#endif - -void * -KdMapDevice (CARD32 addr, CARD32 size) -{ -#ifdef WINDOWS - void *a; - void *d; - - d = VirtualAlloc (NULL, size, MEM_RESERVE, PAGE_READWRITE|PAGE_NOCACHE); -/* - if (!d) - return NULL; - DRAW_DEBUG ((DEBUG_S3INIT, "Virtual address of 0x%x is 0x%x", addr, d)); - a = VirtualCopyAddr (addr); - DRAW_DEBUG ((DEBUG_S3INIT, "Translated address is 0x%x", a)); - if (!VirtualCopy (d, a, size, - PAGE_READWRITE|PAGE_NOCACHE|PAGE_PHYSICAL)) - { - DRAW_DEBUG ((DEBUG_FAILURE, "VirtualCopy failed %d", - GetLastError ())); - return NULL; - } - DRAW_DEBUG ((DEBUG_S3INIT, "Device mapped successfully")); -*/ - __asm int 3; - return d; -#endif -#ifdef linux - void *a; - int fd; - -#ifdef __arm__ - fd = open ("/dev/mem", O_RDWR|O_SYNC); -#else - fd = open ("/dev/mem", O_RDWR); -#endif - if (fd < 0) - FatalError ("KdMapDevice: failed to open /dev/mem (%s)\n", - strerror (errno)); - - a = mmap ((caddr_t) 0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, addr); - close (fd); - if ((long) a == -1) - FatalError ("KdMapDevice: failed to map frame buffer (%s)\n", - strerror (errno)); - return a; -#endif -} - -void -KdUnmapDevice (void *addr, CARD32 size) -{ -#ifdef WINDOWS - VirtualFree (addr, size, MEM_DECOMMIT); - VirtualFree (addr, 0, MEM_RELEASE); -#endif -#ifdef linux - munmap (addr, size); -#endif -} - -#ifdef HAVE_ASM_MTRR_H -static int mtrr; -#endif - -void -KdSetMappedMode (CARD32 addr, CARD32 size, int mode) -{ -#ifdef HAVE_ASM_MTRR_H - struct mtrr_sentry sentry; - unsigned long base, bound; - unsigned int type = MTRR_TYPE_WRBACK; - - if (addr < 0x100000) - return; - if (!mtrr) - mtrr = open ("/proc/mtrr", 2); - if (mtrr > 0) - { - unsigned long nsize; - base = addr & ~((1<<22)-1); - bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); - nsize = 1; - while (nsize < (bound - base)) - nsize <<= 1; - switch (mode) { - case KD_MAPPED_MODE_REGISTERS: - type = MTRR_TYPE_UNCACHABLE; - break; - case KD_MAPPED_MODE_FRAMEBUFFER: - type = MTRR_TYPE_WRCOMB; - break; - } - sentry.base = base; - sentry.size = nsize; - sentry.type = type; - - if (ioctl (mtrr, MTRRIOC_ADD_ENTRY, &sentry) < 0) - ErrorF ("MTRRIOC_ADD_ENTRY failed 0x%x 0x%x %d (%s)\n", - base, bound - base, type, strerror(errno)); - } -#endif -} - -void -KdResetMappedMode (CARD32 addr, CARD32 size, int mode) -{ -#ifdef HAVE_ASM_MTRR_H - struct mtrr_sentry sentry; - unsigned long base, bound; - unsigned int type = MTRR_TYPE_WRBACK; - - if (addr < 0x100000) - return; - if (!mtrr) - mtrr = open ("/proc/mtrr", 2); - if (mtrr > 0) - { - unsigned long nsize; - base = addr & ~((1<<22)-1); - bound = ((addr + size) + ((1<<22) - 1)) & ~((1<<22) - 1); - nsize = 1; - while (nsize < (bound - base)) - nsize <<= 1; - switch (mode) { - case KD_MAPPED_MODE_REGISTERS: - type = MTRR_TYPE_UNCACHABLE; - break; - case KD_MAPPED_MODE_FRAMEBUFFER: - type = MTRR_TYPE_WRCOMB; - break; - } - sentry.base = base; - sentry.size = nsize; - sentry.type = type; - - if (ioctl (mtrr, MTRRIOC_DEL_ENTRY, &sentry) < 0) - ErrorF ("MTRRIOC_DEL_ENTRY failed 0x%x 0x%x %d (%s)\n", - base, bound - base, type, strerror(errno)); - } -#endif -} diff --git a/xorg-server/hw/kdrive/src/kmode.c b/xorg-server/hw/kdrive/src/kmode.c index d02cb55e1..38b7bc881 100644 --- a/xorg-server/hw/kdrive/src/kmode.c +++ b/xorg-server/hw/kdrive/src/kmode.c @@ -15,7 +15,7 @@ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Keith Packard, SuSE, Inc. @@ -38,7 +38,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 17, 12, 32, KdSyncNegative, 1, 11, 14, KdSyncNegative, }, - + /* Other VESA modes */ { 640, 350, 85, 31500, /* VESA */ 32, 96, 192, KdSyncPositive, /* 26.413 */ @@ -60,7 +60,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 16, 80, 160, KdSyncPositive, /* 32.954 */ 1, 45, 49, KdSyncPositive, /* 52.727 */ }, - + /* 640x480 modes */ { 640, 480, 85, 36000, /* VESA */ 56, 80, 192, KdSyncNegative, /* 43.269 */ @@ -78,7 +78,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 16, 48, 160, KdSyncNegative, /* 31.469 */ 10, 33, 45, KdSyncNegative, /* 59.940 */ }, - + /* 800x600 modes */ { 800, 600, 85, 56250, /* VESA */ 32, 152, 248, KdSyncPositive, /* 53.674 */ @@ -102,7 +102,7 @@ const KdMonitorTiming kdMonitorTimings[] = { 24, 128, 224, KdSyncPositive, /* 35.156 */ 1, 22, 25, KdSyncPositive, /* 56.250 */ }, - + /* 1024x768 modes */ { 1024, 768, 85, 94500, /* VESA */ 48, 208, 352, KdSyncPositive, /* 68.677 */ @@ -120,13 +120,13 @@ const KdMonitorTiming kdMonitorTimings[] = { 24, 160, 320, KdSyncNegative, /* 48.363 */ 3, 29, 38, KdSyncNegative, /* 60.004 */ }, - + /* 1152x864 mode */ { 1152, 864, 75, 108000, /* VESA */ 64, 256, 448, KdSyncPositive, /* 67.500 */ 1, 32, 36, KdSyncPositive, /* 75.000 */ }, - + /* 1152x900 modes */ { 1152, 900, 85, 122500, /* ADDED */ 48, 208, 384, KdSyncPositive, /* 79.753 */ @@ -315,19 +315,17 @@ KdTuneMode (KdScreenInfo *screen, const KdMonitorTiming *)) { const KdMonitorTiming *t; - + while (!(*usable) (screen)) { /* * Fix requested depth and geometry until it works */ - if (screen->fb[1].depth) - screen->fb[1].depth = 0; - else if (screen->fb[0].depth > 16) - screen->fb[0].depth = 16; - else if (screen->fb[0].depth > 8) - screen->fb[0].depth = 8; - else + if (screen->fb.depth > 16) + screen->fb.depth = 16; + else if (screen->fb.depth > 8) + screen->fb.depth = 8; + else { t = kdFindPrevSize (KdFindMode (screen, supported)); if (!t) @@ -344,14 +342,14 @@ KdTuneMode (KdScreenInfo *screen, Bool KdRandRGetInfo (ScreenPtr pScreen, int randr, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *)) { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; int i; const KdMonitorTiming *t; - + for (i = 0, t = kdMonitorTimings; i < NUM_MONITOR_TIMINGS; i++, t++) { if ((*supported) (pScreen, t)) @@ -373,20 +371,20 @@ KdRandRGetInfo (ScreenPtr pScreen, RRSetCurrentConfig (pScreen, randr, t->rate, pSize); } } - + return TRUE; } const KdMonitorTiming * KdRandRGetTiming (ScreenPtr pScreen, - Bool (*supported) (ScreenPtr pScreen, + Bool (*supported) (ScreenPtr pScreen, const KdMonitorTiming *), int rate, RRScreenSizePtr pSize) { int i; const KdMonitorTiming *t; - + for (i = 0, t = kdMonitorTimings; i < NUM_MONITOR_TIMINGS; i++, t++) { if (t->horizontal == pSize->width && diff --git a/xorg-server/hw/kdrive/src/kshadow.c b/xorg-server/hw/kdrive/src/kshadow.c index ea44812db..cf3391dba 100644 --- a/xorg-server/hw/kdrive/src/kshadow.c +++ b/xorg-server/hw/kdrive/src/kshadow.c @@ -26,36 +26,36 @@ #include "kdrive.h" Bool -KdShadowFbAlloc (KdScreenInfo *screen, int fb, Bool rotate) +KdShadowFbAlloc (KdScreenInfo *screen, Bool rotate) { int paddedWidth; void *buf; int width = rotate ? screen->height : screen->width; int height = rotate ? screen->width : screen->height; - int bpp = screen->fb[fb].bitsPerPixel; + int bpp = screen->fb.bitsPerPixel; /* use fb computation for width */ paddedWidth = ((width * bpp + FB_MASK) >> FB_SHIFT) * sizeof (FbBits); buf = xalloc (paddedWidth * height); if (!buf) return FALSE; - if (screen->fb[fb].shadow) - xfree (screen->fb[fb].frameBuffer); - screen->fb[fb].shadow = TRUE; - screen->fb[fb].frameBuffer = buf; - screen->fb[fb].byteStride = paddedWidth; - screen->fb[fb].pixelStride = paddedWidth * 8 / bpp; + if (screen->fb.shadow) + xfree (screen->fb.frameBuffer); + screen->fb.shadow = TRUE; + screen->fb.frameBuffer = buf; + screen->fb.byteStride = paddedWidth; + screen->fb.pixelStride = paddedWidth * 8 / bpp; return TRUE; } void -KdShadowFbFree (KdScreenInfo *screen, int fb) +KdShadowFbFree (KdScreenInfo *screen) { - if (screen->fb[fb].shadow) + if (screen->fb.shadow) { - xfree (screen->fb[fb].frameBuffer); - screen->fb[fb].frameBuffer = 0; - screen->fb[fb].shadow = FALSE; + xfree (screen->fb.frameBuffer); + screen->fb.frameBuffer = 0; + screen->fb.shadow = FALSE; } } @@ -64,14 +64,12 @@ KdShadowSet (ScreenPtr pScreen, int randr, ShadowUpdateProc update, ShadowWindow { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; - int fb; shadowRemove (pScreen, pScreen->GetScreenPixmap(pScreen)); - for (fb = 0; fb < KD_MAX_FB && screen->fb[fb].depth; fb++) + if(screen->fb.shadow) { - if (screen->fb[fb].shadow) - return shadowAdd (pScreen, pScreen->GetScreenPixmap(pScreen), - update, window, randr, 0); + return shadowAdd (pScreen, pScreen->GetScreenPixmap(pScreen), + update, window, randr, 0); } return TRUE; } diff --git a/xorg-server/hw/kdrive/src/kxv.h b/xorg-server/hw/kdrive/src/kxv.h index 900baefde..21a295be3 100644 --- a/xorg-server/hw/kdrive/src/kxv.h +++ b/xorg-server/hw/kdrive/src/kxv.h @@ -1,6 +1,6 @@ -/* +/* - XFree86 Xv DDX written by Mark Vojkovich (markv@valinux.com) + XFree86 Xv DDX written by Mark Vojkovich (markv@valinux.com) Adapted for KDrive by Pontus Lidman <pontus.lidman@nokia.com> Copyright (C) 2000, 2001 - Nokia Home Communications @@ -60,21 +60,21 @@ typedef struct { int id; int type; int byte_order; - unsigned char guid[16]; + unsigned char guid[16]; int bits_per_pixel; int format; int num_planes; /* for RGB formats only */ int depth; - unsigned int red_mask; - unsigned int green_mask; - unsigned int blue_mask; + unsigned int red_mask; + unsigned int green_mask; + unsigned int blue_mask; /* for YUV formats only */ unsigned int y_sample_bits; unsigned int u_sample_bits; - unsigned int v_sample_bits; + unsigned int v_sample_bits; unsigned int horz_y_period; unsigned int horz_u_period; unsigned int horz_v_period; @@ -83,7 +83,7 @@ typedef struct { unsigned int vert_v_period; char component_order[32]; int scanline_order; -} KdImageRec, *KdImagePtr; +} KdImageRec, *KdImagePtr; typedef struct { @@ -92,7 +92,7 @@ typedef struct { unsigned short width, height; int *pitches; /* bytes */ int *offsets; /* in bytes from start of framebuffer */ - DevUnion devPrivate; + DevUnion devPrivate; } KdSurfaceRec, *KdSurfacePtr; @@ -118,7 +118,7 @@ typedef int (* SetPortAttributeFuncPtr)(KdScreenInfo * screen, Atom attribute, typedef int (* GetPortAttributeFuncPtr)(KdScreenInfo * screen, Atom attribute, int *value, pointer data); typedef void (* QueryBestSizeFuncPtr)(KdScreenInfo * screen, Bool motion, - short vid_w, short vid_h, short drw_w, short drw_h, + short vid_w, short vid_h, short drw_w, short drw_h, unsigned int *p_w, unsigned int *p_h, pointer data); typedef int (* PutImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, short src_x, short src_y, short drw_x, short drw_y, @@ -128,8 +128,8 @@ typedef int (* PutImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, typedef int (* ReputImageFuncPtr)( KdScreenInfo * screen, DrawablePtr pDraw, short drw_x, short drw_y, RegionPtr clipBoxes, pointer data ); -typedef int (*QueryImageAttributesFuncPtr)(KdScreenInfo * screen, - int image, unsigned short *width, unsigned short *height, +typedef int (*QueryImageAttributesFuncPtr)(KdScreenInfo * screen, + int image, unsigned short *width, unsigned short *height, int *pitches, int *offsets); typedef enum { @@ -148,7 +148,7 @@ typedef struct { } KdVideoEncodingRec, *KdVideoEncodingPtr; typedef struct { - char depth; + char depth; short class; } KdVideoFormatRec, *KdVideoFormatPtr; @@ -160,13 +160,13 @@ typedef struct { } KdAttributeRec, *KdAttributePtr; typedef struct { - unsigned int type; + unsigned int type; int flags; char *name; int nEncodings; - KdVideoEncodingPtr pEncodings; + KdVideoEncodingPtr pEncodings; int nFormats; - KdVideoFormatPtr pFormats; + KdVideoFormatPtr pFormats; int nPorts; DevUnion *pPortPrivates; int nAttributes; @@ -188,7 +188,7 @@ typedef struct { Bool KdXVScreenInit( - ScreenPtr pScreen, + ScreenPtr pScreen, KdVideoAdaptorPtr *Adaptors, int num ); @@ -239,7 +239,7 @@ typedef struct { } KdXVScreenRec, *KdXVScreenPtr; typedef struct { - int flags; + int flags; PutVideoFuncPtr PutVideo; PutStillFuncPtr PutStill; GetVideoFuncPtr GetVideo; @@ -276,4 +276,4 @@ typedef struct _KdXVWindowRec{ } KdXVWindowRec, *KdXVWindowPtr; #endif /* _XVDIX_H_ */ - + diff --git a/xorg-server/hw/xfree86/common/xf86Mode.c b/xorg-server/hw/xfree86/common/xf86Mode.c index 4a948d752..949d4fcfa 100644 --- a/xorg-server/hw/xfree86/common/xf86Mode.c +++ b/xorg-server/hw/xfree86/common/xf86Mode.c @@ -941,14 +941,13 @@ xf86InitialCheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, ModeStatus xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags) { - ClockRangesPtr cp; + ClockRangePtr cp; int i, k, gap, minimumGap = CLOCK_TOLERANCE + 1; int extraFlags = 0; int clockIndex = -1; int MulFactor = 1; int DivFactor = 1; int ModePrivFlags = 0; - Bool allowDiv2; ModeStatus status = MODE_NOMODE; /* Some sanity checking */ @@ -1005,8 +1004,7 @@ xf86CheckModeForDriver(ScrnInfoPtr scrp, DisplayModePtr mode, int flags) * find a matching clock. */ - allowDiv2 = (cp->strategy & LOOKUP_CLKDIV2) != 0; - i = xf86GetNearestClock(scrp, mode->Clock, allowDiv2, + i = xf86GetNearestClock(scrp, mode->Clock, 0, cp->ClockDivFactor, cp->ClockMulFactor, &k); /* * If the clock is too far from the requested clock, this @@ -1194,7 +1192,7 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes, int saveType; PixmapFormatRec *BankFormat; ClockRangePtr cp; - ClockRangesPtr storeClockRanges; + ClockRangePtr storeClockRanges; int numTimings = 0; range hsync[MAX_HSYNC]; range vrefresh[MAX_VREFRESH]; @@ -1300,8 +1298,7 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes, } /* - * Store the clockRanges for later use by the VidMode extension. Must - * also store the strategy, since ClockDiv2 flag is stored there. + * Store the clockRanges for later use by the VidMode extension. */ storeClockRanges = scrp->clockRanges; while (storeClockRanges != NULL) { @@ -1309,11 +1306,10 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes, } for (cp = clockRanges; cp != NULL; cp = cp->next, storeClockRanges = storeClockRanges->next) { - storeClockRanges = xnfalloc(sizeof(ClockRanges)); + storeClockRanges = xnfalloc(sizeof(ClockRange)); if (scrp->clockRanges == NULL) scrp->clockRanges = storeClockRanges; memcpy(storeClockRanges, cp, sizeof(ClockRange)); - storeClockRanges->strategy = strategy; } /* Determine which pixmap format to pass to miScanLineWidth() */ diff --git a/xorg-server/hw/xfree86/common/xf86str.h b/xorg-server/hw/xfree86/common/xf86str.h index 7b0b758d4..de1f1b60a 100644 --- a/xorg-server/hw/xfree86/common/xf86str.h +++ b/xorg-server/hw/xfree86/common/xf86str.h @@ -241,20 +241,6 @@ typedef struct x_ClockRange { int PrivFlags; } ClockRange, *ClockRangePtr; -/* Need to store the strategy with clockRange for VidMode extension */ -typedef struct x_ClockRanges { - struct x_ClockRanges *next; - int minClock; - int maxClock; - int clockIndex; /* -1 for programmable clocks */ - Bool interlaceAllowed; - Bool doubleScanAllowed; - int ClockMulFactor; - int ClockDivFactor; - int PrivFlags; - int strategy; -} ClockRanges, *ClockRangesPtr; - /* * The driverFunc. xorgDriverFuncOp specifies the action driver should * perform. If requested option is not supported function should return @@ -786,7 +772,7 @@ typedef struct _ScrnInfoRec { Bool silkenMouse; /* Storage for clockRanges and adjustFlags for use with the VidMode ext */ - ClockRangesPtr clockRanges; + ClockRangePtr clockRanges; int adjustFlags; /* diff --git a/xorg-server/hw/xfree86/libxorg.c b/xorg-server/hw/xfree86/libxorg.c deleted file mode 100644 index e69de29bb..000000000 --- a/xorg-server/hw/xfree86/libxorg.c +++ /dev/null diff --git a/xorg-server/hw/xfree86/loader/sdksyms.c b/xorg-server/hw/xfree86/loader/sdksyms.c deleted file mode 100644 index 022ec73a9..000000000 --- a/xorg-server/hw/xfree86/loader/sdksyms.c +++ /dev/null @@ -1,2344 +0,0 @@ -/* This file is automatically generated by sdksyms.sh. */ -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" - -#ifdef HAVE_XORG_CONFIG_H -#include <xorg-config.h> -#endif - - -/* These must be included first */ -#include "misc.h" -#include "miscstruct.h" - - -/* render/Makefile.am */ -#include "picture.h" -#include "mipict.h" -#include "glyphstr.h" -#include "picturestr.h" -#include "renderedge.h" - - -/* fb/Makefile.am -- module */ -/* -#include "fb.h" -#include "fbrop.h" -#include "fboverlay.h" -#include "wfbrename.h" -#include "fbpict.h" - */ - - -/* miext/shadow/Makefile.am -- module */ -/* -#include "shadow.h" - */ - - -/* miext/damage/Makefile.am */ -#include "damage.h" -#include "damagestr.h" - - -/* Xext/Makefile.am -- half is module, half is builtin */ -/* -#include "xvdix.h" -#include "xvmcext.h" - */ -#include "geext.h" -#include "geint.h" -#include "shmint.h" -#if XINERAMA -# include "panoramiXsrv.h" -# include "panoramiX.h" -#endif - - -/* hw/xfree86/int10/Makefile.am -- module */ -/* -#include "xf86int10.h" - */ - - -/* hw/xfree86/i2c/Makefile.am -- "mostly" modules */ -#include "xf86i2c.h" -/* -#include "bt829.h" -#include "fi1236.h" -#include "msp3430.h" -#include "tda8425.h" -#include "tda9850.h" -#include "tda9885.h" -#include "uda1380.h" -#include "i2c_def.h" - */ - - -/* hw/xfree86/modes/Makefile.am */ -#include "xf86Crtc.h" -#include "xf86Modes.h" -#include "xf86RandR12.h" -/* #include "xf86Rename.h" */ - - -/* hw/xfree86/ddc/Makefile.am */ -#include "edid.h" -#include "xf86DDC.h" - - -/* hw/xfree86/dri2/Makefile.am -- module */ -/* -#if DRI2 -# include "dri2.h" -#endif - */ - - -/* hw/xfree86/vgahw/Makefile.am -- module */ -/* -#include "vgaHW.h" - */ - - -/* hw/xfree86/fbdevhw/Makefile.am -- module */ -/* -#include "fbdevhw.h" - */ - - -/* hw/xfree86/common/Makefile.am */ -#include "compiler.h" -#include "fourcc.h" -#include "xf86.h" -#include "xf86Module.h" -#include "xf86Opt.h" -#include "xf86PciInfo.h" -#include "xf86Priv.h" -#include "xf86Privstr.h" -#include "xf86cmap.h" -#include "xf86fbman.h" -#include "xf86str.h" -#include "xf86Xinput.h" -#include "xf86VGAarbiter.h" -#include "xisb.h" -#if XV -# include "xf86xv.h" -# include "xf86xvmc.h" -# include "xf86xvpriv.h" -#endif -/* XF86VidMode code is in libextmod module */ -/* -#if XF86VIDMODE -# include "vidmodeproc.h" -#endif - */ -#include "xorgVersion.h" -#if defined(__sparc__) || defined(__sparc) -# include "xf86sbusBus.h" -#endif - - -/* hw/xfree86/ramdac/Makefile.am */ -#include "BT.h" -#include "IBM.h" -#include "TI.h" -#include "xf86Cursor.h" -#include "xf86RamDac.h" - - -/* hw/xfree86/shadowfb/Makefile.am -- module */ -/* -#include "shadowfb.h" - */ - - -/* hw/xfree86/os-support/solaris/Makefile.am */ -#if defined(sun386) -# include "agpgart.h" -#endif - - -/* hw/xfree86/os-support/Makefile.am */ -#include "xf86_OSproc.h" -#include "xf86_OSlib.h" - - -/* hw/xfree86/os-support/bus/Makefile.am */ -#include "xf86Pci.h" -#if defined(__sparc__) || defined(__sparc) -# include "xf86Sbus.h" -#endif - - -/* hw/xfree86/xaa/Makefile.am -- module */ -/* -#include "xaa.h" -#include "xaalocal.h" -#include "xaarop.h" -#include "xaaWrapper.h" - */ - - -/* hw/xfree86/dixmods/extmod/Makefile.am -- module */ -/* -#include "dgaproc.h" - */ - - -/* hw/xfree86/parser/Makefile.am */ -#include "xf86Parser.h" -#include "xf86Optrec.h" - - -/* hw/xfree86/vbe/Makefile.am -- module */ -/* -#include "vbe.h" -#include "vbeModes.h" - */ - - -/* hw/xfree86/dri/Makefile.am -- module */ -/* -#if XF86DRI -# include "dri.h" -# include "sarea.h" -# include "dristruct.h" -#endif - */ - - -/* hw/xfree86/xf8_16bpp/Makefile.am -- module */ -/* -#include "cfb8_16.h" - */ - - -/* mi/Makefile.am */ -#include "mibank.h" -#include "micmap.h" -#include "miline.h" -#include "mipointer.h" -#include "mi.h" -#include "mibstore.h" -#include "migc.h" -#include "mipointrst.h" -#include "mizerarc.h" -#include "micoord.h" -#include "mifillarc.h" -#include "mispans.h" -#include "miwideline.h" -#include "mistruct.h" -#include "mifpoly.h" -#include "mioverlay.h" - - -/* randr/Makefile.am */ -#include "randrstr.h" -#include "rrtransform.h" - - -/* dbe/Makefile.am -- module */ -/* -#include "dbestruct.h" - */ - - -/* exa/Makefile.am -- module */ -/* -#include "exa.h" - */ - - -/* xfixes/Makefile.am */ -#include "xfixes.h" - - -/* include/Makefile.am */ -#include "XIstubs.h" -#include "bstore.h" -#include "bstorestr.h" -#include "closestr.h" -#include "closure.h" -#include "colormap.h" -#include "colormapst.h" -#include "hotplug.h" -#include "cursor.h" -#include "cursorstr.h" -#include "dix.h" -#include "dixaccess.h" -#include "dixevents.h" -#include "dixfont.h" -#include "dixfontstr.h" -#include "dixgrabs.h" -#include "dixstruct.h" -#include "exevents.h" -#include "extension.h" -#include "extinit.h" -#include "extnsionst.h" -#include "gc.h" -#include "gcstruct.h" -#include "globals.h" -#include "input.h" -#include "inputstr.h" -/* already included */ -/* -#include "misc.h" -#include "miscstruct.h" - */ -#include "opaque.h" -#include "os.h" -#include "pixmap.h" -#include "pixmapstr.h" -#include "privates.h" -#include "property.h" -#include "propertyst.h" -#include "ptrveloc.h" -#include "region.h" -#include "regionstr.h" -#include "registry.h" -#include "resource.h" -#include "rgb.h" -#include "screenint.h" -#include "scrnintstr.h" -#include "selection.h" -#include "servermd.h" -#include "site.h" -#include "swaprep.h" -#include "swapreq.h" -#include "validate.h" -#include "window.h" -#include "windowstr.h" -#include "xace.h" -#include "xkbfile.h" -#include "xkbsrv.h" -#include "xkbstr.h" -#include "xkbrules.h" -#include "xserver-properties.h" - -/* - * These symbols are referenced to ensure they - * will be available in the X Server binary. - */ -/* topdir=../../.. */ -_X_HIDDEN void *xorg_symbols[] = { - (void *) &WaitForSomething, - (void *) &ReadRequestFromClient, - (void *) &InsertFakeRequest, - (void *) &ResetCurrentRequest, - (void *) &FlushAllOutput, - (void *) &FlushIfCriticalOutputPending, - (void *) &SetCriticalOutputPending, - (void *) &WriteToClient, - (void *) &ResetOsBuffers, - (void *) &InitConnectionLimits, - (void *) &NotifyParentProcess, - (void *) &CreateWellKnownSockets, - (void *) &ResetWellKnownSockets, - (void *) &CloseWellKnownConnections, - (void *) &AuthorizationIDOfClient, - (void *) &ClientAuthorized, - (void *) &EstablishNewConnections, - (void *) &CheckConnections, - (void *) &CloseDownConnection, - (void *) &AddGeneralSocket, - (void *) &RemoveGeneralSocket, - (void *) &AddEnabledDevice, - (void *) &RemoveEnabledDevice, - (void *) &OnlyListenToOneClient, - (void *) &ListenToAllClients, - (void *) &IgnoreClient, - (void *) &AttendClient, - (void *) &MakeClientGrabImpervious, - (void *) &MakeClientGrabPervious, - (void *) &GetTimeInMillis, - (void *) &AdjustWaitForDelay, - (void *) &TimerInit, - (void *) &TimerForce, - (void *) &TimerSet, - (void *) &TimerCheck, - (void *) &TimerCancel, - (void *) &TimerFree, - (void *) &SetScreenSaverTimer, - (void *) &FreeScreenSaverTimer, - (void *) &AutoResetServer, - (void *) &GiveUp, - (void *) &UseMsg, - (void *) &ProcessCommandLine, - (void *) &set_font_authorizations, - (void *) &Xalloc, - (void *) &Xcalloc, - (void *) &Xrealloc, - (void *) &Xfree, - (void *) &XNFalloc, - (void *) &XNFcalloc, - (void *) &XNFrealloc, - (void *) &Xstrdup, - (void *) &XNFstrdup, - (void *) &Xprintf, - (void *) &Xvprintf, - (void *) &XNFprintf, - (void *) &XNFvprintf, - (void *) &OsSignal, - (void *) &OsRegisterSigWrapper, - (void *) &auditTrailLevel, - (void *) &LockServer, - (void *) &UnlockServer, - (void *) &OsLookupColor, - (void *) &OsInit, - (void *) &OsCleanup, - (void *) &OsVendorFatalError, - (void *) &OsVendorInit, - (void *) &OsBlockSignals, - (void *) &OsReleaseSignals, - (void *) &System, - (void *) &Popen, - (void *) &Pclose, - (void *) &Fopen, - (void *) &Fclose, - (void *) &CheckUserParameters, - (void *) &CheckUserAuthorization, - (void *) &AddHost, - (void *) &ForEachHostInFamily, - (void *) &RemoveHost, - (void *) &GetHosts, - (void *) &InvalidHost, - (void *) &LocalClient, - (void *) &LocalClientCred, - (void *) &GetLocalClientCreds, - (void *) &FreeLocalClientCreds, - (void *) &ChangeAccessControl, - (void *) &GetAccessControl, - (void *) &AddLocalHosts, - (void *) &ResetHosts, - (void *) &EnableLocalHost, - (void *) &DisableLocalHost, - (void *) &AccessUsingXdmcp, - (void *) &DefineSelf, - (void *) &AugmentSelf, - (void *) &RegisterAuthorizations, - (void *) &InitAuthorization, - (void *) &AuthorizationFromID, - (void *) &CheckAuthorization, - (void *) &ResetAuthorization, - (void *) &RemoveAuthorization, - (void *) &AddAuthorization, - (void *) &ddxProcessArgument, - (void *) &ddxUseMsg, - (void *) &ReplyCallback, - (void *) &FlushCallback, - (void *) &AbortDDX, - (void *) &ddxGiveUp, - (void *) &TimeSinceLastInputEvent, - (void *) &strlcpy, - (void *) &strlcat, - (void *) &LogInit, - (void *) &LogClose, - (void *) &LogSetParameter, - (void *) &LogVWrite, - (void *) &LogWrite, - (void *) &LogVMessageVerb, - (void *) &LogMessageVerb, - (void *) &LogMessage, - (void *) &FreeAuditTimer, - (void *) &AuditF, - (void *) &VAuditF, - (void *) &FatalError, - (void *) &VErrorF, - (void *) &ErrorF, - (void *) &Error, - (void *) &LogPrintMarkers, - (void *) &xorg_backtrace, - (void *) &SwapLongs, - (void *) &SwapShorts, - (void *) &MakePredeclaredAtoms, - (void *) &Ones, - (void *) &globalSerialNumber, - (void *) &serverGeneration, - (void *) &AddScreen, - (void *) &GetScratchPixmapHeader, - (void *) &FreeScratchPixmapHeader, - (void *) &CreateScratchPixmapsForScreen, - (void *) &FreeScratchPixmapsForScreen, - (void *) &AllocatePixmap, - (void *) &ValidateGC, - (void *) &ChangeGC, - (void *) &DoChangeGC, - (void *) &dixChangeGC, - (void *) &CreateGC, - (void *) &CopyGC, - (void *) &FreeGC, - (void *) &CreateScratchGC, - (void *) &FreeGCperDepth, - (void *) &CreateGCperDepth, - (void *) &CreateDefaultStipple, - (void *) &FreeDefaultStipple, - (void *) &SetDashes, - (void *) &VerifyRectOrder, - (void *) &SetClipRects, - (void *) &GetScratchGC, - (void *) &FreeScratchGC, - (void *) &miEmptyBox, - (void *) &miEmptyData, - (void *) &miBrokenData, - (void *) &InitRegions, - (void *) &miRegionCreate, - (void *) &miRegionInit, - (void *) &miRegionDestroy, - (void *) &miRegionUninit, - (void *) &miRegionCopy, - (void *) &miIntersect, - (void *) &miUnion, - (void *) &miRegionAppend, - (void *) &miRegionValidate, - (void *) &miRectsToRegion, - (void *) &miSubtract, - (void *) &miInverse, - (void *) &miRectIn, - (void *) &miTranslateRegion, - (void *) &miRegionReset, - (void *) &miRegionBreak, - (void *) &miPointInRegion, - (void *) &miRegionEqual, - (void *) &miRegionNotEmpty, - (void *) &miRegionEmpty, - (void *) &miRegionExtents, - (void *) &miPrintRegion, - (void *) &TraverseTree, - (void *) &WalkTree, - (void *) &CreateRootWindow, - (void *) &InitRootWindow, - (void *) &RegisterRealChildHeadProc, - (void *) &RealChildHead, - (void *) &CreateWindow, - (void *) &DeleteWindow, - (void *) &DestroySubwindows, - (void *) &ChangeWindowAttributes, - (void *) &ChangeWindowDeviceCursor, - (void *) &WindowGetDeviceCursor, - (void *) &GetWindowAttributes, - (void *) &GravityTranslate, - (void *) &ConfigureWindow, - (void *) &CirculateWindow, - (void *) &ReparentWindow, - (void *) &MapWindow, - (void *) &MapSubwindows, - (void *) &UnmapWindow, - (void *) &UnmapSubwindows, - (void *) &HandleSaveSet, - (void *) &PointInWindowIsVisible, - (void *) &NotClippedByChildren, - (void *) &SendVisibilityNotify, - (void *) &dixSaveScreens, - (void *) &SaveScreens, - (void *) &FindWindowWithOptional, - (void *) &CheckWindowOptionalNeed, - (void *) &MakeWindowOptional, - (void *) &MoveWindowInStack, - (void *) &SetWinSize, - (void *) &SetBorderSize, - (void *) &ResizeChildrenWinSize, - (void *) &ShapeExtensionInit, - (void *) &SendShapeNotify, - (void *) &CreateBoundingShape, - (void *) &CreateClipShape, - (void *) &DisableMapUnmapEvents, - (void *) &EnableMapUnmapEvents, - (void *) &XkbRF_GetComponents, - (void *) &XkbRF_LoadRules, - (void *) &XkbRF_LoadRulesByName, - (void *) &XkbRF_Create, - (void *) &XkbRF_Free, - (void *) &InputEventList, - (void *) &InputEventListLen, - (void *) &defaultKeyboardControl, - (void *) &defaultPointerControl, - (void *) &set_key_down, - (void *) &set_key_up, - (void *) &key_is_down, - (void *) &InitCoreDevices, - (void *) &InitXTestDevices, - (void *) &AddInputDevice, - (void *) &EnableDevice, - (void *) &ActivateDevice, - (void *) &DisableDevice, - (void *) &InitAndStartDevices, - (void *) &CloseDownDevices, - (void *) &UndisplayDevices, - (void *) &RemoveDevice, - (void *) &NumMotionEvents, - (void *) &RegisterPointerDevice, - (void *) &RegisterKeyboardDevice, - (void *) &dixLookupDevice, - (void *) &QueryMinMaxKeyCodes, - (void *) &SetKeySymsMap, - (void *) &InitButtonClassDeviceStruct, - (void *) &InitValuatorClassDeviceStruct, - (void *) &InitPointerAccelerationScheme, - (void *) &InitAbsoluteClassDeviceStruct, - (void *) &InitFocusClassDeviceStruct, - (void *) &InitPtrFeedbackClassDeviceStruct, - (void *) &InitStringFeedbackClassDeviceStruct, - (void *) &InitBellFeedbackClassDeviceStruct, - (void *) &InitLedFeedbackClassDeviceStruct, - (void *) &InitIntegerFeedbackClassDeviceStruct, - (void *) &InitPointerDeviceStruct, - (void *) &InitKeyboardDeviceStruct, - (void *) &ApplyPointerMapping, - (void *) &BadDeviceMap, - (void *) &NoteLedState, - (void *) &MaybeStopHint, - (void *) &ProcessPointerEvent, - (void *) &ProcessKeyboardEvent, - (void *) &LegalModifier, - (void *) &ProcessInputEvents, - (void *) &InitInput, - (void *) &GetMaximumEventsNum, - (void *) &GetEventList, - (void *) &InitEventList, - (void *) &FreeEventList, - (void *) &CreateClassesChangedEvent, - (void *) &GetPointerEvents, - (void *) &GetKeyboardEvents, - (void *) &GetKeyboardValuatorEvents, - (void *) &GetProximityEvents, - (void *) &PostSyntheticMotion, - (void *) &GetMotionHistorySize, - (void *) &AllocateMotionHistory, - (void *) &GetMotionHistory, - (void *) &AttachDevice, - (void *) &GetPairedDevice, - (void *) &GetMaster, - (void *) &AllocDevicePair, - (void *) &DeepCopyDeviceClasses, - (void *) &generate_modkeymap, - (void *) &change_modmap, - (void *) &AllocXTestDevice, - (void *) &IsXTestDevice, - (void *) &GetXTestDevice, - (void *) &SendDevicePresenceEvent, - (void *) &GetEventFilter, - (void *) &GetWindowXI2Mask, - (void *) &NewInputDeviceRequest, - (void *) &DeleteInputDeviceRequest, - (void *) &DDXRingBell, - (void *) &EnableCursor, - (void *) &cursorScreenDevPriv, - (void *) &rootCursor, - (void *) &FreeCursor, - (void *) &AllocARGBCursor, - (void *) &AllocGlyphCursor, - (void *) &CreateRootCursor, - (void *) &ServerBitsFromGlyph, - (void *) &CursorMetricsFromGlyph, - (void *) &CheckCursorConfinement, - (void *) &NewCurrentScreen, - (void *) &PointerConfinedToScreen, - (void *) &GetSpritePosition, - (void *) &XineramaGetCursorScreen, - (void *) &GEExtensions, - (void *) &GERegisterExtension, - (void *) &GEInitEvent, - (void *) &GEExtensionInit, - (void *) &clients, - (void *) &serverClient, - (void *) ¤tMaxClients, - (void *) &dispatchExceptionAtReset, - (void *) &checkForInput, - (void *) &SetInputCheck, - (void *) &CloseDownClient, - (void *) &UpdateCurrentTime, - (void *) &UpdateCurrentTimeIf, - (void *) &dixDestroyPixmap, - (void *) &InitClient, - (void *) &NextAvailableClient, - (void *) &SendErrorToClient, - (void *) &MarkClientException, - (void *) &CreateConnectionBlock, - (void *) &CompareISOLatin1Lowered, - (void *) &dixLookupWindow, - (void *) &dixLookupDrawable, - (void *) &dixLookupGC, - (void *) &dixLookupClient, - (void *) &NoopDDA, - (void *) &AlterSaveSetForClient, - (void *) &DeleteWindowFromAnySaveSet, - (void *) &BlockHandler, - (void *) &WakeupHandler, - (void *) &RegisterBlockAndWakeupHandlers, - (void *) &RemoveBlockAndWakeupHandlers, - (void *) &InitBlockAndWakeupHandlers, - (void *) &ProcessWorkQueue, - (void *) &ProcessWorkQueueZombies, - (void *) &QueueWorkProc, - (void *) &ClientSleep, - (void *) &ClientSignal, - (void *) &ClientWakeup, - (void *) &ClientIsAsleep, - (void *) &MakeAtom, - (void *) &ValidAtom, - (void *) &NameForAtom, - (void *) &AtomError, - (void *) &FreeAllAtoms, - (void *) &InitAtoms, - (void *) &SetVendorRelease, - (void *) &SetVendorString, - (void *) &SetMaskForEvent, - (void *) &ConfineToShape, - (void *) &IsParent, - (void *) &GetCurrentRootWindow, - (void *) &GetSpriteWindow, - (void *) &NoticeEventTime, - (void *) &EnqueueEvent, - (void *) &ActivatePointerGrab, - (void *) &DeactivatePointerGrab, - (void *) &ActivateKeyboardGrab, - (void *) &DeactivateKeyboardGrab, - (void *) &ActivateFocusInGrab, - (void *) &AllowSome, - (void *) &ReleaseActiveGrabs, - (void *) &DeliverEventsToWindow, - (void *) &DeliverDeviceEvents, - (void *) &InitializeSprite, - (void *) &UpdateSpriteForScreen, - (void *) &WindowHasNewCursor, - (void *) &CheckDeviceGrabs, - (void *) &DeliverFocusedEvent, - (void *) &DeliverGrabbedEvent, - (void *) &FixKeyState, - (void *) &RecalculateDeliverableEvents, - (void *) &OtherClientGone, - (void *) &DoFocusEvents, - (void *) &SetInputFocus, - (void *) &GrabDevice, - (void *) &InitEvents, - (void *) &CloseDownEvents, - (void *) &DeleteWindowFromAnyEvents, - (void *) &EventMaskForClient, - (void *) &DeliverEvents, - (void *) &CheckMotion, - (void *) &WriteEventsToClient, - (void *) &TryClientEvents, - (void *) &WindowsRestructured, - (void *) &SetClientPointer, - (void *) &PickPointer, - (void *) &PickKeyboard, - (void *) &IsInterferingGrab, - (void *) &ReinitializeRootWindow, - (void *) &ScreenRestructured, - (void *) &ffs, - (void *) &AddCallback, - (void *) &DeleteCallback, - (void *) &CallCallbacks, - (void *) &DeleteCallbackList, - (void *) &InitCallbackManager, - (void *) &ServerGrabCallback, - (void *) &EventCallback, - (void *) &DeviceEventCallback, - (void *) &XItoCoreType, - (void *) &DevHasCursor, - (void *) &IsPointerDevice, - (void *) &IsKeyboardDevice, - (void *) &IsPointerEvent, - (void *) &IsMaster, - (void *) &CopyKeyClass, - (void *) &CorePointerProc, - (void *) &CoreKeyboardProc, - (void *) &SecurityLookupWindow, - (void *) &LookupWindow, - (void *) &SecurityLookupDrawable, - (void *) &LookupDrawable, - (void *) &LookupClient, - (void *) &ResourceStateCallback, - (void *) &CreateNewResourceType, - (void *) &CreateNewResourceClass, - (void *) &InitClientResources, - (void *) &FakeClientID, - (void *) &AddResource, - (void *) &FreeResource, - (void *) &FreeResourceByType, - (void *) &ChangeResourceValue, - (void *) &FindClientResourcesByType, - (void *) &FindAllClientResources, - (void *) &FreeClientNeverRetainResources, - (void *) &FreeClientResources, - (void *) &FreeAllResources, - (void *) &LegalNewID, - (void *) &LookupClientResourceComplex, - (void *) &dixLookupResourceByType, - (void *) &dixLookupResourceByClass, - (void *) &GetXIDRange, - (void *) &GetXIDList, - (void *) &lastResourceType, - (void *) &TypeMask, - (void *) &SecurityLookupIDByType, - (void *) &SecurityLookupIDByClass, - (void *) &LookupIDByType, - (void *) &LookupIDByClass, - (void *) &dixRequestPrivate, - (void *) &dixAllocatePrivate, - (void *) &dixLookupPrivate, - (void *) &dixLookupPrivateAddr, - (void *) &dixSetPrivate, - (void *) &dixRegisterPrivateInitFunc, - (void *) &dixRegisterPrivateDeleteFunc, - (void *) &dixFreePrivates, - (void *) &dixResetPrivates, - (void *) &dixLookupPrivateOffset, - (void *) &dixRegisterPrivateOffset, - (void *) &PictureCmapPolicy, - (void *) &PictureParseCmapPolicy, - (void *) &RenderErrBase, - (void *) &RenderClientPrivateKey, - (void *) &CreateColormap, - (void *) &FreeColormap, - (void *) &TellLostMap, - (void *) &TellGainedMap, - (void *) &CopyColormapAndFree, - (void *) &AllocColor, - (void *) &FakeAllocColor, - (void *) &FakeFreeColor, - (void *) &FindColor, - (void *) &QueryColors, - (void *) &FreeClientPixels, - (void *) &AllocColorCells, - (void *) &AllocColorPlanes, - (void *) &FreeColors, - (void *) &StoreColors, - (void *) &IsMapInstalled, - (void *) &ResizeVisualArray, - (void *) &screenInfo, - (void *) &InitOutput, - (void *) &FindGlyphHashSet, - (void *) &GlyphUninit, - (void *) &FindGlyphHashSet, - (void *) &FindGlyphRef, - (void *) &FindGlyphByHash, - (void *) &HashGlyph, - (void *) &FreeGlyph, - (void *) &AddGlyph, - (void *) &DeleteGlyph, - (void *) &FindGlyph, - (void *) &AllocateGlyph, - (void *) &AllocateGlyphHash, - (void *) &ResizeGlyphHash, - (void *) &ResizeGlyphSet, - (void *) &AllocateGlyphSet, - (void *) &FreeGlyphSet, - (void *) &PictureScreenPrivateKey, - (void *) &PictureWindowPrivateKey, - (void *) &PictureType, - (void *) &PictFormatType, - (void *) &GlyphSetType, - (void *) &PictureDestroyWindow, - (void *) &PictureCloseScreen, - (void *) &PictureStoreColors, - (void *) &PictureInitIndexedFormat, - (void *) &PictureSetSubpixelOrder, - (void *) &PictureGetSubpixelOrder, - (void *) &PictureCreateDefaultFormats, - (void *) &PictureMatchVisual, - (void *) &PictureMatchFormat, - (void *) &PictureInit, - (void *) &PictureGetFilterId, - (void *) &PictureGetFilterName, - (void *) &PictureAddFilter, - (void *) &PictureSetFilterAlias, - (void *) &PictureSetDefaultFilters, - (void *) &PictureResetFilters, - (void *) &PictureFindFilter, - (void *) &SetPicturePictFilter, - (void *) &SetPictureFilter, - (void *) &PictureFinishInit, - (void *) &SetPictureToDefaults, - (void *) &CreatePicture, - (void *) &ChangePicture, - (void *) &SetPictureClipRects, - (void *) &SetPictureClipRegion, - (void *) &SetPictureTransform, - (void *) &CopyPicture, - (void *) &ValidatePicture, - (void *) &FreePicture, - (void *) &FreePictFormat, - (void *) &CompositePicture, - (void *) &CompositeGlyphs, - (void *) &CompositeRects, - (void *) &CompositeTrapezoids, - (void *) &CompositeTriangles, - (void *) &CompositeTriStrip, - (void *) &CompositeTriFan, - (void *) &PictureGradientColor, - (void *) &RenderExtensionInit, - (void *) &AddTraps, - (void *) &CreateSolidPicture, - (void *) &CreateLinearGradientPicture, - (void *) &CreateRadialGradientPicture, - (void *) &CreateConicalGradientPicture, - (void *) &PanoramiXRenderInit, - (void *) &PanoramiXRenderReset, - (void *) &PictTransform_from_xRenderTransform, - (void *) &xRenderTransform_from_PictTransform, - (void *) &PictureTransformPoint, - (void *) &PictureTransformPoint3d, - (void *) &miCreatePicture, - (void *) &miDestroyPicture, - (void *) &miDestroyPictureClip, - (void *) &miChangePictureClip, - (void *) &miChangePicture, - (void *) &miValidatePicture, - (void *) &miChangePictureTransform, - (void *) &miChangePictureFilter, - (void *) &miCompositeSourceValidate, - (void *) &miComputeCompositeRegion, - (void *) &miPictureInit, - (void *) &miRealizeGlyph, - (void *) &miUnrealizeGlyph, - (void *) &miGlyphs, - (void *) &miRenderColorToPixel, - (void *) &miRenderPixelToColor, - (void *) &miIsSolidAlpha, - (void *) &miCompositeRects, - (void *) &miTrapezoidBounds, - (void *) &miTrapezoids, - (void *) &miPointFixedBounds, - (void *) &miTriangleBounds, - (void *) &miTriangles, - (void *) &miTriStrip, - (void *) &miTriFan, - (void *) &miCreateAlphaPicture, - (void *) &miInitIndexed, - (void *) &miCloseIndexed, - (void *) &miUpdateIndexed, - (void *) &RenderSampleCeilY, - (void *) &RenderSampleFloorY, - (void *) &RenderEdgeStep, - (void *) &RenderEdgeInit, - (void *) &RenderLineFixedEdgeInit, - (void *) &miDamageCreate, - (void *) &miDamageRegister, - (void *) &miDamageUnregister, - (void *) &miDamageDestroy, - (void *) &DamageSetup, - (void *) &DamageCreate, - (void *) &DamageDrawInternal, - (void *) &DamageRegister, - (void *) &DamageUnregister, - (void *) &DamageDestroy, - (void *) &DamageSubtract, - (void *) &DamageEmpty, - (void *) &DamageRegion, - (void *) &DamagePendingRegion, - (void *) &DamageRegionAppend, - (void *) &DamageRegionProcessPending, - (void *) &DamageRegionRendered, - (void *) &DamageDamageRegion, - (void *) &DamageSetReportAfterOp, - (void *) &DamageSetPostRenderingFunctions, - (void *) &DamageGetScreenFuncs, - (void *) &ClientStateCallback, - (void *) &ReplyNotSwappd, - (void *) &SmartScheduleTime, - (void *) &SmartScheduleInterval, - (void *) &SmartScheduleSlice, - (void *) &SmartScheduleMaxSlice, - (void *) &SmartScheduleDisable, - (void *) &SmartScheduleStartTimer, - (void *) &SmartScheduleStopTimer, - (void *) &SmartScheduleInit, - (void *) ¤tTime, - (void *) &lastDeviceEventTime, - (void *) &CompareTimeStamps, - (void *) &ClientTimeToServerTime, - (void *) &InitialVector, - (void *) &ProcVector, - (void *) &SwappedProcVector, - (void *) &ReplySwapVector, - (void *) &ProcBadRequest, - (void *) &StandardMinorOpcode, - (void *) &MinorOpcodeOfRequest, - (void *) &EnableDisableExtension, - (void *) &EnableDisableExtensionError, - (void *) &InitExtensions, - (void *) &CloseDownExtensions, - (void *) &EventSwapVector, - (void *) &NotImplemented, - (void *) &AddExtension, - (void *) &AddExtensionAlias, - (void *) &CheckExtension, - (void *) &GetExtensionEntry, - (void *) &GEEventType, - (void *) &GEEventBase, - (void *) &GEErrorBase, - (void *) &GEClientPrivateKey, - (void *) &ProcGEVector, - (void *) &SProcGEVector, - (void *) &ShmRegisterFuncs, - (void *) &ShmRegisterFbFuncs, - (void *) &ShmSegType, - (void *) &ShmCompletionCode, - (void *) &BadShmSegCode, - (void *) &PanoramiXNumScreens, - (void *) &panoramiXdataPtr, - (void *) &PanoramiXPixWidth, - (void *) &PanoramiXPixHeight, - (void *) &PanoramiXTranslateVisualID, - (void *) &PanoramiXConsolidate, - (void *) &PanoramiXCreateConnectionBlock, - (void *) &PanoramiXFindIDByScrnum, - (void *) &XineramaRegisterConnectionBlockCallback, - (void *) &XineramaDeleteResource, - (void *) &XineramaReinitData, - (void *) &XineramaScreenRegions, - (void *) &XRC_DRAWABLE, - (void *) &XRT_WINDOW, - (void *) &XRT_PIXMAP, - (void *) &XRT_GC, - (void *) &XRT_COLORMAP, - (void *) &XineramaVisualsEqualPtr, - (void *) &XineramaGetImageData, - (void *) &xf86CreateI2CBusRec, - (void *) &xf86DestroyI2CBusRec, - (void *) &xf86I2CBusInit, - (void *) &xf86I2CFindBus, - (void *) &xf86I2CGetScreenBuses, - (void *) &xf86CreateI2CDevRec, - (void *) &xf86DestroyI2CDevRec, - (void *) &xf86I2CDevInit, - (void *) &xf86I2CFindDev, - (void *) &xf86I2CProbeAddress, - (void *) &xf86I2CWriteRead, - (void *) &xf86I2CReadStatus, - (void *) &xf86I2CReadByte, - (void *) &xf86I2CReadBytes, - (void *) &xf86I2CReadWord, - (void *) &xf86I2CWriteByte, - (void *) &xf86I2CWriteBytes, - (void *) &xf86I2CWriteWord, - (void *) &xf86I2CWriteVec, - (void *) &ConfiguredMonitor, - (void *) &dixLookupProperty, - (void *) &dixChangeWindowProperty, - (void *) &ChangeWindowProperty, - (void *) &DeleteProperty, - (void *) &DeleteAllWindowProperties, - (void *) &defaultScreenSaverTime, - (void *) &defaultScreenSaverInterval, - (void *) &ScreenSaverTime, - (void *) &ScreenSaverInterval, - (void *) &screenSaverSuspended, - (void *) &defaultFontPath, - (void *) &monitorResolution, - (void *) &defaultColorVisualClass, - (void *) &WindowTable, - (void *) &GrabInProgress, - (void *) &noTestExtensions, - (void *) &dixScreenOrigins, - (void *) &ConnectionInfo, - (void *) &DPMSStandbyTime, - (void *) &DPMSSuspendTime, - (void *) &DPMSOffTime, - (void *) &DPMSPowerLevel, - (void *) &DPMSEnabled, - (void *) &DPMSDisabledSwitch, - (void *) &DPMSCapableFlag, - (void *) &PanoramiXExtensionDisabledHack, - (void *) &noCompositeExtension, - (void *) &noDamageExtension, - (void *) &noDbeExtension, - (void *) &noDPMSExtension, - (void *) &noGlxExtension, - (void *) &noScreenSaverExtension, - (void *) &noMITShmExtension, - (void *) &noRRExtension, - (void *) &noRenderExtension, - (void *) &noResExtension, - (void *) &noXFree86DGAExtension, - (void *) &noXFree86DRIExtension, - (void *) &noXFixesExtension, - (void *) &noPanoramiXExtension, - (void *) &noXvExtension, - (void *) &noDRI2Extension, - (void *) &defaultTextFont, - (void *) &defaultCursorFont, - (void *) &MaxClients, - (void *) &isItTimeToYield, - (void *) &dispatchException, - (void *) &TimeOutValue, - (void *) &ScreenSaverBlanking, - (void *) &ScreenSaverAllowExposures, - (void *) &defaultScreenSaverBlanking, - (void *) &defaultScreenSaverAllowExposures, - (void *) &display, - (void *) &defaultBackingStore, - (void *) &disableBackingStore, - (void *) &enableBackingStore, - (void *) &PartialNetwork, - (void *) &logoScreenSaver, - (void *) &defeatAccessControl, - (void *) &maxBigRequestSize, - (void *) &party_like_its_1989, - (void *) &whiteRoot, - (void *) &CoreDump, - (void *) &DontPropagateMasks, - (void *) &screenIsSaved, - (void *) &savedScreenInfo, - (void *) &PixmapWidthPaddingInfo, - (void *) &RRTransformInit, - (void *) &RRTransformFini, - (void *) &RRTransformEqual, - (void *) &RRTransformSetFilter, - (void *) &RRTransformCopy, - (void *) &RRTransformCompute, - (void *) &RREventBase, - (void *) &ProcRandrVector, - (void *) &SProcRandrVector, - (void *) &rrPrivKey, - (void *) &RRClientType, - (void *) &RRClientPrivateKey, - (void *) &RRCrtcType, - (void *) &RRExtensionInit, - (void *) &RRScreenSetSizeRange, - (void *) &RRScreenSizeNotify, - (void *) &RRScreenSizeSet, - (void *) &RRSendConfigNotify, - (void *) &ProcRRGetScreenSizeRange, - (void *) &ProcRRSetScreenSize, - (void *) &ProcRRGetScreenResources, - (void *) &ProcRRGetScreenResourcesCurrent, - (void *) &ProcRRSetScreenConfig, - (void *) &ProcRRGetScreenInfo, - (void *) &RRDeliverScreenEvent, - (void *) &miRandRInit, - (void *) &miRRGetInfo, - (void *) &miRRCrtcSet, - (void *) &miRROutputSetProperty, - (void *) &miRROutputGetProperty, - (void *) &miRROutputValidateMode, - (void *) &miRRModeDestroy, - (void *) &RRTellChanged, - (void *) &RRGetInfo, - (void *) &RRInit, - (void *) &RRScreenInit, - (void *) &RRFirstOutput, - (void *) &RRGetRotation, - (void *) &RRVerticalRefresh, - (void *) &RRRegisterSize, - (void *) &RRRegisterRate, - (void *) &RRSetCurrentConfig, - (void *) &RRScreenInit, - (void *) &RRGetRotation, - (void *) &RRCrtcChanged, - (void *) &RRCrtcCreate, - (void *) &RRCrtcSetRotations, - (void *) &RRCrtcSetTransformSupport, - (void *) &RRCrtcNotify, - (void *) &RRDeliverCrtcEvent, - (void *) &RRCrtcSet, - (void *) &RRCrtcGammaSet, - (void *) &RRCrtcGammaGet, - (void *) &RRCrtcGammaNotify, - (void *) &RRCrtcGammaSetSize, - (void *) &RRCrtcGetScanoutSize, - (void *) &RRTransformCompute, - (void *) &RRCrtcGetTransform, - (void *) &RRCrtcPendingTransform, - (void *) &RRCrtcDestroy, - (void *) &RRCrtcTransformSet, - (void *) &RRCrtcInit, - (void *) &ProcRRGetCrtcInfo, - (void *) &ProcRRSetCrtcConfig, - (void *) &ProcRRGetCrtcGammaSize, - (void *) &ProcRRGetCrtcGamma, - (void *) &ProcRRSetCrtcGamma, - (void *) &ProcRRSetCrtcTransform, - (void *) &ProcRRGetCrtcTransform, - (void *) &RRClientKnowsRates, - (void *) &RRModeGet, - (void *) &RRModeDestroy, - (void *) &RRModesForScreen, - (void *) &RRModeInit, - (void *) &ProcRRCreateMode, - (void *) &ProcRRDestroyMode, - (void *) &ProcRRAddOutputMode, - (void *) &ProcRRDeleteOutputMode, - (void *) &RROutputChanged, - (void *) &RROutputCreate, - (void *) &RROutputSetClones, - (void *) &RROutputSetModes, - (void *) &RROutputAddUserMode, - (void *) &RROutputDeleteUserMode, - (void *) &RROutputSetCrtcs, - (void *) &RROutputSetConnection, - (void *) &RROutputSetSubpixelOrder, - (void *) &RROutputSetPhysicalSize, - (void *) &RRDeliverOutputEvent, - (void *) &RROutputDestroy, - (void *) &ProcRRGetOutputInfo, - (void *) &ProcRRSetOutputPrimary, - (void *) &ProcRRGetOutputPrimary, - (void *) &RROutputInit, - (void *) &RRPointerMoved, - (void *) &RRPointerScreenConfigured, - (void *) &RRDeleteAllOutputProperties, - (void *) &RRGetOutputProperty, - (void *) &RRQueryOutputProperty, - (void *) &RRDeleteOutputProperty, - (void *) &RRPostPendingProperties, - (void *) &RRChangeOutputProperty, - (void *) &RRConfigureOutputProperty, - (void *) &ProcRRChangeOutputProperty, - (void *) &ProcRRGetOutputProperty, - (void *) &ProcRRListOutputProperties, - (void *) &ProcRRQueryOutputProperty, - (void *) &ProcRRConfigureOutputProperty, - (void *) &ProcRRDeleteOutputProperty, - (void *) &RRXineramaExtensionInit, - (void *) &ExtensionModuleList, - (void *) &LoadSubModule, - (void *) &UnloadSubModule, - (void *) &UnloadModule, - (void *) &LoaderSymbol, - (void *) &LoaderListDirs, - (void *) &LoaderFreeDirList, - (void *) &LoaderErrorMsg, - (void *) &LoadExtension, - (void *) &LoaderGetOS, - (void *) &LoaderShouldIgnoreABI, - (void *) &LoaderGetABIVersion, - (void *) &xf86SetIntOption, - (void *) &xf86SetRealOption, - (void *) &xf86SetStrOption, - (void *) &xf86SetBoolOption, - (void *) &xf86CheckIntOption, - (void *) &xf86CheckRealOption, - (void *) &xf86CheckStrOption, - (void *) &xf86CheckBoolOption, - (void *) &xf86AddNewOption, - (void *) &xf86NewOption, - (void *) &xf86NextOption, - (void *) &xf86OptionListCreate, - (void *) &xf86OptionListMerge, - (void *) &xf86OptionListFree, - (void *) &xf86OptionName, - (void *) &xf86OptionValue, - (void *) &xf86OptionListReport, - (void *) &xf86FindOption, - (void *) &xf86FindOptionValue, - (void *) &xf86MarkOptionUsed, - (void *) &xf86MarkOptionUsedByName, - (void *) &xf86CheckIfOptionUsed, - (void *) &xf86CheckIfOptionUsedByName, - (void *) &xf86ShowUnusedOptions, - (void *) &xf86ProcessOptions, - (void *) &xf86TokenToOptinfo, - (void *) &xf86TokenToOptName, - (void *) &xf86IsOptionSet, - (void *) &xf86GetOptValString, - (void *) &xf86GetOptValInteger, - (void *) &xf86GetOptValULong, - (void *) &xf86GetOptValReal, - (void *) &xf86GetOptValFreq, - (void *) &xf86GetOptValBool, - (void *) &xf86ReturnOptValBool, - (void *) &xf86NameCmp, - (void *) &xf86NormalizeName, - (void *) &xf86ReplaceIntOption, - (void *) &xf86ReplaceRealOption, - (void *) &xf86ReplaceBoolOption, - (void *) &xf86ReplaceStrOption, - (void *) &pciTag, - (void *) &xf86scanpci, - (void *) &xf86MapDomainMemory, - (void *) &xf86MapLegacyIO, - (void *) &xf86DoConfigure, - (void *) &xf86DoShowOptions, - (void *) &xf86DoConfigurePass1, - (void *) &xf86ScreenKey, - (void *) &xf86CreateRootWindowKey, - (void *) &xf86PixmapKey, - (void *) &xf86Screens, - (void *) &byte_reversed, - (void *) &pciSlotClaimed, - (void *) &fbSlotClaimed, - (void *) &xf86ConfigDRI, - (void *) &xf86inSuspend, - (void *) &xf86DRI2Enabled, - (void *) &VTSwitchEnabled, - (void *) &xf86CheckPciSlot, - (void *) &xf86ClaimPciSlot, - (void *) &xf86UnclaimPciSlot, - (void *) &xf86ParsePciBusString, - (void *) &xf86ComparePciBusString, - (void *) &xf86FormatPciBusNumber, - (void *) &xf86GetFbInfoForScreen, - (void *) &xf86ClaimFbSlot, - (void *) &xf86ClaimNoSlot, - (void *) &xf86EnableAccess, - (void *) &xf86IsPrimaryPci, - (void *) &xf86DriverHasEntities, - (void *) &xf86AddEntityToScreen, - (void *) &xf86SetEntityInstanceForScreen, - (void *) &xf86GetNumEntityInstances, - (void *) &xf86GetDevFromEntity, - (void *) &xf86RemoveEntityFromScreen, - (void *) &xf86GetEntityInfo, - (void *) &xf86GetPciInfoForEntity, - (void *) &xf86SetEntityFuncs, - (void *) &xf86CheckPciMemBase, - (void *) &xf86IsEntityPrimary, - (void *) &xf86EnterServerState, - (void *) &xf86FindScreenForEntity, - (void *) &xf86GetLastScrnFlag, - (void *) &xf86SetLastScrnFlag, - (void *) &xf86IsEntityShared, - (void *) &xf86SetEntityShared, - (void *) &xf86IsEntitySharable, - (void *) &xf86SetEntitySharable, - (void *) &xf86IsPrimInitDone, - (void *) &xf86SetPrimInitDone, - (void *) &xf86ClearPrimInitDone, - (void *) &xf86AllocateEntityPrivateIndex, - (void *) &xf86GetEntityPrivate, - (void *) &xf86AddBusDeviceToConfigure, - (void *) &xf86LockZoom, - (void *) &xf86InitViewport, - (void *) &xf86SetViewport, - (void *) &xf86ZoomViewport, - (void *) &xf86SwitchMode, - (void *) &xf86GetPointerScreenFuncs, - (void *) &xf86InitOrigins, - (void *) &xf86ReconfigureLayout, - (void *) &xf86CVTMode, - (void *) &xf86DPMSInit, - (void *) &DPMSSet, - (void *) &DPMSSupported, - (void *) &DGAInit, - (void *) &DGAReInitModes, - (void *) &xf86SetDGAMode, - (void *) &SetTimeSinceLastInputEvent, - (void *) &xf86AddInputHandler, - (void *) &xf86RemoveInputHandler, - (void *) &xf86DisableInputHandler, - (void *) &xf86EnableInputHandler, - (void *) &xf86AddGeneralHandler, - (void *) &xf86RemoveGeneralHandler, - (void *) &xf86DisableGeneralHandler, - (void *) &xf86EnableGeneralHandler, - (void *) &xf86InterceptSignals, - (void *) &xf86InterceptSigIll, - (void *) &xf86EnableVTSwitch, - (void *) &xf86ProcessActionEvent, - (void *) &xf86PrintBacktrace, - (void *) &xf86AddDriver, - (void *) &xf86DeleteDriver, - (void *) &xf86AllocateScreen, - (void *) &xf86DeleteScreen, - (void *) &xf86AllocateScrnInfoPrivateIndex, - (void *) &xf86AddPixFormat, - (void *) &xf86SetDepthBpp, - (void *) &xf86PrintDepthBpp, - (void *) &xf86SetWeight, - (void *) &xf86SetDefaultVisual, - (void *) &xf86SetGamma, - (void *) &xf86SetDpi, - (void *) &xf86SetBlackWhitePixels, - (void *) &xf86EnableDisableFBAccess, - (void *) &xf86VDrvMsgVerb, - (void *) &xf86DrvMsgVerb, - (void *) &xf86DrvMsg, - (void *) &xf86MsgVerb, - (void *) &xf86Msg, - (void *) &xf86ErrorFVerb, - (void *) &xf86ErrorF, - (void *) &xf86TokenToString, - (void *) &xf86StringToToken, - (void *) &xf86ShowClocks, - (void *) &xf86PrintChipsets, - (void *) &xf86MatchDevice, - (void *) &xf86MatchPciInstances, - (void *) &xf86GetClocks, - (void *) &xf86GetVisualName, - (void *) &xf86GetVerbosity, - (void *) &xf86GetPix24, - (void *) &xf86GetDepth, - (void *) &xf86GetWeight, - (void *) &xf86GetGamma, - (void *) &xf86GetFlipPixels, - (void *) &xf86GetServerName, - (void *) &xf86ServerIsExiting, - (void *) &xf86ServerIsResetting, - (void *) &xf86ServerIsInitialising, - (void *) &xf86ServerIsOnlyDetecting, - (void *) &xf86CaughtSignal, - (void *) &xf86GetVidModeAllowNonLocal, - (void *) &xf86GetVidModeEnabled, - (void *) &xf86GetModInDevAllowNonLocal, - (void *) &xf86GetModInDevEnabled, - (void *) &xf86GetAllowMouseOpenFail, - (void *) &xf86IsPc98, - (void *) &xf86DisableRandR, - (void *) &xorgGetVersion, - (void *) &xf86GetModuleVersion, - (void *) &xf86LoadDrvSubModule, - (void *) &xf86LoadSubModule, - (void *) &xf86LoadOneModule, - (void *) &xf86UnloadSubModule, - (void *) &xf86LoaderCheckSymbol, - (void *) &xf86SetBackingStore, - (void *) &xf86SetSilkenMouse, - (void *) &xf86FindXvOptions, - (void *) &xf86GetOS, - (void *) &xf86ConfigPciEntity, - (void *) &xf86ConfigFbEntity, - (void *) &xf86ConfigActivePciEntity, - (void *) &xf86IsScreenPrimary, - (void *) &xf86RegisterRootWindowProperty, - (void *) &xf86IsUnblank, - (void *) &xf86GetPixFormat, - (void *) &xf86GetBppFromDepth, - (void *) &xf86GetNearestClock, - (void *) &xf86ModeStatusToString, - (void *) &xf86LookupMode, - (void *) &xf86CheckModeForMonitor, - (void *) &xf86InitialCheckModeForDriver, - (void *) &xf86CheckModeForDriver, - (void *) &xf86ValidateModes, - (void *) &xf86DeleteMode, - (void *) &xf86PruneDriverModes, - (void *) &xf86SetCrtcForModes, - (void *) &xf86PrintModes, - (void *) &xf86ShowClockRanges, - (void *) &xf86ModeHSync, - (void *) &xf86ModeVRefresh, - (void *) &xf86SetModeDefaultName, - (void *) &xf86SetModeCrtc, - (void *) &xf86DuplicateMode, - (void *) &xf86DuplicateModes, - (void *) &xf86ModesEqual, - (void *) &xf86PrintModeline, - (void *) &xf86ModesAdd, - (void *) &xf86CollectOptions, - (void *) &xf86RandRInit, - (void *) &xf86GetRotation, - (void *) &xf86RandRSetNewVirtualAndDimensions, - (void *) &VidModeExtensionInit, - (void *) &xf86addNewOption, - (void *) &xf86optionListDup, - (void *) &xf86optionListFree, - (void *) &xf86optionName, - (void *) &xf86optionValue, - (void *) &xf86newOption, - (void *) &xf86nextOption, - (void *) &xf86findOption, - (void *) &xf86findOptionValue, - (void *) &xf86optionListCreate, - (void *) &xf86optionListMerge, - (void *) &xf86nameCompare, - (void *) &xf86uLongToString, - (void *) &xf86parseOption, - (void *) &xf86printOptionList, - (void *) &xf86openConfigFile, - (void *) &xf86setBuiltinConfig, - (void *) &xf86readConfigFile, - (void *) &xf86closeConfigFile, - (void *) &xf86freeConfig, - (void *) &xf86writeConfigFile, - (void *) &xf86findDevice, - (void *) &xf86findLayout, - (void *) &xf86findMonitor, - (void *) &xf86findModes, - (void *) &xf86findModeLine, - (void *) &xf86findScreen, - (void *) &xf86findInput, - (void *) &xf86findInputByDriver, - (void *) &xf86findVideoAdaptor, - (void *) &xf86addListItem, - (void *) &xf86itemNotSublist, - (void *) &xf86pathIsAbsolute, - (void *) &xf86pathIsSafe, - (void *) &xf86addComment, - (void *) &xf86ModeHSync, - (void *) &xf86ModeVRefresh, - (void *) &xf86ModeBandwidth, - (void *) &xf86ModeWidth, - (void *) &xf86ModeHeight, - (void *) &xf86DuplicateMode, - (void *) &xf86DuplicateModes, - (void *) &xf86SetModeDefaultName, - (void *) &xf86SetModeCrtc, - (void *) &xf86ModesEqual, - (void *) &xf86PrintModeline, - (void *) &xf86ModesAdd, - (void *) &xf86DDCGetModes, - (void *) &xf86CVTMode, - (void *) &xf86GTFMode, - (void *) &xf86ModeIsReduced, - (void *) &xf86ValidateModesFlags, - (void *) &xf86ValidateModesClocks, - (void *) &xf86ValidateModesSize, - (void *) &xf86ValidateModesSync, - (void *) &xf86ValidateModesBandwidth, - (void *) &xf86ValidateModesReducedBlanking, - (void *) &xf86PruneInvalidModes, - (void *) &xf86PruneDuplicateModes, - (void *) &xf86ValidateModesFlags, - (void *) &xf86ValidateModesUserConfig, - (void *) &xf86GetMonitorModes, - (void *) &xf86GetDefaultModes, - (void *) &xf86DDCApplyQuirks, - (void *) &miDCInitialize, - (void *) &miPointerInitialize, - (void *) &miPointerWarpCursor, - (void *) &miPointerCurrentScreen, - (void *) &miPointerGetScreen, - (void *) &miPointerSetScreen, - (void *) &miPointerGetPosition, - (void *) &miPointerSetPosition, - (void *) &miPointerUpdateSprite, - (void *) &miPointerScreenKey, - (void *) &xf86InitCursor, - (void *) &xf86CreateCursorInfoRec, - (void *) &xf86DestroyCursorInfoRec, - (void *) &xf86ForceHWCursor, - (void *) &xf86CrtcConfigPrivateIndex, - (void *) &xf86CrtcConfigInit, - (void *) &xf86CrtcSetSizeRange, - (void *) &xf86CrtcCreate, - (void *) &xf86CrtcDestroy, - (void *) &xf86CrtcSetModeTransform, - (void *) &xf86CrtcSetMode, - (void *) &xf86CrtcSetOrigin, - (void *) &xf86CrtcRotate, - (void *) &xf86RotateDestroy, - (void *) &xf86RotateFreeShadow, - (void *) &xf86RotateCloseScreen, - (void *) &xf86CrtcInUse, - (void *) &xf86OutputCreate, - (void *) &xf86OutputUseScreenMonitor, - (void *) &xf86OutputRename, - (void *) &xf86OutputDestroy, - (void *) &xf86ProbeOutputModes, - (void *) &xf86SetScrnInfoModes, - (void *) &xf86CrtcScreenInit, - (void *) &xf86InitialConfiguration, - (void *) &xf86DPMSSet, - (void *) &xf86SaveScreen, - (void *) &xf86DisableUnusedFunctions, - (void *) &xf86OutputFindClosestMode, - (void *) &xf86SetSingleMode, - (void *) &xf86OutputSetEDID, - (void *) &xf86OutputGetEDIDModes, - (void *) &xf86OutputGetEDID, - (void *) &xf86DiDGAInit, - (void *) &xf86DiDGAReInit, - (void *) &xf86CrtcSetScreenSubpixelOrder, - (void *) &xf86ConnectorGetName, - (void *) &xf86SetDesiredModes, - (void *) &xf86_cursors_init, - (void *) &xf86_reload_cursors, - (void *) &xf86_show_cursors, - (void *) &xf86_hide_cursors, - (void *) &xf86_cursors_fini, - (void *) &xf86_crtc_clip_video_helper, - (void *) &xf86_wrap_crtc_notify, - (void *) &xf86_unwrap_crtc_notify, - (void *) &xf86_crtc_notify, - (void *) &xf86_crtc_supports_gamma, - (void *) &xf86RandR12CreateScreenResources, - (void *) &xf86RandR12Init, - (void *) &xf86RandR12SetRotations, - (void *) &xf86RandR12SetTransformSupport, - (void *) &xf86RandR12SetConfig, - (void *) &xf86RandR12GetRotation, - (void *) &xf86RandR12GetOriginalVirtualSize, - (void *) &xf86RandR12PreInit, - (void *) &xf86RandR12TellChanged, - (void *) &xf86DoEDID_DDC1, - (void *) &xf86DoEDID_DDC2, - (void *) &xf86DoEEDID, - (void *) &xf86PrintEDID, - (void *) &xf86InterpretEDID, - (void *) &xf86InterpretEEDID, - (void *) &xf86EdidMonitorSet, - (void *) &xf86SetDDCproperties, - (void *) &xf86DDCGetModes, - (void *) &xf86MonitorIsHDMI, - (void *) &xf86DoDisplayID, - (void *) &xf86DisplayIDMonitorSet, - (void *) &FindDMTMode, - (void *) &DMTModes, - (void *) &xf86MonitorIsHDMI, - (void *) &xf86ConfigFile, - (void *) &xf86AllowMouseOpenFail, - (void *) &xf86fpFlag, - (void *) &xf86sFlag, - (void *) &xf86bsEnableFlag, - (void *) &xf86bsDisableFlag, - (void *) &xf86silkenMouseDisableFlag, - (void *) &xf86xkbdirFlag, - (void *) &xf86LayoutName, - (void *) &xf86ScreenName, - (void *) &xf86PointerName, - (void *) &xf86KeyboardName, - (void *) &xf86FbBpp, - (void *) &xf86Depth, - (void *) &xf86Pix24, - (void *) &xf86Weight, - (void *) &xf86FlipPixels, - (void *) &xf86Gamma, - (void *) &xf86ServerName, - (void *) &xf86IsolateDevice, - (void *) &xf86Info, - (void *) &xf86ModulePath, - (void *) &xf86ModPathFrom, - (void *) &xf86LogFile, - (void *) &xf86LogFileFrom, - (void *) &xf86LogFileWasOpened, - (void *) &xf86ConfigLayout, - (void *) &xf86DriverList, - (void *) &xf86NumDrivers, - (void *) &xf86Resetting, - (void *) &xf86Initialising, - (void *) &xf86NumScreens, - (void *) &xf86VisualNames, - (void *) &xf86Verbose, - (void *) &xf86LogVerbose, - (void *) &xorgHWAccess, - (void *) &xf86RegisteredPropertiesTable, - (void *) &xf86BusProbe, - (void *) &xf86AccessInit, - (void *) &xf86AccessEnter, - (void *) &xf86AccessLeave, - (void *) &xf86EntityInit, - (void *) &xf86FindPrimaryDevice, - (void *) &xf86PostProbe, - (void *) &xf86ClearEntityListForScreen, - (void *) &xf86AddDevToEntity, - (void *) &xf86PostScreenInit, - (void *) &xf86PathIsSafe, - (void *) &xf86DefaultModes, - (void *) &xf86NumDefaultModes, - (void *) &DoConfigure, - (void *) &DoShowOptions, - (void *) &xf86Wakeup, - (void *) &xf86SigWrapper, - (void *) &xf86HandlePMEvents, - (void *) &xf86PMGetEventFromOs, - (void *) &xf86PMConfirmEventToOs, - (void *) &xf86LogInit, - (void *) &xf86CloseLog, - (void *) &xf86LoadModules, - (void *) &xf86SetVerbosity, - (void *) &xf86SetLogVerbosity, - (void *) &xf86CallDriverProbe, - (void *) &xf86Events, - (void *) &xf86HandleColormaps, - (void *) &xf86ChangeGamma, - (void *) &xf86ChangeGammaRamp, - (void *) &xf86GetGammaRampSize, - (void *) &xf86GetGammaRamp, - (void *) &xf86RegisterOffscreenManager, - (void *) &xf86InitFBManagerRegion, - (void *) &xf86InitFBManagerArea, - (void *) &xf86InitFBManager, - (void *) &xf86InitFBManagerLinear, - (void *) &xf86FBManagerRunning, - (void *) &xf86AllocateOffscreenArea, - (void *) &xf86AllocateLinearOffscreenArea, - (void *) &xf86AllocateOffscreenLinear, - (void *) &xf86FreeOffscreenArea, - (void *) &xf86FreeOffscreenLinear, - (void *) &xf86ResizeOffscreenArea, - (void *) &xf86ResizeOffscreenLinear, - (void *) &xf86RegisterFreeBoxCallback, - (void *) &xf86PurgeUnlockedOffscreenAreas, - (void *) &xf86QueryLargestOffscreenArea, - (void *) &xf86QueryLargestOffscreenLinear, - (void *) &inputInfo, - (void *) &CloseInputDevice, - (void *) &AddOtherInputDevices, - (void *) &OpenInputDevice, - (void *) &SetDeviceMode, - (void *) &SetDeviceValuators, - (void *) &ChangeDeviceControl, - (void *) &xf86InputDevs, - (void *) &xf86PostMotionEvent, - (void *) &xf86PostMotionEventP, - (void *) &xf86PostProximityEvent, - (void *) &xf86PostProximityEventP, - (void *) &xf86PostButtonEvent, - (void *) &xf86PostButtonEventP, - (void *) &xf86PostKeyEvent, - (void *) &xf86PostKeyEventP, - (void *) &xf86PostKeyboardEvent, - (void *) &xf86ActivateDevice, - (void *) &xf86FirstLocalDevice, - (void *) &xf86ScaleAxis, - (void *) &xf86XInputSetScreen, - (void *) &xf86ProcessCommonOptions, - (void *) &xf86InitValuatorAxisStruct, - (void *) &xf86InitValuatorDefaults, - (void *) &xf86AddEnabledDevice, - (void *) &xf86RemoveEnabledDevice, - (void *) &xf86DisableDevice, - (void *) &xf86EnableDevice, - (void *) &xf86AddInputDriver, - (void *) &xf86DeleteInputDriver, - (void *) &xf86AllocateInput, - (void *) &xf86LookupInputDriver, - (void *) &xf86LookupInput, - (void *) &xf86DeleteInput, - (void *) &xf86MotionHistoryAllocate, - (void *) &xf86CollectInputOptions, - (void *) &xf86VGAarbiterInit, - (void *) &xf86VGAarbiterFini, - (void *) &xf86VGAarbiterWrapFunctions, - (void *) &xf86VGAarbiterLock, - (void *) &xf86VGAarbiterUnlock, - (void *) &xf86VGAarbiterDeviceDecodes, - (void *) &xf86VGAarbiterAllowDRI, - (void *) &XisbNew, - (void *) &XisbFree, - (void *) &XisbRead, - (void *) &XisbWrite, - (void *) &XisbTrace, - (void *) &XisbBlockDuration, - (void *) &xf86XVScreenInit, - (void *) &xf86XVRegisterGenericAdaptorDriver, - (void *) &xf86XVListGenericAdaptors, - (void *) &xf86XVRegisterOffscreenImages, - (void *) &xf86XVQueryOffscreenImages, - (void *) &xf86XVAllocateVideoAdaptorRec, - (void *) &xf86XVFreeVideoAdaptorRec, - (void *) &xf86XVFillKeyHelper, - (void *) &xf86XVFillKeyHelperDrawable, - (void *) &xf86XVClipVideoHelper, - (void *) &xf86XVCopyYUV12ToPacked, - (void *) &xf86XVCopyPacked, - (void *) &XvGetScreenKeyProc, - (void *) &XvGetRTPortProc, - (void *) &XvScreenInitProc, - (void *) &xf86XvMCScreenInit, - (void *) &xf86XvMCCreateAdaptorRec, - (void *) &xf86XvMCDestroyAdaptorRec, - (void *) &XvMCScreenInitProc, - (void *) &XF86XvScreenKey, - (void *) &RamDacHWPrivateIndex, - (void *) &RamDacScreenPrivateIndex, - (void *) &RamDacCreateInfoRec, - (void *) &RamDacHelperCreateInfoRec, - (void *) &RamDacDestroyInfoRec, - (void *) &RamDacHelperDestroyInfoRec, - (void *) &RamDacInit, - (void *) &RamDacHandleColormaps, - (void *) &RamDacFreeRec, - (void *) &RamDacGetHWIndex, - (void *) &BTramdacProbe, - (void *) &BTramdacSave, - (void *) &BTramdacRestore, - (void *) &BTramdacSetBpp, - (void *) &IBMramdacProbe, - (void *) &IBMramdacSave, - (void *) &IBMramdacRestore, - (void *) &IBMramdac526SetBpp, - (void *) &IBMramdac640SetBpp, - (void *) &IBMramdac526CalculateMNPCForClock, - (void *) &IBMramdac640CalculateMNPCForClock, - (void *) &IBMramdac526HWCursorInit, - (void *) &IBMramdac640HWCursorInit, - (void *) &IBMramdac526SetBppWeak, - (void *) &TIramdacCalculateMNPForClock, - (void *) &TIramdacProbe, - (void *) &TIramdacSave, - (void *) &TIramdacRestore, - (void *) &TIramdac3026SetBpp, - (void *) &TIramdac3030SetBpp, - (void *) &TIramdacHWCursorInit, - (void *) &TIramdacLoadPalette, - (void *) &TIramdacLoadPaletteWeak, - (void *) &xf86LinearVidMem, - (void *) &xf86CheckMTRR, - (void *) &xf86MapVidMem, - (void *) &xf86UnMapVidMem, - (void *) &xf86MapReadSideEffects, - (void *) &xf86ReadBIOS, - (void *) &xf86EnableIO, - (void *) &xf86DisableIO, - (void *) &xf86OSRingBell, - (void *) &xf86SetReallySlowBcopy, - (void *) &xf86SlowBcopy, - (void *) &xf86OpenSerial, - (void *) &xf86SetSerial, - (void *) &xf86SetSerialSpeed, - (void *) &xf86ReadSerial, - (void *) &xf86WriteSerial, - (void *) &xf86CloseSerial, - (void *) &xf86FlushInput, - (void *) &xf86WaitForInput, - (void *) &xf86SerialSendBreak, - (void *) &xf86SetSerialModemState, - (void *) &xf86GetSerialModemState, - (void *) &xf86SerialModemSetBits, - (void *) &xf86SerialModemClearBits, - (void *) &xf86LoadKernelModule, - (void *) &xf86AgpGARTSupported, - (void *) &xf86GetAGPInfo, - (void *) &xf86AcquireGART, - (void *) &xf86ReleaseGART, - (void *) &xf86AllocateGARTMemory, - (void *) &xf86DeallocateGARTMemory, - (void *) &xf86BindGARTMemory, - (void *) &xf86UnbindGARTMemory, - (void *) &xf86EnableAGP, - (void *) &xf86GARTCloseScreen, - (void *) &xf86InstallSIGIOHandler, - (void *) &xf86RemoveSIGIOHandler, - (void *) &xf86BlockSIGIO, - (void *) &xf86UnblockSIGIO, - (void *) &xf86AssertBlockedSIGIO, - (void *) &xf86SIGIOSupported, - (void *) &miInitializeBanking, - (void *) &miScanLineWidth, - (void *) &miInstalledMaps, - (void *) &miListInstalledColormaps, - (void *) &miInstallColormap, - (void *) &miUninstallColormap, - (void *) &miResolveColor, - (void *) &miInitializeColormap, - (void *) &miExpandDirectColors, - (void *) &miCreateDefColormap, - (void *) &miClearVisualTypes, - (void *) &miSetVisualTypes, - (void *) &miSetPixmapDepths, - (void *) &miSetVisualTypesAndMasks, - (void *) &miGetDefaultVisualMask, - (void *) &miInitVisuals, - (void *) &miSetZeroLineBias, - (void *) &miZeroLineScreenKey, - (void *) &miZeroClipLine, - (void *) &miPolyArc, - (void *) &miCopyArea, - (void *) &miCopyPlane, - (void *) &miGetImage, - (void *) &miPutImage, - (void *) &miCopyRegion, - (void *) &miDoCopy, - (void *) &miRecolorCursor, - (void *) &miStepDash, - (void *) &mieqInit, - (void *) &mieqFini, - (void *) &mieqEnqueue, - (void *) &mieqSwitchScreen, - (void *) &mieqProcessDeviceEvent, - (void *) &mieqProcessInputEvents, - (void *) &CopyGetMasterEvent, - (void *) &miHandleExposures, - (void *) &miSendGraphicsExpose, - (void *) &miSendExposures, - (void *) &miWindowExposures, - (void *) &miPaintWindow, - (void *) &miClearDrawable, - (void *) &miPolyFillRect, - (void *) &miPolyGlyphBlt, - (void *) &miImageGlyphBlt, - (void *) &miFillPolygon, - (void *) &miFillConvexPoly, - (void *) &miFillGeneralPoly, - (void *) &miPolyPoint, - (void *) &miPolyRectangle, - (void *) &miPolySegment, - (void *) &miPolyText8, - (void *) &miPolyText16, - (void *) &miImageText8, - (void *) &miImageText16, - (void *) &miPushPixels, - (void *) &miRectAlloc, - (void *) &miRegionBroken, - (void *) &miModifyPixmapHeader, - (void *) &miCreateScreenResources, - (void *) &miScreenDevPrivateInit, - (void *) &miScreenInit, - (void *) &miAllocateGCPrivateIndex, - (void *) &miShapedWindowIn, - (void *) &miRegisterRedirectBorderClipProc, - (void *) &miValidateTree, - (void *) &miWideLine, - (void *) &miWideDash, - (void *) &miClearToBackground, - (void *) &miMarkWindow, - (void *) &miMarkOverlappedWindows, - (void *) &miHandleValidateExposures, - (void *) &miMoveWindow, - (void *) &miSlideAndSizeWindow, - (void *) &miGetLayerWindow, - (void *) &miSetShape, - (void *) &miChangeBorderWidth, - (void *) &miMarkUnrealizedWindow, - (void *) &miSegregateChildren, - (void *) &miZeroPolyArc, - (void *) &miZeroLine, - (void *) &miZeroDashLine, - (void *) &miPolyFillArc, - (void *) &miInitializeBackingStore, - (void *) &miChangeGC, - (void *) &miDestroyGC, - (void *) &miDestroyClip, - (void *) &miChangeClip, - (void *) &miCopyClip, - (void *) &miCopyGC, - (void *) &miComputeCompositeClip, - (void *) &miZeroArcSetup, - (void *) &miFillArcSetup, - (void *) &miFillArcSliceSetup, - (void *) &miInitSpanGroup, - (void *) &miAppendSpans, - (void *) &miFillUniqueSpanGroup, - (void *) &miFreeSpanGroup, - (void *) &miClipSpans, - (void *) &miFillSppPoly, - (void *) &miRoundJoinClip, - (void *) &miRoundCapClip, - (void *) &miPolyBuildEdge, - (void *) &miPolyBuildPoly, - (void *) &miInitOverlay, - (void *) &miOverlayGetPrivateClips, - (void *) &miOverlayCollectUnderlayRegions, - (void *) &miOverlayComputeCompositeClip, - (void *) &miOverlayCopyUnderlay, - (void *) &miOverlaySetTransFunction, - (void *) &miOverlaySetRootClip, - (void *) &RegionResType, - (void *) &XFixesErrorBase, - (void *) &XFixesRegionCopy, - (void *) &config_init, - (void *) &config_fini, - (void *) &SetCriticalEvent, - (void *) &GetSpriteCursor, - (void *) &ProcAllowEvents, - (void *) &MaybeDeliverEventsToClient, - (void *) &ProcWarpPointer, - (void *) &EventSelectForWindow, - (void *) &EventSuppressForWindow, - (void *) &ProcSetInputFocus, - (void *) &ProcGetInputFocus, - (void *) &ProcGrabPointer, - (void *) &ProcChangeActivePointerGrab, - (void *) &ProcUngrabPointer, - (void *) &ProcGrabKeyboard, - (void *) &ProcUngrabKeyboard, - (void *) &ProcQueryPointer, - (void *) &ProcSendEvent, - (void *) &ProcUngrabKey, - (void *) &ProcGrabKey, - (void *) &ProcGrabButton, - (void *) &ProcUngrabButton, - (void *) &ProcRecolorCursor, - (void *) &PostSyntheticMotion, - (void *) &SetDefaultFont, - (void *) &QueueFontWakeup, - (void *) &RemoveFontWakeup, - (void *) &FontWakeup, - (void *) &OpenFont, - (void *) &CloseFont, - (void *) &QueryFont, - (void *) &ListFonts, - (void *) &doListFontsWithInfo, - (void *) &doPolyText, - (void *) &PolyText, - (void *) &doImageText, - (void *) &ImageText, - (void *) &SetFontPath, - (void *) &SetDefaultFontPath, - (void *) &GetFontPath, - (void *) &DeleteClientFontStuff, - (void *) &InitFonts, - (void *) &FreeFonts, - (void *) &find_old_font, - (void *) &GetGlyphs, - (void *) &QueryGlyphExtents, - (void *) &QueryTextExtents, - (void *) &ParseGlyphCachingMode, - (void *) &InitGlyphCaching, - (void *) &SetGlyphCachingMode, - (void *) &BuiltinRegisterFpeFunctions, - (void *) &client_auth_generation, - (void *) &DeleteFontClientID, - (void *) &GetClientResolutions, - (void *) &GetDefaultPointSize, - (void *) &GetNewFontClientID, - (void *) &init_fs_handlers, - (void *) &RegisterFPEFunctions, - (void *) &remove_fs_handlers, - (void *) &StoreFontClientFont, - (void *) &CreateGrab, - (void *) &DeletePassiveGrab, - (void *) &GrabMatchesSecond, - (void *) &AddPassiveGrabToList, - (void *) &DeletePassiveGrabFromList, - (void *) &InitProximityClassDeviceStruct, - (void *) &InitValuatorAxisStruct, - (void *) &XIDeleteAllDeviceProperties, - (void *) &XIDeleteDeviceProperty, - (void *) &XIChangeDeviceProperty, - (void *) &XIGetDeviceProperty, - (void *) &XISetDevicePropertyDeletable, - (void *) &XIRegisterPropertyHandler, - (void *) &XIUnregisterPropertyHandler, - (void *) &XIGetKnownProperty, - (void *) &XIGetDevice, - (void *) &XIPropToInt, - (void *) &XIPropToFloat, - (void *) &RegisterOtherDevice, - (void *) &UpdateDeviceState, - (void *) &ProcessOtherEvent, - (void *) &DeviceFocusEvent, - (void *) &CheckGrabValues, - (void *) &GrabButton, - (void *) &GrabKey, - (void *) &GrabWindow, - (void *) &SelectForWindow, - (void *) &AddExtensionClient, - (void *) &RecalculateDeviceDeliverableEvents, - (void *) &InputClientGone, - (void *) &SendEvent, - (void *) &SetButtonMapping, - (void *) &ChangeKeyMapping, - (void *) &DeleteWindowFromAnyExtEvents, - (void *) &MaybeSendDeviceMotionNotifyHint, - (void *) &CheckDeviceGrabAndHintWindow, - (void *) &MaybeStopDeviceHint, - (void *) &DeviceEventSuppressForWindow, - (void *) &SendEventToAllWindows, - (void *) &XI2EventSwap, - (void *) &XIShouldNotify, - (void *) &XISendDeviceChangedEvent, - (void *) &XISetEventMask, - (void *) &XICheckInvalidMaskBits, - (void *) &XInputExtensionInit, - (void *) &AssignTypeAndName, - (void *) &InitVelocityData, - (void *) &InitTrackers, - (void *) &ProcessVelocityData2D, - (void *) &BasicComputeAcceleration, - (void *) &FreeVelocityData, - (void *) &InitializePredictableAccelerationProperties, - (void *) &DeletePredictableAccelerationProperties, - (void *) &SetAccelerationProfile, - (void *) &GetDevicePredictableAccelData, - (void *) &SetDeviceSpecificAccelerationProfile, - (void *) &AccelerationDefaultCleanup, - (void *) &acceleratePointerPredictable, - (void *) &acceleratePointerLightweight, - (void *) &RegisterResourceName, - (void *) &RegisterExtensionNames, - (void *) &LookupMajorName, - (void *) &LookupRequestName, - (void *) &LookupEventName, - (void *) &LookupErrorName, - (void *) &LookupResourceName, - (void *) &dixResetRegistry, - (void *) &dixLookupSelection, - (void *) &CurrentSelections, - (void *) &SelectionCallback, - (void *) &InitSelections, - (void *) &DeleteWindowFromAnySelections, - (void *) &DeleteClientFromAnySelections, - (void *) &Swap32Write, - (void *) &CopySwap32Write, - (void *) &CopySwap16Write, - (void *) &SGenericReply, - (void *) &SGetWindowAttributesReply, - (void *) &SGetGeometryReply, - (void *) &SQueryTreeReply, - (void *) &SInternAtomReply, - (void *) &SGetAtomNameReply, - (void *) &SGetPropertyReply, - (void *) &SListPropertiesReply, - (void *) &SGetSelectionOwnerReply, - (void *) &SQueryPointerReply, - (void *) &SwapTimeCoordWrite, - (void *) &SGetMotionEventsReply, - (void *) &STranslateCoordsReply, - (void *) &SGetInputFocusReply, - (void *) &SQueryKeymapReply, - (void *) &SQueryFontReply, - (void *) &SQueryTextExtentsReply, - (void *) &SListFontsReply, - (void *) &SListFontsWithInfoReply, - (void *) &SGetFontPathReply, - (void *) &SGetImageReply, - (void *) &SListInstalledColormapsReply, - (void *) &SAllocColorReply, - (void *) &SAllocNamedColorReply, - (void *) &SAllocColorCellsReply, - (void *) &SAllocColorPlanesReply, - (void *) &SQColorsExtend, - (void *) &SQueryColorsReply, - (void *) &SLookupColorReply, - (void *) &SQueryBestSizeReply, - (void *) &SListExtensionsReply, - (void *) &SGetKeyboardMappingReply, - (void *) &SGetPointerMappingReply, - (void *) &SGetModifierMappingReply, - (void *) &SGetKeyboardControlReply, - (void *) &SGetPointerControlReply, - (void *) &SGetScreenSaverReply, - (void *) &SLHostsExtend, - (void *) &SListHostsReply, - (void *) &SErrorEvent, - (void *) &SwapConnSetupInfo, - (void *) &WriteSConnectionInfo, - (void *) &SwapConnSetupPrefix, - (void *) &WriteSConnSetupPrefix, - (void *) &SCirculateEvent, - (void *) &SClientMessageEvent, - (void *) &SColormapEvent, - (void *) &SConfigureNotifyEvent, - (void *) &SConfigureRequestEvent, - (void *) &SCreateNotifyEvent, - (void *) &SDestroyNotifyEvent, - (void *) &SEnterLeaveEvent, - (void *) &SExposeEvent, - (void *) &SFocusEvent, - (void *) &SGraphicsExposureEvent, - (void *) &SGravityEvent, - (void *) &SKeyButtonPtrEvent, - (void *) &SKeymapNotifyEvent, - (void *) &SMapNotifyEvent, - (void *) &SMapRequestEvent, - (void *) &SMappingEvent, - (void *) &SNoExposureEvent, - (void *) &SPropertyEvent, - (void *) &SReparentEvent, - (void *) &SResizeRequestEvent, - (void *) &SSelectionClearEvent, - (void *) &SSelectionNotifyEvent, - (void *) &SSelectionRequestEvent, - (void *) &SUnmapNotifyEvent, - (void *) &SVisibilityEvent, - (void *) &SwapColorItem, - (void *) &SwapConnClientPrefix, - (void *) &SProcAllocColor, - (void *) &SProcAllocColorCells, - (void *) &SProcAllocColorPlanes, - (void *) &SProcAllocNamedColor, - (void *) &SProcChangeActivePointerGrab, - (void *) &SProcChangeGC, - (void *) &SProcChangeHosts, - (void *) &SProcChangeKeyboardControl, - (void *) &SProcChangeKeyboardMapping, - (void *) &SProcChangePointerControl, - (void *) &SProcChangeProperty, - (void *) &SProcChangeWindowAttributes, - (void *) &SProcClearToBackground, - (void *) &SProcConfigureWindow, - (void *) &SProcConvertSelection, - (void *) &SProcCopyArea, - (void *) &SProcCopyColormapAndFree, - (void *) &SProcCopyGC, - (void *) &SProcCopyPlane, - (void *) &SProcCreateColormap, - (void *) &SProcCreateCursor, - (void *) &SProcCreateGC, - (void *) &SProcCreateGlyphCursor, - (void *) &SProcCreatePixmap, - (void *) &SProcCreateWindow, - (void *) &SProcDeleteProperty, - (void *) &SProcFillPoly, - (void *) &SProcFreeColors, - (void *) &SProcGetImage, - (void *) &SProcGetMotionEvents, - (void *) &SProcGetProperty, - (void *) &SProcGrabButton, - (void *) &SProcGrabKey, - (void *) &SProcGrabKeyboard, - (void *) &SProcGrabPointer, - (void *) &SProcImageText, - (void *) &SProcInternAtom, - (void *) &SProcListFonts, - (void *) &SProcListFontsWithInfo, - (void *) &SProcLookupColor, - (void *) &SProcNoOperation, - (void *) &SProcOpenFont, - (void *) &SProcPoly, - (void *) &SProcPolyText, - (void *) &SProcPutImage, - (void *) &SProcQueryBestSize, - (void *) &SProcQueryColors, - (void *) &SProcQueryExtension, - (void *) &SProcRecolorCursor, - (void *) &SProcReparentWindow, - (void *) &SProcResourceReq, - (void *) &SProcRotateProperties, - (void *) &SProcSendEvent, - (void *) &SProcSetClipRectangles, - (void *) &SProcSetDashes, - (void *) &SProcSetFontPath, - (void *) &SProcSetInputFocus, - (void *) &SProcSetScreenSaver, - (void *) &SProcSetSelectionOwner, - (void *) &SProcSimpleReq, - (void *) &SProcStoreColors, - (void *) &SProcStoreNamedColor, - (void *) &SProcTranslateCoords, - (void *) &SProcUngrabButton, - (void *) &SProcUngrabKey, - (void *) &SProcWarpPointer, - (void *) &XaceHooks, - (void *) &XaceHook, - (void *) &XaceHookDispatch, - (void *) &XaceHookPropertyAccess, - (void *) &XaceHookSelectionAccess, - (void *) &XaceHookAuditEnd, - (void *) &XaceGetConnectionNumber, - (void *) &XaceIsLocal, - (void *) &XaceCensorImage, - (void *) &XkbIndentText, - (void *) &XkbAtomText, - (void *) &XkbKeysymText, - (void *) &XkbStringText, - (void *) &XkbKeyNameText, - (void *) &XkbModIndexText, - (void *) &XkbModMaskText, - (void *) &XkbVModIndexText, - (void *) &XkbVModMaskText, - (void *) &XkbConfigText, - (void *) &XkbSIMatchText, - (void *) &XkbIMWhichStateMaskText, - (void *) &XkbControlsMaskText, - (void *) &XkbGeomFPText, - (void *) &XkbDoodadTypeText, - (void *) &XkbActionTypeText, - (void *) &XkbActionText, - (void *) &XkbBehaviorText, - (void *) &_XkbKSCheckCase, - (void *) &XkbFindKeycodeByName, - (void *) &XkbInternAtom, - (void *) &XkbConvertGetByNameComponents, - (void *) &XkbNameMatchesPattern, - (void *) &XkbWriteXKBKeycodes, - (void *) &XkbWriteXKBKeyTypes, - (void *) &XkbWriteXKBCompatMap, - (void *) &XkbWriteXKBSymbols, - (void *) &XkbWriteXKBGeometry, - (void *) &XkbWriteXKBKeymapForNames, - (void *) &XkmProbe, - (void *) &XkmReadFile, - (void *) &xkbDevicePrivateKey, - (void *) &xkbUnwrapProc, - (void *) &XkbReqCode, - (void *) &XkbEventBase, - (void *) &XkbKeyboardErrorCode, - (void *) &XkbBaseDirectory, - (void *) &XkbBinDirectory, - (void *) &xkbDebugFlags, - (void *) &DeviceKeyPress, - (void *) &DeviceButtonPress, - (void *) &XkbUseMsg, - (void *) &XkbProcessArguments, - (void *) &XkbSetExtension, - (void *) &SrvXkbFreeCompatMap, - (void *) &SrvXkbFreeNames, - (void *) &_XkbLookupAnyDevice, - (void *) &_XkbLookupKeyboard, - (void *) &_XkbLookupBellDevice, - (void *) &_XkbLookupLedDevice, - (void *) &_XkbLookupButtonDevice, - (void *) &SrvXkbAllocKeyboard, - (void *) &SrvXkbAllocClientMap, - (void *) &SrvXkbAllocServerMap, - (void *) &SrvXkbFreeClientMap, - (void *) &SrvXkbFreeServerMap, - (void *) &SrvXkbAllocIndicatorMaps, - (void *) &SrvXkbAllocCompatMap, - (void *) &SrvXkbAllocNames, - (void *) &SrvXkbAllocControls, - (void *) &SrvXkbCopyKeyTypes, - (void *) &SrvXkbResizeKeyType, - (void *) &SrvXkbFreeKeyboard, - (void *) &XkbSetActionKeyMods, - (void *) &XkbMaskForVMask, - (void *) &SrvXkbVirtualModsToReal, - (void *) &XkbAdjustGroup, - (void *) &SrvXkbResizeKeySyms, - (void *) &SrvXkbResizeKeyActions, - (void *) &XkbUpdateKeyTypesFromCore, - (void *) &XkbUpdateDescActions, - (void *) &XkbUpdateActions, - (void *) &XkbGetCoreMap, - (void *) &XkbApplyMappingChange, - (void *) &XkbSetIndicators, - (void *) &XkbUpdateIndicators, - (void *) &XkbAllocSrvLedInfo, - (void *) &XkbCopySrvLedInfo, - (void *) &XkbFindSrvLedInfo, - (void *) &XkbApplyLedNameChanges, - (void *) &XkbApplyLedMapChanges, - (void *) &XkbApplyLedStateChanges, - (void *) &XkbFlushLedEvents, - (void *) &XkbIndicatorsToUpdate, - (void *) &XkbComputeDerivedState, - (void *) &XkbCheckSecondaryEffects, - (void *) &XkbCheckIndicatorMaps, - (void *) &XkbStateChangedFlags, - (void *) &XkbSendStateNotify, - (void *) &XkbSendMapNotify, - (void *) &XkbComputeControlsNotify, - (void *) &XkbSendControlsNotify, - (void *) &XkbSendCompatMapNotify, - (void *) &XkbHandleBell, - (void *) &XkbSendAccessXNotify, - (void *) &XkbSendNamesNotify, - (void *) &XkbSendActionMessage, - (void *) &XkbSendExtensionDeviceNotify, - (void *) &XkbSendNotification, - (void *) &XkbProcessKeyboardEvent, - (void *) &XkbHandleActions, - (void *) &XkbEnableDisableControls, - (void *) &AccessXInit, - (void *) &AccessXFilterPressEvent, - (void *) &AccessXFilterReleaseEvent, - (void *) &AccessXCancelRepeatKey, - (void *) &AccessXComputeCurveFactor, - (void *) &XkbFindClientResource, - (void *) &XkbAddClientResource, - (void *) &XkbRemoveResourceClient, - (void *) &XkbDDXAccessXBeep, - (void *) &XkbDDXUsesSoftRepeat, - (void *) &XkbDDXKeybdCtrlProc, - (void *) &XkbDDXChangeControls, - (void *) &XkbDDXUpdateDeviceIndicators, - (void *) &XkbDDXFakePointerMotion, - (void *) &XkbDDXFakeDeviceButton, - (void *) &XkbDDXTerminateServer, - (void *) &XkbDDXSwitchScreen, - (void *) &XkbDDXPrivate, - (void *) &XkbDisableComputedAutoRepeats, - (void *) &XkbSetRepeatKeys, - (void *) &SrvXkbLatchModifiers, - (void *) &SrvXkbLatchGroup, - (void *) &XkbClearAllLatchesAndLocks, - (void *) &XkbGetRulesDflts, - (void *) &XkbFreeRMLVOSet, - (void *) &XkbSetRulesDflts, - (void *) &XkbDeleteRulesDflts, - (void *) &SProcXkbDispatch, - (void *) &XkbLookupNamedGeometry, - (void *) &_XkbDupString, - (void *) &XkbConvertCase, - (void *) &SrvXkbChangeKeycodeRange, - (void *) &XkbFreeSrvLedInfo, - (void *) &XkbFreeInfo, - (void *) &SrvXkbChangeTypesOfKey, - (void *) &SrvXkbKeyTypesForCoreSymbols, - (void *) &SrvXkbApplyCompatMapToKey, - (void *) &SrvXkbApplyVirtualModChanges, - (void *) &XkbSendNewKeyboardNotify, - (void *) &XkbCopyKeymap, - (void *) &XkbCopyDeviceKeymap, - (void *) &XkbFilterEvents, - (void *) &XkbGetEffectiveGroup, - (void *) &XkbDDXList, - (void *) &XkbDDXLoadKeymapByNames, - (void *) &XkbDDXNamesFromRules, - (void *) &XkbCompileKeymap, -}; diff --git a/xorg-server/hw/xfree86/os-support/xorgos.c b/xorg-server/hw/xfree86/os-support/xorgos.c deleted file mode 100644 index e69de29bb..000000000 --- a/xorg-server/hw/xfree86/os-support/xorgos.c +++ /dev/null diff --git a/xorg-server/hw/xfree86/ramdac/xf86BitOrder.c b/xorg-server/hw/xfree86/ramdac/xf86BitOrder.c deleted file mode 100644 index 713934d3b..000000000 --- a/xorg-server/hw/xfree86/ramdac/xf86BitOrder.c +++ /dev/null @@ -1,2 +0,0 @@ -#define XAAReverseBitOrder xf86ReverseBitOrder -#include "./../xaa/xaaBitOrder.c" diff --git a/xorg-server/hw/xfree86/xaa/l-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/l-xaaBitmap.c deleted file mode 100644 index 4b20dee13..000000000 --- a/xorg-server/hw/xfree86/xaa/l-xaaBitmap.c +++ /dev/null @@ -1,2 +0,0 @@ -#define LSBFIRST -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/l-xaaStipple.c b/xorg-server/hw/xfree86/xaa/l-xaaStipple.c deleted file mode 100644 index 91c52c778..000000000 --- a/xorg-server/hw/xfree86/xaa/l-xaaStipple.c +++ /dev/null @@ -1,2 +0,0 @@ -#define LSBFIRST -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/l-xaaTEGlyph.c b/xorg-server/hw/xfree86/xaa/l-xaaTEGlyph.c deleted file mode 100644 index e58359cd2..000000000 --- a/xorg-server/hw/xfree86/xaa/l-xaaTEGlyph.c +++ /dev/null @@ -1,2 +0,0 @@ -#define LSBFIRST -#include "./xaaTEGlyph.c" diff --git a/xorg-server/hw/xfree86/xaa/l3-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/l3-xaaBitmap.c deleted file mode 100644 index 0c1fd552d..000000000 --- a/xorg-server/hw/xfree86/xaa/l3-xaaBitmap.c +++ /dev/null @@ -1,3 +0,0 @@ -#define LSBFIRST -#define TRIPLE_BITS -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/l3-xaaStipple.c b/xorg-server/hw/xfree86/xaa/l3-xaaStipple.c deleted file mode 100644 index 9a182c695..000000000 --- a/xorg-server/hw/xfree86/xaa/l3-xaaStipple.c +++ /dev/null @@ -1,3 +0,0 @@ -#define LSBFIRST -#define TRIPLE_BITS -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/lf-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/lf-xaaBitmap.c deleted file mode 100644 index 031407b9c..000000000 --- a/xorg-server/hw/xfree86/xaa/lf-xaaBitmap.c +++ /dev/null @@ -1,3 +0,0 @@ -#define LSBFIRST -#define FIXEDBASE -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/lf-xaaStipple.c b/xorg-server/hw/xfree86/xaa/lf-xaaStipple.c deleted file mode 100644 index d91265890..000000000 --- a/xorg-server/hw/xfree86/xaa/lf-xaaStipple.c +++ /dev/null @@ -1,3 +0,0 @@ -#define LSBFIRST -#define FIXEDBASE -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/lf-xaaTEGlyph.c b/xorg-server/hw/xfree86/xaa/lf-xaaTEGlyph.c deleted file mode 100644 index c578603f3..000000000 --- a/xorg-server/hw/xfree86/xaa/lf-xaaTEGlyph.c +++ /dev/null @@ -1,3 +0,0 @@ -#define LSBFIRST -#define FIXEDBASE -#include "./xaaTEGlyph.c" diff --git a/xorg-server/hw/xfree86/xaa/lf3-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/lf3-xaaBitmap.c deleted file mode 100644 index 0607a7390..000000000 --- a/xorg-server/hw/xfree86/xaa/lf3-xaaBitmap.c +++ /dev/null @@ -1,4 +0,0 @@ -#define LSBFIRST -#define TRIPLE_BITS -#define FIXEDBASE -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/lf3-xaaStipple.c b/xorg-server/hw/xfree86/xaa/lf3-xaaStipple.c deleted file mode 100644 index af1698b99..000000000 --- a/xorg-server/hw/xfree86/xaa/lf3-xaaStipple.c +++ /dev/null @@ -1,4 +0,0 @@ -#define LSBFIRST -#define TRIPLE_BITS -#define FIXEDBASE -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/m-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/m-xaaBitmap.c deleted file mode 100644 index d0e3cb33d..000000000 --- a/xorg-server/hw/xfree86/xaa/m-xaaBitmap.c +++ /dev/null @@ -1,2 +0,0 @@ -#define MSBFIRST -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/m-xaaStipple.c b/xorg-server/hw/xfree86/xaa/m-xaaStipple.c deleted file mode 100644 index 1ba789918..000000000 --- a/xorg-server/hw/xfree86/xaa/m-xaaStipple.c +++ /dev/null @@ -1,2 +0,0 @@ -#define MSBFIRST -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/m-xaaTEGlyph.c b/xorg-server/hw/xfree86/xaa/m-xaaTEGlyph.c deleted file mode 100644 index 521390c32..000000000 --- a/xorg-server/hw/xfree86/xaa/m-xaaTEGlyph.c +++ /dev/null @@ -1,2 +0,0 @@ -#define MSBFIRST -#include "./xaaTEGlyph.c" diff --git a/xorg-server/hw/xfree86/xaa/m3-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/m3-xaaBitmap.c deleted file mode 100644 index 7b4ce814d..000000000 --- a/xorg-server/hw/xfree86/xaa/m3-xaaBitmap.c +++ /dev/null @@ -1,3 +0,0 @@ -#define MSBFIRST -#define TRIPLE_BITS -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/m3-xaaStipple.c b/xorg-server/hw/xfree86/xaa/m3-xaaStipple.c deleted file mode 100644 index eb2c83e8d..000000000 --- a/xorg-server/hw/xfree86/xaa/m3-xaaStipple.c +++ /dev/null @@ -1,3 +0,0 @@ -#define MSBFIRST -#define TRIPLE_BITS -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/mf-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/mf-xaaBitmap.c deleted file mode 100644 index 36075e65d..000000000 --- a/xorg-server/hw/xfree86/xaa/mf-xaaBitmap.c +++ /dev/null @@ -1,3 +0,0 @@ -#define MSBFIRST -#define FIXEDBASE -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/mf-xaaStipple.c b/xorg-server/hw/xfree86/xaa/mf-xaaStipple.c deleted file mode 100644 index 41b469c71..000000000 --- a/xorg-server/hw/xfree86/xaa/mf-xaaStipple.c +++ /dev/null @@ -1,3 +0,0 @@ -#define MSBFIRST -#define FIXEDBASE -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/mf-xaaTEGlyph.c b/xorg-server/hw/xfree86/xaa/mf-xaaTEGlyph.c deleted file mode 100644 index 3fd657b4b..000000000 --- a/xorg-server/hw/xfree86/xaa/mf-xaaTEGlyph.c +++ /dev/null @@ -1,3 +0,0 @@ -#define MSBFIRST -#define FIXEDBASE -#include "./xaaTEGlyph.c" diff --git a/xorg-server/hw/xfree86/xaa/mf3-xaaBitmap.c b/xorg-server/hw/xfree86/xaa/mf3-xaaBitmap.c deleted file mode 100644 index 630775c52..000000000 --- a/xorg-server/hw/xfree86/xaa/mf3-xaaBitmap.c +++ /dev/null @@ -1,4 +0,0 @@ -#define MSBFIRST -#define TRIPLE_BITS -#define FIXEDBASE -#include "./xaaBitmap.c" diff --git a/xorg-server/hw/xfree86/xaa/mf3-xaaStipple.c b/xorg-server/hw/xfree86/xaa/mf3-xaaStipple.c deleted file mode 100644 index c9a86d008..000000000 --- a/xorg-server/hw/xfree86/xaa/mf3-xaaStipple.c +++ /dev/null @@ -1,4 +0,0 @@ -#define MSBFIRST -#define TRIPLE_BITS -#define FIXEDBASE -#include "./xaaStipple.c" diff --git a/xorg-server/hw/xfree86/xaa/s-xaaDashLine.c b/xorg-server/hw/xfree86/xaa/s-xaaDashLine.c deleted file mode 100644 index 5ad3deb92..000000000 --- a/xorg-server/hw/xfree86/xaa/s-xaaDashLine.c +++ /dev/null @@ -1,2 +0,0 @@ -#define POLYSEGMENT -#include "./xaaDashLine.c" diff --git a/xorg-server/hw/xfree86/xaa/s-xaaLine.c b/xorg-server/hw/xfree86/xaa/s-xaaLine.c deleted file mode 100644 index 12a37f419..000000000 --- a/xorg-server/hw/xfree86/xaa/s-xaaLine.c +++ /dev/null @@ -1,2 +0,0 @@ -#define POLYSEGMENT -#include "./xaaLine.c" diff --git a/xorg-server/hw/xfree86/xorg.c b/xorg-server/hw/xfree86/xorg.c deleted file mode 100644 index e69de29bb..000000000 --- a/xorg-server/hw/xfree86/xorg.c +++ /dev/null |