You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.6 KiB
111 lines
2.6 KiB
#ifndef __USB200_H__ |
|
#define __USB200_H__ |
|
|
|
#include "usb100.h" |
|
|
|
|
|
#include <PSHPACK1.H> |
|
|
|
typedef enum _USB_DEVICE_SPEED { |
|
UsbLowSpeed = 0, |
|
UsbFullSpeed, |
|
UsbHighSpeed |
|
} USB_DEVICE_SPEED; |
|
|
|
typedef enum _USB_DEVICE_TYPE { |
|
Usb11Device = 0, |
|
Usb20Device |
|
} USB_DEVICE_TYPE; |
|
|
|
// standard definiions for the port status |
|
// word of the HUB port register |
|
|
|
#define USB_PORT_STATUS_CONNECT 0x0001 |
|
#define USB_PORT_STATUS_ENABLE 0x0002 |
|
#define USB_PORT_STATUS_SUSPEND 0x0004 |
|
#define USB_PORT_STATUS_OVER_CURRENT 0x0008 |
|
#define USB_PORT_STATUS_RESET 0x0010 |
|
#define USB_PORT_STATUS_POWER 0x0100 |
|
#define USB_PORT_STATUS_LOW_SPEED 0x0200 |
|
#define USB_PORT_STATUS_HIGH_SPEED 0x0400 |
|
|
|
typedef union _BM_REQUEST_TYPE { |
|
struct _BM { |
|
UCHAR Recipient:2; |
|
UCHAR Reserved:3; |
|
UCHAR Type:2; |
|
UCHAR Dir:1; |
|
}; |
|
UCHAR B; |
|
} BM_REQUEST_TYPE, *PBM_REQUEST_TYPE; |
|
|
|
typedef struct _USB_DEFAULT_PIPE_SETUP_PACKET { |
|
BM_REQUEST_TYPE bmRequestType; |
|
UCHAR bRequest; |
|
|
|
union _wValue { |
|
struct { |
|
UCHAR LowByte; |
|
UCHAR HiByte; |
|
}; |
|
USHORT W; |
|
} wValue; |
|
|
|
union _wIndex { |
|
struct { |
|
UCHAR LowByte; |
|
UCHAR HiByte; |
|
}; |
|
USHORT W; |
|
} wIndex; |
|
USHORT wLength; |
|
} USB_DEFAULT_PIPE_SETUP_PACKET, *PUSB_DEFAULT_PIPE_SETUP_PACKET; |
|
|
|
// setup packet is eight bytes -- defined by spec |
|
C_ASSERT(sizeof(USB_DEFAULT_PIPE_SETUP_PACKET) == 8); |
|
|
|
|
|
#define USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE 0x06 |
|
|
|
typedef struct _USB_DEVICE_QUALIFIER_DESCRIPTOR { |
|
UCHAR bLength; |
|
UCHAR bDescriptorType; |
|
USHORT bcdUSB; |
|
UCHAR bDeviceClass; |
|
UCHAR bDeviceSubClass; |
|
UCHAR bDeviceProtocol; |
|
UCHAR bMaxPacketSize0; |
|
UCHAR bNumConfigurations; |
|
UCHAR bReserved; |
|
} USB_DEVICE_QUALIFIER_DESCRIPTOR, *PUSB_DEVICE_QUALIFIER_DESCRIPTOR; |
|
|
|
|
|
typedef union _USB_HIGH_SPEED_MAXPACKET { |
|
struct _MP { |
|
USHORT MaxPacket:11; /* 0..10 */ |
|
USHORT HSmux:2; /* 11..12 */ |
|
USHORT Reserved:3; /* 13..15 */ |
|
}; |
|
USHORT us; |
|
} USB_HIGH_SPEED_MAXPACKET, *PUSB_HIGH_SPEED_MAXPACKET; |
|
|
|
#define USB_INTERFACE_ASSOCIATION_DESCRIPTOR_TYPE 0x0B |
|
|
|
typedef struct _USB_INTERFACE_ASSOCIATION_DESCRIPTOR { |
|
|
|
UCHAR bLength; |
|
UCHAR bDescriptorType; |
|
UCHAR bFirstInterface; |
|
UCHAR bInterfaceCount; |
|
UCHAR bFunctionClass; |
|
UCHAR bFunctionSubClass; |
|
UCHAR bFunctionProtocol; |
|
UCHAR iFunction; |
|
|
|
} USB_INTERFACE_ASSOCIATION_DESCRIPTOR, *PUSB_INTERFACE_ASSOCIATION_DESCRIPTOR; |
|
|
|
|
|
#include <POPPACK.H> |
|
|
|
#endif __USB200_H__ |
|
|
|
|