Index: device/usb/public/interfaces/device.mojom |
diff --git a/device/usb/public/interfaces/device.mojom b/device/usb/public/interfaces/device.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..efb9a1a09c43fac7c1f9aaf3382a7cc0abc21331 |
--- /dev/null |
+++ b/device/usb/public/interfaces/device.mojom |
@@ -0,0 +1,61 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+module device.usb; |
+ |
+enum TransferDirection { |
+ IN, |
+ OUT, |
+}; |
+ |
+enum EndpointType { |
+ BULK, |
+ INTERRUPT, |
+ ISOCHRONOUS, |
+}; |
+ |
+struct EndpointInfo { |
+ uint8 endpoint_number; |
+ TransferDirection direction; |
+ EndpointType type; |
+ uint32 packet_size; |
+}; |
+ |
+struct AlternateInterfaceInfo { |
+ uint8 alternate_setting; |
+ uint8 class_code; |
+ uint8 subclass_code; |
+ uint8 protocol_code; |
+ string? interface_name; |
+ array<EndpointInfo> endpoints; |
+}; |
+ |
+struct InterfaceInfo { |
+ uint8 interface_number; |
+ array<AlternateInterfaceInfo> alternates; |
+}; |
+ |
+struct ConfigurationInfo { |
+ uint8 configuration_value; |
+ string? configuration; |
+ array<InterfaceInfo> interfaces; |
+}; |
+ |
+struct DeviceInfo { |
+ uint16 usb_version; |
+ uint8 class_code; |
+ uint8 subclass_code; |
+ uint8 protocol_code; |
+ uint16 vendor_id; |
+ uint16 product_id; |
+ uint16 device_version; |
+ string? manufacturer; |
+ string? product; |
+ string? serial_number; |
+ array<ConfigurationInfo> configurations; |
+}; |
+ |
+interface Device { |
+ GetDeviceInfo() => (DeviceInfo info); |
+}; |