xfake: Remove
We already have Xvfb for a dummy DDX. Signed-off-by: Adam Jackson <ajax@redhat.com> Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
3dad57b121
commit
35fbcb3f99
|
@ -659,7 +659,6 @@ AC_ARG_ENABLE(glamor, AS_HELP_STRING([--enable-glamor], [Build glamor di
|
||||||
dnl kdrive and its subsystems
|
dnl kdrive and its subsystems
|
||||||
AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
|
AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive servers (default: no)]), [KDRIVE=$enableval], [KDRIVE=no])
|
||||||
AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
|
AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
|
||||||
AC_ARG_ENABLE(xfake, AS_HELP_STRING([--enable-xfake], [Build the kdrive 'fake' server (default: auto)]), [XFAKE=$enableval], [XFAKE=auto])
|
|
||||||
AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
|
AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
|
||||||
dnl kdrive options
|
dnl kdrive options
|
||||||
AC_ARG_ENABLE(kdrive-evdev, AS_HELP_STRING([--enable-kdrive-evdev], [Build evdev driver for kdrive (default: auto)]), [KDRIVE_EVDEV=$enableval], [KDRIVE_EVDEV=auto])
|
AC_ARG_ENABLE(kdrive-evdev, AS_HELP_STRING([--enable-kdrive-evdev], [Build evdev driver for kdrive (default: auto)]), [KDRIVE_EVDEV=$enableval], [KDRIVE_EVDEV=auto])
|
||||||
|
@ -2475,7 +2474,6 @@ AM_CONDITIONAL(TSLIB, [test "x$HAVE_TSLIB" = xyes])
|
||||||
AM_CONDITIONAL(KDRIVEFBDEV, [test "x$XFBDEV" = xyes])
|
AM_CONDITIONAL(KDRIVEFBDEV, [test "x$XFBDEV" = xyes])
|
||||||
AM_CONDITIONAL(XEPHYR, [test "x$KDRIVE" = xyes && test "x$XEPHYR" = xyes])
|
AM_CONDITIONAL(XEPHYR, [test "x$KDRIVE" = xyes && test "x$XEPHYR" = xyes])
|
||||||
AM_CONDITIONAL(BUILD_KDRIVEFBDEVLIB, [test "x$KDRIVE" = xyes && test "x$KDRIVEFBDEVLIB" = xyes])
|
AM_CONDITIONAL(BUILD_KDRIVEFBDEVLIB, [test "x$KDRIVE" = xyes && test "x$KDRIVEFBDEVLIB" = xyes])
|
||||||
AM_CONDITIONAL(XFAKESERVER, [test "x$KDRIVE" = xyes && test "x$XFAKE" = xyes])
|
|
||||||
|
|
||||||
dnl Xwayland DDX
|
dnl Xwayland DDX
|
||||||
|
|
||||||
|
@ -2656,7 +2654,6 @@ hw/xquartz/xpr/Makefile
|
||||||
hw/kdrive/Makefile
|
hw/kdrive/Makefile
|
||||||
hw/kdrive/ephyr/Makefile
|
hw/kdrive/ephyr/Makefile
|
||||||
hw/kdrive/ephyr/man/Makefile
|
hw/kdrive/ephyr/man/Makefile
|
||||||
hw/kdrive/fake/Makefile
|
|
||||||
hw/kdrive/fbdev/Makefile
|
hw/kdrive/fbdev/Makefile
|
||||||
hw/kdrive/linux/Makefile
|
hw/kdrive/linux/Makefile
|
||||||
hw/kdrive/src/Makefile
|
hw/kdrive/src/Makefile
|
||||||
|
|
|
@ -2,10 +2,6 @@ if BUILD_KDRIVEFBDEVLIB
|
||||||
FBDEV_SUBDIRS = fbdev
|
FBDEV_SUBDIRS = fbdev
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if XFAKESERVER
|
|
||||||
XFAKE_SUBDIRS = fake
|
|
||||||
endif
|
|
||||||
|
|
||||||
if XEPHYR
|
if XEPHYR
|
||||||
XEPHYR_SUBDIRS = ephyr
|
XEPHYR_SUBDIRS = ephyr
|
||||||
endif
|
endif
|
||||||
|
@ -16,15 +12,14 @@ endif
|
||||||
|
|
||||||
SERVER_SUBDIRS = \
|
SERVER_SUBDIRS = \
|
||||||
$(FBDEV_SUBDIRS) \
|
$(FBDEV_SUBDIRS) \
|
||||||
$(XEPHYR_SUBDIRS) \
|
$(XEPHYR_SUBDIRS)
|
||||||
$(XFAKE_SUBDIRS)
|
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
src \
|
src \
|
||||||
$(LINUX_SUBDIRS) \
|
$(LINUX_SUBDIRS) \
|
||||||
$(SERVER_SUBDIRS)
|
$(SERVER_SUBDIRS)
|
||||||
|
|
||||||
DIST_SUBDIRS = fbdev ephyr src linux fake
|
DIST_SUBDIRS = fbdev ephyr src linux
|
||||||
|
|
||||||
relink:
|
relink:
|
||||||
$(AM_V_at)for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done
|
$(AM_V_at)for i in $(SERVER_SUBDIRS) ; do $(MAKE) -C $$i relink || exit 1 ; done
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
# Add & Override for this directory and it's subdirectories
|
|
||||||
Xfake
|
|
|
@ -1,31 +0,0 @@
|
||||||
AM_CPPFLAGS = \
|
|
||||||
@KDRIVE_INCS@ \
|
|
||||||
@KDRIVE_CFLAGS@
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libfake.la
|
|
||||||
|
|
||||||
bin_PROGRAMS = Xfake
|
|
||||||
|
|
||||||
libfake_la_SOURCES = \
|
|
||||||
fake.c \
|
|
||||||
kbd.c \
|
|
||||||
os.c \
|
|
||||||
mouse.c \
|
|
||||||
fake.h
|
|
||||||
|
|
||||||
Xfake_SOURCES = \
|
|
||||||
fakeinit.c
|
|
||||||
|
|
||||||
Xfake_LDADD = \
|
|
||||||
libfake.la \
|
|
||||||
@KDRIVE_MAIN_LIB@ \
|
|
||||||
@KDRIVE_LIBS@
|
|
||||||
|
|
||||||
Xfake_LDFLAGS = $(LD_EXPORT_SYMBOLS_FLAG)
|
|
||||||
|
|
||||||
Xfake_DEPENDENCIES = \
|
|
||||||
libfake.la \
|
|
||||||
@KDRIVE_LOCAL_LIBS@
|
|
||||||
|
|
||||||
relink:
|
|
||||||
$(AM_V_at)rm -f $(bin_PROGRAMS) && $(MAKE) $(bin_PROGRAMS)
|
|
|
@ -1,444 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2004 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <kdrive-config.h>
|
|
||||||
#endif
|
|
||||||
#include "fake.h"
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeInitialize(KdCardInfo * card, FakePriv * priv)
|
|
||||||
{
|
|
||||||
priv->base = 0;
|
|
||||||
priv->bytes_per_line = 0;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCardInit(KdCardInfo * card)
|
|
||||||
{
|
|
||||||
FakePriv *priv;
|
|
||||||
|
|
||||||
priv = (FakePriv *) malloc(sizeof(FakePriv));
|
|
||||||
if (!priv)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!fakeInitialize(card, priv)) {
|
|
||||||
free(priv);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
card->driver = priv;
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeScreenInitialize(KdScreenInfo * screen, FakeScrPriv * scrpriv)
|
|
||||||
{
|
|
||||||
if (!screen->width || !screen->height) {
|
|
||||||
screen->width = 1024;
|
|
||||||
screen->height = 768;
|
|
||||||
screen->rate = 72;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (screen->width <= 0)
|
|
||||||
screen->width = 1;
|
|
||||||
if (screen->height <= 0)
|
|
||||||
screen->height = 1;
|
|
||||||
|
|
||||||
if (!screen->fb.depth)
|
|
||||||
screen->fb.depth = 16;
|
|
||||||
|
|
||||||
if (screen->fb.depth <= 8) {
|
|
||||||
screen->fb.visuals = ((1 << StaticGray) |
|
|
||||||
(1 << GrayScale) |
|
|
||||||
(1 << StaticColor) |
|
|
||||||
(1 << PseudoColor) |
|
|
||||||
(1 << TrueColor) | (1 << DirectColor));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
screen->fb.visuals = (1 << TrueColor);
|
|
||||||
#define Mask(o,l) (((1 << l) - 1) << o)
|
|
||||||
if (screen->fb.depth <= 15) {
|
|
||||||
screen->fb.depth = 15;
|
|
||||||
screen->fb.bitsPerPixel = 16;
|
|
||||||
screen->fb.redMask = Mask (10, 5);
|
|
||||||
screen->fb.greenMask = Mask (5, 5);
|
|
||||||
screen->fb.blueMask = Mask (0, 5);
|
|
||||||
}
|
|
||||||
else if (screen->fb.depth <= 16) {
|
|
||||||
screen->fb.depth = 16;
|
|
||||||
screen->fb.bitsPerPixel = 16;
|
|
||||||
screen->fb.redMask = Mask (11, 5);
|
|
||||||
screen->fb.greenMask = Mask (5, 6);
|
|
||||||
screen->fb.blueMask = Mask (0, 5);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
screen->fb.depth = 24;
|
|
||||||
screen->fb.bitsPerPixel = 32;
|
|
||||||
screen->fb.redMask = Mask (16, 8);
|
|
||||||
screen->fb.greenMask = Mask (8, 8);
|
|
||||||
screen->fb.blueMask = Mask (0, 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scrpriv->randr = screen->randr;
|
|
||||||
|
|
||||||
return fakeMapFramebuffer(screen);
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeScreenInit(KdScreenInfo * screen)
|
|
||||||
{
|
|
||||||
FakeScrPriv *scrpriv;
|
|
||||||
|
|
||||||
scrpriv = calloc(1, sizeof(FakeScrPriv));
|
|
||||||
if (!scrpriv)
|
|
||||||
return FALSE;
|
|
||||||
screen->driver = scrpriv;
|
|
||||||
if (!fakeScreenInitialize(screen, scrpriv)) {
|
|
||||||
screen->driver = 0;
|
|
||||||
free(scrpriv);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void *
|
|
||||||
fakeWindowLinear(ScreenPtr pScreen,
|
|
||||||
CARD32 row,
|
|
||||||
CARD32 offset, int mode, CARD32 *size, void *closure)
|
|
||||||
{
|
|
||||||
KdScreenPriv(pScreen);
|
|
||||||
FakePriv *priv = pScreenPriv->card->driver;
|
|
||||||
|
|
||||||
if (!pScreenPriv->enabled)
|
|
||||||
return 0;
|
|
||||||
*size = priv->bytes_per_line;
|
|
||||||
return priv->base + row * priv->bytes_per_line;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeMapFramebuffer(KdScreenInfo * screen)
|
|
||||||
{
|
|
||||||
FakeScrPriv *scrpriv = screen->driver;
|
|
||||||
KdPointerMatrix m;
|
|
||||||
FakePriv *priv = screen->card->driver;
|
|
||||||
|
|
||||||
if (scrpriv->randr != RR_Rotate_0)
|
|
||||||
scrpriv->shadow = TRUE;
|
|
||||||
else
|
|
||||||
scrpriv->shadow = FALSE;
|
|
||||||
|
|
||||||
KdComputePointerMatrix(&m, scrpriv->randr, screen->width, screen->height);
|
|
||||||
|
|
||||||
KdSetPointerMatrix(&m);
|
|
||||||
|
|
||||||
priv->bytes_per_line =
|
|
||||||
((screen->width * screen->fb.bitsPerPixel + 31) >> 5) << 2;
|
|
||||||
free(priv->base);
|
|
||||||
priv->base = xallocarray(priv->bytes_per_line, screen->height);
|
|
||||||
|
|
||||||
if (scrpriv->shadow) {
|
|
||||||
if (!KdShadowFbAlloc
|
|
||||||
(screen, scrpriv->randr & (RR_Rotate_90 | RR_Rotate_270)))
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
screen->fb.byteStride = priv->bytes_per_line;
|
|
||||||
screen->fb.pixelStride = (priv->bytes_per_line * 8 /
|
|
||||||
screen->fb.bitsPerPixel);
|
|
||||||
screen->fb.frameBuffer = (CARD8 *) (priv->base);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeSetScreenSizes(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
KdScreenPriv(pScreen);
|
|
||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
|
||||||
FakeScrPriv *scrpriv = screen->driver;
|
|
||||||
|
|
||||||
if (scrpriv->randr & (RR_Rotate_0 | RR_Rotate_180)) {
|
|
||||||
pScreen->width = screen->width;
|
|
||||||
pScreen->height = screen->height;
|
|
||||||
pScreen->mmWidth = screen->width_mm;
|
|
||||||
pScreen->mmHeight = screen->height_mm;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
pScreen->width = screen->width;
|
|
||||||
pScreen->height = screen->height;
|
|
||||||
pScreen->mmWidth = screen->height_mm;
|
|
||||||
pScreen->mmHeight = screen->width_mm;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeUnmapFramebuffer(KdScreenInfo * screen)
|
|
||||||
{
|
|
||||||
FakePriv *priv = screen->card->driver;
|
|
||||||
|
|
||||||
KdShadowFbFree(screen);
|
|
||||||
free(priv->base);
|
|
||||||
priv->base = NULL;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeSetShadow(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
KdScreenPriv(pScreen);
|
|
||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
|
||||||
FakeScrPriv *scrpriv = screen->driver;
|
|
||||||
ShadowUpdateProc update;
|
|
||||||
ShadowWindowProc window;
|
|
||||||
|
|
||||||
window = fakeWindowLinear;
|
|
||||||
update = 0;
|
|
||||||
if (scrpriv->randr)
|
|
||||||
update = shadowUpdateRotatePacked;
|
|
||||||
else
|
|
||||||
update = shadowUpdatePacked;
|
|
||||||
return KdShadowSet(pScreen, scrpriv->randr, update, window);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef RANDR
|
|
||||||
Bool
|
|
||||||
fakeRandRGetInfo(ScreenPtr pScreen, Rotation * rotations)
|
|
||||||
{
|
|
||||||
KdScreenPriv(pScreen);
|
|
||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
|
||||||
FakeScrPriv *scrpriv = screen->driver;
|
|
||||||
RRScreenSizePtr pSize;
|
|
||||||
Rotation randr;
|
|
||||||
int n;
|
|
||||||
|
|
||||||
*rotations = RR_Rotate_All | RR_Reflect_All;
|
|
||||||
|
|
||||||
for (n = 0; n < pScreen->numDepths; n++)
|
|
||||||
if (pScreen->allowedDepths[n].numVids)
|
|
||||||
break;
|
|
||||||
if (n == pScreen->numDepths)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
pSize = RRRegisterSize(pScreen,
|
|
||||||
screen->width,
|
|
||||||
screen->height, screen->width_mm, screen->height_mm);
|
|
||||||
|
|
||||||
randr = KdSubRotation(scrpriv->randr, screen->randr);
|
|
||||||
|
|
||||||
RRSetCurrentConfig(pScreen, randr, 0, pSize);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeRandRSetConfig(ScreenPtr pScreen,
|
|
||||||
Rotation randr, int rate, RRScreenSizePtr pSize)
|
|
||||||
{
|
|
||||||
KdScreenPriv(pScreen);
|
|
||||||
KdScreenInfo *screen = pScreenPriv->screen;
|
|
||||||
FakeScrPriv *scrpriv = screen->driver;
|
|
||||||
Bool wasEnabled = pScreenPriv->enabled;
|
|
||||||
FakeScrPriv oldscr;
|
|
||||||
int oldwidth;
|
|
||||||
int oldheight;
|
|
||||||
int oldmmwidth;
|
|
||||||
int oldmmheight;
|
|
||||||
int newwidth, newheight;
|
|
||||||
|
|
||||||
if (screen->randr & (RR_Rotate_0 | RR_Rotate_180)) {
|
|
||||||
newwidth = pSize->width;
|
|
||||||
newheight = pSize->height;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
newwidth = pSize->height;
|
|
||||||
newheight = pSize->width;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (wasEnabled)
|
|
||||||
KdDisableScreen(pScreen);
|
|
||||||
|
|
||||||
oldscr = *scrpriv;
|
|
||||||
|
|
||||||
oldwidth = screen->width;
|
|
||||||
oldheight = screen->height;
|
|
||||||
oldmmwidth = pScreen->mmWidth;
|
|
||||||
oldmmheight = pScreen->mmHeight;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set new configuration
|
|
||||||
*/
|
|
||||||
|
|
||||||
scrpriv->randr = KdAddRotation(screen->randr, randr);
|
|
||||||
|
|
||||||
fakeUnmapFramebuffer(screen);
|
|
||||||
|
|
||||||
if (!fakeMapFramebuffer(screen))
|
|
||||||
goto bail4;
|
|
||||||
|
|
||||||
KdShadowUnset(screen->pScreen);
|
|
||||||
|
|
||||||
if (!fakeSetShadow(screen->pScreen))
|
|
||||||
goto bail4;
|
|
||||||
|
|
||||||
fakeSetScreenSizes(screen->pScreen);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set frame buffer mapping
|
|
||||||
*/
|
|
||||||
(*pScreen->ModifyPixmapHeader) (fbGetScreenPixmap(pScreen),
|
|
||||||
pScreen->width,
|
|
||||||
pScreen->height,
|
|
||||||
screen->fb.depth,
|
|
||||||
screen->fb.bitsPerPixel,
|
|
||||||
screen->fb.byteStride,
|
|
||||||
screen->fb.frameBuffer);
|
|
||||||
|
|
||||||
/* set the subpixel order */
|
|
||||||
|
|
||||||
KdSetSubpixelOrder(pScreen, scrpriv->randr);
|
|
||||||
if (wasEnabled)
|
|
||||||
KdEnableScreen(pScreen);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
bail4:
|
|
||||||
fakeUnmapFramebuffer(screen);
|
|
||||||
*scrpriv = oldscr;
|
|
||||||
(void) fakeMapFramebuffer(screen);
|
|
||||||
pScreen->width = oldwidth;
|
|
||||||
pScreen->height = oldheight;
|
|
||||||
pScreen->mmWidth = oldmmwidth;
|
|
||||||
pScreen->mmHeight = oldmmheight;
|
|
||||||
|
|
||||||
if (wasEnabled)
|
|
||||||
KdEnableScreen(pScreen);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeRandRInit(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
rrScrPrivPtr pScrPriv;
|
|
||||||
|
|
||||||
if (!RRScreenInit(pScreen))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
pScrPriv = rrGetScrPriv(pScreen);
|
|
||||||
pScrPriv->rrGetInfo = fakeRandRGetInfo;
|
|
||||||
pScrPriv->rrSetConfig = fakeRandRSetConfig;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCreateColormap(ColormapPtr pmap)
|
|
||||||
{
|
|
||||||
return fbInitializeColormap(pmap);
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeInitScreen(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
pScreen->CreateColormap = fakeCreateColormap;
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeFinishInitScreen(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
if (!shadowSetup(pScreen))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
#ifdef RANDR
|
|
||||||
if (!fakeRandRInit(pScreen))
|
|
||||||
return FALSE;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCreateResources(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
return fakeSetShadow(pScreen);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakePreserve(KdCardInfo * card)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeEnable(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeDPMS(ScreenPtr pScreen, int mode)
|
|
||||||
{
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeDisable(ScreenPtr pScreen)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeRestore(KdCardInfo * card)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeScreenFini(KdScreenInfo * screen)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeCardFini(KdCardInfo * card)
|
|
||||||
{
|
|
||||||
FakePriv *priv = card->driver;
|
|
||||||
|
|
||||||
free(priv->base);
|
|
||||||
free(priv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeGetColors(ScreenPtr pScreen, int n, xColorItem * pdefs)
|
|
||||||
{
|
|
||||||
while (n--) {
|
|
||||||
pdefs->red = 0;
|
|
||||||
pdefs->green = 0;
|
|
||||||
pdefs->blue = 0;
|
|
||||||
pdefs++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
fakePutColors(ScreenPtr pScreen, int n, xColorItem * pdefs)
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -1,131 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2004 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _FBDEV_H_
|
|
||||||
#define _FBDEV_H_
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include "kdrive.h"
|
|
||||||
|
|
||||||
#ifdef RANDR
|
|
||||||
#include "randrstr.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct _fakePriv {
|
|
||||||
CARD8 *base;
|
|
||||||
int bytes_per_line;
|
|
||||||
} FakePriv;
|
|
||||||
|
|
||||||
typedef struct _fakeScrPriv {
|
|
||||||
Rotation randr;
|
|
||||||
Bool shadow;
|
|
||||||
} FakeScrPriv;
|
|
||||||
|
|
||||||
extern KdCardFuncs fakeFuncs;
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeInitialize(KdCardInfo * card, FakePriv * priv);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCardInit(KdCardInfo * card);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeScreenInit(KdScreenInfo * screen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeScreenInitialize(KdScreenInfo * screen, FakeScrPriv * scrpriv);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeInitScreen(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeFinishInitScreen(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCreateResources(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakePreserve(KdCardInfo * card);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeEnable(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeDPMS(ScreenPtr pScreen, int mode);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeDisable(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeRestore(KdCardInfo * card);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeScreenFini(KdScreenInfo * screen);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeCardFini(KdCardInfo * card);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeGetColors(ScreenPtr pScreen, int n, xColorItem * pdefs);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakePutColors(ScreenPtr pScreen, int n, xColorItem * pdefs);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeMapFramebuffer(KdScreenInfo * screen);
|
|
||||||
|
|
||||||
void *fakeWindowLinear(ScreenPtr pScreen,
|
|
||||||
CARD32 row,
|
|
||||||
CARD32 offset, int mode, CARD32 *size, void *closure);
|
|
||||||
|
|
||||||
void
|
|
||||||
fakeSetScreenSizes(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeUnmapFramebuffer(KdScreenInfo * screen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeSetShadow(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
fakeCreateColormap(ColormapPtr pmap);
|
|
||||||
|
|
||||||
#ifdef RANDR
|
|
||||||
Bool
|
|
||||||
fakeRandRGetInfo(ScreenPtr pScreen, Rotation * rotations);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
|
|
||||||
fakeRandRSetConfig(ScreenPtr pScreen,
|
|
||||||
Rotation randr, int rate, RRScreenSizePtr pSize);
|
|
||||||
Bool
|
|
||||||
fakeRandRInit(ScreenPtr pScreen);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern KdPointerDriver FakePointerDriver;
|
|
||||||
|
|
||||||
extern KdKeyboardDriver FakeKeyboardDriver;
|
|
||||||
|
|
||||||
extern KdOsFuncs FakeOsFuncs;
|
|
||||||
|
|
||||||
#endif /* _FBDEV_H_ */
|
|
|
@ -1,119 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2004 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <kdrive-config.h>
|
|
||||||
#endif
|
|
||||||
#include "fake.h"
|
|
||||||
|
|
||||||
void
|
|
||||||
InitCard(char *name)
|
|
||||||
{
|
|
||||||
KdCardInfoAdd(&fakeFuncs, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
|
|
||||||
{
|
|
||||||
KdInitOutput(pScreenInfo, argc, argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
InitInput(int argc, char **argv)
|
|
||||||
{
|
|
||||||
KdPointerInfo *pi;
|
|
||||||
KdKeyboardInfo *ki;
|
|
||||||
|
|
||||||
pi = KdNewPointer();
|
|
||||||
if (!pi)
|
|
||||||
return;
|
|
||||||
pi->driver = &FakePointerDriver;
|
|
||||||
KdAddPointer(pi);
|
|
||||||
|
|
||||||
ki = KdNewKeyboard();
|
|
||||||
if (!ki)
|
|
||||||
return;
|
|
||||||
ki->driver = &FakeKeyboardDriver;
|
|
||||||
KdAddKeyboard(ki);
|
|
||||||
|
|
||||||
KdInitInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
CloseInput(void)
|
|
||||||
{
|
|
||||||
KdCloseInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DDXBEFORERESET
|
|
||||||
void
|
|
||||||
ddxBeforeReset(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
|
||||||
ddxUseMsg(void)
|
|
||||||
{
|
|
||||||
KdUseMsg();
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
ddxProcessArgument(int argc, char **argv, int i)
|
|
||||||
{
|
|
||||||
return KdProcessArgument(argc, argv, i);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
OsVendorInit(void)
|
|
||||||
{
|
|
||||||
KdOsInit(&FakeOsFuncs);
|
|
||||||
}
|
|
||||||
|
|
||||||
KdCardFuncs fakeFuncs = {
|
|
||||||
fakeCardInit, /* cardinit */
|
|
||||||
fakeScreenInit, /* scrinit */
|
|
||||||
fakeInitScreen, /* initScreen */
|
|
||||||
fakeFinishInitScreen, /* finishInitScreen */
|
|
||||||
fakeCreateResources, /* createRes */
|
|
||||||
fakePreserve, /* preserve */
|
|
||||||
fakeEnable, /* enable */
|
|
||||||
fakeDPMS, /* dpms */
|
|
||||||
fakeDisable, /* disable */
|
|
||||||
fakeRestore, /* restore */
|
|
||||||
fakeScreenFini, /* scrfini */
|
|
||||||
fakeCardFini, /* cardfini */
|
|
||||||
|
|
||||||
0, /* initCursor */
|
|
||||||
0, /* enableCursor */
|
|
||||||
0, /* disableCursor */
|
|
||||||
0, /* finiCursor */
|
|
||||||
0, /* recolorCursor */
|
|
||||||
|
|
||||||
0, /* initAccel */
|
|
||||||
0, /* enableAccel */
|
|
||||||
0, /* disableAccel */
|
|
||||||
0, /* finiAccel */
|
|
||||||
|
|
||||||
fakeGetColors, /* getColors */
|
|
||||||
fakePutColors, /* putColors */
|
|
||||||
};
|
|
|
@ -1,75 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 1999 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <kdrive-config.h>
|
|
||||||
#endif
|
|
||||||
#include "fake.h"
|
|
||||||
#include <X11/keysym.h>
|
|
||||||
|
|
||||||
#define FAKE_WIDTH 2
|
|
||||||
|
|
||||||
static Status
|
|
||||||
FakeKeyboardInit(KdKeyboardInfo * ki)
|
|
||||||
{
|
|
||||||
ki->minScanCode = 8;
|
|
||||||
ki->maxScanCode = 255;
|
|
||||||
return Success;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Status
|
|
||||||
FakeKeyboardEnable(KdKeyboardInfo * ki)
|
|
||||||
{
|
|
||||||
return Success;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeKeyboardDisable(KdKeyboardInfo * ki)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeKeyboardFini(KdKeyboardInfo * ki)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeKeyboardLeds(KdKeyboardInfo * ki, int leds)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeKeyboardBell(KdKeyboardInfo * ki, int volume, int frequency, int duration)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
KdKeyboardDriver FakeKeyboardDriver = {
|
|
||||||
"fake",
|
|
||||||
FakeKeyboardInit,
|
|
||||||
FakeKeyboardEnable,
|
|
||||||
FakeKeyboardLeds,
|
|
||||||
FakeKeyboardBell,
|
|
||||||
FakeKeyboardDisable,
|
|
||||||
FakeKeyboardFini,
|
|
||||||
NULL,
|
|
||||||
};
|
|
|
@ -1,64 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2004 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <kdrive-config.h>
|
|
||||||
#endif
|
|
||||||
#include <errno.h>
|
|
||||||
#include <termios.h>
|
|
||||||
#include <X11/X.h>
|
|
||||||
#include <X11/Xproto.h>
|
|
||||||
#include "inputstr.h"
|
|
||||||
#include "scrnintstr.h"
|
|
||||||
#include "kdrive.h"
|
|
||||||
|
|
||||||
static Status
|
|
||||||
MouseInit(KdPointerInfo * pi)
|
|
||||||
{
|
|
||||||
return Success;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Status
|
|
||||||
MouseEnable(KdPointerInfo * pi)
|
|
||||||
{
|
|
||||||
return Success;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
MouseDisable(KdPointerInfo * pi)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
MouseFini(KdPointerInfo * pi)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
KdPointerDriver FakePointerDriver = {
|
|
||||||
"fake",
|
|
||||||
MouseInit,
|
|
||||||
MouseEnable,
|
|
||||||
MouseDisable,
|
|
||||||
MouseFini,
|
|
||||||
};
|
|
|
@ -1,62 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright © 2004 Keith Packard
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
|
||||||
#include <kdrive-config.h>
|
|
||||||
#endif
|
|
||||||
#include "fake.h"
|
|
||||||
|
|
||||||
static int
|
|
||||||
FakeInit(void)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeEnable(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static Bool
|
|
||||||
FakeSpecialKey(KeySym sym)
|
|
||||||
{
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeDisable(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
FakeFini(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
KdOsFuncs FakeOsFuncs = {
|
|
||||||
FakeInit,
|
|
||||||
FakeEnable,
|
|
||||||
FakeSpecialKey,
|
|
||||||
FakeDisable,
|
|
||||||
FakeFini,
|
|
||||||
0
|
|
||||||
};
|
|
Loading…
Reference in New Issue