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); |