4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL as defined in UEFI 2.0.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The USB Host Controller Protocol is used by code, typically USB bus drivers,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync running in the EFI boot services environment, to perform data transactions over
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a USB bus. In addition, it provides an abstraction for the root hub of the USB bus.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _USB2_HOSTCONTROLLER_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _USB2_HOSTCONTROLLER_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/UsbIo.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB2_HC_PROTOCOL_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x3e745226, 0x9818, 0x45b6, {0xa2, 0xac, 0xd7, 0xcd, 0xe, 0x8b, 0xa2, 0xbc } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Forward reference for pure ANSI compatability
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _EFI_USB2_HC_PROTOCOL EFI_USB2_HC_PROTOCOL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 PortStatus; ///< Contains current port status bitmap.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 PortChangeStatus; ///< Contains current port status change bitmap.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_USB_PORT_STATUS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// EFI_USB_PORT_STATUS.PortStatus bit definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_CONNECTION 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_ENABLE 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_SUSPEND 0x0004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_OVERCURRENT 0x0008
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_RESET 0x0010
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_POWER 0x0100
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_LOW_SPEED 0x0200
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_HIGH_SPEED 0x0400
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_SUPER_SPEED 0x0800
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_OWNER 0x2000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// EFI_USB_PORT_STATUS.PortChangeStatus bit definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_C_CONNECTION 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_C_ENABLE 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_C_SUSPEND 0x0004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_C_OVERCURRENT 0x0008
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_PORT_STAT_C_RESET 0x0010
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Usb port features value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Each value indicates its bit index in the port status and status change bitmaps,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// if combines these two bitmaps into a 32-bit bitmap.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortEnable = 1,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortSuspend = 2,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortReset = 4,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortPower = 8,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortOwner = 13,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortConnectChange = 16,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortEnableChange = 17,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortSuspendChange = 18,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortOverCurrentChange = 19,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbPortResetChange = 20
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_USB_PORT_FEATURE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_SPEED_FULL 0x0000 ///< 12 Mb/s, USB 1.1 OHCI and UHCI HC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_SPEED_LOW 0x0001 ///< 1 Mb/s, USB 1.1 OHCI and UHCI HC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_SPEED_HIGH 0x0002 ///< 480 Mb/s, USB 2.0 EHCI HC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_SPEED_SUPER 0x0003 ///< 4.8 Gb/s, USB 3.0 XHCI HC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 TranslatorHubAddress; ///< device address
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 TranslatorPortNumber; ///< the port number of the hub that device is connected to.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_USB2_HC_TRANSACTION_TRANSLATOR;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Protocol definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieves the Host Controller capabilities.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaxSpeed Host controller data transfer speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortNumber Number of the root hub ports.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Is64BitCapable TRUE if controller supports 64-bit memory addressing,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FALSE otherwise.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The host controller capabilities were retrieved successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One of the input args was NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR An error was encountered while attempting to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync retrieve the capabilities.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_CAPABILITY)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *MaxSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *PortNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *Is64BitCapable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_HC_RESET_GLOBAL 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_HC_RESET_HOST_CONTROLLER 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_HC_RESET_GLOBAL_WITH_DEBUG 0x0004
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_HC_RESET_HOST_WITH_DEBUG 0x0008
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Provides software reset for the USB host controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Attributes A bit mask of the reset operation to perform.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The reset operation succeeded.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Attributes is not valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED The type of reset specified by Attributes is not currently
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync supported by the host controller hardware.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_ACCESS_DENIED Reset operation is rejected due to the debug port being configured
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and active; only EFI_USB_HC_RESET_GLOBAL_WITH_DEBUG or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB_HC_RESET_HOST_WITH_DEBUG reset Attributes can be used to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync perform reset operation for this host controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR An error was encountered while attempting to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync retrieve the capabilities.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_RESET)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Attributes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Enumration value for status of USB HC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbHcStateHalt, ///< The host controller is in halt
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< state. No USB transactions can occur
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< while in this state. The host
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< controller can enter this state for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< three reasons: 1) After host
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< controller hardware reset. 2)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< Explicitly set by software. 3)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< Triggered by a fatal error such as
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< consistency check failure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbHcStateOperational, ///< The host controller is in an
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< operational state. When in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< this state, the host
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< controller can execute bus
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< traffic. This state must be
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< explicitly set to enable the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< USB bus traffic.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbHcStateSuspend, ///< The host controller is in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< suspend state. No USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< transactions can occur while in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< this state. The host controller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< enters this state for the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< following reasons: 1) Explicitly
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< set by software. 2) Triggered
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< when there is no bus traffic for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///< 3 microseconds.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EfiUsbHcStateMaximum ///< Maximum value for enumration value of HC status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_USB_HC_STATE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieves current state of the USB host controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param State A pointer to the EFI_USB_HC_STATE data structure that
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync indicates current state of the USB host controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The state information of the host controller was returned in State.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER State is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR An error was encountered while attempting to retrieve the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync host controller's current state.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_STATE)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_USB_HC_STATE *State
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Sets the USB host controller to a specific state.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param State Indicates the state of the host controller that will be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The USB host controller was successfully placed in the state
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified by State.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER State is not valid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR Failed to set the state specified by State due to device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_SET_STATE)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_HC_STATE State
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits control transfer to a target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size that the default control transfer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync endpoint is capable of sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Request A pointer to the USB device request that will be sent to the USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TransferDirection Specifies the data direction for the transfer. There are three values
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync available, EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data A pointer to the buffer of data that will be transmitted to USB device or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync received from USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength On input, indicates the size, in bytes, of the data buffer specified by Data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync On output, indicates the amount of data actually transferred.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TimeOut Indicates the maximum time, in milliseconds, which the transfer is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync allowed to complete.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointer to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TransferResult A pointer to the detailed result information generated by this control
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The control transfer was completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The control transfer could not be completed due to a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT The control transfer failed due to timeout.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The control transfer failed due to host controller or device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Caller should check TransferResult for detailed error information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_DEVICE_REQUEST *Request,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_DATA_DIRECTION TransferDirection,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Data OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataLength OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN TimeOut,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *TransferResult
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_MAX_BULK_BUFFER_NUM 10
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits bulk transfer to a bulk endpoint of a USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPointAddress The combination of an endpoint number and an endpoint direction of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataBuffersNumber Number of data buffers prepared for the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data Array of pointers to the buffers of data that will be transmitted to USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync device or received from USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength When input, indicates the size, in bytes, of the data buffers specified by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Data. When output, indicates the actually transferred data size.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataToggle A pointer to the data toggle value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TimeOut Indicates the maximum time, in milliseconds, which the transfer is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync allowed to complete.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointer to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TransferResult A pointer to the detailed result information of the bulk transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The bulk transfer was completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The bulk transfer could not be submitted due to a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT The bulk transfer failed due to timeout.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The bulk transfer failed due to host controller or device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Caller should check TransferResult for detailed error information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_BULK_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPointAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DataBuffersNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINT8 *DataToggle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN TimeOut,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *TransferResult
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Translator parameter doesn't exist in UEFI2.0 spec, but it will be updated in the following specification version.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPointAddress The combination of an endpoint number and an endpoint direction of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsNewTransfer If TRUE, an asynchronous interrupt pipe is built between the host and the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target interrupt endpoint. If FALSE, the specified asynchronous interrupt
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync pipe is canceled. If TRUE, and an interrupt transfer exists for the target
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync end point, then EFI_INVALID_PARAMETER is returned.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataToggle A pointer to the data toggle value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PollingInterval Indicates the interval, in milliseconds, that the asynchronous interrupt
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync transfer is polled.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength Indicates the length of data to be received at the rate specified by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PollingInterval from the target asynchronous interrupt endpoint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointr to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param CallBackFunction The Callback function. This function is called at the rate specified by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync PollingInterval.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Context The context that is passed to the CallBackFunction. This is an
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync optional parameter and may be NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The asynchronous interrupt transfer request has been successfully
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync submitted or canceled.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The request could not be completed due to a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPointAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaxiumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN IsNewTransfer,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINT8 *DataToggle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN PollingInterval OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN DataLength OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunction OPTIONAL,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits synchronous interrupt transfer to an interrupt endpoint of a USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Translator parameter doesn't exist in UEFI2.0 spec, but it will be updated in the following specification version.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPointAddress The combination of an endpoint number and an endpoint direction of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data A pointer to the buffer of data that will be transmitted to USB device or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync received from USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength On input, the size, in bytes, of the data buffer specified by Data. On
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync output, the number of bytes transferred.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataToggle A pointer to the data toggle value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TimeOut Indicates the maximum time, in milliseconds, which the transfer is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync allowed to complete.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointr to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TransferResult A pointer to the detailed result information from the synchronous
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync interrupt transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The synchronous interrupt transfer was completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The synchronous interrupt transfer could not be submitted due to a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT The synchronous interrupt transfer failed due to timeout.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The synchronous interrupt transfer failed due to host controller or device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Caller should check TransferResult for detailed error information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPointAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *DataLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINT8 *DataToggle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN TimeOut,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *TransferResult
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_MAX_ISO_BUFFER_NUM 7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_USB_MAX_ISO_BUFFER_NUM1 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits isochronous transfer to an isochronous endpoint of a USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPointAddress The combination of an endpoint number and an endpoint direction of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataBuffersNumber Number of data buffers prepared for the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data Array of pointers to the buffers of data that will be transmitted to USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync device or received from USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength Specifies the length, in bytes, of the data to be sent to or received from
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointer to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TransferResult A pointer to the detailed result information of the isochronous transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The isochronous transfer was completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The isochronous transfer could not be submitted due to a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT The isochronous transfer cannot be completed within the one USB frame time.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The isochronous transfer failed due to host controller or device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Caller should check TransferResult for detailed error information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPointAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DataBuffersNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN DataLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *TransferResult
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submits nonblocking isochronous transfer to an isochronous endpoint of a USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceAddress Represents the address of the target device on the USB.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPointAddress The combination of an endpoint number and an endpoint direction of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync target USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceSpeed Indicates device speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sending or receiving.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataBuffersNumber Number of data buffers prepared for the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data Array of pointers to the buffers of data that will be transmitted to USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync device or received from USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLength Specifies the length, in bytes, of the data to be sent to or received from
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Translator A pointer to the transaction translator data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsochronousCallback The Callback function. This function is called if the requested
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync isochronous transfer is completed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Context Data passed to the IsochronousCallback function. This is an
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync optional parameter and may be NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The asynchronous isochronous transfer request has been successfully
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync submitted or canceled.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Some parameters are invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The asynchronous isochronous transfer could not be submitted due to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync a lack of resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPointAddress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DeviceSpeed,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumPacketLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DataBuffersNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM],
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN DataLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieves the current status of a USB root hub port.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortNumber Specifies the root hub port from which the status is to be retrieved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This value is zero based.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortStatus A pointer to the current port status bits and port status change bits.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The status of the USB root hub port specified by PortNumber
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync was returned in PortStatus.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER PortNumber is invalid.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 PortNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_USB_PORT_STATUS *PortStatus
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Sets a feature for the specified root hub port.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortNumber Specifies the root hub port whose feature is requested to be set. This
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value is zero based.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortFeature Indicates the feature selector associated with the feature set request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The feature specified by PortFeature was set for the USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync root hub port specified by PortNumber.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 PortNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_PORT_FEATURE PortFeature
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Clears a feature for the specified root hub port.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortNumber Specifies the root hub port whose feature is requested to be cleared. This
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync value is zero based.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param PortFeature Indicates the feature selector associated with the feature clear request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The feature specified by PortFeature was cleared for the USB
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync root hub port specified by PortNumber.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync(EFIAPI *EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE)(
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB2_HC_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 PortNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_PORT_FEATURE PortFeature
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// The EFI_USB2_HC_PROTOCOL provides USB host controller management, basic
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// data transactions over a USB bus, and USB root hub access. A device driver
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// that wishes to manage a USB bus in a system retrieves the EFI_USB2_HC_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// instance that is associated with the USB bus to be managed. A device handle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// for a USB host controller will minimally contain an EFI_DEVICE_PATH_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// instance, and an EFI_USB2_HC_PROTOCOL instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncstruct _EFI_USB2_HC_PROTOCOL {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_GET_CAPABILITY GetCapability;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_RESET Reset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_GET_STATE GetState;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_SET_STATE SetState;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER ControlTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_BULK_TRANSFER BulkTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER AsyncInterruptTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER SyncInterruptTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER IsochronousTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER AsyncIsochronousTransfer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS GetRootHubPortStatus;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE SetRootHubPortFeature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE ClearRootHubPortFeature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// The major revision number of the USB host controller. The revision information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// indicates the release of the Universal Serial Bus Specification with which the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// host controller is compliant.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 MajorRevision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// The minor revision number of the USB host controller. The revision information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// indicates the release of the Universal Serial Bus Specification with which the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync /// host controller is compliant.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 MinorRevision;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiUsb2HcProtocolGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif