24#define USB_MASS_STORE_CLASS 0x08
29#define USB_MASS_STORE_RBC 0x01
30#define USB_MASS_STORE_8020I 0x02
31#define USB_MASS_STORE_QIC 0x03
32#define USB_MASS_STORE_UFI 0x04
33#define USB_MASS_STORE_8070I 0x05
34#define USB_MASS_STORE_SCSI 0x06
39#define USB_MASS_STORE_CBI0 0x00
40#define USB_MASS_STORE_CBI1 0x01
41#define USB_MASS_STORE_BOT 0x50
47#define USB_DEV_GET_STATUS 0x00
48#define USB_DEV_GET_STATUS_REQ_TYPE_D 0x80
49#define USB_DEV_GET_STATUS_REQ_TYPE_I 0x81
50#define USB_DEV_GET_STATUS_REQ_TYPE_E 0x82
52#define USB_DEV_CLEAR_FEATURE 0x01
53#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_D 0x00
54#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_I 0x01
55#define USB_DEV_CLEAR_FEATURE_REQ_TYPE_E 0x02
57#define USB_DEV_SET_FEATURE 0x03
58#define USB_DEV_SET_FEATURE_REQ_TYPE_D 0x00
59#define USB_DEV_SET_FEATURE_REQ_TYPE_I 0x01
60#define USB_DEV_SET_FEATURE_REQ_TYPE_E 0x02
62#define USB_DEV_SET_ADDRESS 0x05
63#define USB_DEV_SET_ADDRESS_REQ_TYPE 0x00
65#define USB_DEV_GET_DESCRIPTOR 0x06
66#define USB_DEV_GET_DESCRIPTOR_REQ_TYPE 0x80
68#define USB_DEV_SET_DESCRIPTOR 0x07
69#define USB_DEV_SET_DESCRIPTOR_REQ_TYPE 0x00
71#define USB_DEV_GET_CONFIGURATION 0x08
72#define USB_DEV_GET_CONFIGURATION_REQ_TYPE 0x80
74#define USB_DEV_SET_CONFIGURATION 0x09
75#define USB_DEV_SET_CONFIGURATION_REQ_TYPE 0x00
77#define USB_DEV_GET_INTERFACE 0x0A
78#define USB_DEV_GET_INTERFACE_REQ_TYPE 0x81
80#define USB_DEV_SET_INTERFACE 0x0B
81#define USB_DEV_SET_INTERFACE_REQ_TYPE 0x01
83#define USB_DEV_SYNCH_FRAME 0x0C
84#define USB_DEV_SYNCH_FRAME_REQ_TYPE 0x82
271#define USB_HID_GET_DESCRIPTOR_REQ_TYPE 0x81
276#define USB_HID_CLASS_GET_REQ_TYPE 0xa1
277#define USB_HID_CLASS_SET_REQ_TYPE 0x21
282#define HID_ITEM_FORMAT_SHORT 0
283#define HID_ITEM_FORMAT_LONG 1
288#define HID_ITEM_TAG_LONG 15
293#define HID_ITEM_TYPE_MAIN 0
294#define HID_ITEM_TYPE_GLOBAL 1
295#define HID_ITEM_TYPE_LOCAL 2
296#define HID_ITEM_TYPE_RESERVED 3
301#define HID_MAIN_ITEM_TAG_INPUT 8
302#define HID_MAIN_ITEM_TAG_OUTPUT 9
303#define HID_MAIN_ITEM_TAG_FEATURE 11
304#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION 10
305#define HID_MAIN_ITEM_TAG_END_COLLECTION 12
310#define HID_MAIN_ITEM_CONSTANT 0x001
311#define HID_MAIN_ITEM_VARIABLE 0x002
312#define HID_MAIN_ITEM_RELATIVE 0x004
313#define HID_MAIN_ITEM_WRAP 0x008
314#define HID_MAIN_ITEM_NONLINEAR 0x010
315#define HID_MAIN_ITEM_NO_PREFERRED 0x020
316#define HID_MAIN_ITEM_NULL_STATE 0x040
317#define HID_MAIN_ITEM_VOLATILE 0x080
318#define HID_MAIN_ITEM_BUFFERED_BYTE 0x100
323#define HID_COLLECTION_PHYSICAL 0
324#define HID_COLLECTION_APPLICATION 1
325#define HID_COLLECTION_LOGICAL 2
330#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0
331#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM 1
332#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM 2
333#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM 3
334#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM 4
335#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 5
336#define HID_GLOBAL_ITEM_TAG_UNIT 6
337#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 7
338#define HID_GLOBAL_ITEM_TAG_REPORT_ID 8
339#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 9
340#define HID_GLOBAL_ITEM_TAG_PUSH 10
341#define HID_GLOBAL_ITEM_TAG_POP 11
346#define HID_LOCAL_ITEM_TAG_USAGE 0
347#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM 1
348#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM 2
349#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 3
350#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM 4
351#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM 5
352#define HID_LOCAL_ITEM_TAG_STRING_INDEX 7
353#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM 8
354#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM 9
355#define HID_LOCAL_ITEM_TAG_DELIMITER 10
360#define HID_INPUT_REPORT 1
361#define HID_OUTPUT_REPORT 2
362#define HID_FEATURE_REPORT 3
367#define EFI_USB_GET_REPORT_REQUEST 0x01
368#define EFI_USB_GET_IDLE_REQUEST 0x02
369#define EFI_USB_GET_PROTOCOL_REQUEST 0x03
370#define EFI_USB_SET_REPORT_REQUEST 0x09
371#define EFI_USB_SET_IDLE_REQUEST 0x0a
372#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]