iPXE
Usb.h File Reference

Support for USB 2.0 standard. More...

Go to the source code of this file.

Data Structures

struct  USB_DEVICE_REQUEST
 Format of Setup Data for USB Device Requests USB 2.0 spec, Section 9.3. More...
struct  USB_DEVICE_DESCRIPTOR
 Standard Device Descriptor USB 2.0 spec, Section 9.6.1. More...
struct  USB_CONFIG_DESCRIPTOR
 Standard Configuration Descriptor USB 2.0 spec, Section 9.6.3. More...
struct  USB_INTERFACE_ASSOCIATION_DESCRIPTOR
 Standard Interface Association Descriptor USB 3.0 spec, Section 9.6.4. More...
struct  USB_INTERFACE_DESCRIPTOR
 Standard Interface Descriptor USB 2.0 spec, Section 9.6.5. More...
struct  USB_ENDPOINT_DESCRIPTOR
 Standard Endpoint Descriptor USB 2.0 spec, Section 9.6.6. More...
struct  EFI_USB_STRING_DESCRIPTOR
 UNICODE String Descriptor USB 2.0 spec, Section 9.6.7. More...
struct  hid_class_descriptor
 Descriptor header for Report/Physical Descriptors HID 1.1, section 6.2.1. More...
struct  hid_descriptor
 The HID descriptor identifies the length and type of subordinate descriptors for a device. More...

Macros

#define USB_MASS_STORE_CLASS   0x08
#define USB_MASS_STORE_RBC   0x01
 Reduced Block Commands.
#define USB_MASS_STORE_8020I   0x02
 SFF-8020i, typically a CD/DVD device.
#define USB_MASS_STORE_QIC   0x03
 Typically a tape device.
#define USB_MASS_STORE_UFI   0x04
 Typically a floppy disk driver device.
#define USB_MASS_STORE_8070I   0x05
 SFF-8070i, typically a floppy disk driver device.
#define USB_MASS_STORE_SCSI   0x06
 SCSI transparent command set.
#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_BOT   0x50
 Bulk-Only Transport.
#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
 Descriptor header for Report/Physical Descriptors HID 1.1, section 6.2.1.
typedef struct hid_descriptor EFI_USB_HID_DESCRIPTOR
 The HID descriptor identifies the length and type of subordinate descriptors for a device.

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_INTERFACE_ASSOCIATION = 0x0b ,
  USB_DESC_TYPE_HID = 0x21 , USB_DESC_TYPE_REPORT = 0x22 , USB_DESC_TYPE_CS_INTERFACE = 0x24 , USB_DESC_TYPE_CS_ENDPOINT = 0x25 ,
  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
}

Functions

 FILE_LICENCE (BSD2_PATENT)
 FILE_SECBOOT (PERMITTED)

Detailed Description

Support for USB 2.0 standard.

Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.
Copyright (c) 2024, American Megatrends International LLC. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file Usb.h.

Macro Definition Documentation

◆ USB_MASS_STORE_CLASS

#define USB_MASS_STORE_CLASS   0x08

Definition at line 24 of file Usb.h.

◆ USB_MASS_STORE_RBC

#define USB_MASS_STORE_RBC   0x01

Reduced Block Commands.

Definition at line 29 of file Usb.h.

◆ USB_MASS_STORE_8020I

#define USB_MASS_STORE_8020I   0x02

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

Definition at line 30 of file Usb.h.

◆ USB_MASS_STORE_QIC

#define USB_MASS_STORE_QIC   0x03

Typically a tape device.

Definition at line 31 of file Usb.h.

◆ USB_MASS_STORE_UFI

#define USB_MASS_STORE_UFI   0x04

Typically a floppy disk driver device.

Definition at line 32 of file Usb.h.

◆ USB_MASS_STORE_8070I

#define USB_MASS_STORE_8070I   0x05

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

Definition at line 33 of file Usb.h.

◆ USB_MASS_STORE_SCSI

#define USB_MASS_STORE_SCSI   0x06

SCSI transparent command set.

Definition at line 34 of file Usb.h.

◆ USB_MASS_STORE_CBI0

#define USB_MASS_STORE_CBI0   0x00

CBI protocol with command completion interrupt.

Definition at line 39 of file Usb.h.

◆ USB_MASS_STORE_CBI1

#define USB_MASS_STORE_CBI1   0x01

CBI protocol without command completion interrupt.

Definition at line 40 of file Usb.h.

◆ USB_MASS_STORE_BOT

