From f6ba613e9e8cbcb1a69d7f48295f1293ce267f03 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 13 Mar 2014 14:24:48 +1000 Subject: [PATCH] udev: factor out device_removed handling MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit No functional changes Signed-off-by: Peter Hutterer Reviewed-by: Jonas Ådahl --- src/udev-seat.c | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/udev-seat.c b/src/udev-seat.c index e622de2..38a13b7 100644 --- a/src/udev-seat.c +++ b/src/udev-seat.c @@ -116,6 +116,27 @@ device_added(struct udev_device *udev_device, struct udev_input *input) return 0; } +static void +device_removed(struct udev_device *udev_device, struct udev_input *input) +{ + const char *devnode; + struct evdev_device *device, *next; + struct udev_seat *seat; + + devnode = udev_device_get_devnode(udev_device); + list_for_each(seat, &input->base.seat_list, base.link) { + list_for_each_safe(device, next, + &seat->base.devices_list, base.link) { + if (!strcmp(device->devnode, devnode)) { + log_info("input device %s, %s removed\n", + device->devname, device->devnode); + evdev_device_remove(device); + break; + } + } + } +} + static int udev_input_add_devices(struct udev_input *input, struct udev *udev) { @@ -155,10 +176,7 @@ evdev_udev_handler(void *data) { struct udev_input *input = data; struct udev_device *udev_device; - struct evdev_device *device, *next; const char *action; - const char *devnode; - struct udev_seat *seat; udev_device = udev_monitor_receive_device(input->udev_monitor); if (!udev_device) @@ -171,22 +189,10 @@ evdev_udev_handler(void *data) if (strncmp("event", udev_device_get_sysname(udev_device), 5) != 0) goto out; - if (!strcmp(action, "add")) { + if (!strcmp(action, "add")) device_added(udev_device, input); - } - else if (!strcmp(action, "remove")) { - devnode = udev_device_get_devnode(udev_device); - list_for_each(seat, &input->base.seat_list, base.link) { - list_for_each_safe(device, next, - &seat->base.devices_list, base.link) - if (!strcmp(device->devnode, devnode)) { - log_info("input device %s, %s removed\n", - device->devname, device->devnode); - evdev_device_remove(device); - break; - } - } - } + else if (!strcmp(action, "remove")) + device_removed(udev_device, input); out: udev_device_unref(udev_device); -- 2.7.4