summaryrefslogtreecommitdiff
path: root/libusb/libusb.h
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-01-15 12:35:02 +0000
committerPete Batard <pbatard@gmail.com>2010-01-15 12:35:02 +0000
commitb96e16e75ffc2b3bdd76ec5457d37d092f0a2590 (patch)
tree21ad3867b7e663edf6511c511f2ecb0f0a9a7ba6 /libusb/libusb.h
parent8981e69c7da1c6b8c9e97510bd5b1dd137e50cdb (diff)
downloadlibusb-b96e16e75ffc2b3bdd76ec5457d37d092f0a2590.tar.gz
r80: workaround for interface macro redefinition on Windows (removes the need for #undef interface in end user sources)
Diffstat (limited to 'libusb/libusb.h')
-rw-r--r--libusb/libusb.h27
1 files changed, 19 insertions, 8 deletions
diff --git a/libusb/libusb.h b/libusb/libusb.h
index 46a5006..d345727 100644
--- a/libusb/libusb.h
+++ b/libusb/libusb.h
@@ -22,8 +22,7 @@
#define __LIBUSB_H__
#include <stdint.h>
-#if defined(_MSC_VER)
-#define inline __inline
+#ifdef _MSC_VER
#include <time.h>
#else
#include <sys/time.h>
@@ -32,6 +31,15 @@
#include <time.h>
#include <limits.h>
+// Work around for Windows "interface" macro redefinition
+#ifdef _MSC_VER
+#define inline __inline
+#pragma push_macro("interface")
+#endif
+#ifndef interface
+#define interface usb_interface
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -496,7 +504,7 @@ struct libusb_config_descriptor {
/** Array of interfaces supported by this configuration. The length of
* this array is determined by the bNumInterfaces field. */
- const struct libusb_interface *interface;
+ const struct libusb_interface *usb_interface;
/** Extra descriptors. If libusb encounters unknown configuration
* descriptors, it will store them here, should you wish to parse them. */
@@ -800,8 +808,8 @@ void libusb_close(libusb_device_handle *dev_handle);
libusb_device *libusb_get_device(libusb_device_handle *dev_handle);
int libusb_set_configuration(libusb_device_handle *dev, int configuration);
-int libusb_claim_interface(libusb_device_handle *dev, int iface);
-int libusb_release_interface(libusb_device_handle *dev, int iface);
+int libusb_claim_interface(libusb_device_handle *dev, int interface_number);
+int libusb_release_interface(libusb_device_handle *dev, int interface_number);
libusb_device_handle *libusb_open_device_with_vid_pid(libusb_context *ctx,
uint16_t vendor_id, uint16_t product_id);
@@ -811,9 +819,9 @@ int libusb_set_interface_alt_setting(libusb_device_handle *dev,
int libusb_clear_halt(libusb_device_handle *dev, unsigned char endpoint);
int libusb_reset_device(libusb_device_handle *dev);
-int libusb_kernel_driver_active(libusb_device_handle *dev, int interface);
-int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface);
-int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface);
+int libusb_kernel_driver_active(libusb_device_handle *dev, int interface_number);
+int libusb_detach_kernel_driver(libusb_device_handle *dev, int interface_number);
+int libusb_attach_kernel_driver(libusb_device_handle *dev, int interface_number);
/* async I/O */
@@ -1237,4 +1245,7 @@ void libusb_set_pollfd_notifiers(libusb_context *ctx,
}
#endif
+#ifdef _MSC_VER
+#pragma pop_macro("interface")
+#endif
#endif