From e92feb85af4e12a1f1e045d89db526c6895f478a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 11 Jun 2017 20:44:02 +0200 Subject: [PATCH] Use epoll functions directly --- input/drivers/udev_input.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 1447074d96..96f8f3df67 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -52,7 +52,6 @@ #include "../../gfx/video_driver.h" #include "../common/linux_common.h" -#include "../common/epoll_common.h" #include "../../configuration.h" #include "../../verbosity.h" @@ -313,6 +312,7 @@ static bool udev_input_add_device(udev_input_t *udev, { int fd; struct stat st; + struct epoll_event event; udev_input_device_t **tmp; udev_input_device_t *device = NULL; @@ -351,7 +351,11 @@ static bool udev_input_add_device(udev_input_t *udev, tmp[udev->num_devices++] = device; udev->devices = tmp; - if (!epoll_add(&udev->epfd, fd, device)) + event.events = EPOLLIN; + event.data.ptr = device; + + /* Shouldn't happen, but just check it. */ + if (epoll_ctl(udev->epfd, EPOLL_CTL_ADD, fd, &event) < 0) { RARCH_ERR("Failed to add FD (%d) to epoll list (%s).\n", fd, strerror(errno)); @@ -716,7 +720,10 @@ static void udev_input_free(void *data) if (udev->joypad) udev->joypad->destroy(); - epoll_free(&udev->epfd); + if (udev->epfd >= 0) + close(udev->epfd); + + udev->epfd = -1; for (i = 0; i < udev->num_devices; i++) { @@ -783,6 +790,7 @@ static bool open_devices(udev_input_t *udev, static void *udev_input_init(const char *joypad_driver) { + int fd; udev_input_t *udev = (udev_input_t*)calloc(1, sizeof(*udev)); if (!udev) @@ -811,12 +819,15 @@ static void *udev_input_init(const char *joypad_driver) udev->xkb_handling = string_is_equal_fast(ctx_ident.ident, "kms", 4); #endif - if (!epoll_new(&udev->epfd)) + fd = epoll_create(32); + if (fd < 0) { RARCH_ERR("Failed to create epoll FD.\n"); goto error; } + udev->epfd = fd; + if (!open_devices(udev, UDEV_INPUT_KEYBOARD, udev_handle_keyboard)) { RARCH_ERR("Failed to open keyboard.\n");