summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin E Martin <kem@kem.org>2004-08-16 20:17:52 +0000
committerKevin E Martin <kem@kem.org>2004-08-16 20:17:52 +0000
commit58f47a9c32cf379fd473f01b18ddc57b90e47b0b (patch)
tree31f86a15336356a2b3cfc910ebf678ed0eff5967
parent32d5ece27279bf7f1211346f15a292f73ff334d6 (diff)
downloadxorg-driver-xf86-input-keyboard-58f47a9c32cf379fd473f01b18ddc57b90e47b0b.tar.gz
Add kdb <-> keyboard aliasing when UseDeprecatedKeyboardDriver is NO (Bug
#1072, Kristian Høgsberg).
-rw-r--r--src/kbd.c105
1 files changed, 87 insertions, 18 deletions
diff --git a/src/kbd.c b/src/kbd.c
index 71d3fac..8e4a20e 100644
--- a/src/kbd.c
+++ b/src/kbd.c
@@ -1,4 +1,4 @@
-/* $XdotOrg$ */
+/* $XdotOrg: xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c,v 1.2 2004/04/23 19:54:03 eich Exp $ */
/* $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c,v 1.8 2003/11/03 05:11:47 tsi Exp $ */
/*
@@ -12,7 +12,7 @@
* xf86Events.c and xf86Io.c which are
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*/
-/* $XdotOrg$ */
+/* $XdotOrg: xc/programs/Xserver/hw/xfree86/input/keyboard/kbd.c,v 1.2 2004/04/23 19:54:03 eich Exp $ */
#define NEED_EVENTS
#include "X.h"
@@ -59,17 +59,6 @@ static void InitKBD(InputInfoPtr pInfo, Bool init);
static void SetXkbOption(InputInfoPtr pInfo, char *name, char **option);
static void UpdateLeds(InputInfoPtr pInfo);
-#undef KEYBOARD
-InputDriverRec KEYBOARD = {
- 1,
- "kbd",
- NULL,
- KbdPreInit,
- NULL,
- NULL,
- 0
-};
-
typedef enum {
OPTION_ALWAYS_CORE,
OPTION_SEND_CORE_EVENTS,
@@ -720,7 +709,17 @@ PostKbdEvent(InputInfoPtr pInfo, unsigned int scanCode, Bool down)
}
#ifdef XFree86LOADER
-ModuleInfoRec KeyboardInfo = {
+InputDriverRec KBD = {
+ 1,
+ "kbd",
+ NULL,
+ KbdPreInit,
+ NULL,
+ NULL,
+ 0
+};
+
+ModuleInfoRec KbdInfo = {
1,
"KBD",
NULL,
@@ -746,6 +745,72 @@ xf86KbdPlug(pointer module,
#ifndef REMOVE_LOADER_CHECK_MODULE_INFO
if (xf86LoaderCheckSymbol("xf86AddModuleInfo"))
#endif
+ xf86AddModuleInfo(&KbdInfo, module);
+ }
+
+ xf86AddInputDriver(&KBD, module, 0);
+
+ return module;
+}
+
+static XF86ModuleVersionInfo xf86KbdVersionRec =
+{
+ "kbd",
+ MODULEVENDORSTRING,
+ MODINFOSTRING1,
+ MODINFOSTRING2,
+ XORG_VERSION_CURRENT,
+ 1, 0, 0,
+ ABI_CLASS_XINPUT,
+ ABI_XINPUT_VERSION,
+ MOD_CLASS_XINPUT,
+ {0, 0, 0, 0} /* signature, to be patched into the file by */
+ /* a tool */
+};
+
+XF86ModuleData kbdModuleData = {
+ &xf86KbdVersionRec,
+ xf86KbdPlug,
+ xf86KbdUnplug
+};
+
+
+/* Compatibility section: we have a set of module structures here that
+ * allows us to load this module as the old keyboard driver. */
+
+#ifndef USE_DEPRECATED_KEYBOARD_DRIVER
+
+InputDriverRec KEYBOARD = {
+ 1,
+ "keyboard",
+ NULL,
+ KbdPreInit,
+ NULL,
+ NULL,
+ 0
+};
+
+ModuleInfoRec KeyboardInfo = {
+ 1,
+ "KEYBOARD",
+ NULL,
+ 0,
+ KeyboardAvailableOptions,
+};
+
+static pointer
+xf86KeyboardPlug(pointer module,
+ pointer options,
+ int *errmaj,
+ int *errmin)
+{
+ static Bool Initialised = FALSE;
+
+ if (!Initialised) {
+ Initialised = TRUE;
+#ifndef REMOVE_LOADER_CHECK_MODULE_INFO
+ if (xf86LoaderCheckSymbol("xf86AddModuleInfo"))
+#endif
xf86AddModuleInfo(&KeyboardInfo, module);
}
@@ -756,7 +821,7 @@ xf86KbdPlug(pointer module,
static XF86ModuleVersionInfo xf86KeyboardVersionRec =
{
- "kbd",
+ "keyboard",
MODULEVENDORSTRING,
MODINFOSTRING1,
MODINFOSTRING2,
@@ -769,8 +834,12 @@ static XF86ModuleVersionInfo xf86KeyboardVersionRec =
/* a tool */
};
-XF86ModuleData kbdModuleData = {&xf86KeyboardVersionRec,
- xf86KbdPlug,
- xf86KbdUnplug};
+XF86ModuleData keyboardModuleData = {
+ &xf86KeyboardVersionRec,
+ xf86KeyboardPlug,
+ xf86KbdUnplug
+};
+
+#endif /* ! USE_DEPRECATED_KEYBOARD_DRIVER */
#endif /* XFree86LOADER */