summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Klausner <wiz@NetBSD.org>2013-07-29 23:23:49 +0200
committerGaetan Nadon <memsize@videotron.ca>2013-10-18 16:41:13 -0400
commitdc9486a22f4b7fec2860928c555636bfc9f58741 (patch)
treee02efcdc081e5e143341f7f921087bf176b6f295
parent2d6661d5c7aff662ad76ddb225664260f0a07a1e (diff)
downloadxorg-driver-xf86-input-keyboard-dc9486a22f4b7fec2860928c555636bfc9f58741.tar.gz
Factor out common code.
Suggested by Walter Harms <wharms@bfs.de>. Signed-off-by: Thomas Klausner <wiz@NetBSD.org> Reviewed-by: Matthieu Herrb <matthieu.herrb@laas.fr> Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
-rw-r--r--src/bsd_kbd.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/bsd_kbd.c b/src/bsd_kbd.c
index 1e0531e..175c544 100644
--- a/src/bsd_kbd.c
+++ b/src/bsd_kbd.c
@@ -39,6 +39,21 @@ typedef struct {
struct termios kbdtty;
} BsdKbdPrivRec, *BsdKbdPrivPtr;
+#ifdef WSCONS_SUPPORT
+static Bool
+WSSetVersion(int fd, const char *name)
+{
+#ifdef WSKBDIO_SETVERSION
+ int version = WSKBDIO_EVENT_VERSION;
+ if (ioctl(fd, WSKBDIO_SETVERSION, &version) == -1) {
+ xf86Msg(X_WARNING, "%s: cannot set version\n", name);
+ return FALSE;
+ }
+#endif
+ return TRUE;
+}
+#endif
+
static
int KbdInit(InputInfoPtr pInfo, int what)
{
@@ -211,13 +226,8 @@ KbdOn(InputInfoPtr pInfo, int what)
if ((pKbd->wsKbdDev[0] != 0) && (pInfo->fd == -1)) {
xf86Msg(X_INFO, "opening %s\n", pKbd->wsKbdDev);
pInfo->fd = open(pKbd->wsKbdDev, O_RDONLY | O_NONBLOCK | O_EXCL);
-#ifdef WSKBDIO_SETVERSION
- int version = WSKBDIO_EVENT_VERSION;
- if (ioctl(pInfo->fd, WSKBDIO_SETVERSION, &version) == -1) {
- xf86Msg(X_WARNING, "%s: cannot set version\n", pInfo->name);
+ if (WSSetVersion(pInfo->fd, pInfo->name) == FALSE)
return FALSE;
- }
-#endif
}
break;
#endif
@@ -416,13 +426,8 @@ OpenKeyboard(InputInfoPtr pInfo)
#ifdef WSCONS_SUPPORT
if( prot == PROT_WSCONS) {
pKbd->consType = WSCONS;
-#ifdef WSKBDIO_SETVERSION
- int version = WSKBDIO_EVENT_VERSION;
- if (ioctl(pInfo->fd, WSKBDIO_SETVERSION, &version) == -1) {
- xf86Msg(X_WARNING, "%s: cannot set version\n", pInfo->name);
- return FALSE;
- }
-#endif
+ if (WSSetVersion(pInfo->fd, pInfo->name) == FALSE)
+ return FALSE;
/* Find out keyboard type */
if (ioctl(pInfo->fd, WSKBDIO_GTYPE, &(pKbd->wsKbdType)) == -1) {
xf86Msg(X_ERROR, "%s: cannot get keyboard type", pInfo->name);