MdePkg[all]  1.08
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Usb.h File Reference

Data Structures

struct  USB_DEVICE_REQUEST
 
struct  USB_DEVICE_DESCRIPTOR
 
struct  USB_CONFIG_DESCRIPTOR
 
struct  USB_INTERFACE_DESCRIPTOR
 
struct  USB_ENDPOINT_DESCRIPTOR
 
struct  EFI_USB_STRING_DESCRIPTOR
 
struct  hid_class_descriptor
 
struct  hid_descriptor
 

Macros

#define USB_MASS_STORE_CLASS   0x08
 
#define USB_MASS_STORE_RBC   0x01
 Reduced Block Commands. More...
 
#define USB_MASS_STORE_8020I   0x02
 SFF-8020i, typically a CD/DVD device. More...
 
#define USB_MASS_STORE_QIC   0x03
 Typically a tape device. More...
 
#define USB_MASS_STORE_UFI   0x04
 Typically a floppy disk driver device. More...
 
#define USB_MASS_STORE_8070I   0x05
 SFF-8070i, typically a floppy disk driver device. More...
 
#define USB_MASS_STORE_SCSI   0x06
 SCSI transparent command set. More...
 
#define USB_MASS_STORE_CBI0   0x00
 CBI protocol with command completion interrupt. More...
 
#define USB_MASS_STORE_CBI1   0x01
 CBI protocol without command completion interrupt. More...
 
#define USB_MASS_STORE_BOT   0x50
 Bulk-Only Transport. More...
 
#define USB_DEV_GET_STATUS   0x00
 
#define USB_DEV_GET_STATUS_REQ_TYPE_D   0x80
 
#define USB_DEV_GET_STATUS_REQ_TYPE_I   0x81
 
#define USB_DEV_GET_STATUS_REQ_TYPE_E   0x82
 
#define USB_DEV_CLEAR_FEATURE   0x01
 
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_D   0x00
 
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_I   0x01
 
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_E   0x02
 
#define USB_DEV_SET_FEATURE   0x03
 
#define USB_DEV_SET_FEATURE_REQ_TYPE_D   0x00
 
#define USB_DEV_SET_FEATURE_REQ_TYPE_I   0x01
 
#define USB_DEV_SET_FEATURE_REQ_TYPE_E   0x02
 
#define USB_DEV_SET_ADDRESS   0x05
 
#define USB_DEV_SET_ADDRESS_REQ_TYPE   0x00
 
#define USB_DEV_GET_DESCRIPTOR   0x06
 
#define USB_DEV_GET_DESCRIPTOR_REQ_TYPE   0x80
 
#define USB_DEV_SET_DESCRIPTOR   0x07
 
#define USB_DEV_SET_DESCRIPTOR_REQ_TYPE   0x00
 
#define USB_DEV_GET_CONFIGURATION   0x08
 
#define USB_DEV_GET_CONFIGURATION_REQ_TYPE   0x80
 
#define USB_DEV_SET_CONFIGURATION   0x09
 
#define USB_DEV_SET_CONFIGURATION_REQ_TYPE   0x00
 
#define USB_DEV_GET_INTERFACE   0x0A
 
#define USB_DEV_GET_INTERFACE_REQ_TYPE   0x81
 
#define USB_DEV_SET_INTERFACE   0x0B
 
#define USB_DEV_SET_INTERFACE_REQ_TYPE   0x01
 
#define USB_DEV_SYNCH_FRAME   0x0C
 
#define USB_DEV_SYNCH_FRAME_REQ_TYPE   0x82
 
#define USB_HID_GET_DESCRIPTOR_REQ_TYPE   0x81
 
#define USB_HID_CLASS_GET_REQ_TYPE   0xa1
 
#define USB_HID_CLASS_SET_REQ_TYPE   0x21
 
#define HID_ITEM_FORMAT_SHORT   0
 
#define HID_ITEM_FORMAT_LONG   1
 
#define HID_ITEM_TAG_LONG   15
 
#define HID_ITEM_TYPE_MAIN   0
 
#define HID_ITEM_TYPE_GLOBAL   1
 
#define HID_ITEM_TYPE_LOCAL   2
 
