static void udev_input_free(void *data) { unsigned i; udev_input_t *udev = (udev_input_t*)data; if (!data || !udev) return; if (udev->joypad) udev->joypad->destroy(); epoll_free(&udev->epfd); for (i = 0; i < udev->num_devices; i++) { close(udev->devices[i]->fd); free(udev->devices[i]); } free(udev->devices); if (udev->monitor) udev_monitor_unref(udev->monitor); if (udev->udev) udev_unref(udev->udev); udev_input_kb_free(); free(udev); }
static void linuxraw_joypad_destroy(void) { unsigned i; for (i = 0; i < MAX_USERS; i++) { if (linuxraw_pads[i].fd >= 0) close(linuxraw_pads[i].fd); } memset(linuxraw_pads, 0, sizeof(linuxraw_pads)); for (i = 0; i < MAX_USERS; i++) linuxraw_pads[i].fd = -1; if (g_inotify >= 0) close(g_inotify); g_inotify = -1; epoll_free(true); g_hotplug = false; }