]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Protocol/Usb2HostController.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / Usb2HostController.h
diff --git a/OldMdePkg/Include/Protocol/Usb2HostController.h b/OldMdePkg/Include/Protocol/Usb2HostController.h
deleted file mode 100644 (file)
index 1574228..0000000
+++ /dev/null
@@ -1,503 +0,0 @@
-/** @file\r
-  EFI_USB2_HC_PROTOCOL as defined in UEFI 2.0.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
-  are licensed and made available under the terms and conditions of the BSD License         \r
-  which accompanies this distribution.  The full text of the license may be found at        \r
-  http://opensource.org/licenses/bsd-license.php                                            \r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
-\r
-  Module Name:  Usb2HostController.h\r
-\r
-**/\r
-\r
-#ifndef _USB2_HOSTCONTROLLER_H_\r
-#define _USB2_HOSTCONTROLLER_H_\r
-\r
-#define EFI_USB2_HC_PROTOCOL_GUID \\r
-  { \\r
-    0x3e745226, 0x9818, 0x45b6, {0xa2, 0xac, 0xd7, 0xcd, 0xe, 0x8b, 0xa2, 0xbc } \\r
-  }\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-typedef struct _EFI_USB2_HC_PROTOCOL EFI_USB2_HC_PROTOCOL;\r
-\r
-#define EFI_USB_SPEED_FULL      0x0000  // 12 Mb/s, USB 1.1 OHCI and UHCI HC.\r
-#define EFI_USB_SPEED_LOW       0x0001  // 1 Mb/s, USB 1.1 OHCI and UHCI HC.\r
-#define EFI_USB_SPEED_HIGH      0x0002  // 480 Mb/s, USB 2.0 EHCI HC.\r
-\r
-typedef struct {\r
-  UINT8      TranslatorHubAddress;\r
-  UINT8      TranslatorPortNumber;\r
-} EFI_USB2_HC_TRANSACTION_TRANSLATOR;\r
-\r
-//\r
-// Protocol definitions\r
-//\r
-\r
-/**\r
-  Retrieves the Host Controller capabilities.\r
-\r
-  @param  This           A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  MaxSpeed       Host controller data transfer speed.\r
-  @param  PortNumber     Number of the root hub ports.\r
-  @param  Is64BitCapable TRUE if controller supports 64-bit memory addressing,\r
-                         FALSE otherwise.\r
-\r
-  @retval EFI_SUCCESS           The host controller capabilities were retrieved successfully.\r
-  @retval EFI_INVALID_PARAMETER One of the input args was NULL.\r
-  @retval EFI_DEVICE_ERROR      An error was encountered while attempting to\r
-                                retrieve the capabilities.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_CAPABILITY) (\r
-  IN  EFI_USB2_HC_PROTOCOL  *This,\r
-  OUT UINT8                 *MaxSpeed,\r
-  OUT UINT8                 *PortNumber,\r
-  OUT UINT8                 *Is64BitCapable\r
-  )\r
-;\r
-\r
-/**\r
-  Provides software reset for the USB host controller.\r
-\r
-  @param  This       A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  Attributes A bit mask of the reset operation to perform.\r
-\r
-  @retval EFI_SUCCESS           The reset operation succeeded.\r
-  @retval EFI_INVALID_PARAMETER Attributes is not valid.\r
-  @retval EFI_UNSUPPORTED       The type of reset specified by Attributes is not currently\r
-                                supported by the host controller hardware.\r
-  @retval EFI_ACCESS_DENIED     Reset operation is rejected due to the debug port being configured\r
-                                and active; only EFI_USB_HC_RESET_GLOBAL_WITH_DEBUG or\r
-                                EFI_USB_HC_RESET_HOST_WITH_DEBUG reset Attributes can be used to\r
-                                perform reset operation for this host controller.\r
-  @retval EFI_DEVICE_ERROR      An error was encountered while attempting to\r
-                                retrieve the capabilities.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_RESET) (\r
-  IN EFI_USB2_HC_PROTOCOL   *This,\r
-  IN UINT16                 Attributes\r
-  )\r
-;\r
-\r
-/**\r
-  Retrieves current state of the USB host controller.\r
-\r
-  @param  This  A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  State A pointer to the EFI_USB_HC_STATE data structure that\r
-                indicates current state of the USB host controller.\r
-\r
-  @retval EFI_SUCCESS           The state information of the host controller was returned in State.\r
-  @retval EFI_INVALID_PARAMETER State is NULL.\r
-  @retval EFI_DEVICE_ERROR      An error was encountered while attempting to retrieve the\r
-                                host controller's current state.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_STATE) (\r
-  IN  EFI_USB2_HC_PROTOCOL    *This,\r
-  OUT EFI_USB_HC_STATE        *State\r
-  )\r
-;  \r
-\r
-/**\r
-  Sets the USB host controller to a specific state.\r
-\r
-  @param  This  A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  State Indicates the state of the host controller that will be set.\r
-\r
-  @retval EFI_SUCCESS           The USB host controller was successfully placed in the state\r
-                                specified by State.\r
-  @retval EFI_INVALID_PARAMETER State is not valid.\r
-  @retval EFI_DEVICE_ERROR      Failed to set the state specified by State due to device error.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_SET_STATE) (\r
-  IN EFI_USB2_HC_PROTOCOL    *This,\r
-  IN EFI_USB_HC_STATE        State\r
-  )\r
-;\r
-\r
-/**\r
-  Submits control transfer to a target USB device.\r
-\r
-  @param  This                A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress       Represents the address of the target device on the USB.\r
-  @param  DeviceSpeed         Indicates device speed.\r
-  @param  MaximumPacketLength Indicates the maximum packet size that the default control transfer\r
-                              endpoint is capable of sending or receiving.\r
-  @param  Request             A pointer to the USB device request that will be sent to the USB device.\r
-  @param  TransferDirection   Specifies the data direction for the transfer. There are three values\r
-                              available, EfiUsbDataIn, EfiUsbDataOut and EfiUsbNoData.\r
-  @param  Data                A pointer to the buffer of data that will be transmitted to USB device or\r
-                              received from USB device.\r
-  @param  DataLength          On input, indicates the size, in bytes, of the data buffer specified by Data.\r
-                              On output, indicates the amount of data actually transferred.\r
-  @param  Translator          A pointer to the transaction translator data.\r
-  @param  TimeOut             Indicates the maximum time, in milliseconds, which the transfer is\r
-                              allowed to complete.\r
-  @param  TransferResult      A pointer to the detailed result information generated by this control\r
-                              transfer.\r
-\r
-  @retval EFI_SUCCESS           The control transfer was completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The control transfer could not be completed due to a lack of resources.\r
-  @retval EFI_TIMEOUT           The control transfer failed due to timeout.\r
-  @retval EFI_DEVICE_ERROR      The control transfer failed due to host controller or device error.\r
-                                Caller should check TransferResult for detailed error information.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL               *This,\r
-  IN     UINT8                              DeviceAddress,\r
-  IN     UINT8                              DeviceSpeed,\r
-  IN     UINTN                              MaximumPacketLength,\r
-  IN     EFI_USB_DEVICE_REQUEST             *Request,\r
-  IN     EFI_USB_DATA_DIRECTION             TransferDirection,\r
-  IN OUT VOID                               *Data       OPTIONAL,\r
-  IN OUT UINTN                              *DataLength OPTIONAL,\r
-  IN     UINTN                              TimeOut,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,\r
-  OUT    UINT32                             *TransferResult\r
-  )\r
-;  \r
-\r
-#define EFI_USB_MAX_BULK_BUFFER_NUM 10\r
-\r
-/**\r
-  Submits bulk transfer to a bulk endpoint of a USB device.\r
-\r
-  @param  This                A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress       Represents the address of the target device on the USB.\r
-  @param  EndPointAddress     The combination of an endpoint number and an endpoint direction of the\r
-                              target USB device.\r
-  @param  DeviceSpeed         Indicates device speed.\r
-  @param  MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of\r
-                              sending or receiving.\r
-  @param  DataBuffersNumber   Number of data buffers prepared for the transfer.\r
-  @param  Data                Array of pointers to the buffers of data that will be transmitted to USB\r
-                              device or received from USB device.\r
-  @param  DataLength          When input, indicates the size, in bytes, of the data buffers specified by\r
-                              Data. When output, indicates the actually transferred data size.\r
-  @param  DataToggle          A pointer to the data toggle value.\r
-  @param  Translator          A pointer to the transaction translator data.\r
-  @param  TimeOut             Indicates the maximum time, in milliseconds, which the transfer is\r
-                              allowed to complete.\r
-  @param  TransferResult      A pointer to the detailed result information of the bulk transfer.\r
-\r
-  @retval EFI_SUCCESS           The bulk transfer was completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The bulk transfer could not be submitted due to a lack of resources.\r
-  @retval EFI_TIMEOUT           The bulk transfer failed due to timeout.\r
-  @retval EFI_DEVICE_ERROR      The bulk transfer failed due to host controller or device error.\r
-                                Caller should check TransferResult for detailed error information.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_BULK_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL               *This,\r
-  IN     UINT8                              DeviceAddress,\r
-  IN     UINT8                              EndPointAddress,\r
-  IN     UINT8                              DeviceSpeed,\r
-  IN     UINTN                              MaximumPacketLength,\r
-  IN     UINT8                              DataBuffersNumber,\r
-  IN OUT VOID                               *Data[EFI_USB_MAX_BULK_BUFFER_NUM],\r
-  IN OUT UINTN                              *DataLength,\r
-  IN OUT UINT8                              *DataToggle,\r
-  IN     UINTN                              TimeOut,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,\r
-  OUT    UINT32                             *TransferResult\r
-  )\r
-;\r
-\r
-/**\r
-  Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.\r
-  Translator parameter doesn't exist in UEFI2.0 spec, but it will be updated in the following specification version.\r
-  \r
-  @param  This                A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress       Represents the address of the target device on the USB.\r
-  @param  EndPointAddress     The combination of an endpoint number and an endpoint direction of the\r
-                              target USB device.\r
-  @param  DeviceSpeed         Indicates device speed.\r
-  @param  MaximumPacketLength Indicates the maximum packet size the target endpoint is capable of\r
-                              sending or receiving.\r
-  @param  IsNewTransfer       If TRUE, an asynchronous interrupt pipe is built between the host and the\r
-                              target interrupt endpoint. If FALSE, the specified asynchronous interrupt\r
-                              pipe is canceled. If TRUE, and an interrupt transfer exists for the target\r
-                              end point, then EFI_INVALID_PARAMETER is returned.\r
-  @param  DataToggle          A pointer to the data toggle value.\r
-  @param  PollingInterval     Indicates the interval, in milliseconds, that the asynchronous interrupt\r
-                              transfer is polled.\r
-  @param  DataLength          Indicates the length of data to be received at the rate specified by\r
-                              PollingInterval from the target asynchronous interrupt endpoint.\r
-  @param  Translator          A pointr to the transaction translator data.\r
-  @param  CallBackFunction    The Callback function. This function is called at the rate specified by\r
-                              PollingInterval.\r
-  @param  Context             The context that is passed to the CallBackFunction. This is an\r
-                              optional parameter and may be NULL.\r
-\r
-  @retval EFI_SUCCESS           The asynchronous interrupt transfer request has been successfully\r
-                                submitted or canceled.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The request could not be completed due to a lack of resources.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL                                *This,\r
-  IN     UINT8                                               DeviceAddress,\r
-  IN     UINT8                                               EndPointAddress,\r
-  IN     UINT8                                               DeviceSpeed,\r
-  IN     UINTN                                               MaxiumPacketLength,\r
-  IN     BOOLEAN                                             IsNewTransfer,\r
-  IN OUT UINT8                                               *DataToggle,\r
-  IN     UINTN                                               PollingInterval  OPTIONAL,\r
-  IN     UINTN                                               DataLength       OPTIONAL,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR                  *Translator      OPTIONAL,\r
-  IN     EFI_ASYNC_USB_TRANSFER_CALLBACK                     CallBackFunction OPTIONAL,\r
-  IN     VOID                                                *Context         OPTIONAL\r
-  )\r
-;\r
-\r
-/**\r
-  Submits synchronous interrupt transfer to an interrupt endpoint of a USB device.\r
-  Translator parameter doesn't exist in UEFI2.0 spec, but it will be updated in the following specification version.\r
-\r
-  @param  This                  A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint direction of the\r
-                                target USB device.\r
-  @param  DeviceSpeed           Indicates device speed.\r
-  @param  MaximumPacketLength   Indicates the maximum packet size the target endpoint is capable of\r
-                                sending or receiving.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted to USB device or\r
-                                received from USB device.\r
-  @param  DataLength            On input, the size, in bytes, of the data buffer specified by Data. On\r
-                                output, the number of bytes transferred.\r
-  @param  DataToggle            A pointer to the data toggle value.\r
-  @param  TimeOut               Indicates the maximum time, in milliseconds, which the transfer is\r
-                                allowed to complete.\r
-  @param  Translator            A pointr to the transaction translator data.\r
-  @param  TransferResult        A pointer to the detailed result information from the synchronous\r
-                                interrupt transfer.\r
-\r
-  @retval EFI_SUCCESS           The synchronous interrupt transfer was completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The synchronous interrupt transfer could not be submitted due to a lack of resources.\r
-  @retval EFI_TIMEOUT           The synchronous interrupt transfer failed due to timeout.\r
-  @retval EFI_DEVICE_ERROR      The synchronous interrupt transfer failed due to host controller or device error.\r
-                                Caller should check TransferResult for detailed error information.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL                        *This,\r
-  IN     UINT8                                       DeviceAddress,\r
-  IN     UINT8                                       EndPointAddress,\r
-  IN     UINT8                                       DeviceSpeed,\r
-  IN     UINTN                                       MaximumPacketLength,\r
-  IN OUT VOID                                        *Data,\r
-  IN OUT UINTN                                       *DataLength,\r
-  IN OUT UINT8                                       *DataToggle,\r
-  IN     UINTN                                       TimeOut,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR          *Translator,\r
-  OUT    UINT32                                      *TransferResult\r
-  )\r
-;\r
-\r
-#define EFI_USB_MAX_ISO_BUFFER_NUM  7\r
-#define EFI_USB_MAX_ISO_BUFFER_NUM1 2\r
-\r
-/**\r
-  Submits isochronous transfer to an isochronous endpoint of a USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint direction of the\r
-                                target USB device.\r
-  @param  DeviceSpeed           Indicates device speed.\r
-  @param  MaximumPacketLength   Indicates the maximum packet size the target endpoint is capable of\r
-                                sending or receiving.\r
-  @param  DataBuffersNumber     Number of data buffers prepared for the transfer.\r
-  @param  Data                  Array of pointers to the buffers of data that will be transmitted to USB\r
-                                device or received from USB device.\r
-  @param  DataLength            Specifies the length, in bytes, of the data to be sent to or received from\r
-                                the USB device.\r
-  @param  Translator            A pointer to the transaction translator data.\r
-  @param  TransferResult        A pointer to the detailed result information of the isochronous transfer.\r
-\r
-  @retval EFI_SUCCESS           The isochronous transfer was completed successfully.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The isochronous transfer could not be submitted due to a lack of resources.\r
-  @retval EFI_TIMEOUT           The isochronous transfer cannot be completed within the one USB frame time.\r
-  @retval EFI_DEVICE_ERROR      The isochronous transfer failed due to host controller or device error.\r
-                                Caller should check TransferResult for detailed error information.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL               *This,\r
-  IN     UINT8                              DeviceAddress,\r
-  IN     UINT8                              EndPointAddress,\r
-  IN     UINT8                              DeviceSpeed,\r
-  IN     UINTN                              MaximumPacketLength,\r
-  IN     UINT8                              DataBuffersNumber,\r
-  IN OUT VOID                               *Data[EFI_USB_MAX_ISO_BUFFER_NUM],\r
-  IN     UINTN                              DataLength,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,\r
-  OUT    UINT32                             *TransferResult\r
-  )\r
-;\r
-\r
-/**\r
-  Submits nonblocking isochronous transfer to an isochronous endpoint of a USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint direction of the\r
-                                target USB device.\r
-  @param  DeviceSpeed           Indicates device speed.\r
-  @param  MaximumPacketLength   Indicates the maximum packet size the target endpoint is capable of\r
-                                sending or receiving.\r
-  @param  DataBuffersNumber     Number of data buffers prepared for the transfer.\r
-  @param  Data                  Array of pointers to the buffers of data that will be transmitted to USB\r
-                                device or received from USB device.\r
-  @param  DataLength            Specifies the length, in bytes, of the data to be sent to or received from\r
-                                the USB device.\r
-  @param  Translator            A pointer to the transaction translator data.\r
-  @param  IsochronousCallback   The Callback function. This function is called if the requested\r
-                                isochronous transfer is completed.\r
-  @param  Context               Data passed to the IsochronousCallback function. This is an\r
-                                optional parameter and may be NULL.\r
-\r
-  @retval EFI_SUCCESS           The asynchronous isochronous transfer request has been successfully\r
-                                submitted or canceled.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\r
-  @retval EFI_OUT_OF_RESOURCES  The asynchronous isochronous transfer could not be submitted due to\r
-                                a lack of resources.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER) (\r
-  IN     EFI_USB2_HC_PROTOCOL               *This,\r
-  IN     UINT8                              DeviceAddress,\r
-  IN     UINT8                              EndPointAddress,\r
-  IN     UINT8                              DeviceSpeed,\r
-  IN     UINTN                              MaximumPacketLength,\r
-  IN     UINT8                              DataBuffersNumber,\r
-  IN OUT VOID                               *Data[EFI_USB_MAX_ISO_BUFFER_NUM],\r
-  IN     UINTN                              DataLength,\r
-  IN     EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,\r
-  IN     EFI_ASYNC_USB_TRANSFER_CALLBACK    IsochronousCallBack,\r
-  IN     VOID                               *Context OPTIONAL\r
-  )\r
-;\r
-\r
-/**\r
-  Retrieves the current status of a USB root hub port.\r
-\r
-  @param  This       A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  PortNumber Specifies the root hub port from which the status is to be retrieved.\r
-                     This value is zero based.\r
-  @param  PortStatus A pointer to the current port status bits and port status change bits.\r
-\r
-  @retval EFI_SUCCESS           The status of the USB root hub port specified by PortNumber\r
-                                was returned in PortStatus.\r
-  @retval EFI_INVALID_PARAMETER PortNumber is invalid.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS) (\r
-  IN EFI_USB2_HC_PROTOCOL    *This,\r
-  IN  UINT8                  PortNumber,\r
-  OUT EFI_USB_PORT_STATUS    *PortStatus\r
-  )\r
-;  \r
-\r
-/**\r
-  Sets a feature for the specified root hub port.\r
-\r
-  @param  This        A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  PortNumber  Specifies the root hub port whose feature is requested to be set. This\r
-                      value is zero based.\r
-  @param  PortFeature Indicates the feature selector associated with the feature set request.\r
-\r
-  @retval EFI_SUCCESS           The feature specified by PortFeature was set for the USB\r
-                                root hub port specified by PortNumber.\r
-  @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE) (\r
-  IN EFI_USB2_HC_PROTOCOL    *This,\r
-  IN UINT8                   PortNumber,\r
-  IN EFI_USB_PORT_FEATURE    PortFeature\r
-  )\r
-;  \r
-\r
-/**\r
-  Clears a feature for the specified root hub port.\r
-\r
-  @param  This        A pointer to the EFI_USB2_HC_PROTOCOL instance.\r
-  @param  PortNumber  Specifies the root hub port whose feature is requested to be cleared. This\r
-                      value is zero based.\r
-  @param  PortFeature Indicates the feature selector associated with the feature clear request.\r
-\r
-  @retval EFI_SUCCESS           The feature specified by PortFeature was cleared for the USB\r
-                                root hub port specified by PortNumber.\r
-  @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid for this function.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE) (\r
-  IN EFI_USB2_HC_PROTOCOL    *This,\r
-  IN UINT8                   PortNumber,\r
-  IN EFI_USB_PORT_FEATURE    PortFeature\r
-  )\r
-;  \r
-\r
-struct _EFI_USB2_HC_PROTOCOL {\r
-  EFI_USB2_HC_PROTOCOL_GET_CAPABILITY              GetCapability;\r
-  EFI_USB2_HC_PROTOCOL_RESET                       Reset;\r
-  EFI_USB2_HC_PROTOCOL_GET_STATE                   GetState;\r
-  EFI_USB2_HC_PROTOCOL_SET_STATE                   SetState;\r
-  EFI_USB2_HC_PROTOCOL_CONTROL_TRANSFER            ControlTransfer;\r
-  EFI_USB2_HC_PROTOCOL_BULK_TRANSFER               BulkTransfer;\r
-  EFI_USB2_HC_PROTOCOL_ASYNC_INTERRUPT_TRANSFER    AsyncInterruptTransfer;\r
-  EFI_USB2_HC_PROTOCOL_SYNC_INTERRUPT_TRANSFER     SyncInterruptTransfer;\r
-  EFI_USB2_HC_PROTOCOL_ISOCHRONOUS_TRANSFER        IsochronousTransfer;\r
-  EFI_USB2_HC_PROTOCOL_ASYNC_ISOCHRONOUS_TRANSFER  AsyncIsochronousTransfer;\r
-  EFI_USB2_HC_PROTOCOL_GET_ROOTHUB_PORT_STATUS     GetRootHubPortStatus;\r
-  EFI_USB2_HC_PROTOCOL_SET_ROOTHUB_PORT_FEATURE    SetRootHubPortFeature;\r
-  EFI_USB2_HC_PROTOCOL_CLEAR_ROOTHUB_PORT_FEATURE  ClearRootHubPortFeature;\r
-  UINT16                                           MajorRevision;\r
-  UINT16                                           MinorRevision;\r
-};\r
-\r
-extern EFI_GUID gEfiUsb2HcProtocolGuid;\r
-\r
-#endif\r