#define HID_ITEM_TYPE_RESERVED   3
 
#define HID_MAIN_ITEM_TAG_INPUT   8
 
#define HID_MAIN_ITEM_TAG_OUTPUT   9
 
#define HID_MAIN_ITEM_TAG_FEATURE   11
 
#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION   10
 
#define HID_MAIN_ITEM_TAG_END_COLLECTION   12
 
#define HID_MAIN_ITEM_CONSTANT   0x001
 
#define HID_MAIN_ITEM_VARIABLE   0x002
 
#define HID_MAIN_ITEM_RELATIVE   0x004
 
#define HID_MAIN_ITEM_WRAP   0x008
 
#define HID_MAIN_ITEM_NONLINEAR   0x010
 
#define HID_MAIN_ITEM_NO_PREFERRED   0x020
 
#define HID_MAIN_ITEM_NULL_STATE   0x040
 
#define HID_MAIN_ITEM_VOLATILE   0x080
 
#define HID_MAIN_ITEM_BUFFERED_BYTE   0x100
 
#define HID_COLLECTION_PHYSICAL   0
 
#define HID_COLLECTION_APPLICATION   1
 
#define HID_COLLECTION_LOGICAL   2
 
#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE   0
 
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM   1
 
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM   2
 
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM   3
 
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM   4
 
#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT   5
 
#define HID_GLOBAL_ITEM_TAG_UNIT   6
 
#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE   7
 
#define HID_GLOBAL_ITEM_TAG_REPORT_ID   8
 
#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT   9
 
#define HID_GLOBAL_ITEM_TAG_PUSH   10
 
#define HID_GLOBAL_ITEM_TAG_POP   11
 
#define HID_LOCAL_ITEM_TAG_USAGE   0
 
#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM   1
 
#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM   2
 
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX   3
 
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM   4
 
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM   5
 
#define HID_LOCAL_ITEM_TAG_STRING_INDEX   7
 
#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM   8
 
#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM   9
 
#define HID_LOCAL_ITEM_TAG_DELIMITER   10
 
#define HID_INPUT_REPORT   1
 
#define HID_OUTPUT_REPORT   2
 
#define HID_FEATURE_REPORT   3
 
#define EFI_USB_GET_REPORT_REQUEST   0x01
 
#define EFI_USB_GET_IDLE_REQUEST   0x02
 
#define EFI_USB_GET_PROTOCOL_REQUEST   0x03
 
#define EFI_USB_SET_REPORT_REQUEST   0x09
 
#define EFI_USB_SET_IDLE_REQUEST   0x0a
 
#define EFI_USB_SET_PROTOCOL_REQUEST   0x0b
 

Typedefs

typedef struct hid_class_descriptor EFI_USB_HID_CLASS_DESCRIPTOR
 
typedef struct hid_descriptor EFI_USB_HID_DESCRIPTOR
 

Enumerations

enum  USB_TYPES_DEFINITION {
  USB_REQ_TYPE_STANDARD = (0x00 << 5), USB_REQ_TYPE_CLASS = (0x01 << 5), USB_REQ_TYPE_VENDOR = (0x02 << 5), USB_REQ_GET_STATUS = 0x00,
  USB_REQ_CLEAR_FEATURE = 0x01, USB_REQ_SET_FEATURE = 0x03, USB_REQ_SET_ADDRESS = 0x05, USB_REQ_GET_DESCRIPTOR = 0x06,
  USB_REQ_SET_DESCRIPTOR = 0x07, USB_REQ_GET_CONFIG = 0x08, USB_REQ_SET_CONFIG = 0x09, USB_REQ_GET_INTERFACE = 0x0A,
  USB_REQ_SET_INTERFACE = 0x0B, USB_REQ_SYNCH_FRAME = 0x0C, USB_TARGET_DEVICE = 0, USB_TARGET_INTERFACE = 0x01,
  USB_TARGET_ENDPOINT = 0x02, USB_TARGET_OTHER = 0x03, USB_DESC_TYPE_DEVICE = 0x01, USB_DESC_TYPE_CONFIG = 0x02,
  USB_DESC_TYPE_STRING = 0x03, USB_DESC_TYPE_INTERFACE = 0x04, USB_DESC_TYPE_ENDPOINT = 0x05, USB_DESC_TYPE_HID = 0x21,
  USB_DESC_TYPE_REPORT = 0x22, USB_FEATURE_ENDPOINT_HALT = 0, USB_ENDPOINT_CONTROL = 0x00, USB_ENDPOINT_ISO = 0x01,
  USB_ENDPOINT_BULK = 0x02, USB_ENDPOINT_INTERRUPT = 0x03, USB_ENDPOINT_TYPE_MASK = 0x03, USB_ENDPOINT_DIR_IN = 0x80,
  EFI_USB_INTERRUPT_DELAY = 2000000
}
 

