diff options
author | Hans de Goede <hdegoede@redhat.com> | 2014-03-13 14:49:52 +0100 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2014-03-20 12:13:35 +1000 |
commit | 341d23ceaa9d5483b5318425e7308e09f8941957 (patch) | |
tree | 039d7b133a99f3e211eb2ce9b43990437a32fc86 | |
parent | 6de3b75c453e4687b21f6d6acfcf87e7041c4fc5 (diff) |
Add a generic jstkCloseDevice helper function
This is a preparation patch for adding support for server managed fds.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | src/backend_bsd.c | 5 | ||||
-rw-r--r-- | src/backend_evdev.c | 5 | ||||
-rw-r--r-- | src/backend_joystick.c | 30 | ||||
-rw-r--r-- | src/jstk.c | 18 | ||||
-rw-r--r-- | src/jstk.h | 2 |
5 files changed, 27 insertions, 33 deletions
diff --git a/src/backend_bsd.c b/src/backend_bsd.c index 9fa3035..f3f501e 100644 --- a/src/backend_bsd.c +++ b/src/backend_bsd.c @@ -209,10 +209,7 @@ jstkOpenDevice_bsd(JoystickDevPtr joystick, Bool probe) static void jstkCloseDevice_bsd(JoystickDevPtr joystick) { - if ((joystick->fd >= 0)) { - xf86CloseSerial(joystick->fd); - joystick->fd = -1; - } + jstkCloseDevice(joystick); if (joystick->devicedata != NULL) { if (((struct jstk_bsd_hid_data*)joystick->devicedata)->data_buf) free(((struct jstk_bsd_hid_data*)joystick->devicedata)->data_buf); diff --git a/src/backend_evdev.c b/src/backend_evdev.c index 6d6f644..2a7b0e2 100644 --- a/src/backend_evdev.c +++ b/src/backend_evdev.c @@ -210,10 +210,7 @@ jstkOpenDevice_evdev(JoystickDevPtr joystick, Bool probe) static void jstkCloseDevice_evdev(JoystickDevPtr joystick) { - if ((joystick->fd >= 0)) { - xf86CloseSerial(joystick->fd); - joystick->fd = -1; - } + jstkCloseDevice(joystick); if (joystick->devicedata) { free(joystick->devicedata); joystick->devicedata = NULL; diff --git a/src/backend_joystick.c b/src/backend_joystick.c index c84654e..d335bc2 100644 --- a/src/backend_joystick.c +++ b/src/backend_joystick.c @@ -49,7 +49,6 @@ #include "backend_joystick.h" -static void jstkCloseDevice_joystick(JoystickDevPtr joystick); static int jstkReadData_joystick(JoystickDevPtr joystick, JOYSTICKEVENT *event, int *number); @@ -82,7 +81,7 @@ jstkOpenDevice_joystick(JoystickDevPtr joystick, Bool probe) if (ioctl(joystick->fd, JSIOCGVERSION, &driver_version) == -1) { xf86Msg(X_ERROR, "Joystick: ioctl JSIOCGVERSION on '%s' failed: %s\n", joystick->device, strerror(errno)); - jstkCloseDevice_joystick(joystick); + jstkCloseDevice(joystick); return -1; } if ((driver_version >> 16) < 1) { @@ -95,21 +94,21 @@ jstkOpenDevice_joystick(JoystickDevPtr joystick, Bool probe) if (ioctl(joystick->fd, JSIOCGAXES, &axes) == -1) { xf86Msg(X_ERROR, "Joystick: ioctl JSIOCGAXES on '%s' failed: %s\n", joystick->device, strerror(errno)); - jstkCloseDevice_joystick(joystick); + jstkCloseDevice(joystick); return -1; } if (ioctl(joystick->fd, JSIOCGBUTTONS, &buttons) == -1) { xf86Msg(X_ERROR, "Joystick: ioctl JSIOCGBUTTONS on '%s' failed: %s\n", joystick->device, strerror(errno)); - jstkCloseDevice_joystick(joystick); + jstkCloseDevice(joystick); return -1; } if (ioctl(joystick->fd, JSIOCGNAME(128), joy_name) == -1) { xf86Msg(X_ERROR, "Joystick: ioctl JSIOCGNAME on '%s' failed: %s\n", joystick->device, strerror(errno)); - jstkCloseDevice_joystick(joystick); + jstkCloseDevice(joystick); return -1; } @@ -127,32 +126,13 @@ jstkOpenDevice_joystick(JoystickDevPtr joystick, Bool probe) joystick->open_proc = jstkOpenDevice_joystick; joystick->read_proc = jstkReadData_joystick; - joystick->close_proc = jstkCloseDevice_joystick; + joystick->close_proc = jstkCloseDevice; return joystick->fd; } /*********************************************************************** * - * jstkCloseDevice -- - * - * close the handle. - * - *********************************************************************** - */ - -static void -jstkCloseDevice_joystick(JoystickDevPtr joystick) -{ - if ((joystick->fd >= 0)) { - xf86CloseSerial(joystick->fd); - joystick->fd = -1; - } -} - - -/*********************************************************************** - * * jstkReadData -- * * Reads data from fd and stores it in the JoystickDevRec struct @@ -34,6 +34,7 @@ #include <xf86Xinput.h> #include <exevents.h> /* Needed for InitValuator/Proximity stuff */ #include <xf86Opt.h> +#include <xf86_OSproc.h> #include <math.h> #include <xf86Module.h> @@ -98,6 +99,23 @@ jstkOpenDevice(JoystickDevPtr priv, BOOL probe) return fd; } +/* + *************************************************************************** + * + * jstkCloseDevice -- + * + * Called to close the device specified in priv, this is a helper for + * backend proc_close functions + * + *************************************************************************** + */ +void jstkCloseDevice(JoystickDevPtr priv) +{ + if ((priv->fd >= 0)) { + xf86CloseSerial(priv->fd); + priv->fd = -1; + } +} /* *************************************************************************** @@ -123,4 +123,6 @@ typedef struct _JoystickDevRec { BUTTON button[MAXBUTTONS]; /* Configuration per button */ } JoystickDevRec; +void jstkCloseDevice(JoystickDevPtr priv); + #endif |