#define USB_MASS_STORE_BOT   0x50

Bulk-Only Transport.

Definition at line 41 of file Usb.h.

◆ USB_DEV_GET_STATUS

#define USB_DEV_GET_STATUS   0x00

Definition at line 47 of file Usb.h.

◆ USB_DEV_GET_STATUS_REQ_TYPE_D

#define USB_DEV_GET_STATUS_REQ_TYPE_D   0x80

Definition at line 48 of file Usb.h.

◆ USB_DEV_GET_STATUS_REQ_TYPE_I

#define USB_DEV_GET_STATUS_REQ_TYPE_I   0x81

Definition at line 49 of file Usb.h.

◆ USB_DEV_GET_STATUS_REQ_TYPE_E

#define USB_DEV_GET_STATUS_REQ_TYPE_E   0x82

Definition at line 50 of file Usb.h.

◆ USB_DEV_CLEAR_FEATURE

#define USB_DEV_CLEAR_FEATURE   0x01

Definition at line 52 of file Usb.h.

◆ USB_DEV_CLEAR_FEATURE_REQ_TYPE_D

#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_D   0x00

Definition at line 53 of file Usb.h.

◆ USB_DEV_CLEAR_FEATURE_REQ_TYPE_I

#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_I   0x01

Definition at line 54 of file Usb.h.

◆ USB_DEV_CLEAR_FEATURE_REQ_TYPE_E

#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_E   0x02

Definition at line 55 of file Usb.h.

◆ USB_DEV_SET_FEATURE

#define USB_DEV_SET_FEATURE   0x03

Definition at line 57 of file Usb.h.

◆ USB_DEV_SET_FEATURE_REQ_TYPE_D

#define USB_DEV_SET_FEATURE_REQ_TYPE_D   0x00

Definition at line 58 of file Usb.h.

◆ USB_DEV_SET_FEATURE_REQ_TYPE_I

#define USB_DEV_SET_FEATURE_REQ_TYPE_I   0x01

Definition at line 59 of file Usb.h.

◆ USB_DEV_SET_FEATURE_REQ_TYPE_E

#define USB_DEV_SET_FEATURE_REQ_TYPE_E   0x02

Definition at line 60 of file Usb.h.

◆ USB_DEV_SET_ADDRESS

#define USB_DEV_SET_ADDRESS   0x05

Definition at line 62 of file Usb.h.

◆ USB_DEV_SET_ADDRESS_REQ_TYPE

#define USB_DEV_SET_ADDRESS_REQ_TYPE   0x00

Definition at line 63 of file Usb.h.

◆ USB_DEV_GET_DESCRIPTOR

#define USB_DEV_GET_DESCRIPTOR   0x06

Definition at line 65 of file Usb.h.

◆ USB_DEV_GET_DESCRIPTOR_REQ_TYPE

#define USB_DEV_GET_DESCRIPTOR_REQ_TYPE   0x80

Definition at line 66 of file Usb.h.

◆ USB_DEV_SET_DESCRIPTOR

#define USB_DEV_SET_DESCRIPTOR   0x07

Definition at line 68 of file Usb.h.

◆ USB_DEV_SET_DESCRIPTOR_REQ_TYPE

#define USB_DEV_SET_DESCRIPTOR_REQ_TYPE   0x00

Definition at line 69 of file Usb.h.

◆ USB_DEV_GET_CONFIGURATION

#define USB_DEV_GET_CONFIGURATION   0x08

Definition at line 71 of file Usb.h.

◆ USB_DEV_GET_CONFIGURATION_REQ_TYPE

#define USB_DEV_GET_CONFIGURATION_REQ_TYPE   0x80

Definition at line 72 of file Usb.h.

◆ USB_DEV_SET_CONFIGURATION

#define USB_DEV_SET_CONFIGURATION   0x09

Definition at line 74 of file Usb.h.

◆ USB_DEV_SET_CONFIGURATION_REQ_TYPE

#define USB_DEV_SET_CONFIGURATION_REQ_TYPE   0x00

Definition at line 75 of file Usb.h.

◆ USB_DEV_GET_INTERFACE

#define USB_DEV_GET_INTERFACE   0x0A

Definition at line 77 of file Usb.h.

◆ USB_DEV_GET_INTERFACE_REQ_TYPE

#define USB_DEV_GET_INTERFACE_REQ_TYPE   0x81

Definition at line 78 of file Usb.h.

◆ USB_DEV_SET_INTERFACE