Detailed Description

Support for USB 2.0 standard.

Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Macro Definition Documentation

#define EFI_USB_GET_IDLE_REQUEST   0x02
#define EFI_USB_GET_PROTOCOL_REQUEST   0x03
#define EFI_USB_GET_REPORT_REQUEST   0x01
#define EFI_USB_SET_IDLE_REQUEST   0x0a
#define EFI_USB_SET_PROTOCOL_REQUEST   0x0b
#define EFI_USB_SET_REPORT_REQUEST   0x09
#define HID_COLLECTION_APPLICATION   1
#define HID_COLLECTION_LOGICAL   2
#define HID_COLLECTION_PHYSICAL   0
#define HID_FEATURE_REPORT   3
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM   2
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM   1
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM   4
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM   3
#define HID_GLOBAL_ITEM_TAG_POP   11
#define HID_GLOBAL_ITEM_TAG_PUSH   10
#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT   9
#define HID_GLOBAL_ITEM_TAG_REPORT_ID   8
#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE   7
#define HID_GLOBAL_ITEM_TAG_UNIT   6
#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT   5
#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE   0
#define HID_INPUT_REPORT   1
#define HID_ITEM_FORMAT_LONG   1
#define HID_ITEM_FORMAT_SHORT   0
#define HID_ITEM_TAG_LONG   15
#define HID_ITEM_TYPE_GLOBAL   1
#define HID_ITEM_TYPE_LOCAL   2
#define HID_ITEM_TYPE_MAIN   0
#define HID_ITEM_TYPE_RESERVED   3
#define HID_LOCAL_ITEM_TAG_DELIMITER   10
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX   3
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM   5
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM   4
#define HID_LOCAL_ITEM_TAG_STRING_INDEX   7
#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM   9
#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM   8
#define HID_LOCAL_ITEM_TAG_USAGE   0
#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM   2
#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM   1
#define HID_MAIN_ITEM_BUFFERED_BYTE   0x100
#define HID_MAIN_ITEM_CONSTANT   0x001
#define HID_MAIN_ITEM_NO_PREFERRED   0x020
#define HID_MAIN_ITEM_NONLINEAR   0x010
#define HID_MAIN_ITEM_NULL_STATE   0x040
#define HID_MAIN_ITEM_RELATIVE   0x004
#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION   10
#define HID_MAIN_ITEM_TAG_END_COLLECTION   12
#define HID_MAIN_ITEM_TAG_FEATURE   11
#define HID_MAIN_ITEM_TAG_INPUT   8
#define HID_MAIN_ITEM_TAG_OUTPUT   9
#define HID_MAIN_ITEM_VARIABLE   0x002
#define HID_MAIN_ITEM_VOLATILE   0x080
#define HID_MAIN_ITEM_WRAP   0x008
#define HID_OUTPUT_REPORT   2
#define USB_DEV_CLEAR_FEATURE   0x01
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_D   0x00
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_E   0x02
#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_I   0x01
#define USB_DEV_GET_CONFIGURATION   0x08
#define USB_DEV_GET_CONFIGURATION_REQ_TYPE   0x80
#define USB_DEV_GET_DESCRIPTOR   0x06
#define USB_DEV_GET_DESCRIPTOR_REQ_TYPE   0x80
#define USB_DEV_GET_INTERFACE   0x0A
#define USB_DEV_GET_INTERFACE_REQ_TYPE   0x81
#define USB_DEV_GET_STATUS   0x00
#define USB_DEV_GET_STATUS_REQ_TYPE_D   0x80
#define USB_DEV_GET_STATUS_REQ_TYPE_E   0x82
#define USB_DEV_GET_STATUS_REQ_TYPE_I   0x81
#define USB_DEV_SET_ADDRESS   0x05
#define USB_DEV_SET_ADDRESS_REQ_TYPE   0x00
#define USB_DEV_SET_CONFIGURATION   0x09
#define USB_DEV_SET_CONFIGURATION_REQ_TYPE   0x00
#define USB_DEV_SET_DESCRIPTOR   0x07
#define USB_DEV_SET_DESCRIPTOR_REQ_TYPE   0x00
#define USB_DEV_SET_FEATURE   0x03
#define USB_DEV_SET_FEATURE_REQ_TYPE_D   0x00
#define USB_DEV_SET_FEATURE_REQ_TYPE_E   0x02
#define USB_DEV_SET_FEATURE_REQ_TYPE_I   0x01
#define USB_DEV_SET_INTERFACE   0x0B
#define USB_DEV_SET_INTERFACE_REQ_TYPE   0x01
#define USB_DEV_SYNCH_FRAME   0x0C
#define USB_DEV_SYNCH_FRAME_REQ_TYPE   0x82
#define USB_HID_CLASS_GET_REQ_TYPE   0xa1
#define USB_HID_CLASS_SET_REQ_TYPE   0x21
#define USB_HID_GET_DESCRIPTOR_REQ_TYPE   0x81
#define USB_MASS_STORE_8020I   0x02

