3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) the Wine project
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __DDK_USB100_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __DDK_USB100_H__
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_DEVICE_DESCRIPTOR_TYPE 0x01
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_CONFIGURATION_DESCRIPTOR_TYPE 0x02
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_STRING_DESCRIPTOR_TYPE 0x03
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_INTERFACE_DESCRIPTOR_TYPE 0x04
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_DESCRIPTOR_TYPE 0x05
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_RESERVED_DESCRIPTOR_TYPE 0x06
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_CONFIG_POWER_DESCRIPTOR_TYPE 0x07
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_INTERFACE_POWER_DESCRIPTOR_TYPE 0x08
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <pshpack1.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_DEVICE_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT bcdUSB;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDeviceClass;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDeviceSubClass;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDeviceProtocol;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bMaxPacketSize0;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT idVendor;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT idProduct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT bcdDevice;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR iManufacturer;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR iProduct;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR iSerialNumber;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bNumConfigurations;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_DEVICE_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_DEVICE_DESCRIPTOR *PUSB_DEVICE_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_TYPE_MASK 0x03
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_TYPE_CONTROL 0x00
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_TYPE_BULK 0x02
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define USB_ENDPOINT_TYPE_INTERRUPT 0x03
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_ENDPOINT_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bEndpointAddress;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bmAttributes;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT wMaxPacketSize;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bInterval;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_ENDPOINT_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_ENDPOINT_DESCRIPTOR *PUSB_ENDPOINT_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_CONFIGURATION_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT wTotalLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bNumInterfaces;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bConfigurationValue;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR iConfiguration;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bmAttributes;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR MaxPower;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_CONFIGURATION_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_CONFIGURATION_DESCRIPTOR *PUSB_CONFIGURATION_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_INTERFACE_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bInterfaceNumber;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bAlternateSetting;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bNumEndpoints;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bInterfaceClass;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bInterfaceSubClass;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bInterfaceProtocol;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR iInterface;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_INTERFACE_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_INTERFACE_DESCRIPTOR *PUSB_INTERFACE_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_STRING_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync WCHAR bString[1];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_STRING_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_STRING_DESCRIPTOR *PUSB_STRING_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_COMMON_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_COMMON_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_COMMON_DESCRIPTOR *PUSB_COMMON_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_HUB_DESCRIPTOR {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorLength;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bDescriptorType;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bNumberOfPorts;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync USHORT wHubCharacteristics;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bPowerOnToPowerGood;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bHubControlCurrent;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync UCHAR bRemoveAndPowerMask[64];
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} USB_HUB_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsynctypedef struct _USB_HUB_DESCRIPTOR *PUSB_HUB_DESCRIPTOR;
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#include <poppack.h>
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif