diff options
author | Aaron Wisner <awisner@google.com> | 2018-07-26 10:56:09 -0500 |
---|---|---|
committer | Aaron Wisner <awisner@google.com> | 2018-07-26 11:19:44 -0500 |
commit | acf78d462f556bef83dfe9a36db8201e552711a8 (patch) | |
tree | 79b47ce34c507fd7f6704c6e9480b214c1cc20f5 /fastboot/usb_windows.cpp | |
parent | 28fb130cbbd7c01ef706d5b6a5a9877b290f275c (diff) | |
download | system_core-acf78d462f556bef83dfe9a36db8201e552711a8.tar.gz system_core-acf78d462f556bef83dfe9a36db8201e552711a8.tar.bz2 system_core-acf78d462f556bef83dfe9a36db8201e552711a8.zip |
Add support for fastboot transport timeouts and USB Reset() on linux
USB Reset() allows simulating unplugging and replugging device.
Test: build and run fastboot on mac 10.13.3
Test: glinux build and run fastboot
Change-Id: Id924d063e549a4cca9dda03afd8f8fe266f6d2ab
Diffstat (limited to 'fastboot/usb_windows.cpp')
-rw-r--r-- | fastboot/usb_windows.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fastboot/usb_windows.cpp b/fastboot/usb_windows.cpp index 0e5fba125..8c60a7173 100644 --- a/fastboot/usb_windows.cpp +++ b/fastboot/usb_windows.cpp @@ -66,7 +66,7 @@ struct usb_handle { std::string interface_name; }; -class WindowsUsbTransport : public Transport { +class WindowsUsbTransport : public UsbTransport { public: WindowsUsbTransport(std::unique_ptr<usb_handle> handle) : handle_(std::move(handle)) {} ~WindowsUsbTransport() override = default; @@ -74,6 +74,7 @@ class WindowsUsbTransport : public Transport { ssize_t Read(void* data, size_t len) override; ssize_t Write(const void* data, size_t len) override; int Close() override; + int Reset() override; private: std::unique_ptr<usb_handle> handle_; @@ -261,6 +262,12 @@ int WindowsUsbTransport::Close() { return 0; } +int WindowsUsbTransport::Reset() { + DBG("usb_reset currently unsupported\n\n"); + // TODO, this is a bit complicated since it is using ADB + return -1; +} + int recognized_device(usb_handle* handle, ifc_match_func callback) { struct usb_ifc_info info; USB_DEVICE_DESCRIPTOR device_desc; @@ -366,8 +373,7 @@ static std::unique_ptr<usb_handle> find_usb_device(ifc_match_func callback) { return handle; } -Transport* usb_open(ifc_match_func callback) -{ +UsbTransport* usb_open(ifc_match_func callback, uint32_t) { std::unique_ptr<usb_handle> handle = find_usb_device(callback); return handle ? new WindowsUsbTransport(std::move(handle)) : nullptr; } |