#define USB_DEV_SET_INTERFACE   0x0B

Definition at line 80 of file Usb.h.

◆ USB_DEV_SET_INTERFACE_REQ_TYPE

#define USB_DEV_SET_INTERFACE_REQ_TYPE   0x01

Definition at line 81 of file Usb.h.

◆ USB_DEV_SYNCH_FRAME

#define USB_DEV_SYNCH_FRAME   0x0C

Definition at line 83 of file Usb.h.

◆ USB_DEV_SYNCH_FRAME_REQ_TYPE

#define USB_DEV_SYNCH_FRAME_REQ_TYPE   0x82

Definition at line 84 of file Usb.h.

◆ USB_HID_GET_DESCRIPTOR_REQ_TYPE

#define USB_HID_GET_DESCRIPTOR_REQ_TYPE   0x81

Definition at line 271 of file Usb.h.

◆ USB_HID_CLASS_GET_REQ_TYPE

#define USB_HID_CLASS_GET_REQ_TYPE   0xa1

Definition at line 276 of file Usb.h.

◆ USB_HID_CLASS_SET_REQ_TYPE

#define USB_HID_CLASS_SET_REQ_TYPE   0x21

Definition at line 277 of file Usb.h.

◆ HID_ITEM_FORMAT_SHORT

#define HID_ITEM_FORMAT_SHORT   0

Definition at line 282 of file Usb.h.

◆ HID_ITEM_FORMAT_LONG

#define HID_ITEM_FORMAT_LONG   1

Definition at line 283 of file Usb.h.

◆ HID_ITEM_TAG_LONG

#define HID_ITEM_TAG_LONG   15

Definition at line 288 of file Usb.h.

◆ HID_ITEM_TYPE_MAIN

#define HID_ITEM_TYPE_MAIN   0

Definition at line 293 of file Usb.h.

◆ HID_ITEM_TYPE_GLOBAL

#define HID_ITEM_TYPE_GLOBAL   1

Definition at line 294 of file Usb.h.

◆ HID_ITEM_TYPE_LOCAL

#define HID_ITEM_TYPE_LOCAL   2

Definition at line 295 of file Usb.h.

◆ HID_ITEM_TYPE_RESERVED

#define HID_ITEM_TYPE_RESERVED   3

Definition at line 296 of file Usb.h.

◆ HID_MAIN_ITEM_TAG_INPUT

#define HID_MAIN_ITEM_TAG_INPUT   8

Definition at line 301 of file Usb.h.

◆ HID_MAIN_ITEM_TAG_OUTPUT

#define HID_MAIN_ITEM_TAG_OUTPUT   9

Definition at line 302 of file Usb.h.

◆ HID_MAIN_ITEM_TAG_FEATURE

#define HID_MAIN_ITEM_TAG_FEATURE   11

Definition at line 303 of file Usb.h.

◆ HID_MAIN_ITEM_TAG_BEGIN_COLLECTION

#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION   10

Definition at line 304 of file Usb.h.

◆ HID_MAIN_ITEM_TAG_END_COLLECTION

#define HID_MAIN_ITEM_TAG_END_COLLECTION   12

Definition at line 305 of file Usb.h.

◆ HID_MAIN_ITEM_CONSTANT

#define HID_MAIN_ITEM_CONSTANT   0x001

Definition at line 310 of file Usb.h.

◆ HID_MAIN_ITEM_VARIABLE

#define HID_MAIN_ITEM_VARIABLE   0x002

Definition at line 311 of file Usb.h.

◆ HID_MAIN_ITEM_RELATIVE

#define HID_MAIN_ITEM_RELATIVE   0x004

Definition at line 312 of file Usb.h.

◆ HID_MAIN_ITEM_WRAP

#define HID_MAIN_ITEM_WRAP   0x008

Definition at line 313 of file Usb.h.

◆ HID_MAIN_ITEM_NONLINEAR

#define HID_MAIN_ITEM_NONLINEAR   0x010

Definition at line 314 of file Usb.h.

◆ HID_MAIN_ITEM_NO_PREFERRED

#define HID_MAIN_ITEM_NO_PREFERRED   0x020

Definition at line 315 of file Usb.h.

◆ HID_MAIN_ITEM_NULL_STATE

#define HID_MAIN_ITEM_NULL_STATE   0x040

Definition at line 316 of file Usb.h.

◆ HID_MAIN_ITEM_VOLATILE

#define HID_MAIN_ITEM_VOLATILE   0x080

