| Index: third_party/libusb/src/libusb/os/linux_udev.cc
|
| diff --git a/third_party/libusb/src/libusb/os/linux_udev.c b/third_party/libusb/src/libusb/os/linux_udev.cc
|
| similarity index 83%
|
| rename from third_party/libusb/src/libusb/os/linux_udev.c
|
| rename to third_party/libusb/src/libusb/os/linux_udev.cc
|
| index 99ac943410557de1a5cdd54082932db972040c2c..1b51ce44f4973c39b906d472b2a0cab51f987d3c 100644
|
| --- a/third_party/libusb/src/libusb/os/linux_udev.c
|
| +++ b/third_party/libusb/src/libusb/os/linux_udev.cc
|
| @@ -37,11 +37,14 @@
|
| #include <sys/utsname.h>
|
| #include <sys/socket.h>
|
| #include <unistd.h>
|
| -#include <libudev.h>
|
|
|
| +extern "C" {
|
| #include "libusb.h"
|
| #include "libusbi.h"
|
| #include "linux_usbfs.h"
|
| +}
|
| +
|
| +#include "device/udev_linux/udev.h"
|
|
|
| /* udev context */
|
| static struct udev *udev_ctx = NULL;
|
| @@ -58,30 +61,30 @@ int linux_udev_start_event_monitor(void)
|
| int r;
|
|
|
| assert(udev_ctx == NULL);
|
| - udev_ctx = udev_new();
|
| + udev_ctx = device::udev_new();
|
| if (!udev_ctx) {
|
| usbi_err(NULL, "could not create udev context");
|
| return LIBUSB_ERROR_OTHER;
|
| }
|
|
|
| - udev_monitor = udev_monitor_new_from_netlink(udev_ctx, "udev");
|
| + udev_monitor = device::udev_monitor_new_from_netlink(udev_ctx, "udev");
|
| if (!udev_monitor) {
|
| usbi_err(NULL, "could not initialize udev monitor");
|
| goto err_free_ctx;
|
| }
|
|
|
| - r = udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "usb", 0);
|
| + r = device::udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "usb", 0);
|
| if (r) {
|
| usbi_err(NULL, "could not initialize udev monitor filter for \"usb\" subsystem");
|
| goto err_free_monitor;
|
| }
|
|
|
| - if (udev_monitor_enable_receiving(udev_monitor)) {
|
| + if (device::udev_monitor_enable_receiving(udev_monitor)) {
|
| usbi_err(NULL, "failed to enable the udev monitor");
|
| goto err_free_monitor;
|
| }
|
|
|
| - udev_monitor_fd = udev_monitor_get_fd(udev_monitor);
|
| + udev_monitor_fd = device::udev_monitor_get_fd(udev_monitor);
|
|
|
| /* Some older versions of udev are not non-blocking by default,
|
| * so make sure this is set */
|
| @@ -114,11 +117,11 @@ err_close_pipe:
|
| close(udev_control_pipe[0]);
|
| close(udev_control_pipe[1]);
|
| err_free_monitor:
|
| - udev_monitor_unref(udev_monitor);
|
| + device::udev_monitor_unref(udev_monitor);
|
| udev_monitor = NULL;
|
| udev_monitor_fd = -1;
|
| err_free_ctx:
|
| - udev_unref(udev_ctx);
|
| + device::udev_unref(udev_ctx);
|
| udev_ctx = NULL;
|
| return LIBUSB_ERROR_OTHER;
|
| }
|
| @@ -141,12 +144,12 @@ int linux_udev_stop_event_monitor(void)
|
| pthread_join(linux_event_thread, NULL);
|
|
|
| /* Release the udev monitor */
|
| - udev_monitor_unref(udev_monitor);
|
| + device::udev_monitor_unref(udev_monitor);
|
| udev_monitor = NULL;
|
| udev_monitor_fd = -1;
|
|
|
| /* Clean up the udev context */
|
| - udev_unref(udev_ctx);
|
| + device::udev_unref(udev_ctx);
|
| udev_ctx = NULL;
|
|
|
| /* close and reset control pipe */
|
| @@ -183,7 +186,7 @@ static void *linux_udev_event_thread_main(void *arg)
|
| }
|
| if (fds[1].revents & POLLIN) {
|
| usbi_mutex_static_lock(&linux_hotplug_lock);
|
| - udev_dev = udev_monitor_receive_device(udev_monitor);
|
| + udev_dev = device::udev_monitor_receive_device(udev_monitor);
|
| if (udev_dev)
|
| udev_hotplug_event(udev_dev);
|
| usbi_mutex_static_unlock(&linux_hotplug_lock);
|
| @@ -200,12 +203,12 @@ static int udev_device_info(struct libusb_context *ctx, int detached,
|
| uint8_t *devaddr, const char **sys_name) {
|
| const char *dev_node;
|
|
|
| - dev_node = udev_device_get_devnode(udev_dev);
|
| + dev_node = device::udev_device_get_devnode(udev_dev);
|
| if (!dev_node) {
|
| return LIBUSB_ERROR_OTHER;
|
| }
|
|
|
| - *sys_name = udev_device_get_sysname(udev_dev);
|
| + *sys_name = device::udev_device_get_sysname(udev_dev);
|
| if (!*sys_name) {
|
| return LIBUSB_ERROR_OTHER;
|
| }
|
| @@ -223,7 +226,7 @@ static void udev_hotplug_event(struct udev_device* udev_dev)
|
| int r;
|
|
|
| do {
|
| - udev_action = udev_device_get_action(udev_dev);
|
| + udev_action = device::udev_device_get_action(udev_dev);
|
| if (!udev_action) {
|
| break;
|
| }
|
| @@ -246,7 +249,7 @@ static void udev_hotplug_event(struct udev_device* udev_dev)
|
| }
|
| } while (0);
|
|
|
| - udev_device_unref(udev_dev);
|
| + device::udev_device_unref(udev_dev);
|
| }
|
|
|
| int linux_udev_scan_devices(struct libusb_context *ctx)
|
| @@ -259,33 +262,33 @@ int linux_udev_scan_devices(struct libusb_context *ctx)
|
|
|
| assert(udev_ctx != NULL);
|
|
|
| - enumerator = udev_enumerate_new(udev_ctx);
|
| + enumerator = device::udev_enumerate_new(udev_ctx);
|
| if (NULL == enumerator) {
|
| usbi_err(ctx, "error creating udev enumerator");
|
| return LIBUSB_ERROR_OTHER;
|
| }
|
|
|
| - udev_enumerate_add_match_subsystem(enumerator, "usb");
|
| - udev_enumerate_scan_devices(enumerator);
|
| - devices = udev_enumerate_get_list_entry(enumerator);
|
| + device::udev_enumerate_add_match_subsystem(enumerator, "usb");
|
| + device::udev_enumerate_scan_devices(enumerator);
|
| + devices = device::udev_enumerate_get_list_entry(enumerator);
|
|
|
| udev_list_entry_foreach(entry, devices) {
|
| - const char *path = udev_list_entry_get_name(entry);
|
| + const char *path = device::udev_list_entry_get_name(entry);
|
| uint8_t busnum = 0, devaddr = 0;
|
|
|
| - udev_dev = udev_device_new_from_syspath(udev_ctx, path);
|
| + udev_dev = device::udev_device_new_from_syspath(udev_ctx, path);
|
|
|
| r = udev_device_info(ctx, 0, udev_dev, &busnum, &devaddr, &sys_name);
|
| if (r) {
|
| - udev_device_unref(udev_dev);
|
| + device::udev_device_unref(udev_dev);
|
| continue;
|
| }
|
|
|
| linux_enumerate_device(ctx, busnum, devaddr, sys_name);
|
| - udev_device_unref(udev_dev);
|
| + device::udev_device_unref(udev_dev);
|
| }
|
|
|
| - udev_enumerate_unref(enumerator);
|
| + device::udev_enumerate_unref(enumerator);
|
|
|
| return LIBUSB_SUCCESS;
|
| }
|
| @@ -296,7 +299,7 @@ void linux_udev_hotplug_poll(void)
|
|
|
| usbi_mutex_static_lock(&linux_hotplug_lock);
|
| do {
|
| - udev_dev = udev_monitor_receive_device(udev_monitor);
|
| + udev_dev = device::udev_monitor_receive_device(udev_monitor);
|
| if (udev_dev) {
|
| usbi_dbg("Handling hotplug event from hotplug_poll");
|
| udev_hotplug_event(udev_dev);
|
|
|