xserver-kdrive: remove.
kdrive is effectively unmaintained upstream (it's only kept for Xephyr). Apart from two headless machines in meta-yocto (patches sent), every BSP I looked at (oe-core, meta-intel, meta-oe, meta-ti, meta-smartphone) is using the traditional X.org X server. Changing kdrive to Xorg means an extra ~200kb of disk usage but extra features and more importantly continued maintenance. (From OE-Core rev: f8bc059883a9bae92434bfb74fca352ad1e10199) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
8cb5c02167
commit
175ba20246
|
@ -1,23 +0,0 @@
|
|||
Upstream-Status: Inappropriate [cross compiling]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.7.99.2/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/configure.ac 2010-01-29 16:38:49.000000000 +0000
|
||||
+++ xorg-server-1.7.99.2/configure.ac 2010-01-29 16:42:39.000000000 +0000
|
||||
@@ -503,14 +503,10 @@
|
||||
|
||||
dnl Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
|
||||
dnl otherwise uses standard subdirectories of FONTROOTDIR
|
||||
-AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
|
||||
- [DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
|
||||
- [
|
||||
DEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
|
||||
case $host_os in
|
||||
darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
|
||||
esac
|
||||
- ])
|
||||
AC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
|
||||
[ FONTPATH="$withval" ],
|
||||
[ FONTPATH="${DEFAULT_FONT_PATH}" ])
|
|
@ -1,24 +0,0 @@
|
|||
Upstream-Status: Inappropriate [disable feature]
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/linux.c.orig 2005-04-23 15:56:13.988849232 +0000
|
||||
+++ xserver/hw/kdrive/linux/linux.c 2005-04-23 15:57:05.001094192 +0000
|
||||
@@ -342,7 +342,7 @@
|
||||
/*
|
||||
* Open the APM driver
|
||||
*/
|
||||
- LinuxApmFd = open ("/dev/apm_bios", 2);
|
||||
+ /*LinuxApmFd = open ("/dev/apm_bios", 2);
|
||||
if (LinuxApmFd < 0 && errno == ENOENT)
|
||||
LinuxApmFd = open ("/dev/misc/apm_bios", 2);
|
||||
if (LinuxApmFd >= 0)
|
||||
@@ -352,7 +352,7 @@
|
||||
RegisterBlockAndWakeupHandlers (LinuxApmBlock, LinuxApmWakeup, 0);
|
||||
AddEnabledDevice (LinuxApmFd);
|
||||
}
|
||||
-
|
||||
+ */
|
||||
/*
|
||||
* now get the VT
|
||||
*/
|
|
@ -1,16 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xorg-server-X11R7.1-1.1.0/dix/dixfonts.c.orig 2006-06-08 14:49:12.158684250 +0200
|
||||
+++ xorg-server-X11R7.1-1.1.0/dix/dixfonts.c 2006-06-08 14:49:52.493205000 +0200
|
||||
@@ -52,8 +52,8 @@
|
||||
/* $Xorg: dixfonts.c,v 1.4 2000/08/17 19:48:18 cpqbld Exp $ */
|
||||
|
||||
#define NEED_REPLIES
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
-#include <dix-config.h>
|
||||
+#include <kdrive-config.h>
|
||||
#endif
|
||||
|
||||
#include <X11/X.h>
|
|
@ -1,152 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
Xext/Makefile.am | 6 ++++++
|
||||
configure.ac | 11 +++++++++--
|
||||
include/kdrive-config.h.in | 3 +++
|
||||
mi/miinitext.c | 6 ++++++
|
||||
4 files changed, 24 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: xorg-server-1.7.99.2/mi/miinitext.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/mi/miinitext.c 2010-02-10 18:54:11.959086237 +0000
|
||||
+++ xorg-server-1.7.99.2/mi/miinitext.c 2010-02-10 18:54:12.429078513 +0000
|
||||
@@ -264,6 +264,9 @@
|
||||
#ifdef DMXEXT
|
||||
extern void DMXExtensionInit(INITARGS);
|
||||
#endif
|
||||
+#ifdef XCALIBRATE
|
||||
+extern void XCalibrateExtensionInit(INITARGS);
|
||||
+#endif
|
||||
#ifdef XFIXES
|
||||
extern void XFixesExtensionInit(INITARGS);
|
||||
#endif
|
||||
@@ -493,6 +496,9 @@
|
||||
GlxPushProvider(&__glXDRISWRastProvider);
|
||||
if (!noGlxExtension) GlxExtensionInit();
|
||||
#endif
|
||||
+#ifdef XCALIBRATE
|
||||
+ XCalibrateExtensionInit ();
|
||||
+#endif
|
||||
}
|
||||
|
||||
#else /* XFree86LOADER */
|
||||
Index: xorg-server-1.7.99.2/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/configure.ac 2010-02-10 18:54:11.959086237 +0000
|
||||
+++ xorg-server-1.7.99.2/configure.ac 2010-02-11 11:49:50.710736962 +0000
|
||||
@@ -1985,7 +1985,7 @@
|
||||
fi
|
||||
|
||||
|
||||
- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
|
||||
+ PKG_CHECK_MODULES([TSLIB], [tslib-1.0], [HAVE_TSLIB="yes"], [HAVE_TSLIB="no"])
|
||||
if test "x$HAVE_TSLIB" = xno; then
|
||||
AC_CHECK_LIB(ts, ts_open, [HAVE_TSLIB="yes"])
|
||||
fi
|
||||
@@ -2039,7 +2039,7 @@
|
||||
KDRIVE_LOCAL_LIBS="$MAIN_LIB $DIX_LIB $KDRIVE_LIB $KDRIVE_STUB_LIB $CONFIG_LIB"
|
||||
KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $FB_LIB $MI_LIB $KDRIVE_PURE_LIBS"
|
||||
KDRIVE_LOCAL_LIBS="$KDRIVE_LOCAL_LIBS $KDRIVE_OS_LIB $OS_LIB"
|
||||
- KDRIVE_LIBS="$TSLIB_LIBS $KDRIVE_LOCAL_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
|
||||
+ KDRIVE_LIBS="$KDRIVE_LOCAL_LIBS $TSLIB_LIBS $XSERVER_SYS_LIBS $GLX_SYS_LIBS $DLOPEN_LIBS"
|
||||
|
||||
AC_SUBST([XEPHYR_LIBS])
|
||||
AC_SUBST([XEPHYR_INCS])
|
||||
Index: xorg-server-1.7.99.2/include/kdrive-config.h.in
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/include/kdrive-config.h.in 2010-02-10 18:54:11.959086237 +0000
|
||||
+++ xorg-server-1.7.99.2/include/kdrive-config.h.in 2010-02-10 18:54:12.429078513 +0000
|
||||
@@ -28,4 +28,7 @@
|
||||
/* Have execinfo.h for backtrace(). */
|
||||
#undef HAVE_EXECINFO_H
|
||||
|
||||
+/* Enable XCalibrate extension */
|
||||
+#undef XCALIBRATE
|
||||
+
|
||||
#endif /* _KDRIVE_CONFIG_H_ */
|
||||
Index: xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/hw/kdrive/linux/tslib.c 2010-02-10 18:58:12.669078495 +0000
|
||||
+++ xorg-server-1.7.99.2/hw/kdrive/linux/tslib.c 2010-02-10 19:04:56.927828767 +0000
|
||||
@@ -50,12 +50,15 @@
|
||||
int fd;
|
||||
int lastx, lasty;
|
||||
struct tsdev *tsDev;
|
||||
- void (*raw_event_hook)(int x, int y, int pressure, void *closure);
|
||||
- void *raw_event_closure;
|
||||
int phys_screen;
|
||||
};
|
||||
|
||||
|
||||
+/* For XCalibrate extension */
|
||||
+void (*tslib_raw_event_hook)(int x, int y, int pressure, void *closure);
|
||||
+void *tslib_raw_event_closure;
|
||||
+
|
||||
+
|
||||
static void
|
||||
TsRead (int fd, void *closure)
|
||||
{
|
||||
@@ -65,10 +68,10 @@
|
||||
long x = 0, y = 0;
|
||||
unsigned long flags;
|
||||
|
||||
- if (private->raw_event_hook) {
|
||||
+ if (tslib_raw_event_hook) {
|
||||
while (ts_read_raw(private->tsDev, &event, 1) == 1)
|
||||
- private->raw_event_hook (event.x, event.y, event.pressure,
|
||||
- private->raw_event_closure);
|
||||
+ tslib_raw_event_hook (event.x, event.y, event.pressure,
|
||||
+ tslib_raw_event_closure);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -111,8 +114,8 @@
|
||||
{
|
||||
struct TslibPrivate *private = pi->driverPrivate;
|
||||
|
||||
- private->raw_event_hook = NULL;
|
||||
- private->raw_event_closure = NULL;
|
||||
+ tslib_raw_event_hook = NULL;
|
||||
+ tslib_raw_event_closure = NULL;
|
||||
if (!pi->path) {
|
||||
pi->path = strdup("/dev/input/touchscreen0");
|
||||
ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path);
|
||||
Index: xorg-server-1.7.99.2/Xext/xcalibrate.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/Xext/xcalibrate.c 2010-02-10 18:59:24.097829840 +0000
|
||||
+++ xorg-server-1.7.99.2/Xext/xcalibrate.c 2010-02-11 11:51:00.930735731 +0000
|
||||
@@ -115,6 +115,7 @@
|
||||
|
||||
memset (&rep, 0, sizeof (rep));
|
||||
rep.type = X_Reply;
|
||||
+ rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
|
||||
if (stuff->on)
|
||||
@@ -158,6 +159,7 @@
|
||||
|
||||
swaps (&rep.sequenceNumber, n);
|
||||
swaps (&rep.status, n);
|
||||
+ swapl (&rep.length, n);
|
||||
}
|
||||
WriteToClient(client, sizeof (rep), (char *) &rep);
|
||||
return (client->noClientException);
|
||||
@@ -186,6 +188,7 @@
|
||||
|
||||
memset (&rep, 0, sizeof (rep));
|
||||
rep.type = X_Reply;
|
||||
+ rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.x = stuff->x;
|
||||
rep.y = stuff->y;
|
||||
@@ -198,6 +201,7 @@
|
||||
|
||||
swaps (&rep.x, n);
|
||||
swaps (&rep.y, n);
|
||||
+ swapl (&rep.length, n);
|
||||
}
|
||||
WriteToClient(client, sizeof (rep), (char *) &rep);
|
||||
return (client->noClientException);
|
|
@ -1,364 +0,0 @@
|
|||
Upstream-Status: Inappropriate
|
||||
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/dix/window.c xorg-server-1.7.99.2/dix/window.c
|
||||
--- xorg-server-1.7.99.2.ORIG/dix/window.c 2012-01-04 13:12:40.417640130 -0700
|
||||
+++ xorg-server-1.7.99.2/dix/window.c 2012-01-04 12:13:20.678605493 -0700
|
||||
@@ -559,10 +559,10 @@
|
||||
box.y1 = 0;
|
||||
box.x2 = pScreen->width;
|
||||
box.y2 = pScreen->height;
|
||||
- REGION_INIT(pScreen, &pWin->clipList, &box, 1);
|
||||
- REGION_INIT(pScreen, &pWin->winSize, &box, 1);
|
||||
- REGION_INIT(pScreen, &pWin->borderSize, &box, 1);
|
||||
- REGION_INIT(pScreen, &pWin->borderClip, &box, 1);
|
||||
+ REGION_INIT2(pScreen, &pWin->clipList, &box, 1);
|
||||
+ REGION_INIT2(pScreen, &pWin->winSize, &box, 1);
|
||||
+ REGION_INIT2(pScreen, &pWin->borderSize, &box, 1);
|
||||
+ REGION_INIT2(pScreen, &pWin->borderClip, &box, 1);
|
||||
|
||||
pWin->drawable.class = InputOutput;
|
||||
pWin->optional->visual = pScreen->rootVisual;
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_accel.c xorg-server-1.7.99.2/exa/exa_accel.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa_accel.c 2009-12-11 11:20:48.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa_accel.c 2012-01-04 12:58:11.218616328 -0700
|
||||
@@ -1275,7 +1275,7 @@
|
||||
Box.x2 = Box.x1 + w;
|
||||
Box.y2 = Box.y1 + h;
|
||||
|
||||
- REGION_INIT(pScreen, &Reg, &Box, 1);
|
||||
+ REGION_INIT2(pScreen, &Reg, &Box, 1);
|
||||
|
||||
pixmaps[0].as_dst = FALSE;
|
||||
pixmaps[0].as_src = TRUE;
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa.c xorg-server-1.7.99.2/exa/exa.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa.c 2009-12-11 11:20:48.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa.c 2012-01-04 12:56:30.592593427 -0700
|
||||
@@ -161,7 +161,7 @@
|
||||
if (box.x1 >= box.x2 || box.y1 >= box.y2)
|
||||
return;
|
||||
|
||||
- REGION_INIT(pScreen, ®ion, &box, 1);
|
||||
+ REGION_INIT2(pScreen, ®ion, &box, 1);
|
||||
DamageRegionAppend(&pPix->drawable, ®ion);
|
||||
DamageRegionProcessPending(&pPix->drawable);
|
||||
REGION_UNINIT(pScreen, ®ion);
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_classic.c xorg-server-1.7.99.2/exa/exa_classic.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa_classic.c 2009-11-28 13:44:58.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa_classic.c 2012-01-04 12:54:50.586576675 -0700
|
||||
@@ -131,8 +131,8 @@
|
||||
box.y1 = 0;
|
||||
box.x2 = w;
|
||||
box.y2 = h;
|
||||
- REGION_INIT(pScreen, &pExaPixmap->validSys, &box, 0);
|
||||
- REGION_INIT(pScreen, &pExaPixmap->validFB, &box, 0);
|
||||
+ REGION_INIT2(pScreen, &pExaPixmap->validSys, &box, 0);
|
||||
+ REGION_INIT2(pScreen, &pExaPixmap->validFB, &box, 0);
|
||||
|
||||
exaSetAccelBlock(pExaScr, pExaPixmap,
|
||||
w, h, bpp);
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c xorg-server-1.7.99.2/exa/exa_migration_classic.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c 2009-11-28 13:44:58.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa_migration_classic.c 2012-01-04 12:54:43.077500333 -0700
|
||||
@@ -177,7 +177,7 @@
|
||||
box.x2 = max(pValidExt->x2, pDamageExt->x2);
|
||||
box.y2 = max(pValidExt->y2, pDamageExt->y2);
|
||||
|
||||
- REGION_INIT(pScreen, &closure, &box, 0);
|
||||
+ REGION_INIT2(pScreen, &closure, &box, 0);
|
||||
REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
|
||||
} else
|
||||
REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_render.c xorg-server-1.7.99.2/exa/exa_render.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa_render.c 2009-11-28 13:44:58.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa_render.c 2012-01-04 12:59:18.234297490 -0700
|
||||
@@ -576,7 +576,7 @@
|
||||
* (see use of DamagePendingRegion in exaCopyDirty)
|
||||
*/
|
||||
|
||||
- REGION_INIT(pScreen, ®ion, &box, 1);
|
||||
+ REGION_INIT2(pScreen, ®ion, &box, 1);
|
||||
|
||||
DamageRegionAppend(pDst->pDrawable, ®ion);
|
||||
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c xorg-server-1.7.99.2/exa/exa_unaccel.c
|
||||
--- xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c 2009-12-11 11:20:48.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/exa/exa_unaccel.c 2012-01-04 12:59:25.915375559 -0700
|
||||
@@ -344,7 +344,7 @@
|
||||
Box.x2 = Box.x1 + w;
|
||||
Box.y2 = Box.y1 + h;
|
||||
|
||||
- REGION_INIT(pScreen, &Reg, &Box, 1);
|
||||
+ REGION_INIT2(pScreen, &Reg, &Box, 1);
|
||||
|
||||
pExaScr->prepare_access_reg(pPix, EXA_PREPARE_SRC, &Reg);
|
||||
} else
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/fb/fboverlay.c xorg-server-1.7.99.2/fb/fboverlay.c
|
||||
--- xorg-server-1.7.99.2.ORIG/fb/fboverlay.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/fb/fboverlay.c 2012-01-04 12:24:43.855400893 -0700
|
||||
@@ -147,7 +147,7 @@
|
||||
pbits))
|
||||
return FALSE;
|
||||
pScrPriv->layer[i].u.run.pixmap = pPixmap;
|
||||
- REGION_INIT(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
|
||||
+ REGION_INIT2(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
|
||||
}
|
||||
pScreen->devPrivate = pScrPriv->layer[0].u.run.pixmap;
|
||||
return TRUE;
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
|
||||
--- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c 2012-01-04 13:12:40.418640141 -0700
|
||||
+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c 2012-01-04 13:05:08.771897914 -0700
|
||||
@@ -144,8 +144,8 @@
|
||||
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_INIT2 (pScreen, &pWin->winSize, &box, 1);
|
||||
+ REGION_INIT2 (pScreen, &pWin->borderSize, &box, 1);
|
||||
REGION_RESET(pScreen, &pWin->borderClip, &box);
|
||||
REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
|
||||
}
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c xorg-server-1.7.99.2/hw/kdrive/src/kxv.c
|
||||
--- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c 2008-11-14 14:27:05.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/hw/kdrive/src/kxv.c 2012-01-04 13:07:32.625411023 -0700
|
||||
@@ -674,7 +674,7 @@
|
||||
WinBox.y2 = WinBox.y1 + portPriv->drw_h;
|
||||
|
||||
/* clip to the window composite clip */
|
||||
- REGION_INIT(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(portPriv->pDraw->pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(portPriv->pDraw->pScreen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
|
||||
|
||||
@@ -738,7 +738,7 @@
|
||||
WinBox.y2 = WinBox.y1 + portPriv->drw_h;
|
||||
|
||||
/* clip to the window composite clip */
|
||||
- REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
|
||||
|
||||
@@ -752,7 +752,7 @@
|
||||
VPBox.x2 = screen->width;
|
||||
VPBox.y2 = screen->height;
|
||||
|
||||
- REGION_INIT(pScreen, &VPReg, &VPBox, 1);
|
||||
+ REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
|
||||
REGION_UNINIT(pScreen, &VPReg);
|
||||
}
|
||||
@@ -827,7 +827,7 @@
|
||||
WinBox.y2 = WinBox.y1 + portPriv->drw_h;
|
||||
|
||||
/* clip to the window composite clip */
|
||||
- REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip);
|
||||
|
||||
@@ -841,7 +841,7 @@
|
||||
VPBox.x2 = screen->width;
|
||||
VPBox.y2 = screen->height;
|
||||
|
||||
- REGION_INIT(pScreen, &VPReg, &VPBox, 1);
|
||||
+ REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
|
||||
REGION_UNINIT(pScreen, &VPReg);
|
||||
}
|
||||
@@ -1337,7 +1337,7 @@
|
||||
WinBox.x2 = WinBox.x1 + drw_w;
|
||||
WinBox.y2 = WinBox.y1 + drw_h;
|
||||
|
||||
- REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
|
||||
|
||||
@@ -1350,7 +1350,7 @@
|
||||
VPBox.x2 = screen->width;
|
||||
VPBox.y2 = screen->height;
|
||||
|
||||
- REGION_INIT(pScreen, &VPReg, &VPBox, 1);
|
||||
+ REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
|
||||
REGION_UNINIT(pScreen, &VPReg);
|
||||
}
|
||||
@@ -1490,7 +1490,7 @@
|
||||
WinBox.x2 = WinBox.x1 + drw_w;
|
||||
WinBox.y2 = WinBox.y1 + drw_h;
|
||||
|
||||
- REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
|
||||
|
||||
@@ -1637,7 +1637,7 @@
|
||||
WinBox.x2 = WinBox.x1 + drw_w;
|
||||
WinBox.y2 = WinBox.y1 + drw_h;
|
||||
|
||||
- REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
|
||||
+ REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
|
||||
REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
|
||||
REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);
|
||||
|
||||
@@ -1650,7 +1650,7 @@
|
||||
VPBox.x2 = pScreen->width;
|
||||
VPBox.y2 = pScreen->height;
|
||||
|
||||
- REGION_INIT(pScreen, &VPReg, &VPBox, 1);
|
||||
+ REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
|
||||
REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg);
|
||||
REGION_UNINIT(pScreen, &VPReg);
|
||||
}
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/include/regionstr.h xorg-server-1.7.99.2/include/regionstr.h
|
||||
--- xorg-server-1.7.99.2.ORIG/include/regionstr.h 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/include/regionstr.h 2012-01-04 12:13:06.174461574 -0700
|
||||
@@ -152,6 +152,12 @@
|
||||
} \
|
||||
}
|
||||
|
||||
+#define REGION_INIT2(_pScreen, _pReg, _rect, _size) \
|
||||
+{ \
|
||||
+ (_pReg)->extents = *(_rect); \
|
||||
+ (_pReg)->data = (RegDataPtr)NULL; \
|
||||
+ }
|
||||
+
|
||||
|
||||
#define REGION_UNINIT(_pScreen, _pReg) \
|
||||
{ \
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/micopy.c xorg-server-1.7.99.2/mi/micopy.c
|
||||
--- xorg-server-1.7.99.2.ORIG/mi/micopy.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/mi/micopy.c 2012-01-04 12:44:17.003144611 -0700
|
||||
@@ -315,7 +315,7 @@
|
||||
box.y1 = box_y1;
|
||||
box.x2 = box_x2;
|
||||
box.y2 = box_y2;
|
||||
- REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
|
||||
+ REGION_INIT2(pGC->pScreen, &rgnDst, &box, 1);
|
||||
}
|
||||
|
||||
/* Clip against complex source if needed */
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miexpose.c xorg-server-1.7.99.2/mi/miexpose.c
|
||||
--- xorg-server-1.7.99.2.ORIG/mi/miexpose.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/mi/miexpose.c 2012-01-04 12:46:29.400478668 -0700
|
||||
@@ -206,7 +206,7 @@
|
||||
box.x2 = pSrcDrawable->width;
|
||||
box.y2 = pSrcDrawable->height;
|
||||
prgnSrcClip = &rgnSrcRec;
|
||||
- REGION_INIT(pscr, prgnSrcClip, &box, 1);
|
||||
+ REGION_INIT2(pscr, prgnSrcClip, &box, 1);
|
||||
pSrcWin = NULL;
|
||||
}
|
||||
|
||||
@@ -239,11 +239,11 @@
|
||||
box.x2 = pDstDrawable->width;
|
||||
box.y2 = pDstDrawable->height;
|
||||
prgnDstClip = &rgnDstRec;
|
||||
- REGION_INIT(pscr, prgnDstClip, &box, 1);
|
||||
+ REGION_INIT2(pscr, prgnDstClip, &box, 1);
|
||||
}
|
||||
|
||||
/* drawable-relative source region */
|
||||
- REGION_INIT(pscr, &rgnExposed, &srcBox, 1);
|
||||
+ REGION_INIT2(pscr, &rgnExposed, &srcBox, 1);
|
||||
|
||||
/* now get the hidden parts of the source box*/
|
||||
REGION_SUBTRACT(pscr, &rgnExposed, &rgnExposed, prgnSrcClip);
|
||||
@@ -491,7 +491,7 @@
|
||||
box = *REGION_EXTENTS( pWin->drawable.pScreen, exposures);
|
||||
if (exposures == prgn) {
|
||||
exposures = &expRec;
|
||||
- REGION_INIT( pWin->drawable.pScreen, exposures, &box, 1);
|
||||
+ REGION_INIT2( pWin->drawable.pScreen, exposures, &box, 1);
|
||||
REGION_RESET( pWin->drawable.pScreen, prgn, &box);
|
||||
} else {
|
||||
REGION_RESET( pWin->drawable.pScreen, exposures, &box);
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/mioverlay.c xorg-server-1.7.99.2/mi/mioverlay.c
|
||||
--- xorg-server-1.7.99.2.ORIG/mi/mioverlay.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/mi/mioverlay.c 2012-01-04 12:47:50.114300224 -0700
|
||||
@@ -209,8 +209,8 @@
|
||||
fullBox.y1 = 0;
|
||||
fullBox.x2 = pScreen->width;
|
||||
fullBox.y2 = pScreen->height;
|
||||
- REGION_INIT(pScreen, &(pTree->borderClip), &fullBox, 1);
|
||||
- REGION_INIT(pScreen, &(pTree->clipList), &fullBox, 1);
|
||||
+ REGION_INIT2(pScreen, &(pTree->borderClip), &fullBox, 1);
|
||||
+ REGION_INIT2(pScreen, &(pTree->clipList), &fullBox, 1);
|
||||
}
|
||||
} else xfree(pTree);
|
||||
}
|
||||
@@ -1027,7 +1027,7 @@
|
||||
box = *REGION_EXTENTS(pScreen, exposures);
|
||||
if (exposures == prgn) {
|
||||
exposures = &expRec;
|
||||
- REGION_INIT(pScreen, exposures, &box, 1);
|
||||
+ REGION_INIT2(pScreen, exposures, &box, 1);
|
||||
REGION_RESET(pScreen, prgn, &box);
|
||||
} else {
|
||||
REGION_RESET(pScreen, exposures, &box);
|
||||
@@ -1672,7 +1672,7 @@
|
||||
box.x1 = x1; box.x2 = x2;
|
||||
box.y1 = y1; box.y2 = y2;
|
||||
|
||||
- REGION_INIT(pScreen, ®, &box, 1);
|
||||
+ REGION_INIT2(pScreen, ®, &box, 1);
|
||||
|
||||
REGION_INTERSECT(pScreen, ®, ®, clipList);
|
||||
if (generateExposures)
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miwindow.c xorg-server-1.7.99.2/mi/miwindow.c
|
||||
--- xorg-server-1.7.99.2.ORIG/mi/miwindow.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/mi/miwindow.c 2012-01-04 12:48:38.055787835 -0700
|
||||
@@ -111,7 +111,7 @@
|
||||
box.y2 = y2;
|
||||
|
||||
pScreen = pWin->drawable.pScreen;
|
||||
- REGION_INIT(pScreen, ®, &box, 1);
|
||||
+ REGION_INIT2(pScreen, ®, &box, 1);
|
||||
|
||||
REGION_INTERSECT(pScreen, ®, ®, &pWin->clipList);
|
||||
if (generateExposures)
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/miext/damage/damage.c xorg-server-1.7.99.2/miext/damage/damage.c
|
||||
--- xorg-server-1.7.99.2.ORIG/miext/damage/damage.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/miext/damage/damage.c 2012-01-04 12:51:04.883281430 -0700
|
||||
@@ -324,7 +324,7 @@
|
||||
box.y1 = draw_y;
|
||||
box.x2 = draw_x + pDamage->pDrawable->width;
|
||||
box.y2 = draw_y + pDamage->pDrawable->height;
|
||||
- REGION_INIT(pScreen, &pixClip, &box, 1);
|
||||
+ REGION_INIT2(pScreen, &pixClip, &box, 1);
|
||||
REGION_INTERSECT (pScreen, pDamageRegion, pRegion, &pixClip);
|
||||
REGION_UNINIT(pScreen, &pixClip);
|
||||
}
|
||||
@@ -2085,7 +2085,7 @@
|
||||
box.y1 = pDrawable->y;
|
||||
box.x2 = pDrawable->x + pDrawable->width;
|
||||
box.y2 = pDrawable->y + pDrawable->height;
|
||||
- REGION_INIT (pDrawable->pScreen, &pixmapClip, &box, 1);
|
||||
+ REGION_INIT2 (pDrawable->pScreen, &pixmapClip, &box, 1);
|
||||
pClip = &pixmapClip;
|
||||
}
|
||||
REGION_TRANSLATE (pDrawable->pScreen, &pDamage->damage, pDrawable->x, pDrawable->y);
|
||||
diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/Xext/xace.c xorg-server-1.7.99.2/Xext/xace.c
|
||||
--- xorg-server-1.7.99.2.ORIG/Xext/xace.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/Xext/xace.c 2012-01-04 12:49:36.850385965 -0700
|
||||
@@ -255,7 +255,7 @@
|
||||
imageBox.y1 = y;
|
||||
imageBox.x2 = x + w;
|
||||
imageBox.y2 = y + h;
|
||||
- REGION_INIT(pScreen, &imageRegion, &imageBox, 1);
|
||||
+ REGION_INIT2(pScreen, &imageRegion, &imageBox, 1);
|
||||
REGION_NULL(pScreen, &censorRegion);
|
||||
|
||||
/* censorRegion = imageRegion - visibleRegion */
|
||||
--- xorg-server-1.7.99.2.ORIG/mi/mibank.c 2009-11-04 09:25:50.000000000 -0700
|
||||
+++ xorg-server-1.7.99.2/mi/mibank.c 2012-01-04 12:37:42.251184747 -0700
|
||||
@@ -772,7 +772,7 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
- REGION_INIT(pScreen, &rgnDst, &fastBox, 1);
|
||||
+ REGION_INIT2(pScreen, &rgnDst, &fastBox, 1);
|
||||
REGION_INTERSECT(pScreen, &rgnDst, &rgnDst, prgnSrcClip);
|
||||
pBox = REGION_RECTS(&rgnDst);
|
||||
nBox = REGION_NUM_RECTS(&rgnDst);
|
|
@ -1,87 +0,0 @@
|
|||
Add some extra video modes and change the default to VGA.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
hw/kdrive/src/kmode.c | 41 +++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 39 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/src/kmode.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/src/kmode.c 2008-01-11 14:20:47.000000000 +0000
|
||||
+++ xorg-server-1.3.0.0/hw/kdrive/src/kmode.c 2008-01-11 14:21:18.000000000 +0000
|
||||
@@ -32,6 +32,31 @@ const KdMonitorTiming kdMonitorTimings[
|
||||
/* H V Hz KHz */
|
||||
/* FP BP BLANK POLARITY */
|
||||
|
||||
+ /* Treo 650 */
|
||||
+
|
||||
+ { 320, 320, 64, 16256,
|
||||
+ 17, 12, 32, KdSyncNegative,
|
||||
+ 1, 11, 14, KdSyncNegative,
|
||||
+ },
|
||||
+
|
||||
+ { 320, 320, 64, 0,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ },
|
||||
+
|
||||
+ /* LifeDrive/T3/TX modes */
|
||||
+
|
||||
+ { 320, 480, 64, 16256,
|
||||
+ 17, 12, 32, KdSyncNegative,
|
||||
+ 1, 11, 14, KdSyncNegative,
|
||||
+ },
|
||||
+
|
||||
+ { 480, 320, 64, 0,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ },
|
||||
+
|
||||
+
|
||||
/* IPAQ modeline:
|
||||
*
|
||||
* Modeline "320x240" 5.7222 320 337 340 352 240 241 244 254"
|
||||
@@ -41,6 +66,11 @@ const KdMonitorTiming kdMonitorTimings[
|
||||
1, 11, 14, KdSyncNegative,
|
||||
},
|
||||
|
||||
+ { 240, 320, 64, 0,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ 0, 0, 0, KdSyncNegative,
|
||||
+ },
|
||||
+
|
||||
/* Other VESA modes */
|
||||
{ 640, 350, 85, 31500, /* VESA */
|
||||
32, 96, 192, KdSyncPositive, /* 26.413 */
|
||||
@@ -76,10 +106,19 @@ const KdMonitorTiming kdMonitorTimings[
|
||||
16, 120, 176, KdSyncNegative, /* 37.861 */
|
||||
1, 20, 24, KdSyncNegative, /* 72.809 */
|
||||
},
|
||||
+ /* DEFAULT */
|
||||
+#define MONITOR_TIMING_DEFAULT 13
|
||||
{ 640, 480, 60, 25175, /* VESA */
|
||||
16, 48, 160, KdSyncNegative, /* 31.469 */
|
||||
10, 33, 45, KdSyncNegative, /* 59.940 */
|
||||
},
|
||||
+
|
||||
+
|
||||
+ { 480, 640, 60, 0, /* VESA */
|
||||
+ 0, 0, 0, KdSyncNegative, /* 31.469 */
|
||||
+ 0, 0, 0, KdSyncNegative, /* 59.940 */
|
||||
+ },
|
||||
+
|
||||
|
||||
/* 800x600 modes */
|
||||
{ 800, 600, 85, 56250, /* VESA */
|
||||
@@ -90,8 +129,6 @@ const KdMonitorTiming kdMonitorTimings[
|
||||
16, 160, 256, KdSyncPositive, /* 46.875 */
|
||||
1, 21, 25, KdSyncPositive, /* 75.000 */
|
||||
},
|
||||
- /* DEFAULT */
|
||||
-#define MONITOR_TIMING_DEFAULT 9
|
||||
{ 800, 600, 72, 50000, /* VESA */
|
||||
56, 64, 240, KdSyncPositive, /* 48.077 */
|
||||
37, 23, 66, KdSyncPositive, /* 72.188 */
|
|
@ -1,65 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c
|
||||
===================================================================
|
||||
--- xorg-server-1.3.0.0.orig/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:12.000000000 +0100
|
||||
+++ xorg-server-1.3.0.0/hw/kdrive/fbdev/fbdev.c 2008-09-25 21:55:46.000000000 +0100
|
||||
@@ -498,6 +498,7 @@
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
FbdevScrPriv *scrpriv = screen->driver;
|
||||
Bool wasEnabled = pScreenPriv->enabled;
|
||||
+ FbdevPriv *priv = screen->card->driver;
|
||||
FbdevScrPriv oldscr;
|
||||
int oldwidth;
|
||||
int oldheight;
|
||||
@@ -525,11 +526,46 @@
|
||||
oldheight = screen->height;
|
||||
oldmmwidth = pScreen->mmWidth;
|
||||
oldmmheight = pScreen->mmHeight;
|
||||
-
|
||||
+
|
||||
/*
|
||||
* Set new configuration
|
||||
*/
|
||||
-
|
||||
+
|
||||
+ if (newwidth != oldwidth || newheight != oldheight)
|
||||
+ {
|
||||
+ struct fb_var_screeninfo var;
|
||||
+ int k;
|
||||
+
|
||||
+ k = ioctl (priv->fd, FBIOGET_VSCREENINFO, &var);
|
||||
+
|
||||
+ if (k < 0)
|
||||
+ {
|
||||
+ ErrorF("Error with framebuffer ioctl FBIOGET_VSCREENINFO: %s", strerror (errno));
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ var.xres = newwidth;
|
||||
+ var.yres = newheight;
|
||||
+ var.activate = FB_ACTIVATE_NOW;
|
||||
+
|
||||
+ k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &var);
|
||||
+
|
||||
+ if (k >= 0)
|
||||
+ {
|
||||
+ if ((k=ioctl(priv->fd, FBIOGET_FSCREENINFO, &priv->fix)) < 0)
|
||||
+ {
|
||||
+ perror("Error with framebuffer ioctl FIOGET_FSCREENINFO");
|
||||
+ close (priv->fd);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ if ((k=ioctl(priv->fd, FBIOGET_VSCREENINFO, &priv->var)) < 0) {
|
||||
+ perror("Error framebuffer ioctl FIOGET_VSCREENINFO");
|
||||
+ close (priv->fd);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
scrpriv->randr = KdAddRotation (screen->randr, randr);
|
||||
|
||||
KdOffscreenSwapOut (screen->pScreen);
|
|
@ -1,233 +0,0 @@
|
|||
From 6dae7f3792611aace1df0cca63bf50c50d93de43 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Date: Tue, 10 Aug 2010 18:30:20 +0000
|
||||
Subject: xace: Invalid reference to out-of-scope data.
|
||||
|
||||
The callback data passed by reference to the hook was allocated on stack
|
||||
within the scope of the case statement. The compiler is free to reuse
|
||||
any of that stack space whilst making the function call so we may end up
|
||||
passing garbage into the callback.
|
||||
|
||||
References:
|
||||
|
||||
Bug 18451 - Xorg server 1.5.2 SEGV during XFixesGetCursorImage()
|
||||
https://bugs.freedesktop.org/show_bug.cgi?id=18451
|
||||
|
||||
v2: Drop the unrelated hunk that snuck in when ammending the commit
|
||||
message.
|
||||
|
||||
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||
|
||||
Upstream-Status: accepted
|
||||
---
|
||||
(limited to 'Xext/xace.c')
|
||||
|
||||
diff --git a/Xext/xace.c b/Xext/xace.c
|
||||
index e10d837..c757cad 100644
|
||||
--- a/Xext/xace.c
|
||||
+++ b/Xext/xace.c
|
||||
@@ -87,7 +87,18 @@ void XaceHookAuditEnd(ClientPtr ptr, int result)
|
||||
*/
|
||||
int XaceHook(int hook, ...)
|
||||
{
|
||||
- pointer calldata; /* data passed to callback */
|
||||
+ union {
|
||||
+ XaceResourceAccessRec res;
|
||||
+ XaceDeviceAccessRec dev;
|
||||
+ XaceSendAccessRec send;
|
||||
+ XaceReceiveAccessRec recv;
|
||||
+ XaceClientAccessRec client;
|
||||
+ XaceExtAccessRec ext;
|
||||
+ XaceServerAccessRec server;
|
||||
+ XaceScreenAccessRec screen;
|
||||
+ XaceAuthAvailRec auth;
|
||||
+ XaceKeyAvailRec key;
|
||||
+ } u;
|
||||
int *prv = NULL; /* points to return value from callback */
|
||||
va_list ap; /* argument list */
|
||||
va_start(ap, hook);
|
||||
@@ -99,117 +110,86 @@ int XaceHook(int hook, ...)
|
||||
*/
|
||||
switch (hook)
|
||||
{
|
||||
- case XACE_RESOURCE_ACCESS: {
|
||||
- XaceResourceAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.id = va_arg(ap, XID);
|
||||
- rec.rtype = va_arg(ap, RESTYPE);
|
||||
- rec.res = va_arg(ap, pointer);
|
||||
- rec.ptype = va_arg(ap, RESTYPE);
|
||||
- rec.parent = va_arg(ap, pointer);
|
||||
- rec.access_mode = va_arg(ap, Mask);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_RESOURCE_ACCESS:
|
||||
+ u.res.client = va_arg(ap, ClientPtr);
|
||||
+ u.res.id = va_arg(ap, XID);
|
||||
+ u.res.rtype = va_arg(ap, RESTYPE);
|
||||
+ u.res.res = va_arg(ap, pointer);
|
||||
+ u.res.ptype = va_arg(ap, RESTYPE);
|
||||
+ u.res.parent = va_arg(ap, pointer);
|
||||
+ u.res.access_mode = va_arg(ap, Mask);
|
||||
+ u.res.status = Success; /* default allow */
|
||||
+ prv = &u.res.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_DEVICE_ACCESS: {
|
||||
- XaceDeviceAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.dev = va_arg(ap, DeviceIntPtr);
|
||||
- rec.access_mode = va_arg(ap, Mask);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_DEVICE_ACCESS:
|
||||
+ u.dev.client = va_arg(ap, ClientPtr);
|
||||
+ u.dev.dev = va_arg(ap, DeviceIntPtr);
|
||||
+ u.dev.access_mode = va_arg(ap, Mask);
|
||||
+ u.dev.status = Success; /* default allow */
|
||||
+ prv = &u.dev.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_SEND_ACCESS: {
|
||||
- XaceSendAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.dev = va_arg(ap, DeviceIntPtr);
|
||||
- rec.pWin = va_arg(ap, WindowPtr);
|
||||
- rec.events = va_arg(ap, xEventPtr);
|
||||
- rec.count = va_arg(ap, int);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_SEND_ACCESS:
|
||||
+ u.send.client = va_arg(ap, ClientPtr);
|
||||
+ u.send.dev = va_arg(ap, DeviceIntPtr);
|
||||
+ u.send.pWin = va_arg(ap, WindowPtr);
|
||||
+ u.send.events = va_arg(ap, xEventPtr);
|
||||
+ u.send.count = va_arg(ap, int);
|
||||
+ u.send.status = Success; /* default allow */
|
||||
+ prv = &u.send.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_RECEIVE_ACCESS: {
|
||||
- XaceReceiveAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.pWin = va_arg(ap, WindowPtr);
|
||||
- rec.events = va_arg(ap, xEventPtr);
|
||||
- rec.count = va_arg(ap, int);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_RECEIVE_ACCESS:
|
||||
+ u.recv.client = va_arg(ap, ClientPtr);
|
||||
+ u.recv.pWin = va_arg(ap, WindowPtr);
|
||||
+ u.recv.events = va_arg(ap, xEventPtr);
|
||||
+ u.recv.count = va_arg(ap, int);
|
||||
+ u.recv.status = Success; /* default allow */
|
||||
+ prv = &u.recv.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_CLIENT_ACCESS: {
|
||||
- XaceClientAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.target = va_arg(ap, ClientPtr);
|
||||
- rec.access_mode = va_arg(ap, Mask);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_CLIENT_ACCESS:
|
||||
+ u.client.client = va_arg(ap, ClientPtr);
|
||||
+ u.client.target = va_arg(ap, ClientPtr);
|
||||
+ u.client.access_mode = va_arg(ap, Mask);
|
||||
+ u.client.status = Success; /* default allow */
|
||||
+ prv = &u.client.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_EXT_ACCESS: {
|
||||
- XaceExtAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.ext = va_arg(ap, ExtensionEntry*);
|
||||
- rec.access_mode = DixGetAttrAccess;
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_EXT_ACCESS:
|
||||
+ u.ext.client = va_arg(ap, ClientPtr);
|
||||
+ u.ext.ext = va_arg(ap, ExtensionEntry*);
|
||||
+ u.ext.access_mode = DixGetAttrAccess;
|
||||
+ u.ext.status = Success; /* default allow */
|
||||
+ prv = &u.ext.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_SERVER_ACCESS: {
|
||||
- XaceServerAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.access_mode = va_arg(ap, Mask);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_SERVER_ACCESS:
|
||||
+ u.server.client = va_arg(ap, ClientPtr);
|
||||
+ u.server.access_mode = va_arg(ap, Mask);
|
||||
+ u.server.status = Success; /* default allow */
|
||||
+ prv = &u.server.status;
|
||||
break;
|
||||
- }
|
||||
case XACE_SCREEN_ACCESS:
|
||||
- case XACE_SCREENSAVER_ACCESS: {
|
||||
- XaceScreenAccessRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.screen = va_arg(ap, ScreenPtr);
|
||||
- rec.access_mode = va_arg(ap, Mask);
|
||||
- rec.status = Success; /* default allow */
|
||||
- calldata = &rec;
|
||||
- prv = &rec.status;
|
||||
+ case XACE_SCREENSAVER_ACCESS:
|
||||
+ u.screen.client = va_arg(ap, ClientPtr);
|
||||
+ u.screen.screen = va_arg(ap, ScreenPtr);
|
||||
+ u.screen.access_mode = va_arg(ap, Mask);
|
||||
+ u.screen.status = Success; /* default allow */
|
||||
+ prv = &u.screen.status;
|
||||
break;
|
||||
- }
|
||||
- case XACE_AUTH_AVAIL: {
|
||||
- XaceAuthAvailRec rec;
|
||||
- rec.client = va_arg(ap, ClientPtr);
|
||||
- rec.authId = va_arg(ap, XID);
|
||||
- calldata = &rec;
|
||||
+ case XACE_AUTH_AVAIL:
|
||||
+ u.auth.client = va_arg(ap, ClientPtr);
|
||||
+ u.auth.authId = va_arg(ap, XID);
|
||||
break;
|
||||
- }
|
||||
- case XACE_KEY_AVAIL: {
|
||||
- XaceKeyAvailRec rec;
|
||||
- rec.event = va_arg(ap, xEventPtr);
|
||||
- rec.keybd = va_arg(ap, DeviceIntPtr);
|
||||
- rec.count = va_arg(ap, int);
|
||||
- calldata = &rec;
|
||||
+ case XACE_KEY_AVAIL:
|
||||
+ u.key.event = va_arg(ap, xEventPtr);
|
||||
+ u.key.keybd = va_arg(ap, DeviceIntPtr);
|
||||
+ u.key.count = va_arg(ap, int);
|
||||
break;
|
||||
- }
|
||||
- default: {
|
||||
+ default:
|
||||
va_end(ap);
|
||||
return 0; /* unimplemented hook number */
|
||||
- }
|
||||
}
|
||||
va_end(ap);
|
||||
|
||||
/* call callbacks and return result, if any. */
|
||||
- CallCallbacks(&XaceHooks[hook], calldata);
|
||||
+ CallCallbacks(&XaceHooks[hook], &u);
|
||||
return prv ? *prv : Success;
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
|
@ -1,22 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
---
|
||||
render/glyphstr.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- xorg-server-1.3.0.0.orig/render/glyphstr.h
|
||||
+++ xorg-server-1.3.0.0/render/glyphstr.h
|
||||
@@ -23,10 +23,11 @@
|
||||
*/
|
||||
|
||||
#ifndef _GLYPHSTR_H_
|
||||
#define _GLYPHSTR_H_
|
||||
|
||||
+#include <X11/X.h>
|
||||
#include <X11/extensions/renderproto.h>
|
||||
#include "picture.h"
|
||||
#include "screenint.h"
|
||||
#include "regionstr.h"
|
||||
#include "miscstruct.h"
|
|
@ -1,312 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.7.99.2/dix/window.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/dix/window.c 2009-11-04 16:25:50.000000000 +0000
|
||||
+++ xorg-server-1.7.99.2/dix/window.c 2010-02-10 17:42:22.719078216 +0000
|
||||
@@ -179,6 +179,8 @@
|
||||
|
||||
#define SubStrSend(pWin,pParent) (StrSend(pWin) || SubSend(pParent))
|
||||
|
||||
+char* RootPPM = NULL;
|
||||
+
|
||||
#ifdef DEBUG
|
||||
/******
|
||||
* PrintWindowTree
|
||||
@@ -304,6 +306,115 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+static int
|
||||
+get_int(FILE *fp)
|
||||
+{
|
||||
+ int c = 0;
|
||||
+
|
||||
+ while ((c = getc(fp)) != EOF)
|
||||
+ {
|
||||
+ if (isspace(c))
|
||||
+ continue;
|
||||
+
|
||||
+ if (c == '#')
|
||||
+ while (c = getc(fp))
|
||||
+ if (c == EOF)
|
||||
+ return 0;
|
||||
+ else if (c == '\n')
|
||||
+ break;
|
||||
+
|
||||
+ if (isdigit(c))
|
||||
+ {
|
||||
+ int val = c - '0';
|
||||
+ while ((c = getc(fp)) && isdigit(c))
|
||||
+ val = (val * 10) + (c - '0');
|
||||
+ return val;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static unsigned char*
|
||||
+ppm_load (const char* path, int depth, int *width, int *height)
|
||||
+{
|
||||
+ FILE *fp;
|
||||
+ int max, n = 0, w, h, i, j, bytes_per_line;
|
||||
+ unsigned char *data, *res, h1, h2;
|
||||
+
|
||||
+ if (depth < 16 || depth > 32)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (depth > 16)
|
||||
+ depth = 32;
|
||||
+
|
||||
+ fp = fopen (path, "r");
|
||||
+ if (fp == NULL)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ h1 = getc(fp);
|
||||
+ h2 = getc(fp);
|
||||
+
|
||||
+ /* magic is 'P6' for raw ppm */
|
||||
+ if (h1 != 'P' && h2 != '6')
|
||||
+ goto fail;
|
||||
+
|
||||
+ w = get_int(fp);
|
||||
+ h = get_int(fp);
|
||||
+
|
||||
+ if (w == 0 || h == 0)
|
||||
+ goto fail;
|
||||
+
|
||||
+ max = get_int(fp);
|
||||
+
|
||||
+ if (max != 255)
|
||||
+ goto fail;
|
||||
+
|
||||
+ bytes_per_line = ((w * depth + 31) >> 5) << 2;
|
||||
+
|
||||
+ res = data = malloc(bytes_per_line * h);
|
||||
+
|
||||
+ for (i=0; i<h; i++)
|
||||
+ {
|
||||
+ for (j=0; j<w; j++)
|
||||
+ {
|
||||
+ unsigned char buf[3];
|
||||
+ fread(buf, 1, 3, fp);
|
||||
+
|
||||
+ switch (depth)
|
||||
+ {
|
||||
+ case 24:
|
||||
+ case 32:
|
||||
+ *data = buf[2];
|
||||
+ *(data+1) = buf[1];
|
||||
+ *(data+2) = buf[0];
|
||||
+ data += 4;
|
||||
+ break;
|
||||
+ case 16:
|
||||
+ default:
|
||||
+ *(unsigned short*)data
|
||||
+ = ((buf[0] >> 3) << 11) | ((buf[1] >> 2) << 5) | (buf[2] >> 3);
|
||||
+ data += 2;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ data += (bytes_per_line - (w*(depth>>3)));
|
||||
+ }
|
||||
+
|
||||
+ data = res;
|
||||
+
|
||||
+ *width = w;
|
||||
+ *height = h;
|
||||
+
|
||||
+ fclose(fp);
|
||||
+
|
||||
+ return res;
|
||||
+
|
||||
+ fail:
|
||||
+ fclose(fp);
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
MakeRootTile(WindowPtr pWin)
|
||||
{
|
||||
@@ -314,6 +425,36 @@
|
||||
unsigned char *from, *to;
|
||||
int i, j;
|
||||
|
||||
+ if (RootPPM != NULL)
|
||||
+ {
|
||||
+ int w, h;
|
||||
+ unsigned char *data;
|
||||
+
|
||||
+ if ((data = ppm_load (RootPPM, pScreen->rootDepth, &w, &h)) != NULL)
|
||||
+ {
|
||||
+ pWin->background.pixmap
|
||||
+ = (*pScreen->CreatePixmap)(pScreen, w, h, pScreen->rootDepth, 0);
|
||||
+
|
||||
+ pWin->backgroundState = BackgroundPixmap;
|
||||
+ pGC = GetScratchGC(pScreen->rootDepth, pScreen);
|
||||
+ if (!pWin->background.pixmap || !pGC)
|
||||
+ FatalError("could not create root tile");
|
||||
+
|
||||
+ ValidateGC((DrawablePtr)pWin->background.pixmap, pGC);
|
||||
+
|
||||
+ (*pGC->ops->PutImage)((DrawablePtr)pWin->background.pixmap,
|
||||
+ pGC,
|
||||
+ pScreen->rootDepth,
|
||||
+ 0, 0, w, h, 0, ZPixmap, (char *)data);
|
||||
+ FreeScratchGC(pGC);
|
||||
+
|
||||
+ free(data);
|
||||
+ return;
|
||||
+ }
|
||||
+ else
|
||||
+ ErrorF("Unable to load root window image.");
|
||||
+ }
|
||||
+
|
||||
pWin->background.pixmap = (*pScreen->CreatePixmap)(pScreen, 4, 4,
|
||||
pScreen->rootDepth, 0);
|
||||
|
||||
@@ -530,6 +671,7 @@
|
||||
}
|
||||
|
||||
|
||||
+
|
||||
WindowPtr
|
||||
RealChildHead(WindowPtr pWin)
|
||||
{
|
||||
Index: xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/hw/kdrive/src/kdrive.c 2010-02-10 17:36:36.000000000 +0000
|
||||
+++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c 2010-02-10 17:43:07.797828099 +0000
|
||||
@@ -60,6 +60,9 @@
|
||||
{ 32, 32 }
|
||||
};
|
||||
|
||||
+int
|
||||
+ProcXFixesHideCursor (ClientPtr client) ;
|
||||
+
|
||||
#define NUM_KD_DEPTHS (sizeof (kdDepths) / sizeof (kdDepths[0]))
|
||||
|
||||
#define KD_DEFAULT_BUTTONS 5
|
||||
@@ -92,6 +95,9 @@
|
||||
|
||||
KdOsFuncs *kdOsFuncs;
|
||||
|
||||
+extern Bool CursorInitiallyHidden; /* See Xfixes cursor.c */
|
||||
+extern char* RootPPM; /* dix/window.c */
|
||||
+
|
||||
void
|
||||
KdSetRootClip (ScreenPtr pScreen, BOOL enable)
|
||||
{
|
||||
@@ -275,6 +281,7 @@
|
||||
KdSetRootClip (pScreen, TRUE);
|
||||
if (pScreenPriv->card->cfuncs->dpms)
|
||||
(*pScreenPriv->card->cfuncs->dpms) (pScreen, pScreenPriv->dpmsState);
|
||||
+
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -553,6 +560,8 @@
|
||||
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");
|
||||
+ ErrorF("-hide-cursor Start with cursor hidden\n");
|
||||
+ ErrorF("-root-ppm [path] Specify ppm file to use as root window background.\n");
|
||||
}
|
||||
|
||||
int
|
||||
@@ -616,6 +625,19 @@
|
||||
kdSoftCursor = TRUE;
|
||||
return 1;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-hide-cursor"))
|
||||
+ {
|
||||
+ CursorInitiallyHidden = TRUE;
|
||||
+ return 1;
|
||||
+ }
|
||||
+ if (!strcmp (argv[i], "-root-ppm"))
|
||||
+ {
|
||||
+ if ((i+1) < argc)
|
||||
+ RootPPM = argv[i+1];
|
||||
+ else
|
||||
+ UseMsg ();
|
||||
+ return 2;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-videoTest"))
|
||||
{
|
||||
kdVideoTest = TRUE;
|
||||
Index: xorg-server-1.7.99.2/xfixes/cursor.c
|
||||
===================================================================
|
||||
--- xorg-server-1.7.99.2.orig/xfixes/cursor.c 2009-12-19 01:43:53.000000000 +0000
|
||||
+++ xorg-server-1.7.99.2/xfixes/cursor.c 2010-02-10 17:45:02.089079491 +0000
|
||||
@@ -57,6 +57,7 @@
|
||||
static RESTYPE CursorClientType;
|
||||
static RESTYPE CursorHideCountType;
|
||||
static RESTYPE CursorWindowType;
|
||||
+static Bool CursorGloballyHidden;
|
||||
static CursorPtr CursorCurrent[MAXDEVICES];
|
||||
static CursorPtr pInvisibleCursor = NULL;
|
||||
|
||||
@@ -65,6 +66,8 @@
|
||||
|
||||
static void deleteCursorHideCountsForScreen (ScreenPtr pScreen);
|
||||
|
||||
+Bool CursorInitiallyHidden = FALSE;
|
||||
+
|
||||
#define VERIFY_CURSOR(pCursor, cursor, client, access) \
|
||||
do { \
|
||||
int err; \
|
||||
@@ -150,7 +153,7 @@
|
||||
if (ConnectionInfo)
|
||||
CursorVisible = EnableCursor;
|
||||
|
||||
- if (cs->pCursorHideCounts != NULL || !CursorVisible) {
|
||||
+ if (cs->pCursorHideCounts != NULL || !CursorVisible || CursorGloballyHidden) {
|
||||
ret = ((*pScreen->RealizeCursor)(pDev, pScreen, pInvisibleCursor) &&
|
||||
(*pScreen->DisplayCursor) (pDev, pScreen, pInvisibleCursor));
|
||||
} else {
|
||||
@@ -887,6 +890,12 @@
|
||||
return (ret == BadValue) ? BadWindow : ret;
|
||||
}
|
||||
|
||||
+ /* Is cursor set to be initially hidden ?, if so reset this
|
||||
+ * flag as now visibility assumed under control of client.
|
||||
+ */
|
||||
+ if (CursorGloballyHidden)
|
||||
+ CursorGloballyHidden = FALSE;
|
||||
+
|
||||
/*
|
||||
* Has client hidden the cursor before on this screen?
|
||||
* If so, just increment the count.
|
||||
@@ -950,9 +959,19 @@
|
||||
return (rc == BadValue) ? BadWindow : rc;
|
||||
}
|
||||
|
||||
+ /* X was started with cursor hidden, therefore just reset our flag
|
||||
+ * (returning to normal client control) and cause cursor to now be
|
||||
+ * shown.
|
||||
+ */
|
||||
+ if (CursorGloballyHidden == TRUE)
|
||||
+ {
|
||||
+ CursorGloballyHidden = FALSE;
|
||||
+ return (client->noClientException);
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Has client hidden the cursor on this screen?
|
||||
- * If not, generate an error.
|
||||
+ * If so, generate an error.
|
||||
*/
|
||||
pChc = findCursorHideCount(client, pWin->drawable.pScreen);
|
||||
if (pChc == NULL) {
|
||||
@@ -1068,6 +1087,8 @@
|
||||
{
|
||||
int i;
|
||||
|
||||
+ CursorGloballyHidden = CursorInitiallyHidden;
|
||||
+
|
||||
if (party_like_its_1989)
|
||||
CursorVisible = EnableCursor;
|
||||
|
|
@ -1,520 +0,0 @@
|
|||
# Kdrive evdev support patch, posted by Ander Conselvan de Oliveira at
|
||||
# http://lists.freedesktop.org/archives/xorg/2005-December/011635.html
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/linux/evdev.c xserver/hw/kdrive/linux/evdev.c
|
||||
--- xserver.original/hw/kdrive/linux/evdev.c 2005-12-16 10:36:05.000000000 -0200
|
||||
+++ xserver/hw/kdrive/linux/evdev.c 2005-12-16 10:40:51.077410192 -0200
|
||||
@@ -31,9 +31,11 @@
|
||||
#include <X11/X.h>
|
||||
#include <X11/Xproto.h>
|
||||
#include <X11/Xpoll.h>
|
||||
+#include <X11/keysym.h>
|
||||
#include "inputstr.h"
|
||||
#include "scrnintstr.h"
|
||||
#include "kdrive.h"
|
||||
+#include "kkeymap.h"
|
||||
|
||||
#define NUM_EVENTS 128
|
||||
#define ABS_UNSET -65535
|
||||
@@ -105,9 +107,10 @@
|
||||
{
|
||||
KdMouseInfo *mi = closure;
|
||||
Kevdev *ke = mi->driver;
|
||||
- int i;
|
||||
+ int i, j;
|
||||
struct input_event events[NUM_EVENTS];
|
||||
int n;
|
||||
+ int flags;
|
||||
|
||||
n = read (evdevPort, &events, NUM_EVENTS * sizeof (struct input_event));
|
||||
if (n <= 0)
|
||||
@@ -115,22 +118,64 @@
|
||||
n /= sizeof (struct input_event);
|
||||
for (i = 0; i < n; i++)
|
||||
{
|
||||
+ flags = KD_MOUSE_DELTA | kdMouseInfo->buttonState;
|
||||
switch (events[i].type) {
|
||||
case EV_SYN:
|
||||
break;
|
||||
case EV_KEY:
|
||||
- EvdevMotion (mi);
|
||||
- ASSIGNBIT(ke->key,events[i].code, events[i].value);
|
||||
- if (events[i].code < 0x100)
|
||||
- ErrorF ("key %d %d\n", events[i].code, events[i].value);
|
||||
- else
|
||||
- ErrorF ("key 0x%x %d\n", events[i].code, events[i].value);
|
||||
+ if (events[i].code >= BTN_MOUSE && events[i].code < BTN_JOYSTICK) {
|
||||
+ switch (events[i].code) {
|
||||
+ case BTN_LEFT:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_1;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_1;
|
||||
+ break;
|
||||
+ case BTN_MIDDLE:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_2;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_2;
|
||||
+ break;
|
||||
+ case BTN_RIGHT:
|
||||
+ if (events[i].value == 1)
|
||||
+ flags |= KD_BUTTON_3;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_3;
|
||||
+ break;
|
||||
+ default:
|
||||
+ /* Unknow button */
|
||||
+ break;
|
||||
+ }
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+ }
|
||||
break;
|
||||
case EV_REL:
|
||||
- ke->rel[events[i].code] += events[i].value;
|
||||
+ if (events[i].code == REL_X) {
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, events[i].value, 0);
|
||||
+ }
|
||||
+ else if (events[i].code == REL_Y) {
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, events[i].value);
|
||||
+ }
|
||||
+ else if (events[i].code == REL_WHEEL) {
|
||||
+ for (j = 0; j < abs (events[i].value); j++) {
|
||||
+ if (events[i].value > 0)
|
||||
+ flags |= KD_BUTTON_4;
|
||||
+ else
|
||||
+ flags |= KD_BUTTON_5;
|
||||
+
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+
|
||||
+ if (events[i].value > 0)
|
||||
+ flags &= ~KD_BUTTON_4;
|
||||
+ else
|
||||
+ flags &= ~KD_BUTTON_5;
|
||||
+
|
||||
+ KdEnqueueMouseEvent (kdMouseInfo, flags, 0, 0);
|
||||
+ } /* events[i].code == REL_WHEEL */
|
||||
+ }
|
||||
break;
|
||||
case EV_ABS:
|
||||
- ke->abs[events[i].code] = events[i].value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -173,6 +218,12 @@
|
||||
fd = open (kdefaultEvdev[i], 2);
|
||||
if (fd >= 0)
|
||||
{
|
||||
+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
|
||||
+ {
|
||||
+ close (fd);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
mi->name = KdSaveString (kdefaultEvdev[i]);
|
||||
break;
|
||||
}
|
||||
@@ -287,7 +338,319 @@
|
||||
EvdevFini,
|
||||
};
|
||||
|
||||
-#if 0
|
||||
+/* Keyboard */
|
||||
+
|
||||
+int kbd_fd = -1;
|
||||
+int EvdevInputType = 0;
|
||||
+
|
||||
+KeySym evdevKeymap[(194 - 1 + 1) * 2] = {
|
||||
+/* These are directly mapped from DOS scanset 0 */
|
||||
+/* 1 8 */ XK_Escape, NoSymbol,
|
||||
+/* 2 9 */ XK_1, XK_exclam,
|
||||
+/* 3 10 */ XK_2, XK_at,
|
||||
+/* 4 11 */ XK_3, XK_numbersign,
|
||||
+/* 5 12 */ XK_4, XK_dollar,
|
||||
+/* 6 13 */ XK_5, XK_percent,
|
||||
+/* 7 14 */ XK_6, XK_asciicircum,
|
||||
+/* 8 15 */ XK_7, XK_ampersand,
|
||||
+/* 9 16 */ XK_8, XK_asterisk,
|
||||
+/* 10 17 */ XK_9, XK_parenleft,
|
||||
+/* 11 18 */ XK_0, XK_parenright,
|
||||
+/* 12 19 */ XK_minus, XK_underscore,
|
||||
+/* 13 20 */ XK_equal, XK_plus,
|
||||
+/* 14 21 */ XK_BackSpace, NoSymbol,
|
||||
+/* 15 22 */ XK_Tab, NoSymbol,
|
||||
+/* 16 23 */ XK_Q, NoSymbol,
|
||||
+/* 17 24 */ XK_W, NoSymbol,
|
||||
+/* 18 25 */ XK_E, NoSymbol,
|
||||
+/* 19 26 */ XK_R, NoSymbol,
|
||||
+/* 20 27 */ XK_T, NoSymbol,
|
||||
+/* 21 28 */ XK_Y, NoSymbol,
|
||||
+/* 22 29 */ XK_U, NoSymbol,
|
||||
+/* 23 30 */ XK_I, NoSymbol,
|
||||
+/* 24 31 */ XK_O, NoSymbol,
|
||||
+/* 25 32 */ XK_P, NoSymbol,
|
||||
+/* 26 33 */ XK_bracketleft, XK_braceleft,
|
||||
+/* 27 34 */ XK_bracketright, XK_braceright,
|
||||
+/* 28 35 */ XK_Return, NoSymbol,
|
||||
+/* 29 36 */ XK_Control_L, NoSymbol,
|
||||
+/* 30 37 */ XK_A, NoSymbol,
|
||||
+/* 31 38 */ XK_S, NoSymbol,
|
||||
+/* 32 39 */ XK_D, NoSymbol,
|
||||
+/* 33 40 */ XK_F, NoSymbol,
|
||||
+/* 34 41 */ XK_G, NoSymbol,
|
||||
+/* 35 42 */ XK_H, NoSymbol,
|
||||
+/* 36 43 */ XK_J, NoSymbol,
|
||||
+/* 37 44 */ XK_K, NoSymbol,
|
||||
+/* 38 45 */ XK_L, NoSymbol,
|
||||
+/* 39 46 */ XK_semicolon, XK_colon,
|
||||
+/* 40 47 */ XK_apostrophe, XK_quotedbl,
|
||||
+/* 41 48 */ XK_grave, XK_asciitilde,
|
||||
+/* 42 49 */ XK_Shift_L, NoSymbol,
|
||||
+/* 43 50 */ XK_backslash, XK_bar,
|
||||
+/* 44 51 */ XK_Z, NoSymbol,
|
||||
+/* 45 52 */ XK_X, NoSymbol,
|
||||
+/* 46 53 */ XK_C, NoSymbol,
|
||||
+/* 47 54 */ XK_V, NoSymbol,
|
||||
+/* 48 55 */ XK_B, NoSymbol,
|
||||
+/* 49 56 */ XK_N, NoSymbol,
|
||||
+/* 50 57 */ XK_M, NoSymbol,
|
||||
+/* 51 58 */ XK_comma, XK_less,
|
||||
+/* 52 59 */ XK_period, XK_greater,
|
||||
+/* 53 60 */ XK_slash, XK_question,
|
||||
+/* 54 61 */ XK_Shift_R, NoSymbol,
|
||||
+/* 55 62 */ XK_KP_Multiply, NoSymbol,
|
||||
+/* 56 63 */ XK_Alt_L, XK_Meta_L,
|
||||
+/* 57 64 */ XK_space, NoSymbol,
|
||||
+/* 58 65 */ XK_Caps_Lock, NoSymbol,
|
||||
+/* 59 66 */ XK_F1, NoSymbol,
|
||||
+/* 60 67 */ XK_F2, NoSymbol,
|
||||
+/* 61 68 */ XK_F3, NoSymbol,
|
||||
+/* 62 69 */ XK_F4, NoSymbol,
|
||||
+/* 63 70 */ XK_F5, NoSymbol,
|
||||
+/* 64 71 */ XK_F6, NoSymbol,
|
||||
+/* 65 72 */ XK_F7, NoSymbol,
|
||||
+/* 66 73 */ XK_F8, NoSymbol,
|
||||
+/* 67 74 */ XK_F9, NoSymbol,
|
||||
+/* 68 75 */ XK_F10, NoSymbol,
|
||||
+/* 69 76 */ XK_Break, XK_Pause,
|
||||
+/* 70 77 */ XK_Scroll_Lock, NoSymbol,
|
||||
+/* 71 78 */ XK_KP_Home, XK_KP_7,
|
||||
+/* 72 79 */ XK_KP_Up, XK_KP_8,
|
||||
+/* 73 80 */ XK_KP_Page_Up, XK_KP_9,
|
||||
+/* 74 81 */ XK_KP_Subtract, NoSymbol,
|
||||
+/* 75 82 */ XK_KP_Left, XK_KP_4,
|
||||
+/* 76 83 */ XK_KP_5, NoSymbol,
|
||||
+/* 77 84 */ XK_KP_Right, XK_KP_6,
|
||||
+/* 78 85 */ XK_KP_Add, NoSymbol,
|
||||
+/* 79 86 */ XK_KP_End, XK_KP_1,
|
||||
+/* 80 87 */ XK_KP_Down, XK_KP_2,
|
||||
+/* 81 88 */ XK_KP_Page_Down, XK_KP_3,
|
||||
+/* 82 89 */ XK_KP_Insert, XK_KP_0,
|
||||
+/* 83 90 */ XK_KP_Delete, XK_KP_Decimal,
|
||||
+/* 84 91 */ NoSymbol, NoSymbol,
|
||||
+/* 85 92 */ NoSymbol, NoSymbol,
|
||||
+/* 86 93 */ NoSymbol, NoSymbol,
|
||||
+/* 87 94 */ XK_F11, NoSymbol,
|
||||
+/* 88 95 */ XK_F12, NoSymbol,
|
||||
+
|
||||
+/* These are remapped from the extended set (using ExtendMap) */
|
||||
+
|
||||
+/* 89 96 */ XK_Control_R, NoSymbol,
|
||||
+/* 90 97 */ XK_KP_Enter, NoSymbol,
|
||||
+/* 91 98 */ XK_KP_Divide, NoSymbol,
|
||||
+/* 92 99 */ XK_Sys_Req, XK_Print,
|
||||
+/* 93 100 */ XK_Alt_R, XK_Meta_R,
|
||||
+/* 94 101 */ XK_Num_Lock, NoSymbol,
|
||||
+/* 95 102 */ XK_Home, NoSymbol,
|
||||
+/* 96 103 */ XK_Up, NoSymbol,
|
||||
+/* 97 104 */ XK_Page_Up, NoSymbol,
|
||||
+/* 98 105 */ XK_Left, NoSymbol,
|
||||
+/* 99 106 */ XK_Right, NoSymbol,
|
||||
+/* 100 107 */ XK_End, NoSymbol,
|
||||
+/* 101 108 */ XK_Down, NoSymbol,
|
||||
+/* 102 109 */ XK_Page_Down, NoSymbol,
|
||||
+/* 103 110 */ XK_Insert, NoSymbol,
|
||||
+/* 104 111 */ XK_Delete, NoSymbol,
|
||||
+/* 105 112 */ XK_Super_L, NoSymbol,
|
||||
+/* 106 113 */ XK_Super_R, NoSymbol,
|
||||
+/* 107 114 */ XK_Menu, NoSymbol,
|
||||
+/* 108 115 */ NoSymbol, NoSymbol,
|
||||
+/* 109 116 */ NoSymbol, NoSymbol,
|
||||
+/* 110 117 */ NoSymbol, NoSymbol,
|
||||
+/* 111 118 */ NoSymbol, NoSymbol,
|
||||
+/* 112 119 */ NoSymbol, NoSymbol,
|
||||
+
|
||||
+/* 113 120 */ NoSymbol, NoSymbol,
|
||||
+/* 114 121 */ NoSymbol, NoSymbol,
|
||||
+/* 115 122 */ NoSymbol, NoSymbol,
|
||||
+/* 116 123 */ NoSymbol, NoSymbol,
|
||||
+/* 117 124 */ NoSymbol, NoSymbol,
|
||||
+/* 118 125 */ NoSymbol, NoSymbol,
|
||||
+/* 119 126 */ NoSymbol, NoSymbol,
|
||||
+/* 120 127 */ NoSymbol, NoSymbol,
|
||||
+/* 121 128 */ NoSymbol, NoSymbol,
|
||||
+/* 122 129 */ NoSymbol, NoSymbol,
|
||||
+/* 123 130 */ NoSymbol, NoSymbol,
|
||||
+/* 124 131 */ NoSymbol, NoSymbol,
|
||||
+/* 125 132 */ NoSymbol, NoSymbol,
|
||||
+/* 126 133 */ NoSymbol, NoSymbol,
|
||||
+/* 127 134 */ NoSymbol, NoSymbol,
|
||||
+/* 128 135 */ NoSymbol, NoSymbol,
|
||||
+/* 129 136 */ NoSymbol, NoSymbol,
|
||||
+/* 130 137 */ NoSymbol, NoSymbol,
|
||||
+/* 131 138 */ NoSymbol, NoSymbol,
|
||||
+/* 132 139 */ NoSymbol, NoSymbol,
|
||||
+/* 133 140 */ NoSymbol, NoSymbol,
|
||||
+/* 134 141 */ NoSymbol, NoSymbol,
|
||||
+/* 135 142 */ NoSymbol, NoSymbol,
|
||||
+/* 136 143 */ NoSymbol, NoSymbol,
|
||||
+/* 137 144 */ NoSymbol, NoSymbol,
|
||||
+/* 138 145 */ NoSymbol, NoSymbol,
|
||||
+/* 139 146 */ NoSymbol, NoSymbol,
|
||||
+/* 140 147 */ NoSymbol, NoSymbol,
|
||||
+/* 141 148 */ NoSymbol, NoSymbol,
|
||||
+/* 142 149 */ NoSymbol, NoSymbol,
|
||||
+/* 143 150 */ NoSymbol, NoSymbol,
|
||||
+/* 144 151 */ NoSymbol, NoSymbol,
|
||||
+/* 145 152 */ NoSymbol, NoSymbol,
|
||||
+/* 146 153 */ NoSymbol, NoSymbol,
|
||||
+/* 147 154 */ NoSymbol, NoSymbol,
|
||||
+/* 148 155 */ NoSymbol, NoSymbol,
|
||||
+/* 149 156 */ NoSymbol, NoSymbol,
|
||||
+/* 150 157 */ NoSymbol, NoSymbol,
|
||||
+/* 151 158 */ NoSymbol, NoSymbol,
|
||||
+/* 152 159 */ NoSymbol, NoSymbol,
|
||||
+/* 153 160 */ NoSymbol, NoSymbol,
|
||||
+/* 154 161 */ NoSymbol, NoSymbol,
|
||||
+/* 155 162 */ NoSymbol, NoSymbol,
|
||||
+/* 156 163 */ NoSymbol, NoSymbol,
|
||||
+/* 157 164 */ NoSymbol, NoSymbol,
|
||||
+/* 158 165 */ NoSymbol, NoSymbol,
|
||||
+/* 159 166 */ NoSymbol, NoSymbol,
|
||||
+/* 160 167 */ NoSymbol, NoSymbol,
|
||||
+/* 161 168 */ NoSymbol, NoSymbol,
|
||||
+/* 162 169 */ NoSymbol, NoSymbol,
|
||||
+/* 163 170 */ NoSymbol, NoSymbol,
|
||||
+/* 164 171 */ NoSymbol, NoSymbol,
|
||||
+/* 165 172 */ NoSymbol, NoSymbol,
|
||||
+/* 166 173 */ NoSymbol, NoSymbol,
|
||||
+/* 167 174 */ NoSymbol, NoSymbol,
|
||||
+/* 168 175 */ NoSymbol, NoSymbol,
|
||||
+/* 169 176 */ NoSymbol, NoSymbol,
|
||||
+/* 170 177 */ NoSymbol, NoSymbol,
|
||||
+/* 171 178 */ NoSymbol, NoSymbol,
|
||||
+/* 172 179 */ NoSymbol, NoSymbol,
|
||||
+/* 173 180 */ NoSymbol, NoSymbol,
|
||||
+/* 174 181 */ NoSymbol, NoSymbol,
|
||||
+/* 175 182 */ NoSymbol, NoSymbol,
|
||||
+/* 176 183 */ NoSymbol, NoSymbol,
|
||||
+/* 177 184 */ NoSymbol, NoSymbol,
|
||||
+/* 178 185 */ NoSymbol, NoSymbol,
|
||||
+/* 179 186 */ NoSymbol, NoSymbol,
|
||||
+/* 180 187 */ NoSymbol, NoSymbol,
|
||||
+/* 181 188 */ NoSymbol, NoSymbol,
|
||||
+/* 182 189 */ NoSymbol, NoSymbol,
|
||||
+/* 183 190 */ NoSymbol, NoSymbol,
|
||||
+/* 184 191 */ NoSymbol, NoSymbol,
|
||||
+/* 185 192 */ NoSymbol, NoSymbol,
|
||||
+/* 186 193 */ NoSymbol, NoSymbol,
|
||||
+/* 187 194 */ NoSymbol, NoSymbol,
|
||||
+/* 188 195 */ NoSymbol, NoSymbol,
|
||||
+/* 189 196 */ NoSymbol, NoSymbol,
|
||||
+/* 190 197 */ NoSymbol, NoSymbol,
|
||||
+/* 191 198 */ NoSymbol, NoSymbol,
|
||||
+/* 192 199 */ NoSymbol, NoSymbol,
|
||||
+/* 193 200 */ NoSymbol, NoSymbol,
|
||||
+/* 194 201 */ NoSymbol, NoSymbol,
|
||||
+};
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdRead (int fd, void *closure)
|
||||
+{
|
||||
+ int i, n;
|
||||
+ struct input_event events[NUM_EVENTS];
|
||||
+
|
||||
+ n = read (fd, &events, NUM_EVENTS * sizeof (struct input_event));
|
||||
+ if (n <= 0)
|
||||
+ return;
|
||||
+
|
||||
+ n /= sizeof (struct input_event);
|
||||
+
|
||||
+ for (i = 0; i < n; i++)
|
||||
+ {
|
||||
+ if (events[i].type == EV_KEY)
|
||||
+ KdEnqueueKeyboardEvent (events[i].code, !events[i].value);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdLoad (void)
|
||||
+{
|
||||
+ kdMinScanCode = 0;
|
||||
+ kdMaxScanCode = 193;
|
||||
+ kdKeymapWidth = 2;
|
||||
+ memcpy (kdKeymap, evdevKeymap, sizeof (evdevKeymap));
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+EvdevKbdInit (void)
|
||||
+{
|
||||
+ int fd, i;
|
||||
+
|
||||
+ if (!EvdevInputType)
|
||||
+ EvdevInputType = KdAllocInputType ();
|
||||
+
|
||||
+ if (!kdKeyboard)
|
||||
+ {
|
||||
+ for (i = 0; i < NUM_DEFAULT_EVDEV; i++)
|
||||
+ {
|
||||
+ fd = open (kdefaultEvdev[i], 2);
|
||||
+ if (fd >= 0)
|
||||
+ {
|
||||
+ kdKeyboard = KdSaveString (kdefaultEvdev[i]);
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ fd = open (kdKeyboard, O_RDWR);
|
||||
+ if (fd < 0)
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (ioctl (fd, EVIOCGRAB, 1) < 0)
|
||||
+ {
|
||||
+ close (fd);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if (!KdRegisterFd (EvdevInputType, fd, EvdevKbdRead, NULL))
|
||||
+ return FALSE;
|
||||
+
|
||||
+ kbd_fd = fd;
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdFini (void)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdLeds (int leds)
|
||||
+{
|
||||
+ struct input_event event;
|
||||
+
|
||||
+ memset(&event, 0, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_CAPSL;
|
||||
+ event.value = leds & (1 << 0) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_NUML;
|
||||
+ event.value = leds & (1 << 1) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_SCROLLL;
|
||||
+ event.value = leds & (1 << 2) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+
|
||||
+ event.type = EV_LED;
|
||||
+ event.code = LED_COMPOSE;
|
||||
+ event.value = leds & (1 << 3) ? 1 : 0;
|
||||
+ write(kbd_fd, (char *) &event, sizeof(event));
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+EvdevKbdBell (int volume, int frequency, int duration)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
KdKeyboardFuncs LinuxEvdevKeyboardFuncs = {
|
||||
EvdevKbdLoad,
|
||||
EvdevKbdInit,
|
||||
@@ -296,4 +659,4 @@
|
||||
EvdevKbdFini,
|
||||
0,
|
||||
};
|
||||
-#endif
|
||||
+
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.c xserver/hw/kdrive/src/kdrive.c
|
||||
--- xserver.original/hw/kdrive/src/kdrive.c 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kdrive.c 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -73,6 +73,7 @@
|
||||
Bool kdEnabled;
|
||||
int kdSubpixelOrder;
|
||||
int kdVirtualTerminal = -1;
|
||||
+char *kdKeyboard = 0;
|
||||
Bool kdSwitchPending;
|
||||
char *kdSwitchCmd;
|
||||
DDXPointRec kdOrigin;
|
||||
@@ -795,6 +796,14 @@
|
||||
UseMsg ();
|
||||
return 2;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-keyboard"))
|
||||
+ {
|
||||
+ if ((i+1) < argc)
|
||||
+ kdKeyboard = argv[i+1];
|
||||
+ else
|
||||
+ UseMsg ();
|
||||
+ return 2;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-rgba"))
|
||||
{
|
||||
if ((i+1) < argc)
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kdrive.h xserver/hw/kdrive/src/kdrive.h
|
||||
--- xserver.original/hw/kdrive/src/kdrive.h 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kdrive.h 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -416,6 +416,7 @@
|
||||
extern Bool kdDisableZaphod;
|
||||
extern Bool kdDontZap;
|
||||
extern int kdVirtualTerminal;
|
||||
+extern char *kdKeyboard;
|
||||
extern char *kdSwitchCmd;
|
||||
extern KdOsFuncs *kdOsFuncs;
|
||||
|
||||
@@ -769,7 +770,7 @@
|
||||
ProcessInputEvents (void);
|
||||
|
||||
extern KdMouseFuncs LinuxMouseFuncs;
|
||||
-extern KdMouseFuncs LinuxEvdevFuncs;
|
||||
+extern KdMouseFuncs LinuxEvdevMouseFuncs;
|
||||
extern KdMouseFuncs Ps2MouseFuncs;
|
||||
extern KdMouseFuncs BusMouseFuncs;
|
||||
extern KdMouseFuncs MsMouseFuncs;
|
||||
@@ -777,6 +778,7 @@
|
||||
extern KdMouseFuncs TsFuncs;
|
||||
#endif
|
||||
extern KdKeyboardFuncs LinuxKeyboardFuncs;
|
||||
+extern KdKeyboardFuncs LinuxEvdevKeyboardFuncs;
|
||||
extern KdOsFuncs LinuxFuncs;
|
||||
|
||||
extern KdMouseFuncs VxWorksMouseFuncs;
|
||||
diff -u -r --exclude=CVS --exclude=Makefile --exclude='*.o' --exclude=ephyr --exclude='*.Po' xserver.original/hw/kdrive/src/kinput.c xserver/hw/kdrive/src/kinput.c
|
||||
--- xserver.original/hw/kdrive/src/kinput.c 2005-12-16 10:36:07.000000000 -0200
|
||||
+++ xserver/hw/kdrive/src/kinput.c 2005-12-16 10:37:09.000000000 -0200
|
||||
@@ -1300,6 +1300,7 @@
|
||||
xE.u.u.type = KeyPress;
|
||||
xE.u.u.detail = key_code;
|
||||
|
||||
+#ifndef XKB
|
||||
switch (KEYCOL1(key_code))
|
||||
{
|
||||
case XK_Num_Lock:
|
||||
@@ -1313,6 +1314,7 @@
|
||||
else
|
||||
xE.u.u.type = KeyPress;
|
||||
}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Check pressed keys which are already down
|
|
@ -1,58 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/fbdev/fbinit.c~ 2006-01-31 17:09:33.000000000 +0100
|
||||
+++ xserver/hw/kdrive/fbdev/fbinit.c 2006-01-31 17:11:55.000000000 +0100
|
||||
@@ -28,6 +28,8 @@
|
||||
#endif
|
||||
#include <fbdev.h>
|
||||
|
||||
+extern int use_evdev;
|
||||
+
|
||||
void
|
||||
InitCard (char *name)
|
||||
{
|
||||
@@ -45,7 +47,10 @@
|
||||
void
|
||||
InitInput (int argc, char **argv)
|
||||
{
|
||||
- KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||
+ if (use_evdev)
|
||||
+ KdInitInput (&LinuxEvdevMouseFuncs, &LinuxEvdevKeyboardFuncs);
|
||||
+ else
|
||||
+ KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs);
|
||||
#ifdef TOUCHSCREEN
|
||||
KdAddMouseDriver (&TsFuncs);
|
||||
#endif
|
||||
--- xserver/hw/kdrive/src/kdrive.c.orig 2006-01-31 17:13:28.000000000 +0100
|
||||
+++ xserver/hw/kdrive/src/kdrive.c 2006-01-31 17:15:28.000000000 +0100
|
||||
@@ -44,6 +44,8 @@
|
||||
#include "dpmsproc.h"
|
||||
#endif
|
||||
|
||||
+int use_evdev = 0;
|
||||
+
|
||||
typedef struct _kdDepths {
|
||||
CARD8 depth;
|
||||
CARD8 bpp;
|
||||
@@ -687,6 +689,7 @@
|
||||
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("-mouse path[,n] Filename of mouse device, n is number of buttons\n");
|
||||
+ ErrorF("-use-evdev Use Linux evdev input\n");
|
||||
ErrorF("-switchCmd Command to execute on vt switch\n");
|
||||
ErrorF("-nozap Don't terminate server on Ctrl+Alt+Backspace\n");
|
||||
ErrorF("vtxx Use virtual terminal xx instead of the next available\n");
|
||||
@@ -796,6 +799,11 @@
|
||||
UseMsg ();
|
||||
return 2;
|
||||
}
|
||||
+ if (!strcmp (argv[i], "-use-evdev"))
|
||||
+ {
|
||||
+ use_evdev = 1;
|
||||
+ return 1;
|
||||
+ }
|
||||
if (!strcmp (argv[i], "-keyboard"))
|
||||
{
|
||||
if ((i+1) < argc)
|
|
@ -1,29 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.4/hw/kdrive/linux/keyboard.c
|
||||
===================================================================
|
||||
--- xorg-server-1.4.orig/hw/kdrive/linux/keyboard.c 2007-09-29 18:31:15.000000000 +0200
|
||||
+++ xorg-server-1.4/hw/kdrive/linux/keyboard.c 2007-09-29 18:33:02.000000000 +0200
|
||||
@@ -486,6 +486,8 @@
|
||||
ki->minScanCode = minKeyCode;
|
||||
ki->maxScanCode = maxKeyCode;
|
||||
#endif
|
||||
+ ki->minScanCode = 0;
|
||||
+ ki->maxScanCode = NR_KEYS;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -743,11 +743,6 @@
|
||||
cfsetispeed(&nTty, 9600);
|
||||
cfsetospeed(&nTty, 9600);
|
||||
tcsetattr(fd, TCSANOW, &nTty);
|
||||
- /*
|
||||
- * Flush any pending keystrokes
|
||||
- */
|
||||
- while ((n = read (fd, buf, sizeof (buf))) > 0)
|
||||
- ;
|
||||
KdRegisterFd (fd, LinuxKeyboardRead, ki);
|
||||
return Success;
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
--- xserver/hw/kdrive/linux/mouse.c.orig 2004-05-13 14:25:51.000000000 -0700
|
||||
+++ xserver/hw/kdrive/linux/mouse.c 2005-09-22 12:20:47.000000000 -0700
|
||||
@@ -927,8 +927,10 @@ char *kdefaultMouse[] = {
|
||||
"/dev/psaux",
|
||||
"/dev/input/mice",
|
||||
"/dev/adbmouse",
|
||||
+#ifdef BREAK_MY_SERIAL_CONSOLE
|
||||
"/dev/ttyS0",
|
||||
"/dev/ttyS1",
|
||||
+#endif
|
||||
};
|
||||
|
||||
#define NUM_DEFAULT_MOUSE (sizeof (kdefaultMouse) / sizeof (kdefaultMouse[0]))
|
|
@ -1,16 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: git/configure.ac
|
||||
===================================================================
|
||||
--- git.orig/configure.ac 2009-01-15 20:35:31.000000000 +0000
|
||||
+++ git/configure.ac 2009-01-15 20:35:38.000000000 +0000
|
||||
@@ -62,7 +62,6 @@
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
AC_DISABLE_STATIC
|
||||
AC_PROG_LIBTOOL
|
||||
-DOLT
|
||||
AC_PROG_MAKE_SET
|
||||
PKG_PROG_PKG_CONFIG
|
||||
AC_PROG_LEX
|
|
@ -1,62 +0,0 @@
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Yu Ke <ke.yu@intel.com>
|
||||
|
||||
Index: xorg-server-1.2.0/Makefile.am
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/Makefile.am 2007-01-23 06:39:15.000000000 +0100
|
||||
+++ xorg-server-1.2.0/Makefile.am 2007-03-28 20:26:19.000000000 +0200
|
||||
@@ -30,6 +30,10 @@
|
||||
XINPUT_DIR=Xi
|
||||
endif
|
||||
|
||||
+if XKB
|
||||
+XKB_DIR=xkb
|
||||
+endif
|
||||
+
|
||||
if DBE
|
||||
DBE_DIR=dbe
|
||||
endif
|
||||
@@ -46,7 +50,7 @@
|
||||
randr \
|
||||
render \
|
||||
$(XINPUT_DIR) \
|
||||
- xkb \
|
||||
+ $(XKB_DIR) \
|
||||
$(DBE_DIR) \
|
||||
$(MFB_DIR) \
|
||||
$(AFB_DIR) \
|
||||
Index: xorg-server-1.2.0/configure.ac
|
||||
===================================================================
|
||||
--- xorg-server-1.2.0.orig/configure.ac 2007-01-23 06:39:15.000000000 +0100
|
||||
+++ xorg-server-1.2.0/configure.ac 2007-03-28 20:27:13.000000000 +0200
|
||||
@@ -428,6 +428,7 @@
|
||||
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMSExtension=$enableval], [DPMSExtension=yes])
|
||||
AC_ARG_ENABLE(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
|
||||
AC_ARG_ENABLE(xfree86-utils, AS_HELP_STRING([--enable-xfree86-utils], [Build xfree86 DDX utilities (default: enabled)]), [XF86UTILS=$enableval], [XF86UTILS=yes])
|
||||
+AC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Build XKB (default: enabled)]), [XKB=$enableval], [XKB=yes])
|
||||
|
||||
dnl DDXes.
|
||||
AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
|
||||
@@ -754,12 +755,15 @@
|
||||
|
||||
AC_DEFINE(SHAPE, 1, [Support SHAPE extension])
|
||||
|
||||
-AC_DEFINE(XKB, 1, [Build XKB])
|
||||
-AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
|
||||
-AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
|
||||
-REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
|
||||
-XKB_LIB='$(top_builddir)/xkb/libxkb.la'
|
||||
-XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
|
||||
+AM_CONDITIONAL(XKB, [test "x$XKB" = xyes])
|
||||
+if test "x$XKB" = xyes; then
|
||||
+ AC_DEFINE(XKB, 1, [Build XKB])
|
||||
+ AC_DEFINE(XKB_IN_SERVER, 1, [Build XKB server])
|
||||
+ AC_DEFINE(XKB_DFLT_DISABLED, 0, [Disable XKB per default])
|
||||
+ REQUIRED_MODULES="$REQUIRED_MODULES xkbfile"
|
||||
+ XKB_LIB='$(top_builddir)/xkb/libxkb.la'
|
||||
+ XKB_STUB_LIB='$(top_builddir)/xkb/libxkbstubs.la'
|
||||
+fi
|
||||
|
||||
AC_CHECK_FUNC(strcasecmp, [], AC_DEFINE([NEED_STRCASECMP], 1,
|
||||
[Do not have `strcasecmp'.]))
|
|
@ -1,113 +0,0 @@
|
|||
LICENSE = "MIT"
|
||||
DEPENDS = "compositeproto damageproto fixesproto recordproto resourceproto \
|
||||
scrnsaverproto xineramaproto videoproto xextproto xproto libxau libxext \
|
||||
libxdmcp libxfont libxrandr tslib virtual/libx11 xtrans bigreqsproto \
|
||||
xcmiscproto libdrm openssl"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=3dd2bbe3563837f80ed8926b06c1c353"
|
||||
|
||||
PROVIDES = "virtual/xserver"
|
||||
PACKAGES =+ "xserver-kdrive-fbdev \
|
||||
xserver-kdrive-sdl \
|
||||
xserver-kdrive-fake \
|
||||
xserver-kdrive-xephyr \
|
||||
xserver-kdrive-epson \
|
||||
xserver-kdrive-ati \
|
||||
xserver-kdrive-chips \
|
||||
xserver-kdrive-i810 \
|
||||
xserver-kdrive-mach64 \
|
||||
xserver-kdrive-mga \
|
||||
xserver-kdrive-neomagic \
|
||||
xserver-kdrive-nvidia \
|
||||
xserver-kdrive-pm2 \
|
||||
xserver-kdrive-r128 \
|
||||
xserver-kdrive-smi \
|
||||
xserver-kdrive-vesa \
|
||||
xserver-kdrive-via \
|
||||
xserver-kdrive-w100 \
|
||||
"
|
||||
|
||||
SECTION = "x11/base"
|
||||
DESCRIPTION = "X server from freedesktop.org"
|
||||
DESCRIPTION_xserver-kdrive-fbdev = "X server from freedesktop.org, supporting generic framebuffer devices"
|
||||
DESCRIPTION_xserver-kdrive-fake = "Fake X server"
|
||||
DESCRIPTION_xserver-kdrive-xephyr = "X server in an X window"
|
||||
DESCRIPTION_xserver-kdrive-epson = "X server from freedesktop.org, supporting Epson S1D13806 devices"
|
||||
DESCRIPTION_xserver-kdrive-sdl = "X server from freedesktop.org, SDL version"
|
||||
DESCRIPTION_xserver-kdrive-w100 = "X server from freedesktop.org, supporting the ATI imageon w100 chipset"
|
||||
DESCRIPTION_xserver-kdrive-ati = "X server from freedesktop.org, supporting ATI devices"
|
||||
DESCRIPTION_xserver-kdrive-chips = "X server from freedesktop.org, supporting Chips chipsets"
|
||||
DESCRIPTION_xserver-kdrive-i810 = "X server from freedesktop.org, supporting Intel chipsets"
|
||||
DESCRIPTION_xserver-kdrive-imageon = "X server from freedesktop.org, supporting the ATI imageon 100 chipset"
|
||||
DESCRIPTION_xserver-kdrive-mach64 = "X server from freedesktop.org, supporting mach64 chipsets"
|
||||
DESCRIPTION_xserver-kdrive-mga = "X server from freedesktop.org, supporting mga chipsets"
|
||||
DESCRIPTION_xserver-kdrive-neomagic = "X server from freedesktop.org, supporting neomagic chipsets"
|
||||
DESCRIPTION_xserver-kdrive-nvidia = "X server from freedesktop.org, supporting nvidia devices"
|
||||
DESCRIPTION_xserver-kdrive-pm2 = "X server from freedesktop.org, supporting Permedia2 chipsets"
|
||||
DESCRIPTION_xserver-kdrive-r128 = "X server from freedesktop.org, supporting rage128 chipsets"
|
||||
DESCRIPTION_xserver-kdrive-smi = "X server from freedesktop.org, supporting Silicon Motion devices"
|
||||
DESCRIPTION_xserver-kdrive-vesa = "X server from freedesktop.org, supporting any card with a VESA, VGA or even EGA BIOS. x86 hardware only"
|
||||
DESCRIPTION_xserver-kdrive-via = "X server from freedesktop.org, supporting VIA chipsets"
|
||||
|
||||
FILES_${PN} += "${libdir}/xserver/SecurityPolicy ${libdir}/xorg"
|
||||
FILES_${PN}-doc += "${datadir}/X11/xkb"
|
||||
ALLOW_EMPTY_${PN} = "1"
|
||||
|
||||
FILES_xserver-kdrive-fbdev = "${bindir}/Xfbdev"
|
||||
FILES_xserver-kdrive-fake = "${bindir}/Xfake"
|
||||
FILES_xserver-kdrive-xephyr = "${bindir}/Xephyr"
|
||||
FILES_xserver-kdrive-epson = "${bindir}/Xepson"
|
||||
FILES_xserver-kdrive-sdl = "${bindir}/Xsdl"
|
||||
FILES_xserver-kdrive-w100 = "${bindir}/Xw100"
|
||||
FILES_xserver-kdrive-ati = "${bindir}/Xati"
|
||||
FILES_xserver-kdrive-chips = "${bindir}/Xchips"
|
||||
FILES_xserver-kdrive-i810 = "${bindir}/Xi810"
|
||||
FILES_xserver-kdrive-imageon = "${bindir}/Ximageon"
|
||||
FILES_xserver-kdrive-mach64 = "${bindir}/Xmach64"
|
||||
FILES_xserver-kdrive-mga = "${bindir}/Xmga"
|
||||
FILES_xserver-kdrive-neomagic = "${bindir}/Xneomagic"
|
||||
FILES_xserver-kdrive-nvidia = "${bindir}/Xnvidia"
|
||||
FILES_xserver-kdrive-pm2 = "${bindir}/Xpm2"
|
||||
FILES_xserver-kdrive-r128 = "${bindir}/Xr128"
|
||||
FILES_xserver-kdrive-smi = "${bindir}/Xsmi"
|
||||
FILES_xserver-kdrive-vesa = "${bindir}/Xvesa"
|
||||
FILES_xserver-kdrive-via = "${bindir}/Xvia"
|
||||
|
||||
RDEPENDS_xserver-kdrive-fbdev = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-fake = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-xephyr = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-epson = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-sdl = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-w100 = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-ati = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-chips = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-i810 = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-mach64 = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-mga = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-neomagic = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-nvidia = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-pm2 = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-r128 = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-smi = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-vesa = "${PN}"
|
||||
RDEPENDS_xserver-kdrive-via = "${PN}"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
ARM_INSTRUCTION_SET = "arm"
|
||||
|
||||
EXTRA_OECONF = "--enable-composite --enable-kdrive \
|
||||
--disable-dga --disable-dri --disable-xinerama \
|
||||
--disable-xf86misc --disable-xf86vidmode \
|
||||
--disable-xorg --disable-xorgcfg \
|
||||
--disable-xkb --disable-xnest --disable-xvfb \
|
||||
--disable-xevie --disable-xprint --disable-xtrap \
|
||||
--disable-dmx \
|
||||
--without-dtrace \
|
||||
--with-default-font-path=built-ins \
|
||||
--enable-tslib --enable-xcalibrate \
|
||||
ac_cv_file__usr_share_X11_sgml_defs_ent=no"
|
||||
|
||||
do_configure_prepend() {
|
||||
sed -i -e 's/tslib-0.0/tslib-1.0/' ${S}/configure.ac
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
require xserver-kdrive.inc
|
||||
|
||||
DEPENDS += "libxkbfile libxcalibrate font-util pixman"
|
||||
|
||||
RDEPENDS_${PN} += "xkeyboard-config"
|
||||
|
||||
EXTRA_OECONF += "--disable-glx"
|
||||
|
||||
PE = "1"
|
||||
PR = "r30"
|
||||
|
||||
SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
|
||||
file://extra-kmodes.patch \
|
||||
file://disable-apm.patch \
|
||||
file://no-serial-probing.patch \
|
||||
file://keyboard-resume-workaround.patch \
|
||||
file://enable-xcalibrate.patch \
|
||||
file://hide-cursor-and-ppm-root.patch \
|
||||
file://fbdev_xrandr_ioctl.patch \
|
||||
file://fix-newer-xorg-headers.patch \
|
||||
file://crosscompile.patch \
|
||||
file://error-address-work-around.patch \
|
||||
file://fix-bogus-stack-variables.patch \
|
||||
file://nodolt.patch"
|
||||
# file://kdrive-evdev.patch
|
||||
# file://kdrive-use-evdev.patch
|
||||
# file://enable-builtin-fonts.patch
|
||||
# file://optional-xkb.patch
|
||||
|
||||
SRC_URI[md5sum] = "cafc4e2d4ef6cf6e47f3e7dffeb3346a"
|
||||
SRC_URI[sha256sum] = "a89f13b166b412930fe418ff50032dd2cde8bb181d8b47b5ca6f848d218fdcf2"
|
||||
|
||||
|
||||
S = "${WORKDIR}/xorg-server-${PV}"
|
Loading…
Reference in New Issue