Chromium Code Reviews| Index: third_party/libusb/windows-build.patch |
| diff --git a/third_party/libusb/windows-build.patch b/third_party/libusb/windows-build.patch |
| index d2a478cd7361521f786d38c93d2cb728b43222fd..ef2dc04a0ab1ad79cd615e8aafd1e484fa08c870 100644 |
| --- a/third_party/libusb/windows-build.patch |
| +++ b/third_party/libusb/windows-build.patch |
| @@ -1,41 +1,54 @@ |
| diff --git a/libusb/libusb.h b/libusb/libusb.h |
| -index 58b406f..1d0dd7d 100644 |
| +index e8e1201..15bd0d5 100644 |
| --- a/libusb/libusb.h |
| +++ b/libusb/libusb.h |
| -@@ -881,6 +881,12 @@ typedef void (LIBUSB_CALL *libusb_transfer_cb_fn)(struct libusb_transfer *transf |
| - * completed, the library populates the transfer with the results and passes |
| - * it back to the user. |
| - */ |
| -+ |
| -+#if defined(OS_WIN) |
| +@@ -25,6 +25,12 @@ |
| + #define LIBUSB_H |
| + |
| + #ifdef _MSC_VER |
| ++// Disable warning 4200 for [0]. |
| +#pragma warning(push) |
| -+#pragma warning(disable:4200) |
| -+#endif // defined(OS_WIN) |
| ++#pragma warning(disable: 4200) |
| ++#endif |
| + |
| - struct libusb_transfer { |
| - /** Handle of the device that this transfer will be submitted to */ |
| - libusb_device_handle *dev_handle; |
| -@@ -939,6 +945,10 @@ struct libusb_transfer { |
| - ; |
| - }; |
| ++#ifdef _MSC_VER |
| + /* on MS environments, the inline keyword is available in C++ only */ |
| + #if !defined(__cplusplus) |
| + #define inline __inline |
| +@@ -1938,4 +1944,8 @@ void LIBUSB_CALL libusb_hotplug_deregister_callback(libusb_context *ctx, |
| + } |
| + #endif |
| -+#if defined(OS_WIN) |
| ++#ifdef _MSC_VER |
| +#pragma warning(pop) |
| -+#endif // defined(OS_WIN) |
| ++#endif |
| + |
| - /** \ingroup misc |
| - * Capabilities supported by this instance of libusb. Test if the loaded |
| - * library supports a given capability by calling |
| -diff --git a/libusb/os/windows_usb.h b/libusb/os/windows_usb.h |
| -index ddbd680..7c2fae5 100644 |
| ---- a/libusb/os/windows_usb.h |
| -+++ b/libusb/os/windows_usb.h |
| -@@ -101,7 +101,7 @@ const GUID GUID_DEVINTERFACE_USB_DEVICE = { 0xA5DCBF10, 0x6530, 0x11D2, {0x90, 0 |
| - #if !defined(GUID_DEVINTERFACE_USB_HUB) |
| - const GUID GUID_DEVINTERFACE_USB_HUB = { 0xF18A0E88, 0xC30C, 0x11D0, {0x88, 0x15, 0x00, 0xA0, 0xC9, 0x06, 0xBE, 0xD8} }; |
| #endif |
| --const GUID GUID_NULL = { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; |
| -+static const GUID GUID_NULL = { 0x00000000, 0x0000, 0x0000, {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} }; |
| - |
| +diff --git a/libusb/os/threads_posix.c b/libusb/os/threads_posix.c |
|
pfeldman
2013/07/19 06:47:23
nit: this is not related to windows, so the patch
|
| +index 9769f58..46f6db7 100644 |
| +--- a/libusb/os/threads_posix.c |
| ++++ b/libusb/os/threads_posix.c |
| +@@ -20,11 +20,6 @@ |
| + */ |
| - /* |
| + #if defined(__linux__) || defined(__OpenBSD__) |
| +-# if defined(__linux__) |
| +-# define _GNU_SOURCE |
| +-# else |
| +-# define _BSD_SOURCE |
| +-# endif |
| + # include <unistd.h> |
| + # include <sys/syscall.h> |
| + #elif defined(__APPLE__) |
| +diff --git a/libusb/os/windows_usb.c b/libusb/os/windows_usb.c |
| +index 63357b1..51ce55d 100644 |
| +--- a/libusb/os/windows_usb.c |
| ++++ b/libusb/os/windows_usb.c |
| +@@ -2142,6 +2142,7 @@ static int windows_handle_events(struct libusb_context *ctx, struct pollfd *fds, |
| + windows_handle_callback(transfer, io_result, io_size); |
| + } else { |
| + usbi_err(ctx, "could not find a matching transfer for fd %x", fds[i]); |
| ++ usbi_mutex_unlock(&ctx->open_devs_lock); |
|
pfeldman
2013/07/19 06:47:23
Great!
|
| + return LIBUSB_ERROR_NOT_FOUND; |
| + } |
| + } |