SFF-8020i, typically a CD/DVD device.

#define USB_MASS_STORE_8070I   0x05

SFF-8070i, typically a floppy disk driver device.

#define USB_MASS_STORE_BOT   0x50

Bulk-Only Transport.

#define USB_MASS_STORE_CBI0   0x00

CBI protocol with command completion interrupt.

#define USB_MASS_STORE_CBI1   0x01

CBI protocol without command completion interrupt.

#define USB_MASS_STORE_CLASS   0x08
#define USB_MASS_STORE_QIC   0x03

Typically a tape device.

#define USB_MASS_STORE_RBC   0x01

Reduced Block Commands.

#define USB_MASS_STORE_SCSI   0x06

SCSI transparent command set.

#define USB_MASS_STORE_UFI   0x04

Typically a floppy disk driver device.

Typedef Documentation

Descriptor header for Report/Physical Descriptors HID 1.1, section 6.2.1

The HID descriptor identifies the length and type of subordinate descriptors for a device. HID 1.1, section 6.2.1

Enumeration Type Documentation

Enumerator
USB_REQ_TYPE_STANDARD 
USB_REQ_TYPE_CLASS 
USB_REQ_TYPE_VENDOR 
USB_REQ_GET_STATUS 
USB_REQ_CLEAR_FEATURE 
USB_REQ_SET_FEATURE 
USB_REQ_SET_ADDRESS 
USB_REQ_GET_DESCRIPTOR 
USB_REQ_SET_DESCRIPTOR 
USB_REQ_GET_CONFIG 
USB_REQ_SET_CONFIG 
USB_REQ_GET_INTERFACE 
USB_REQ_SET_INTERFACE 
USB_REQ_SYNCH_FRAME 
USB_TARGET_DEVICE 
USB_TARGET_INTERFACE 
USB_TARGET_ENDPOINT 
USB_TARGET_OTHER 
USB_DESC_TYPE_DEVICE 
USB_DESC_TYPE_CONFIG 
USB_DESC_TYPE_STRING 
USB_DESC_TYPE_INTERFACE 
USB_DESC_TYPE_ENDPOINT 
USB_DESC_TYPE_HID 
USB_DESC_TYPE_REPORT 
USB_FEATURE_ENDPOINT_HALT 
USB_ENDPOINT_CONTROL 
USB_ENDPOINT_ISO 
USB_ENDPOINT_BULK 
USB_ENDPOINT_INTERRUPT 
USB_ENDPOINT_TYPE_MASK 
USB_ENDPOINT_DIR_IN 
EFI_USB_INTERRUPT_DELAY