23#define USB_MASS_STORE_CLASS 0x08
28#define USB_MASS_STORE_RBC 0x01
29#define USB_MASS_STORE_8020I 0x02
30#define USB_MASS_STORE_QIC 0x03
31#define USB_MASS_STORE_UFI 0x04
32#define USB_MASS_STORE_8070I 0x05
33#define USB_MASS_STORE_SCSI 0x06
38#define USB_MASS_STORE_CBI0 0x00
39#define USB_MASS_STORE_CBI1 0x01
40#define USB_MASS_STORE_BOT 0x50
46#define USB_DEV_GET_STATUS 0x00
47#define USB_DEV_GET_STATUS_REQ_TYPE_D 0x80
48#define USB_DEV_GET_STATUS_REQ_TYPE_I 0x81
49#define USB_DEV_GET_STATUS_REQ_TYPE_E 0x82
51#define USB_DEV_CLEAR_FEATURE 0x01
52#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_D 0x00
53#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_I 0x01
54#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_E 0x02
56#define USB_DEV_SET_FEATURE 0x03
57#define USB_DEV_SET_FEATURE_REQ_TYPE_D 0x00
58#define USB_DEV_SET_FEATURE_REQ_TYPE_I 0x01
59#define USB_DEV_SET_FEATURE_REQ_TYPE_E 0x02
61#define USB_DEV_SET_ADDRESS 0x05
62#define USB_DEV_SET_ADDRESS_REQ_TYPE 0x00
64#define USB_DEV_GET_DESCRIPTOR 0x06
65#define USB_DEV_GET_DESCRIPTOR_REQ_TYPE 0x80
67#define USB_DEV_SET_DESCRIPTOR 0x07
68#define USB_DEV_SET_DESCRIPTOR_REQ_TYPE 0x00
70#define USB_DEV_GET_CONFIGURATION 0x08
71#define USB_DEV_GET_CONFIGURATION_REQ_TYPE 0x80
73#define USB_DEV_SET_CONFIGURATION 0x09
74#define USB_DEV_SET_CONFIGURATION_REQ_TYPE 0x00
76#define USB_DEV_GET_INTERFACE 0x0A
77#define USB_DEV_GET_INTERFACE_REQ_TYPE 0x81
79#define USB_DEV_SET_INTERFACE 0x0B
80#define USB_DEV_SET_INTERFACE_REQ_TYPE 0x01
82#define USB_DEV_SYNCH_FRAME 0x0C
83#define USB_DEV_SYNCH_FRAME_REQ_TYPE 0x82
270#define USB_HID_GET_DESCRIPTOR_REQ_TYPE 0x81
275#define USB_HID_CLASS_GET_REQ_TYPE 0xa1
276#define USB_HID_CLASS_SET_REQ_TYPE 0x21
281#define HID_ITEM_FORMAT_SHORT 0
282#define HID_ITEM_FORMAT_LONG 1
287#define HID_ITEM_TAG_LONG 15
292#define HID_ITEM_TYPE_MAIN 0
293#define HID_ITEM_TYPE_GLOBAL 1
294#define HID_ITEM_TYPE_LOCAL 2
295#define HID_ITEM_TYPE_RESERVED 3
300#define HID_MAIN_ITEM_TAG_INPUT 8
301#define HID_MAIN_ITEM_TAG_OUTPUT 9
302#define HID_MAIN_ITEM_TAG_FEATURE 11
303#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION 10
304#define HID_MAIN_ITEM_TAG_END_COLLECTION 12
309#define HID_MAIN_ITEM_CONSTANT 0x001
310#define HID_MAIN_ITEM_VARIABLE 0x002
311#define HID_MAIN_ITEM_RELATIVE 0x004
312#define HID_MAIN_ITEM_WRAP 0x008
313#define HID_MAIN_ITEM_NONLINEAR 0x010
314#define HID_MAIN_ITEM_NO_PREFERRED 0x020
315#define HID_MAIN_ITEM_NULL_STATE 0x040
316#define HID_MAIN_ITEM_VOLATILE 0x080
317#define HID_MAIN_ITEM_BUFFERED_BYTE 0x100
322#define HID_COLLECTION_PHYSICAL 0
323#define HID_COLLECTION_APPLICATION 1
324#define HID_COLLECTION_LOGICAL 2
329#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0
330#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM 1
331#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM 2
332#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM 3
333#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM 4
334#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 5
335#define HID_GLOBAL_ITEM_TAG_UNIT 6
336#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 7
337#define HID_GLOBAL_ITEM_TAG_REPORT_ID 8
338#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 9
339#define HID_GLOBAL_ITEM_TAG_PUSH 10
340#define HID_GLOBAL_ITEM_TAG_POP 11
345#define HID_LOCAL_ITEM_TAG_USAGE 0
346#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM 1
347#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM 2
348#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 3
349#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM 4
350#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM 5
351#define HID_LOCAL_ITEM_TAG_STRING_INDEX 7
352#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM 8
353#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM 9
354#define HID_LOCAL_ITEM_TAG_DELIMITER 10
359#define HID_INPUT_REPORT 1
360#define HID_OUTPUT_REPORT 2
361#define HID_FEATURE_REPORT 3
366#define EFI_USB_GET_REPORT_REQUEST 0x01
367#define EFI_USB_GET_IDLE_REQUEST 0x02
368#define EFI_USB_GET_PROTOCOL_REQUEST 0x03
369#define EFI_USB_SET_REPORT_REQUEST 0x09
370#define EFI_USB_SET_IDLE_REQUEST 0x0a
371#define EFI_USB_SET_PROTOCOL_REQUEST 0x0b
unsigned short UINT16
2-byte unsigned value.
unsigned short CHAR16
2-byte Character.
unsigned char UINT8
1-byte unsigned value.
struct hid_class_descriptor EFI_USB_HID_CLASS_DESCRIPTOR
Descriptor header for Report/Physical Descriptors HID 1.1, section 6.2.1.
struct hid_descriptor EFI_USB_HID_DESCRIPTOR
The HID descriptor identifies the length and type of subordinate descriptors for a device.
@ USB_DESC_TYPE_INTERFACE_ASSOCIATION
@ USB_DESC_TYPE_INTERFACE
@ USB_DESC_TYPE_CS_INTERFACE
@ EFI_USB_INTERRUPT_DELAY
@ USB_DESC_TYPE_CS_ENDPOINT
@ USB_FEATURE_ENDPOINT_HALT
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
#define USB_ENDPOINT_DESCRIPTOR
A USB endpoint descriptor.
#define USB_INTERFACE_DESCRIPTOR
A USB interface descriptor.
#define USB_INTERFACE_ASSOCIATION_DESCRIPTOR
A USB interface association descriptor.
#define USB_DEVICE_DESCRIPTOR
A USB device descriptor.
UNICODE String Descriptor USB 2.0 spec, Section 9.6.7.
Standard Configuration Descriptor USB 2.0 spec, Section 9.6.3.
Format of Setup Data for USB Device Requests USB 2.0 spec, Section 9.3.
UINT8 FunctionDescriptionStringIndex
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.
EFI_USB_HID_CLASS_DESCRIPTOR HidClassDesc[1]