aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-01-08 13:59:32 +0000
committermarha <marha@users.sourceforge.net>2010-01-08 13:59:32 +0000
commit1ae1f3dee798a8468a415eaa8f1da78e9d3fbae8 (patch)
tree5ff2d27dc0c94b02beedeb4551f677691e606352 /xorg-server/hw
parentd5ac51b006c039894e4e35102a8e182d21a52efc (diff)
parent91a30d5622174febaa2107b010effcf2fb5b9a2e (diff)
downloadvcxsrv-1ae1f3dee798a8468a415eaa8f1da78e9d3fbae8.tar.gz
vcxsrv-1ae1f3dee798a8468a415eaa8f1da78e9d3fbae8.tar.bz2
vcxsrv-1ae1f3dee798a8468a415eaa8f1da78e9d3fbae8.zip
svn merge ^/branches/released
Diffstat (limited to 'xorg-server/hw')
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.c131
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.h8
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr_draw.c7
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrinit.c15
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrvideo.c2
-rw-r--r--xorg-server/hw/kdrive/fake/fake.c84
-rw-r--r--xorg-server/hw/kdrive/fake/fake.h4
-rw-r--r--xorg-server/hw/kdrive/fake/fakeinit.c4
-rw-r--r--xorg-server/hw/kdrive/fbdev/fbdev.c228
-rw-r--r--xorg-server/hw/kdrive/fbdev/fbdev.h44
-rw-r--r--xorg-server/hw/kdrive/fbdev/fbinit.c14
-rw-r--r--xorg-server/hw/kdrive/linux/Makefile.am31
-rw-r--r--xorg-server/hw/kdrive/linux/bus.c132
-rw-r--r--xorg-server/hw/kdrive/linux/evdev.c24
-rw-r--r--xorg-server/hw/kdrive/linux/linux.c44
-rw-r--r--xorg-server/hw/kdrive/linux/mouse.c48
-rw-r--r--xorg-server/hw/kdrive/linux/ms.c6
-rw-r--r--xorg-server/hw/kdrive/linux/ps2.c4
-rw-r--r--xorg-server/hw/kdrive/src/Makefile.am2
-rw-r--r--xorg-server/hw/kdrive/src/kcmap.c145
-rw-r--r--xorg-server/hw/kdrive/src/kcurscol.c94
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.c2625
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.h110
-rw-r--r--xorg-server/hw/kdrive/src/kinfo.c2
-rw-r--r--xorg-server/hw/kdrive/src/kmap.c179
-rw-r--r--xorg-server/hw/kdrive/src/kmode.c38
-rw-r--r--xorg-server/hw/kdrive/src/kshadow.c34
-rw-r--r--xorg-server/hw/kdrive/src/kxv.h38
-rw-r--r--xorg-server/hw/xfree86/common/xf86Mode.c14
-rw-r--r--xorg-server/hw/xfree86/common/xf86str.h16
-rw-r--r--xorg-server/hw/xfree86/libxorg.c0
-rw-r--r--xorg-server/hw/xfree86/loader/sdksyms.c2344
-rw-r--r--xorg-server/hw/xfree86/os-support/xorgos.c0
-rw-r--r--xorg-server/hw/xfree86/ramdac/xf86BitOrder.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/l-xaaBitmap.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/l-xaaStipple.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/l-xaaTEGlyph.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/l3-xaaBitmap.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/l3-xaaStipple.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/lf-xaaBitmap.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/lf-xaaStipple.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/lf-xaaTEGlyph.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/lf3-xaaBitmap.c4
-rw-r--r--xorg-server/hw/xfree86/xaa/lf3-xaaStipple.c4
-rw-r--r--xorg-server/hw/xfree86/xaa/m-xaaBitmap.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/m-xaaStipple.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/m-xaaTEGlyph.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/m3-xaaBitmap.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/m3-xaaStipple.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/mf-xaaBitmap.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/mf-xaaStipple.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/mf-xaaTEGlyph.c3
-rw-r--r--xorg-server/hw/xfree86/xaa/mf3-xaaBitmap.c4
-rw-r--r--xorg-server/hw/xfree86/xaa/mf3-xaaStipple.c4
-rw-r--r--xorg-server/hw/xfree86/xaa/s-xaaDashLine.c2
-rw-r--r--xorg-server/hw/xfree86/xaa/s-xaaLine.c2
-rw-r--r--xorg-server/hw/xfree86/xorg.c0
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 *) &currentMaxClients,
- (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 *) &currentTime,
- (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