Index: third_party/libusb/src/libusb/os/darwin_usb.h |
diff --git a/third_party/libusb/src/libusb/os/darwin_usb.h b/third_party/libusb/src/libusb/os/darwin_usb.h |
index 59d0a694cedea8f1d3141261312734ca2d6d9872..53b8542b13cd30600b271b455ee362a54f98b23d 100644 |
--- a/third_party/libusb/src/libusb/os/darwin_usb.h |
+++ b/third_party/libusb/src/libusb/os/darwin_usb.h |
@@ -1,6 +1,6 @@ |
/* |
- * darwin backend for libusb 1.0 |
- * Copyright (C) 2008-2009 Nathan Hjelm <hjelmn@users.sourceforge.net> |
+ * darwin backend for libusbx 1.0 |
+ * Copyright © 2008-2013 Nathan Hjelm <hjelmn@users.sourceforge.net> |
* |
* This library is free software; you can redistribute it and/or |
* modify it under the terms of the GNU Lesser General Public |
@@ -28,7 +28,19 @@ |
#include <IOKit/IOCFPlugIn.h> |
/* IOUSBInterfaceInferface */ |
-#if defined (kIOUSBInterfaceInterfaceID300) |
+#if defined (kIOUSBInterfaceInterfaceID550) |
+ |
+#define usb_interface_t IOUSBInterfaceInterface550 |
+#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID550 |
+#define InterfaceVersion 550 |
+ |
+#elif defined (kIOUSBInterfaceInterfaceID500) |
+ |
+#define usb_interface_t IOUSBInterfaceInterface500 |
+#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID500 |
+#define InterfaceVersion 500 |
+ |
+#elif defined (kIOUSBInterfaceInterfaceID300) |
#define usb_interface_t IOUSBInterfaceInterface300 |
#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID300 |
@@ -46,24 +58,6 @@ |
#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID220 |
#define InterfaceVersion 220 |
-#elif defined (kIOUSBInterfaceInterfaceID197) |
- |
-#define usb_interface_t IOUSBInterfaceInterface197 |
-#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID197 |
-#define InterfaceVersion 197 |
- |
-#elif defined (kIOUSBInterfaceInterfaceID190) |
- |
-#define usb_interface_t IOUSBInterfaceInterface190 |
-#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID190 |
-#define InterfaceVersion 190 |
- |
-#elif defined (kIOUSBInterfaceInterfaceID182) |
- |
-#define usb_interface_t IOUSBInterfaceInterface182 |
-#define InterfaceInterfaceID kIOUSBInterfaceInterfaceID182 |
-#define InterfaceVersion 182 |
- |
#else |
#error "IOUSBFamily is too old. Please upgrade your OS" |
@@ -71,7 +65,13 @@ |
#endif |
/* IOUSBDeviceInterface */ |
-#if defined (kIOUSBDeviceInterfaceID320) |
+#if defined (kIOUSBDeviceInterfaceID500) |
+ |
+#define usb_device_t IOUSBDeviceInterface500 |
+#define DeviceInterfaceID kIOUSBDeviceInterfaceID500 |
+#define DeviceVersion 500 |
+ |
+#elif defined (kIOUSBDeviceInterfaceID320) |
#define usb_device_t IOUSBDeviceInterface320 |
#define DeviceInterfaceID kIOUSBDeviceInterfaceID320 |
@@ -89,24 +89,11 @@ |
#define DeviceInterfaceID kIOUSBDeviceInterfaceID245 |
#define DeviceVersion 245 |
-#elif defined (kIOUSBDeviceInterfaceID197) |
- |
+#elif defined (kIOUSBDeviceInterfaceID220) |
#define usb_device_t IOUSBDeviceInterface197 |
#define DeviceInterfaceID kIOUSBDeviceInterfaceID197 |
#define DeviceVersion 197 |
-#elif defined (kIOUSBDeviceInterfaceID187) |
- |
-#define usb_device_t IOUSBDeviceInterface187 |
-#define DeviceInterfaceID kIOUSBDeviceInterfaceID187 |
-#define DeviceVersion 187 |
- |
-#elif defined (kIOUSBDeviceInterfaceID182) |
- |
-#define usb_device_t IOUSBDeviceInterface182 |
-#define DeviceInterfaceID kIOUSBDeviceInterfaceID182 |
-#define DeviceVersion 182 |
- |
#else |
#error "IOUSBFamily is too old. Please upgrade your OS" |
@@ -121,13 +108,23 @@ typedef IOCFPlugInInterface *io_cf_plugin_ref_t; |
typedef IONotificationPortRef io_notification_port_t; |
/* private structures */ |
-struct darwin_device_priv { |
+struct darwin_cached_device { |
+ struct list_head list; |
IOUSBDeviceDescriptor dev_descriptor; |
UInt32 location; |
+ UInt64 parent_session; |
+ UInt64 session; |
+ UInt16 address; |
char sys_path[21]; |
usb_device_t **device; |
int open_count; |
- UInt8 first_config, active_config; |
+ UInt8 first_config, active_config, port; |
+ int can_enumerate; |
+ int refcount; |
+}; |
+ |
+struct darwin_device_priv { |
+ struct darwin_cached_device *dev; |
}; |
struct darwin_device_handle_priv { |
@@ -147,23 +144,19 @@ struct darwin_device_handle_priv { |
struct darwin_transfer_priv { |
/* Isoc */ |
IOUSBIsocFrame *isoc_framelist; |
- size_t num_iso_packets; |
+ int num_iso_packets; |
/* Control */ |
-#if !defined (LIBUSB_NO_TIMEOUT_DEVICE) |
IOUSBDevRequestTO req; |
-#else |
- IOUSBDevRequest req; |
-#endif |
/* Bulk */ |
}; |
-enum { |
- MESSAGE_DEVICE_GONE, |
- MESSAGE_ASYNC_IO_COMPLETE |
+/* structure for signaling io completion */ |
+struct darwin_msg_async_io_complete { |
+ struct usbi_transfer *itransfer; |
+ IOReturn result; |
+ UInt32 size; |
}; |
- |
- |
#endif |