23 #define EFI_USB_IO_PROTOCOL_GUID \ 25 0x2B2F68D6, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } \ 55 #define EFI_USB_NOERROR 0x00 56 #define EFI_USB_ERR_NOTEXECUTE 0x01 57 #define EFI_USB_ERR_STALL 0x02 58 #define EFI_USB_ERR_BUFFER 0x04 59 #define EFI_USB_ERR_BABBLE 0x08 60 #define EFI_USB_ERR_NAK 0x10 61 #define EFI_USB_ERR_CRC 0x20 62 #define EFI_USB_ERR_TIMEOUT 0x40 63 #define EFI_USB_ERR_BITSTUFF 0x80 64 #define EFI_USB_ERR_SYSTEM 0x100 #define OPTIONAL
Passing the datum to the function is optional, and a NULL is passed if the value is not supplied.
EFI_STATUS(EFIAPI * EFI_USB_IO_PORT_RESET)(IN EFI_USB_IO_PROTOCOL *This)
Resets and reconfigures the USB controller.
EFI_USB_IO_PORT_RESET UsbPortReset
EFI_USB_IO_ASYNC_ISOCHRONOUS_TRANSFER UsbAsyncIsochronousTransfer
USB_ENDPOINT_DESCRIPTOR EFI_USB_ENDPOINT_DESCRIPTOR
USB_DEVICE_DESCRIPTOR EFI_USB_DEVICE_DESCRIPTOR
128 bit buffer containing a unique identifier value.
EFI_STATUS(EFIAPI * EFI_USB_IO_ISOCHRONOUS_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 DeviceEndpoint, IN OUT VOID *Data, IN UINTN DataLength, OUT UINT32 *Status)
This function is used to manage a USB device with an isochronous transfer pipe.
PXENV_STATUS_t Status
PXE status code.
EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER UsbAsyncInterruptTransfer
EFI_USB_IO_GET_ENDPOINT_DESCRIPTOR UsbGetEndpointDescriptor
Standard Interface Descriptor USB 2.0 spec, Section 9.6.5.
Support for USB 2.0 standard.
The EFI_USB_IO_PROTOCOL provides four basic transfers types described in the USB 1....
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_CONFIG_DESCRIPTOR)(IN EFI_USB_IO_PROTOCOL *This, OUT EFI_USB_CONFIG_DESCRIPTOR *ConfigurationDescriptor)
Retrieves the USB Device Descriptor.
USB_INTERFACE_DESCRIPTOR EFI_USB_INTERFACE_DESCRIPTOR
EFI_USB_DATA_DIRECTION
USB data transfer direction.
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_SUPPORTED_LANGUAGE)(IN EFI_USB_IO_PROTOCOL *This, OUT UINT16 **LangIDTable, OUT UINT16 *TableSize)
Retrieves all the language ID codes that the USB device supports.
EFI_STATUS(EFIAPI * EFI_USB_IO_SYNC_INTERRUPT_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 DeviceEndpoint, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN UINTN Timeout, OUT UINT32 *Status)
This function is used to manage a USB device with an interrupt transfer pipe.
EFI_STATUS(EFIAPI * EFI_USB_IO_CONTROL_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN EFI_USB_DEVICE_REQUEST *Request, IN EFI_USB_DATA_DIRECTION Direction, IN UINT32 Timeout, IN OUT VOID *Data OPTIONAL, IN UINTN DataLength OPTIONAL, OUT UINT32 *Status)
This function is used to manage a USB device with a control transfer pipe.
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_INTERFACE_DESCRIPTOR)(IN EFI_USB_IO_PROTOCOL *This, OUT EFI_USB_INTERFACE_DESCRIPTOR *InterfaceDescriptor)
Retrieves the Interface Descriptor for a USB Device Controller.
FILE_LICENCE(BSD2_PATENT)
Format of Setup Data for USB Device Requests USB 2.0 spec, Section 9.3.
EFI_USB_IO_ISOCHRONOUS_TRANSFER UsbIsochronousTransfer
EFI_STATUS(EFIAPI * EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 DeviceEndpoint, IN BOOLEAN IsNewTransfer, IN UINTN PollingInterval OPTIONAL, IN UINTN DataLength OPTIONAL, IN EFI_ASYNC_USB_TRANSFER_CALLBACK InterruptCallBack OPTIONAL, IN VOID *Context OPTIONAL)
This function is used to manage a USB device with an interrupt transfer pipe.
EFI_GUID gEfiUsbIoProtocolGuid
EFI_USB_IO_SYNC_INTERRUPT_TRANSFER UsbSyncInterruptTransfer
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_DEVICE_DESCRIPTOR)(IN EFI_USB_IO_PROTOCOL *This, OUT EFI_USB_DEVICE_DESCRIPTOR *DeviceDescriptor)
Retrieves the USB Device Descriptor.
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_STRING_DESCRIPTOR)(IN EFI_USB_IO_PROTOCOL *This, IN UINT16 LangID, IN UINT8 StringID, OUT CHAR16 **String)
Retrieves a string stored in a USB Device.
UINT64 UINTN
Unsigned value of native width.
Standard Endpoint Descriptor USB 2.0 spec, Section 9.6.6.
EFI_STATUS(EFIAPI * EFI_USB_IO_GET_ENDPOINT_DESCRIPTOR)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 EndpointIndex, OUT EFI_USB_ENDPOINT_DESCRIPTOR *EndpointDescriptor)
Retrieves an Endpoint Descriptor within a USB Controller.
#define VOID
Undeclared type.
EFI_USB_IO_CONTROL_TRANSFER UsbControlTransfer
EFI_USB_IO_BULK_TRANSFER UsbBulkTransfer
USB_DEVICE_REQUEST EFI_USB_DEVICE_REQUEST
EFI_STATUS(EFIAPI * EFI_USB_IO_BULK_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 DeviceEndpoint, IN OUT VOID *Data, IN OUT UINTN *DataLength, IN UINTN Timeout, OUT UINT32 *Status)
This function is used to manage a USB device with the bulk transfer pipe.
EFI_USB_IO_GET_STRING_DESCRIPTOR UsbGetStringDescriptor
EFI_USB_IO_GET_DEVICE_DESCRIPTOR UsbGetDeviceDescriptor
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
USB_CONFIG_DESCRIPTOR EFI_USB_CONFIG_DESCRIPTOR
Standard Configuration Descriptor USB 2.0 spec, Section 9.6.3.
EFI_STATUS(EFIAPI * EFI_USB_IO_ASYNC_ISOCHRONOUS_TRANSFER)(IN EFI_USB_IO_PROTOCOL *This, IN UINT8 DeviceEndpoint, IN OUT VOID *Data, IN UINTN DataLength, IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack, IN VOID *Context OPTIONAL)
This function is used to manage a USB device with an isochronous transfer pipe.
volatile unsigned int DataLength
EFI_USB_IO_GET_SUPPORTED_LANGUAGE UsbGetSupportedLanguages
EFI_USB_IO_GET_INTERFACE_DESCRIPTOR UsbGetInterfaceDescriptor
Standard Device Descriptor USB 2.0 spec, Section 9.6.1.
EFI_STATUS(EFIAPI * EFI_ASYNC_USB_TRANSFER_CALLBACK)(IN VOID *Data, IN UINTN DataLength, IN VOID *Context, IN UINT32 Status)
Async USB transfer callback routine.
EFI_USB_IO_GET_CONFIG_DESCRIPTOR UsbGetConfigDescriptor