Definition at line 317 of file Usb.h.

◆ HID_MAIN_ITEM_BUFFERED_BYTE

#define HID_MAIN_ITEM_BUFFERED_BYTE   0x100

Definition at line 318 of file Usb.h.

◆ HID_COLLECTION_PHYSICAL

#define HID_COLLECTION_PHYSICAL   0

Definition at line 323 of file Usb.h.

◆ HID_COLLECTION_APPLICATION

#define HID_COLLECTION_APPLICATION   1

Definition at line 324 of file Usb.h.

◆ HID_COLLECTION_LOGICAL

#define HID_COLLECTION_LOGICAL   2

Definition at line 325 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_USAGE_PAGE

#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE   0

Definition at line 330 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM

#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM   1

Definition at line 331 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM

#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM   2

Definition at line 332 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM

#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM   3

Definition at line 333 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM

#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM   4

Definition at line 334 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT

#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT   5

Definition at line 335 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_UNIT

#define HID_GLOBAL_ITEM_TAG_UNIT   6

Definition at line 336 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_REPORT_SIZE

#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE   7

Definition at line 337 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_REPORT_ID

#define HID_GLOBAL_ITEM_TAG_REPORT_ID   8

Definition at line 338 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_REPORT_COUNT

#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT   9

Definition at line 339 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_PUSH

#define HID_GLOBAL_ITEM_TAG_PUSH   10

Definition at line 340 of file Usb.h.

◆ HID_GLOBAL_ITEM_TAG_POP

#define HID_GLOBAL_ITEM_TAG_POP   11

Definition at line 341 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_USAGE

#define HID_LOCAL_ITEM_TAG_USAGE   0

Definition at line 346 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_USAGE_MINIMUM

#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM   1

Definition at line 347 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM

#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM   2

Definition at line 348 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX

#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX   3

Definition at line 349 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM

#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM   4

Definition at line 350 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM

#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM   5

Definition at line 351 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_STRING_INDEX

#define HID_LOCAL_ITEM_TAG_STRING_INDEX   7

Definition at line 352 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_STRING_MINIMUM

#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM   8

Definition at line 353 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_STRING_MAXIMUM

#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM   9

Definition at line 354 of file Usb.h.

◆ HID_LOCAL_ITEM_TAG_DELIMITER

#define HID_LOCAL_ITEM_TAG_DELIMITER   10

Definition at line 355 of file Usb.h.

◆ HID_INPUT_REPORT

#define HID_INPUT_REPORT   1

Definition at line 360 of file Usb.h.

◆ HID_OUTPUT_REPORT

#define HID_OUTPUT_REPORT   2

Definition at line 361 of file Usb.h.

◆ HID_FEATURE_REPORT

#define HID_FEATURE_REPORT   3

Definition at line 362 of file Usb.h.

◆ EFI_USB_GET_REPORT_REQUEST

#define EFI_USB_GET_REPORT_REQUEST   0x01

Definition at line 367 of file Usb.h.

◆ EFI_USB_GET_IDLE_REQUEST

#define EFI_USB_GET_IDLE_REQUEST   0x02

Definition at line 368 of file Usb.h.

◆ EFI_USB_GET_PROTOCOL_REQUEST

#define EFI_USB_GET_PROTOCOL_REQUEST   0x03

Definition at line 369 of file Usb.h.

◆ EFI_USB_SET_REPORT_REQUEST

#define EFI_USB_SET_REPORT_REQUEST   0x09

Definition at line 370 of file Usb.h.

◆ EFI_USB_SET_IDLE_REQUEST

#define EFI_USB_SET_IDLE_REQUEST   0x0a

Definition at line 371 of file Usb.h.

◆ EFI_USB_SET_PROTOCOL_REQUEST

#define EFI_USB_SET_PROTOCOL_REQUEST   0x0b

Definition at line 372 of file Usb.h.

Typedef Documentation

◆ EFI_USB_HID_CLASS_DESCRIPTOR

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

◆ EFI_USB_HID_DESCRIPTOR

The HID descriptor identifies the length and type of subordinate descriptors for a device.

HID 1.1, section 6.2.1

Enumeration Type Documentation

◆ USB_TYPES_DEFINITION

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_INTERFACE_ASSOCIATION 
USB_DESC_TYPE_HID 
USB_DESC_TYPE_REPORT 
USB_DESC_TYPE_CS_INTERFACE 
USB_DESC_TYPE_CS_ENDPOINT 
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 

