| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library zircon.hw.usb; |
| |
| using zx; |
| |
| enum UsbSpeed : uint32 { |
| |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbSetup { |
| uint8 bmRequestType; |
| uint8 bRequest; |
| uint16 wValue; |
| uint16 wIndex; |
| uint16 wLength; |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbDeviceDescriptor { |
| uint8 bLength; |
| uint8 bDescriptorType; |
| uint16 bcdUSB; |
| uint8 bDeviceClass; |
| uint8 bDeviceSubClass; |
| uint8 bDeviceProtocol; |
| uint8 bMaxPacketSize0; |
| uint16 idVendor; |
| uint16 idProduct; |
| uint16 bcdDevice; |
| uint8 iManufacturer; |
| uint8 iProduct; |
| uint8 iSerialNumber; |
| uint8 bNumConfigurations; |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbConfigurationDescriptor { |
| uint8 bLength; |
| uint8 bDescriptorType; |
| uint16 wTotalLength; |
| uint8 bNumInterfaces; |
| uint8 bConfigurationValue; |
| uint8 iConfiguration; |
| uint8 bmAttributes; |
| uint8 bMaxPower; |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbInterfaceDescriptor { |
| uint8 bLength; |
| uint8 bDescriptorType; |
| uint8 bEndpointAddress; |
| uint8 bmAttributes; |
| uint16 wMaxPacketSize; |
| uint8 bInterval; |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbEndpointDescriptor { |
| uint8 bLength; |
| uint8 bDescriptorType; |
| uint8 bAlternateSetting; |
| uint8 bNumEndpoints; |
| uint8 bInterfaceClass; |
| uint8 bInterfaceSubClass; |
| uint8 bInterfaceProtocol; |
| uint8 iInterface; |
| }; |
| |
| [Packed, repr="C"] |
| struct UsbSsEpCompDescriptor { |
| uint8 bLength; |
| uint8 bDescriptorType; |
| uint8 bMaxBurst; |
| uint8 bmAttributes; |
| uint16 wBytesPerInterval; |
| }; |