Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into pci-rework
This commit is contained in:
commit
12595a77d6
|
@ -48,6 +48,7 @@ extern int __glXCopyContext(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
|
extern int __glXSwapBuffers(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
||||||
|
extern int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXUseXFont(__GLXclientState*, GLbyte*);
|
extern int __glXUseXFont(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
|
extern int __glXCreateGLXPixmap(__GLXclientState*, GLbyte*);
|
||||||
|
@ -85,6 +86,7 @@ extern int __glXSwapCopyContext(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
|
extern int __glXSwapSwapBuffers(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXSwapBindTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
||||||
|
extern int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
|
extern int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc);
|
||||||
extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
|
extern int __glXSwapUseXFont(__GLXclientState*, GLbyte*);
|
||||||
extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
|
extern int __glXSwapCreateGLXPixmap(__GLXclientState*, GLbyte*);
|
||||||
|
@ -124,4 +126,11 @@ extern __GLXdispatchRenderProcPtr __glXRenderTable[__GLX_RENDER_TABLE_SIZE];
|
||||||
extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
|
extern __GLXdispatchSingleProcPtr __glXSingleTable[__GLX_SINGLE_TABLE_SIZE];
|
||||||
extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];
|
extern __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE];
|
||||||
extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE];
|
extern __GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE];
|
||||||
|
|
||||||
|
/* Copied from mesa src/glx/x11/glxcmds.c
|
||||||
|
*
|
||||||
|
* Apparently there's no standardized opcode for this extension.
|
||||||
|
*/
|
||||||
|
#define X_GLXvop_CopySubBufferMESA 5154 /* temporary */
|
||||||
|
|
||||||
#endif /* _GLX_g_disptab_h_ */
|
#endif /* _GLX_g_disptab_h_ */
|
||||||
|
|
|
@ -1602,6 +1602,65 @@ int __glXReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
|
||||||
pGlxPixmap);
|
pGlxPixmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __glXCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
|
||||||
|
{
|
||||||
|
xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
|
||||||
|
GLXContextTag tag = req->contextTag;
|
||||||
|
__GLXcontext *glxc = NULL;
|
||||||
|
__GLXdrawable *pGlxDraw;
|
||||||
|
__GLXpixmap *pPixmap;
|
||||||
|
ClientPtr client = cl->client;
|
||||||
|
GLXDrawable drawId;
|
||||||
|
int error;
|
||||||
|
int x, y, width, height;
|
||||||
|
|
||||||
|
(void) client;
|
||||||
|
(void) req;
|
||||||
|
|
||||||
|
pc += __GLX_VENDPRIV_HDR_SIZE;
|
||||||
|
|
||||||
|
drawId = *((CARD32 *) (pc));
|
||||||
|
x = *((INT32 *) (pc + 4));
|
||||||
|
y = *((INT32 *) (pc + 8));
|
||||||
|
width = *((INT32 *) (pc + 12));
|
||||||
|
height = *((INT32 *) (pc + 16));
|
||||||
|
|
||||||
|
if (tag) {
|
||||||
|
glxc = __glXLookupContextByTag(cl, tag);
|
||||||
|
if (!glxc) {
|
||||||
|
return __glXError(GLXBadContextTag);
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
** The calling thread is swapping its current drawable. In this case,
|
||||||
|
** glxSwapBuffers is in both GL and X streams, in terms of
|
||||||
|
** sequentiality.
|
||||||
|
*/
|
||||||
|
if (__glXForceCurrent(cl, tag, &error)) {
|
||||||
|
/*
|
||||||
|
** Do whatever is needed to make sure that all preceding requests
|
||||||
|
** in both streams are completed before the swap is executed.
|
||||||
|
*/
|
||||||
|
CALL_Finish( GET_DISPATCH(), () );
|
||||||
|
__GLX_NOTE_FLUSHED_CMDS(glxc);
|
||||||
|
} else {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
error = GetDrawableOrPixmap(glxc, drawId, &pGlxDraw, &pPixmap, client);
|
||||||
|
if (error != Success)
|
||||||
|
return error;
|
||||||
|
|
||||||
|
if (pGlxDraw == NULL ||
|
||||||
|
pGlxDraw->type != DRAWABLE_WINDOW ||
|
||||||
|
pGlxDraw->copySubBuffer == NULL)
|
||||||
|
return __glXError(GLXBadDrawable);
|
||||||
|
|
||||||
|
(*pGlxDraw->copySubBuffer)(pGlxDraw, x, y, width, height);
|
||||||
|
|
||||||
|
return Success;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Get drawable attributes
|
** Get drawable attributes
|
||||||
*/
|
*/
|
||||||
|
@ -2239,6 +2298,8 @@ int __glXVendorPrivate(__GLXclientState *cl, GLbyte *pc)
|
||||||
return __glXBindTexImageEXT(cl, pc);
|
return __glXBindTexImageEXT(cl, pc);
|
||||||
case X_GLXvop_ReleaseTexImageEXT:
|
case X_GLXvop_ReleaseTexImageEXT:
|
||||||
return __glXReleaseTexImageEXT(cl, pc);
|
return __glXReleaseTexImageEXT(cl, pc);
|
||||||
|
case X_GLXvop_CopySubBufferMESA:
|
||||||
|
return __glXCopySubBufferMESA(cl, pc);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -494,6 +494,31 @@ int __glXSwapReleaseTexImageEXT(__GLXclientState *cl, GLbyte *pc)
|
||||||
return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
|
return __glXReleaseTexImageEXT(cl, (GLbyte *)pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int __glXSwapCopySubBufferMESA(__GLXclientState *cl, GLbyte *pc)
|
||||||
|
{
|
||||||
|
xGLXVendorPrivateReq *req = (xGLXVendorPrivateReq *) pc;
|
||||||
|
GLXDrawable *drawId;
|
||||||
|
int *buffer;
|
||||||
|
|
||||||
|
(void) drawId;
|
||||||
|
(void) buffer;
|
||||||
|
|
||||||
|
__GLX_DECLARE_SWAP_VARIABLES;
|
||||||
|
|
||||||
|
pc += __GLX_VENDPRIV_HDR_SIZE;
|
||||||
|
|
||||||
|
__GLX_SWAP_SHORT(&req->length);
|
||||||
|
__GLX_SWAP_INT(&req->contextTag);
|
||||||
|
__GLX_SWAP_INT(pc);
|
||||||
|
__GLX_SWAP_INT(pc + 4);
|
||||||
|
__GLX_SWAP_INT(pc + 8);
|
||||||
|
__GLX_SWAP_INT(pc + 12);
|
||||||
|
__GLX_SWAP_INT(pc + 16);
|
||||||
|
|
||||||
|
return __glXCopySubBufferMESA(cl, pc);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
|
int __glXSwapGetDrawableAttributesSGIX(__GLXclientState *cl, GLbyte *pc)
|
||||||
{
|
{
|
||||||
xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
|
xGLXVendorPrivateWithReplyReq *req = (xGLXVendorPrivateWithReplyReq *)pc;
|
||||||
|
@ -974,6 +999,8 @@ int __glXSwapVendorPrivate(__GLXclientState *cl, GLbyte *pc)
|
||||||
return __glXSwapBindTexImageEXT(cl, pc);
|
return __glXSwapBindTexImageEXT(cl, pc);
|
||||||
case X_GLXvop_ReleaseTexImageEXT:
|
case X_GLXvop_ReleaseTexImageEXT:
|
||||||
return __glXSwapReleaseTexImageEXT(cl, pc);
|
return __glXSwapReleaseTexImageEXT(cl, pc);
|
||||||
|
case X_GLXvop_CopySubBufferMESA:
|
||||||
|
return __glXSwapCopySubBufferMESA(cl, pc);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,8 @@ struct __GLXdrawable {
|
||||||
void (*destroy)(__GLXdrawable *private);
|
void (*destroy)(__GLXdrawable *private);
|
||||||
GLboolean (*resize)(__GLXdrawable *private);
|
GLboolean (*resize)(__GLXdrawable *private);
|
||||||
GLboolean (*swapBuffers)(__GLXdrawable *);
|
GLboolean (*swapBuffers)(__GLXdrawable *);
|
||||||
|
void (*copySubBuffer)(__GLXdrawable *drawable,
|
||||||
|
int x, int y, int w, int h);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** list of drawable private structs
|
** list of drawable private structs
|
||||||
|
|
|
@ -112,12 +112,28 @@ struct __GLXDRIdrawable {
|
||||||
* months ago. :(
|
* months ago. :(
|
||||||
* 20050727 - Gut all the old interfaces. This breaks compatability with
|
* 20050727 - Gut all the old interfaces. This breaks compatability with
|
||||||
* any DRI driver built to any previous version.
|
* any DRI driver built to any previous version.
|
||||||
|
* 20060314 - Added support for GLX_MESA_copy_sub_buffer.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define INTERNAL_VERSION 20050727
|
#define INTERNAL_VERSION 20050727
|
||||||
|
|
||||||
static const char CREATE_NEW_SCREEN_FUNC[] =
|
static const char CREATE_NEW_SCREEN_FUNC[] =
|
||||||
"__driCreateNewScreen_" STRINGIFY (INTERNAL_VERSION);
|
"__driCreateNewScreen_" STRINGIFY (INTERNAL_VERSION);
|
||||||
|
|
||||||
|
/* The DRI driver entry point version wasn't bumped when the
|
||||||
|
* copySubBuffer functionality was added to the DRI drivers, but the
|
||||||
|
* functionality is still conditional on the value of the
|
||||||
|
* internal_api_version passed to __driCreateNewScreen. However, the
|
||||||
|
* screen constructor doesn't fail for a DRI driver that's older than
|
||||||
|
* the passed in version number, so there's no way we can know for
|
||||||
|
* sure that we can actually use the copySubBuffer functionality. But
|
||||||
|
* since the earliest (and at this point only) released mesa version
|
||||||
|
* (6.5) that uses the 20050727 entry point does have copySubBuffer,
|
||||||
|
* we'll just settle for that. We still have to pass in a higher to
|
||||||
|
* the screen constructor to enable the functionality.
|
||||||
|
*/
|
||||||
|
#define COPY_SUB_BUFFER_INTERNAL_VERSION 20060314
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__glXDRIleaveServer(void)
|
__glXDRIleaveServer(void)
|
||||||
{
|
{
|
||||||
|
@ -177,6 +193,27 @@ __glXDRIdrawableSwapBuffers(__GLXdrawable *basePrivate)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
__glXDRIdrawableCopySubBuffer(__GLXdrawable *basePrivate,
|
||||||
|
int x, int y, int w, int h)
|
||||||
|
{
|
||||||
|
__GLXDRIdrawable *private = (__GLXDRIdrawable *) basePrivate;
|
||||||
|
__GLXDRIscreen *screen;
|
||||||
|
|
||||||
|
/* FIXME: We're jumping through hoops here to get the DRIdrawable
|
||||||
|
* which the dri driver tries to keep to it self... cf. FIXME in
|
||||||
|
* createDrawable. */
|
||||||
|
|
||||||
|
screen = (__GLXDRIscreen *) __glXgetActiveScreen(private->base.pDraw->pScreen->myNum);
|
||||||
|
private->driDrawable = (screen->driScreen.getDrawable)(NULL,
|
||||||
|
private->base.drawId,
|
||||||
|
screen->driScreen.private);
|
||||||
|
|
||||||
|
(*private->driDrawable->copySubBuffer)(NULL,
|
||||||
|
private->driDrawable->private,
|
||||||
|
x, y, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
__glXDRIcontextDestroy(__GLXcontext *baseContext)
|
__glXDRIcontextDestroy(__GLXcontext *baseContext)
|
||||||
{
|
{
|
||||||
|
@ -477,6 +514,7 @@ __glXDRIscreenCreateDrawable(__GLXscreen *screen,
|
||||||
private->base.destroy = __glXDRIdrawableDestroy;
|
private->base.destroy = __glXDRIdrawableDestroy;
|
||||||
private->base.resize = __glXDRIdrawableResize;
|
private->base.resize = __glXDRIdrawableResize;
|
||||||
private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
|
private->base.swapBuffers = __glXDRIdrawableSwapBuffers;
|
||||||
|
private->base.copySubBuffer = __glXDRIdrawableCopySubBuffer;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
/* FIXME: It would only be natural that we called
|
/* FIXME: It would only be natural that we called
|
||||||
|
@ -770,7 +808,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
__DRIframebuffer framebuffer;
|
__DRIframebuffer framebuffer;
|
||||||
int fd = -1;
|
int fd = -1;
|
||||||
int status;
|
int status;
|
||||||
int api_ver = INTERNAL_VERSION;
|
int api_ver = COPY_SUB_BUFFER_INTERNAL_VERSION;
|
||||||
drm_magic_t magic;
|
drm_magic_t magic;
|
||||||
drmVersionPtr version;
|
drmVersionPtr version;
|
||||||
char *driverName;
|
char *driverName;
|
||||||
|
|
|
@ -139,6 +139,7 @@ static char GLXServerExtensions[] =
|
||||||
"GLX_SGIX_swap_barrier "
|
"GLX_SGIX_swap_barrier "
|
||||||
#endif
|
#endif
|
||||||
"GLX_SGIX_fbconfig "
|
"GLX_SGIX_fbconfig "
|
||||||
|
"GLX_MESA_copy_sub_buffer "
|
||||||
;
|
;
|
||||||
|
|
||||||
__GLXscreen **__glXActiveScreens;
|
__GLXscreen **__glXActiveScreens;
|
||||||
|
|
25
configure.ac
25
configure.ac
|
@ -421,7 +421,7 @@ AC_ARG_ENABLE(multibuffer, AS_HELP_STRING([--enable-multibuffer], [Build Mult
|
||||||
AC_ARG_ENABLE(fontcache, AS_HELP_STRING([--enable-fontcache], [Build FontCache extension (default: disabled)]), [FONTCACHE=$enableval], [FONTCACHE=no])
|
AC_ARG_ENABLE(fontcache, AS_HELP_STRING([--enable-fontcache], [Build FontCache extension (default: disabled)]), [FONTCACHE=$enableval], [FONTCACHE=no])
|
||||||
AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
|
AC_ARG_ENABLE(dbe, AS_HELP_STRING([--disable-dbe], [Build DBE extension (default: enabled)]), [DBE=$enableval], [DBE=yes])
|
||||||
AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
|
AC_ARG_ENABLE(xf86bigfont, AS_HELP_STRING([--disable-xf86bigfont], [Build XF86 Big Font extension (default: enabled)]), [XF86BIGFONT=$enableval], [XF86BIGFONT=yes])
|
||||||
AC_ARG_ENABLE(dpms, AS_HELP_STRING([--disable-dpms], [Build DPMS extension (default: enabled)]), [DPMS=$enableval], [DPMSExtension=yes])
|
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(xinput, AS_HELP_STRING([--disable-xinput], [Build XInput Extension (default: enabled)]), [XINPUT=$enableval], [XINPUT=yes])
|
||||||
|
|
||||||
dnl DDXes.
|
dnl DDXes.
|
||||||
|
@ -572,7 +572,7 @@ fi
|
||||||
|
|
||||||
if test "x$GLX" = xyes && ! test "x$MESA_SOURCE" = x; then
|
if test "x$GLX" = xyes && ! test "x$MESA_SOURCE" = x; then
|
||||||
PKG_CHECK_MODULES([XLIB], [x11])
|
PKG_CHECK_MODULES([XLIB], [x11])
|
||||||
PKG_CHECK_MODULES([GL], [glproto >= 1.4.6])
|
PKG_CHECK_MODULES([GL], [glproto >= 1.4.7])
|
||||||
AC_SUBST(XLIB_CFLAGS)
|
AC_SUBST(XLIB_CFLAGS)
|
||||||
AC_DEFINE(GLXEXT, 1, [Build GLX extension])
|
AC_DEFINE(GLXEXT, 1, [Build GLX extension])
|
||||||
GLX_LIBS='$(top_builddir)/GL/glx/libglx.la $(top_builddir)/GL/mesa/libGLcore.la'
|
GLX_LIBS='$(top_builddir)/GL/glx/libglx.la $(top_builddir)/GL/mesa/libGLcore.la'
|
||||||
|
@ -1065,6 +1065,25 @@ dnl has it in libc), or if libdl is needed to get it.
|
||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# check whether struct kbd_repeat has the 'period' field.
|
||||||
|
# on kernels < 2.5.42 it's called 'rate' instead.
|
||||||
|
AC_TRY_COMPILE([
|
||||||
|
#include <linux/kd.h>
|
||||||
|
#ifdef __sparc__
|
||||||
|
#include <asm/param.h>
|
||||||
|
#include <asm/kbio.h>
|
||||||
|
#endif
|
||||||
|
],[
|
||||||
|
int main () {
|
||||||
|
struct kbd_repeat k;
|
||||||
|
k.period = 0;
|
||||||
|
return 0;
|
||||||
|
}],
|
||||||
|
[period_field="period"],
|
||||||
|
[period_field="rate"])
|
||||||
|
AC_DEFINE_UNQUOTED(LNX_KBD_PERIOD_NAME, [$period_field],
|
||||||
|
[Name of the period field in struct kbd_repeat])
|
||||||
;;
|
;;
|
||||||
freebsd* | kfreebsd*-gnu)
|
freebsd* | kfreebsd*-gnu)
|
||||||
XORG_OS="freebsd"
|
XORG_OS="freebsd"
|
||||||
|
@ -1539,7 +1558,7 @@ AC_ARG_ENABLE(xorgcfg, AS_HELP_STRING([--enable-xorgcfg],
|
||||||
[XORGCFG=$enableval],[XORGCFG=yes])
|
[XORGCFG=$enableval],[XORGCFG=yes])
|
||||||
if test x$XORGCFG = xyes ; then
|
if test x$XORGCFG = xyes ; then
|
||||||
PKG_CHECK_MODULES([XORGCFG_DEP],
|
PKG_CHECK_MODULES([XORGCFG_DEP],
|
||||||
[xkbui xkbfile xxf86misc xxf86vm xaw7 xmu xt xpm xext x11])
|
[xkbui >= 1.0.2 xkbfile xxf86misc xxf86vm xaw7 xmu xt xpm xext x11])
|
||||||
AC_CHECK_LIB([curses],[waddstr],
|
AC_CHECK_LIB([curses],[waddstr],
|
||||||
[XORGCFG_DEP_LIBS="$XORGCFG_DEP_LIBS -lcurses"; CURSES=yes],
|
[XORGCFG_DEP_LIBS="$XORGCFG_DEP_LIBS -lcurses"; CURSES=yes],
|
||||||
AC_CHECK_LIB([ncurses],[waddstr],
|
AC_CHECK_LIB([ncurses],[waddstr],
|
||||||
|
|
|
@ -29,7 +29,8 @@ libdix_la_SOURCES = \
|
||||||
swaprep.c \
|
swaprep.c \
|
||||||
swapreq.c \
|
swapreq.c \
|
||||||
tables.c \
|
tables.c \
|
||||||
window.c
|
window.c \
|
||||||
|
strcasecmp.c
|
||||||
|
|
||||||
libxpstubs_la_SOURCES = \
|
libxpstubs_la_SOURCES = \
|
||||||
xpstubs.c
|
xpstubs.c
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* $Xorg: xkbmisc.c,v 1.4 2000/08/17 19:46:44 cpqbld Exp $ */
|
||||||
|
/************************************************************
|
||||||
|
Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc.
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and distribute this
|
||||||
|
software and its documentation for any purpose and without
|
||||||
|
fee is hereby granted, 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 Silicon Graphics not be
|
||||||
|
used in advertising or publicity pertaining to distribution
|
||||||
|
of the software without specific prior written permission.
|
||||||
|
Silicon Graphics makes no representation about the suitability
|
||||||
|
of this software for any purpose. It is provided "as is"
|
||||||
|
without any express or implied warranty.
|
||||||
|
|
||||||
|
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
|
||||||
|
GRAPHICS 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.
|
||||||
|
|
||||||
|
********************************************************/
|
||||||
|
/* $XFree86: xc/lib/xkbfile/xkbmisc.c,v 1.7 2003/07/16 02:31:10 dawes Exp $ */
|
||||||
|
|
||||||
|
#ifdef HAVE_DIX_CONFIG_H
|
||||||
|
#include <dix-config.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <ctype.h>
|
||||||
|
#include "dix.h"
|
||||||
|
|
||||||
|
#ifdef NEED_STRCASECMP
|
||||||
|
int
|
||||||
|
xstrcasecmp(char *str1,char *str2)
|
||||||
|
{
|
||||||
|
const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
|
||||||
|
|
||||||
|
while (tolower(*us1) == tolower(*us2)) {
|
||||||
|
if (*us1++ == '\0')
|
||||||
|
return (0);
|
||||||
|
us2++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (tolower(*us1) - tolower(*us2));
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -662,7 +662,7 @@ static int dmxProcRenderSetPictureFilter(ClientPtr client)
|
||||||
int nparams;
|
int nparams;
|
||||||
REQUEST(xRenderSetPictureFilterReq);
|
REQUEST(xRenderSetPictureFilterReq);
|
||||||
|
|
||||||
REQUEST_SIZE_MATCH(xRenderSetPictureFilterReq);
|
REQUEST_AT_LEAST_SIZE(xRenderSetPictureFilterReq);
|
||||||
VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess,
|
VERIFY_PICTURE(pPicture, stuff->picture, client, SecurityWriteAccess,
|
||||||
RenderErrBase + BadPicture);
|
RenderErrBase + BadPicture);
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,8 @@ extern DeviceIntPtr pKdKeyboard;
|
||||||
|
|
||||||
static int mouseState = 0;
|
static int mouseState = 0;
|
||||||
|
|
||||||
|
Bool EphyrWantGrayScale = 0;
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
ephyrInitialize (KdCardInfo *card, EphyrPriv *priv)
|
ephyrInitialize (KdCardInfo *card, EphyrPriv *priv)
|
||||||
{
|
{
|
||||||
|
@ -81,6 +83,9 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
|
||||||
screen->height = height;
|
screen->height = height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (EphyrWantGrayScale)
|
||||||
|
screen->fb[0].depth = 8;
|
||||||
|
|
||||||
if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
|
if (screen->fb[0].depth && screen->fb[0].depth != hostx_get_depth())
|
||||||
{
|
{
|
||||||
if (screen->fb[0].depth < hostx_get_depth()
|
if (screen->fb[0].depth < hostx_get_depth()
|
||||||
|
@ -98,6 +103,9 @@ ephyrScreenInitialize (KdScreenInfo *screen, EphyrScrPriv *scrpriv)
|
||||||
|
|
||||||
if (screen->fb[0].depth <= 8)
|
if (screen->fb[0].depth <= 8)
|
||||||
{
|
{
|
||||||
|
if (EphyrWantGrayScale)
|
||||||
|
screen->fb[0].visuals = ((1 << StaticGray) | (1 << GrayScale));
|
||||||
|
else
|
||||||
screen->fb[0].visuals = ((1 << StaticGray) |
|
screen->fb[0].visuals = ((1 << StaticGray) |
|
||||||
(1 << GrayScale) |
|
(1 << GrayScale) |
|
||||||
(1 << StaticColor) |
|
(1 << StaticColor) |
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
#include "ephyr.h"
|
#include "ephyr.h"
|
||||||
|
|
||||||
extern Window EphyrPreExistingHostWin;
|
extern Window EphyrPreExistingHostWin;
|
||||||
|
extern Bool EphyrWantGrayScale;
|
||||||
|
|
||||||
void
|
void
|
||||||
InitCard (char *name)
|
InitCard (char *name)
|
||||||
|
@ -62,6 +63,7 @@ ddxUseMsg (void)
|
||||||
ErrorF("-parent XID Use existing window as Xephyr root win\n");
|
ErrorF("-parent XID Use existing window as Xephyr root win\n");
|
||||||
ErrorF("-host-cursor Re-use exisiting X host server cursor\n");
|
ErrorF("-host-cursor Re-use exisiting X host server cursor\n");
|
||||||
ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n");
|
ErrorF("-fullscreen Attempt to run Xephyr fullscreen\n");
|
||||||
|
ErrorF("-grayscale Simulate 8bit grayscale\n");
|
||||||
ErrorF("-fakexa Simulate acceleration using software rendering\n");
|
ErrorF("-fakexa Simulate acceleration using software rendering\n");
|
||||||
ErrorF("\n");
|
ErrorF("\n");
|
||||||
|
|
||||||
|
@ -94,6 +96,11 @@ ddxProcessArgument (int argc, char **argv, int i)
|
||||||
hostx_use_fullscreen();
|
hostx_use_fullscreen();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
else if (!strcmp (argv[i], "-grayscale"))
|
||||||
|
{
|
||||||
|
EphyrWantGrayScale = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
else if (!strcmp (argv[i], "-fakexa"))
|
else if (!strcmp (argv[i], "-fakexa"))
|
||||||
{
|
{
|
||||||
ephyrFuncs.initAccel = ephyrDrawInit;
|
ephyrFuncs.initAccel = ephyrDrawInit;
|
||||||
|
|
|
@ -669,7 +669,7 @@ void
|
||||||
hostx_load_keymap(void)
|
hostx_load_keymap(void)
|
||||||
{
|
{
|
||||||
KeySym *keymap;
|
KeySym *keymap;
|
||||||
int mapWidth, min_keycode, max_keycode;
|
int host_width, min_keycode, max_keycode, width;
|
||||||
int i,j;
|
int i,j;
|
||||||
|
|
||||||
XDisplayKeycodes(HostX.dpy, &min_keycode, &max_keycode);
|
XDisplayKeycodes(HostX.dpy, &min_keycode, &max_keycode);
|
||||||
|
@ -679,25 +679,21 @@ hostx_load_keymap(void)
|
||||||
keymap = XGetKeyboardMapping(HostX.dpy,
|
keymap = XGetKeyboardMapping(HostX.dpy,
|
||||||
min_keycode,
|
min_keycode,
|
||||||
max_keycode - min_keycode + 1,
|
max_keycode - min_keycode + 1,
|
||||||
&mapWidth);
|
&host_width);
|
||||||
|
|
||||||
/* Try and copy the hosts keymap into our keymap to avoid loads
|
/* Try and copy the hosts keymap into our keymap to avoid loads
|
||||||
* of messing around.
|
* of messing around.
|
||||||
*
|
*
|
||||||
* kdrive cannot can have more than 4 keysyms per keycode
|
* kdrive cannot can have more than 4 keysyms per keycode
|
||||||
* so we only copy the first 4 ( xorg has 6 per keycode )
|
* so we only copy at most the first 4 ( xorg has 6 per keycode, XVNC 2 )
|
||||||
*/
|
*/
|
||||||
|
width = (host_width > 4) ? 4 : host_width;
|
||||||
|
|
||||||
for (i=0; i<(max_keycode - min_keycode+1); i++)
|
for (i=0; i<(max_keycode - min_keycode+1); i++)
|
||||||
for (j=0; j<4; j++)
|
for (j=0; j<width; j++)
|
||||||
kdKeymap[ (i*4)+j ] = keymap[ (i*mapWidth) + j ];
|
kdKeymap[ (i*width)+j ] = keymap[ (i*host_width) + j ];
|
||||||
|
|
||||||
/* old way
|
EPHYR_DBG("keymap width, host:%d kdrive:%d", host_width, width);
|
||||||
memcpy (kdKeymap, keymap,
|
|
||||||
(max_keycode - min_keycode + 1)*mapWidth*sizeof(KeySym));
|
|
||||||
*/
|
|
||||||
|
|
||||||
EPHYR_DBG("keymap width: %d", mapWidth);
|
|
||||||
|
|
||||||
/* all kdrive vars - see kkeymap.c */
|
/* all kdrive vars - see kkeymap.c */
|
||||||
|
|
||||||
|
@ -705,7 +701,7 @@ hostx_load_keymap(void)
|
||||||
kdMaxScanCode = max_keycode;
|
kdMaxScanCode = max_keycode;
|
||||||
kdMinKeyCode = min_keycode;
|
kdMinKeyCode = min_keycode;
|
||||||
kdMaxKeyCode = max_keycode;
|
kdMaxKeyCode = max_keycode;
|
||||||
kdKeymapWidth = (mapWidth > 4) ? 4 : mapWidth;
|
kdKeymapWidth = width;
|
||||||
|
|
||||||
XFree(keymap);
|
XFree(keymap);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1079,7 +1079,10 @@ xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset,
|
||||||
extern volatile unsigned char *ioBase;
|
extern volatile unsigned char *ioBase;
|
||||||
|
|
||||||
#if defined(linux) && defined(__powerpc64__)
|
#if defined(linux) && defined(__powerpc64__)
|
||||||
|
# include <linux/version.h>
|
||||||
|
# if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
|
||||||
# include <asm/memory.h>
|
# include <asm/memory.h>
|
||||||
|
# endif
|
||||||
#endif /* defined(linux) && defined(__powerpc64__) */
|
#endif /* defined(linux) && defined(__powerpc64__) */
|
||||||
#ifndef eieio /* We deal with arch-specific eieio() routines above... */
|
#ifndef eieio /* We deal with arch-specific eieio() routines above... */
|
||||||
# define eieio() __asm__ __volatile__ ("eieio" ::: "memory")
|
# define eieio() __asm__ __volatile__ ("eieio" ::: "memory")
|
||||||
|
|
|
@ -95,6 +95,7 @@ libtype1_la_SOURCES = type1mod.c
|
||||||
libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
|
libdixmods_la_SOURCES = $(top_srcdir)/mi/miinitext.c
|
||||||
|
|
||||||
libxorgxkb_la_SOURCES = xkbVT.c xkbPrivate.c xkbKillSrv.c
|
libxorgxkb_la_SOURCES = xkbVT.c xkbPrivate.c xkbKillSrv.c
|
||||||
|
libxorgxkb_la_LIBADD = $(top_builddir)/dix/libdix.la
|
||||||
|
|
||||||
libxtrap_la_LDFLAGS = -avoid-version
|
libxtrap_la_LDFLAGS = -avoid-version
|
||||||
libxtrap_la_LIBADD = $(top_builddir)/XTrap/libxtrap.la
|
libxtrap_la_LIBADD = $(top_builddir)/XTrap/libxtrap.la
|
||||||
|
|
|
@ -26,13 +26,13 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act)
|
||||||
if (xf86act->type == XkbSA_XFree86Private) {
|
if (xf86act->type == XkbSA_XFree86Private) {
|
||||||
memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize);
|
memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize);
|
||||||
msgbuf[XkbAnyActionDataSize]= '\0';
|
msgbuf[XkbAnyActionDataSize]= '\0';
|
||||||
if (strcmp(msgbuf, "-vmode")==0)
|
if (strcasecmp(msgbuf, "-vmode")==0)
|
||||||
xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
|
xf86ProcessActionEvent(ACTION_PREV_MODE, NULL);
|
||||||
else if (strcmp(msgbuf, "+vmode")==0)
|
else if (strcasecmp(msgbuf, "+vmode")==0)
|
||||||
xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
|
xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL);
|
||||||
else if (strcmp(msgbuf, "ungrab")==0)
|
else if (strcasecmp(msgbuf, "ungrab")==0)
|
||||||
xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL);
|
xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL);
|
||||||
else if (strcmp(msgbuf, "clsgrb")==0)
|
else if (strcasecmp(msgbuf, "clsgrb")==0)
|
||||||
xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL);
|
xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL);
|
||||||
else
|
else
|
||||||
xf86ProcessActionEvent(ACTION_MESSAGE, (void *) msgbuf);
|
xf86ProcessActionEvent(ACTION_MESSAGE, (void *) msgbuf);
|
||||||
|
|
|
@ -67,25 +67,6 @@ xf86GetKbdLeds()
|
||||||
return(leds);
|
return(leds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* kbd rate stuff based on kbdrate.c from Rik Faith <faith@cs.unc.edu> et.al.
|
|
||||||
* from util-linux-2.9t package */
|
|
||||||
|
|
||||||
#include <linux/kd.h>
|
|
||||||
#include <linux/version.h>
|
|
||||||
#ifdef __sparc__
|
|
||||||
#include <asm/param.h>
|
|
||||||
#include <asm/kbio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Deal with spurious kernel header change in struct kbd_repeat.
|
|
||||||
We undo this define after the routine using that struct is over,
|
|
||||||
so as not to interfere with other 'rate' elements. */
|
|
||||||
#if defined(LINUX_VERSION_CODE) && defined(KERNEL_VERSION)
|
|
||||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,42)
|
|
||||||
# define rate period
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
KDKBDREP_ioctl_ok(int rate, int delay) {
|
KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
#if defined(KDKBDREP) && !defined(__sparc__)
|
#if defined(KDKBDREP) && !defined(__sparc__)
|
||||||
|
@ -94,18 +75,18 @@ KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
struct kbd_repeat kbdrep_s;
|
struct kbd_repeat kbdrep_s;
|
||||||
|
|
||||||
/* don't change, just test */
|
/* don't change, just test */
|
||||||
kbdrep_s.rate = -1;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = -1;
|
||||||
kbdrep_s.delay = -1;
|
kbdrep_s.delay = -1;
|
||||||
if (ioctl( xf86Info.consoleFd, KDKBDREP, &kbdrep_s )) {
|
if (ioctl( xf86Info.consoleFd, KDKBDREP, &kbdrep_s )) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/* do the change */
|
/* do the change */
|
||||||
if (rate == 0) /* switch repeat off */
|
if (rate == 0) /* switch repeat off */
|
||||||
kbdrep_s.rate = 0;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 0;
|
||||||
else
|
else
|
||||||
kbdrep_s.rate = 10000 / rate; /* convert cps to msec */
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 10000 / rate; /* convert cps to msec */
|
||||||
if (kbdrep_s.rate < 1)
|
if (kbdrep_s.LNX_KBD_PERIOD_NAME < 1)
|
||||||
kbdrep_s.rate = 1;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 1;
|
||||||
kbdrep_s.delay = delay;
|
kbdrep_s.delay = delay;
|
||||||
if (kbdrep_s.delay < 1)
|
if (kbdrep_s.delay < 1)
|
||||||
kbdrep_s.delay = 1;
|
kbdrep_s.delay = 1;
|
||||||
|
@ -120,15 +101,6 @@ KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
#endif /* KDKBDREP */
|
#endif /* KDKBDREP */
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef rate
|
|
||||||
|
|
||||||
/* Undo the earlier define for the struct kbd_repeat problem. */
|
|
||||||
#if defined(LINUX_VERSION_CODE) && defined(KERNEL_VERSION)
|
|
||||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,42)
|
|
||||||
# undef rate
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
KIOCSRATE_ioctl_ok(int rate, int delay) {
|
KIOCSRATE_ioctl_ok(int rate, int delay) {
|
||||||
#ifdef KIOCSRATE
|
#ifdef KIOCSRATE
|
||||||
|
|
|
@ -97,25 +97,6 @@ GetKbdLeds(InputInfoPtr pInfo)
|
||||||
return(leds);
|
return(leds);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* kbd rate stuff based on kbdrate.c from Rik Faith <faith@cs.unc.edu> et.al.
|
|
||||||
* from util-linux-2.9t package */
|
|
||||||
|
|
||||||
#include <linux/kd.h>
|
|
||||||
#include <linux/version.h>
|
|
||||||
#ifdef __sparc__
|
|
||||||
#include <asm/param.h>
|
|
||||||
#include <asm/kbio.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Deal with spurious kernel header change in struct kbd_repeat.
|
|
||||||
We undo this define after the routine using that struct is over,
|
|
||||||
so as not to interfere with other 'rate' elements. */
|
|
||||||
#if defined(LINUX_VERSION_CODE) && defined(KERNEL_VERSION)
|
|
||||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,42)
|
|
||||||
# define rate period
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
KDKBDREP_ioctl_ok(int rate, int delay) {
|
KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
#if defined(KDKBDREP) && !defined(__sparc__)
|
#if defined(KDKBDREP) && !defined(__sparc__)
|
||||||
|
@ -124,7 +105,7 @@ KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
struct kbd_repeat kbdrep_s;
|
struct kbd_repeat kbdrep_s;
|
||||||
|
|
||||||
/* don't change, just test */
|
/* don't change, just test */
|
||||||
kbdrep_s.rate = -1;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = -1;
|
||||||
kbdrep_s.delay = -1;
|
kbdrep_s.delay = -1;
|
||||||
if (ioctl( xf86Info.consoleFd, KDKBDREP, &kbdrep_s )) {
|
if (ioctl( xf86Info.consoleFd, KDKBDREP, &kbdrep_s )) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -132,11 +113,11 @@ KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
|
|
||||||
/* do the change */
|
/* do the change */
|
||||||
if (rate == 0) /* switch repeat off */
|
if (rate == 0) /* switch repeat off */
|
||||||
kbdrep_s.rate = 0;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 0;
|
||||||
else
|
else
|
||||||
kbdrep_s.rate = 10000 / rate; /* convert cps to msec */
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 10000 / rate; /* convert cps to msec */
|
||||||
if (kbdrep_s.rate < 1)
|
if (kbdrep_s.LNX_KBD_PERIOD_NAME < 1)
|
||||||
kbdrep_s.rate = 1;
|
kbdrep_s.LNX_KBD_PERIOD_NAME = 1;
|
||||||
kbdrep_s.delay = delay;
|
kbdrep_s.delay = delay;
|
||||||
if (kbdrep_s.delay < 1)
|
if (kbdrep_s.delay < 1)
|
||||||
kbdrep_s.delay = 1;
|
kbdrep_s.delay = 1;
|
||||||
|
@ -151,15 +132,6 @@ KDKBDREP_ioctl_ok(int rate, int delay) {
|
||||||
#endif /* KDKBDREP */
|
#endif /* KDKBDREP */
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef rate
|
|
||||||
|
|
||||||
/* Undo the earlier define for the struct kbd_repeat problem. */
|
|
||||||
#if defined(LINUX_VERSION_CODE) && defined(KERNEL_VERSION)
|
|
||||||
# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,42)
|
|
||||||
# undef rate
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
KIOCSRATE_ioctl_ok(int rate, int delay) {
|
KIOCSRATE_ioctl_ok(int rate, int delay) {
|
||||||
#ifdef KIOCSRATE
|
#ifdef KIOCSRATE
|
||||||
|
|
|
@ -29,7 +29,7 @@ DefaultProtocol(void)
|
||||||
return "Auto";
|
return "Auto";
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DEFAULT_MOUSE_DEV "/dev/mouse"
|
#define DEFAULT_MOUSE_DEV "/dev/input/mice"
|
||||||
#define DEFAULT_PS2_DEV "/dev/psaux"
|
#define DEFAULT_PS2_DEV "/dev/psaux"
|
||||||
#define DEFAULT_GPM_DATA_DEV "/dev/gpmdata"
|
#define DEFAULT_GPM_DATA_DEV "/dev/gpmdata"
|
||||||
#define DEFAULT_GPM_CTL_DEV "/dev/gpmdata"
|
#define DEFAULT_GPM_CTL_DEV "/dev/gpmdata"
|
||||||
|
|
|
@ -4,7 +4,7 @@ bin_PROGRAMS = Xprt
|
||||||
|
|
||||||
Xprt_CFLAGS = @SERVER_DEFINES@ @DIX_CFLAGS@ @XPRINT_CFLAGS@ \
|
Xprt_CFLAGS = @SERVER_DEFINES@ @DIX_CFLAGS@ @XPRINT_CFLAGS@ \
|
||||||
-DXPRINT -DPRINT_ONLY_SERVER -D_XP_PRINT_SERVER_ \
|
-DXPRINT -DPRINT_ONLY_SERVER -D_XP_PRINT_SERVER_ \
|
||||||
-DXPRINTDIR=\"$(prefix)/X11/xserver\" \
|
-DXPRINTDIR=\"$(libdir)/X11/xserver\" \
|
||||||
-DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX
|
-DXPRASTERDDX -DXPPCLDDX -DXPMONOPCLDDX -DXPPSDDX
|
||||||
|
|
||||||
Xprt_LDFLAGS = -L$(top_srcdir)
|
Xprt_LDFLAGS = -L$(top_srcdir)
|
||||||
|
|
|
@ -1 +1,12 @@
|
||||||
|
include $(top_srcdir)/cpprules.in
|
||||||
|
|
||||||
|
noinst_PRE = xprint
|
||||||
|
BUILT_SOURCES = $(noinst_PRE)
|
||||||
|
CLEANFILES = $(noinst_PRE) xprint.pre
|
||||||
|
|
||||||
|
CPP_FILES_FLAGS = -DProjectRoot='"$(PROJECTROOT)"' -DOS_LINUX
|
||||||
|
|
||||||
|
xprint.pre: xprint.cpp
|
||||||
|
$(SED) -e 's/^\(\s\+\)#/\1XCOMM/' ${srcdir}/xprint.cpp > $@
|
||||||
|
|
||||||
EXTRA_DIST = xprint.cpp
|
EXTRA_DIST = xprint.cpp
|
||||||
|
|
|
@ -820,4 +820,10 @@ typedef struct {
|
||||||
SelectionCallbackKind kind;
|
SelectionCallbackKind kind;
|
||||||
} SelectionInfoRec;
|
} SelectionInfoRec;
|
||||||
|
|
||||||
|
/* strcasecmp.c */
|
||||||
|
#if NEED_STRCASECMP
|
||||||
|
#define strcasecmp xstrcasecmp
|
||||||
|
extern int xstrcasecmp(char *s1, char *s2);
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* DIX_H */
|
#endif /* DIX_H */
|
||||||
|
|
|
@ -106,4 +106,7 @@
|
||||||
/* Has backtrace support */
|
/* Has backtrace support */
|
||||||
#undef HAVE_BACKTRACE
|
#undef HAVE_BACKTRACE
|
||||||
|
|
||||||
|
/* Name of the period field in struct kbd_repeat */
|
||||||
|
#undef LNX_KBD_PERIOD_NAME
|
||||||
|
|
||||||
#endif /* _XORG_CONFIG_H_ */
|
#endif /* _XORG_CONFIG_H_ */
|
||||||
|
|
|
@ -108,6 +108,7 @@ SOFTWARE.
|
||||||
#undef XF86DRI
|
#undef XF86DRI
|
||||||
#undef DPMSExtension
|
#undef DPMSExtension
|
||||||
#undef FONTCACHE
|
#undef FONTCACHE
|
||||||
|
#undef COMPOSITE
|
||||||
#undef DAMAGE
|
#undef DAMAGE
|
||||||
#undef XFIXES
|
#undef XFIXES
|
||||||
#undef XEVIE
|
#undef XEVIE
|
||||||
|
|
|
@ -62,12 +62,6 @@
|
||||||
#define PR_DEBUG2(s,a,b)
|
#define PR_DEBUG2(s,a,b)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NEED_STRCASECMP
|
|
||||||
extern int _XkbStrCaseCmp(char *s1, char *s2);
|
|
||||||
#else
|
|
||||||
#define _XkbStrCaseCmp strcasecmp
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/***====================================================================***/
|
/***====================================================================***/
|
||||||
|
|
||||||
#define DFLT_LINE_SIZE 128
|
#define DFLT_LINE_SIZE 128
|
||||||
|
@ -1092,20 +1086,20 @@ int len,headingtype,extra_ndx = 0;
|
||||||
for ( ; GetInputLine(file,&line,False); line.num_line= 0) {
|
for ( ; GetInputLine(file,&line,False); line.num_line= 0) {
|
||||||
if (line.line[0]=='!') {
|
if (line.line[0]=='!') {
|
||||||
tok = strtok(&(line.line[1]), " \t");
|
tok = strtok(&(line.line[1]), " \t");
|
||||||
if (_XkbStrCaseCmp(tok,"model") == 0)
|
if (strcasecmp(tok,"model") == 0)
|
||||||
headingtype = HEAD_MODEL;
|
headingtype = HEAD_MODEL;
|
||||||
else if (_XkbStrCaseCmp(tok,"layout") == 0)
|
else if (strcasecmp(tok,"layout") == 0)
|
||||||
headingtype = HEAD_LAYOUT;
|
headingtype = HEAD_LAYOUT;
|
||||||
else if (_XkbStrCaseCmp(tok,"variant") == 0)
|
else if (strcasecmp(tok,"variant") == 0)
|
||||||
headingtype = HEAD_VARIANT;
|
headingtype = HEAD_VARIANT;
|
||||||
else if (_XkbStrCaseCmp(tok,"option") == 0)
|
else if (strcasecmp(tok,"option") == 0)
|
||||||
headingtype = HEAD_OPTION;
|
headingtype = HEAD_OPTION;
|
||||||
else {
|
else {
|
||||||
int i;
|
int i;
|
||||||
headingtype = HEAD_EXTRA;
|
headingtype = HEAD_EXTRA;
|
||||||
extra_ndx= -1;
|
extra_ndx= -1;
|
||||||
for (i=0;(i<rules->num_extra)&&(extra_ndx<0);i++) {
|
for (i=0;(i<rules->num_extra)&&(extra_ndx<0);i++) {
|
||||||
if (!_XkbStrCaseCmp(tok,rules->extra_names[i]))
|
if (!strcasecmp(tok,rules->extra_names[i]))
|
||||||
extra_ndx= i;
|
extra_ndx= i;
|
||||||
}
|
}
|
||||||
if (extra_ndx<0) {
|
if (extra_ndx<0) {
|
||||||
|
|
|
@ -247,19 +247,3 @@ XkbNameMatchesPattern(char *name,char *ptrn)
|
||||||
/* if we get here, the pattern is exhausted (-:just like me:-) */
|
/* if we get here, the pattern is exhausted (-:just like me:-) */
|
||||||
return (name[0]=='\0');
|
return (name[0]=='\0');
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NEED_STRCASECMP
|
|
||||||
_X_HIDDEN int
|
|
||||||
_XkbStrCaseCmp(char *str1,char *str2)
|
|
||||||
{
|
|
||||||
const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2;
|
|
||||||
|
|
||||||
while (tolower(*us1) == tolower(*us2)) {
|
|
||||||
if (*us1++ == '\0')
|
|
||||||
return (0);
|
|
||||||
us2++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (tolower(*us1) - tolower(*us2));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
Loading…
Reference in New Issue