Definition at line 195 of file Usb.h.

195 {
196 //
197 // USB request type
198 //
199 USB_REQ_TYPE_STANDARD = (0x00 << 5),
200 USB_REQ_TYPE_CLASS = (0x01 << 5),
201 USB_REQ_TYPE_VENDOR = (0x02 << 5),
202
203 //
204 // Standard control transfer request type, or the value
205 // to fill in EFI_USB_DEVICE_REQUEST.Request
206 //
207 USB_REQ_GET_STATUS = 0x00,
209 USB_REQ_SET_FEATURE = 0x03,
210 USB_REQ_SET_ADDRESS = 0x05,
213 USB_REQ_GET_CONFIG = 0x08,
214 USB_REQ_SET_CONFIG = 0x09,
217 USB_REQ_SYNCH_FRAME = 0x0C,
218
219 //
220 // Usb control transfer target
221 //
224 USB_TARGET_ENDPOINT = 0x02,
225 USB_TARGET_OTHER = 0x03,
226
227 //
228 // USB Descriptor types
229 //
236 USB_DESC_TYPE_HID = 0x21,
240
241 //
242 // Features to be cleared by CLEAR_FEATURE requests
243 //
245
246 //
247 // USB endpoint types: 00: control, 01: isochronous, 10: bulk, 11: interrupt
248 //
250 USB_ENDPOINT_ISO = 0x01,
251 USB_ENDPOINT_BULK = 0x02,
253
255 USB_ENDPOINT_DIR_IN = 0x80,
256
257 //
258 // Use 200 ms to increase the error handling response time
259 //
USB_TYPES_DEFINITION
Definition Usb.h:195
@ USB_DESC_TYPE_REPORT
Definition Usb.h:237
@ USB_REQ_SYNCH_FRAME
Definition Usb.h:217
@ USB_TARGET_INTERFACE
Definition Usb.h:223
@ USB_DESC_TYPE_ENDPOINT
Definition Usb.h:234
@ USB_REQ_SET_INTERFACE
Definition Usb.h:216
@ USB_REQ_GET_DESCRIPTOR
Definition Usb.h:211
@ USB_REQ_SET_DESCRIPTOR
Definition Usb.h:212
@ USB_ENDPOINT_TYPE_MASK
Definition Usb.h:254
@ USB_ENDPOINT_DIR_IN
Definition Usb.h:255
@ USB_DESC_TYPE_CONFIG
Definition Usb.h:231
@ USB_DESC_TYPE_INTERFACE_ASSOCIATION
Definition Usb.h:235
@ USB_REQ_CLEAR_FEATURE
Definition Usb.h:208
@ USB_DESC_TYPE_HID
Definition Usb.h:236
@ USB_DESC_TYPE_INTERFACE
Definition Usb.h:233
@ USB_DESC_TYPE_DEVICE
Definition Usb.h:230
@ USB_TARGET_ENDPOINT
Definition Usb.h:224
@ USB_DESC_TYPE_CS_INTERFACE
Definition Usb.h:238
@ USB_ENDPOINT_ISO
Definition Usb.h:250
@ USB_REQ_GET_INTERFACE
Definition Usb.h:215
@ USB_REQ_SET_ADDRESS
Definition Usb.h:210
@ USB_ENDPOINT_BULK
Definition Usb.h:251
@ USB_TARGET_DEVICE
Definition Usb.h:222
@ USB_REQ_GET_STATUS
Definition Usb.h:207
@ USB_ENDPOINT_CONTROL
Definition Usb.h:249
@ USB_REQ_TYPE_STANDARD
Definition Usb.h:199
@ USB_TARGET_OTHER
Definition Usb.h:225
@ EFI_USB_INTERRUPT_DELAY
Definition Usb.h:260
@ USB_REQ_GET_CONFIG
Definition Usb.h:213
@ USB_REQ_SET_FEATURE
Definition Usb.h:209
@ USB_REQ_SET_CONFIG
Definition Usb.h:214
@ USB_ENDPOINT_INTERRUPT
Definition Usb.h:252
@ USB_DESC_TYPE_CS_ENDPOINT
Definition Usb.h:239
@ USB_FEATURE_ENDPOINT_HALT
Definition Usb.h:244
@ USB_REQ_TYPE_CLASS
Definition Usb.h:200
@ USB_REQ_TYPE_VENDOR
Definition Usb.h:201
@ USB_DESC_TYPE_STRING
Definition Usb.h:232

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2_PATENT )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )