]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe/Ohci.h
edk2: Remove packages moved to edk2-platforms
[mirror_edk2.git] / QuarkSocPkg / QuarkSouthCluster / Usb / Ohci / Dxe / Ohci.h
diff --git a/QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe/Ohci.h b/QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe/Ohci.h
deleted file mode 100644 (file)
index 4c374ab..0000000
+++ /dev/null
@@ -1,663 +0,0 @@
-/** @file\r
-Provides the definition of Usb Hc Protocol and OHCI controller\r
-private data structure.\r
-\r
-Copyright (c) 2013-2016 Intel Corporation.\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-\r
-\r
-#ifndef _OHCI_H\r
-#define _OHCI_H\r
-\r
-\r
-#include <Uefi.h>\r
-\r
-#include <Protocol/UsbHostController.h>\r
-#include <Protocol/PciIo.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-\r
-#include <IndustryStandard/Pci.h>\r
-\r
-\r
-typedef struct _USB_OHCI_HC_DEV USB_OHCI_HC_DEV;\r
-\r
-#include "UsbHcMem.h"\r
-#include "OhciReg.h"\r
-#include "OhciSched.h"\r
-#include "OhciUrb.h"\r
-#include "Descriptor.h"\r
-#include "ComponentName.h"\r
-#include "OhciDebug.h"\r
-\r
-extern EFI_DRIVER_BINDING_PROTOCOL   gOhciDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL   gOhciComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL  gOhciComponentName2;\r
-\r
-#define USB_OHCI_HC_DEV_SIGNATURE     SIGNATURE_32('o','h','c','i')\r
-\r
-typedef struct _HCCA_MEMORY_BLOCK{\r
-  UINT32                    HccaInterruptTable[32];    // 32-bit Physical Address to ED_DESCRIPTOR\r
-  UINT16                    HccaFrameNumber;\r
-  UINT16                    HccaPad;\r
-  UINT32                    HccaDoneHead;              // 32-bit Physical Address to TD_DESCRIPTOR\r
-  UINT8                     Reserved[116];\r
-} HCCA_MEMORY_BLOCK;\r
-\r
-\r
-struct _USB_OHCI_HC_DEV {\r
-  UINTN                     Signature;\r
-  EFI_USB_HC_PROTOCOL       UsbHc;\r
-  EFI_USB2_HC_PROTOCOL      Usb2Hc;\r
-  EFI_PCI_IO_PROTOCOL       *PciIo;\r
-  UINT64                    OriginalPciAttributes;\r
-\r
-  HCCA_MEMORY_BLOCK         *HccaMemoryBlock;\r
-  VOID                      *HccaMemoryBuf;\r
-  VOID                      *HccaMemoryMapping;\r
-  UINTN                     HccaMemoryPages;\r
-\r
-  ED_DESCRIPTOR             *IntervalList[6][32];\r
-  INTERRUPT_CONTEXT_ENTRY   *InterruptContextList;\r
-  VOID                      *MemPool;\r
-\r
-  UINT32                    ToggleFlag;\r
-\r
-  EFI_EVENT                 HouseKeeperTimer;\r
-  //\r
-  // ExitBootServicesEvent is used to stop the OHC DMA operation\r
-  // after exit boot service.\r
-  //\r
-  EFI_EVENT                  ExitBootServiceEvent;\r
-\r
-  EFI_UNICODE_STRING_TABLE  *ControllerNameTable;\r
-};\r
-\r
-#define USB_OHCI_HC_DEV_FROM_THIS(a)    CR(a, USB_OHCI_HC_DEV, UsbHc, USB_OHCI_HC_DEV_SIGNATURE)\r
-#define USB2_OHCI_HC_DEV_FROM_THIS(a)    CR(a, USB_OHCI_HC_DEV, Usb2Hc, USB_OHCI_HC_DEV_SIGNATURE)\r
-\r
-//\r
-// Func List\r
-//\r
-\r
-/**\r
-  Provides software reset for the USB host controller.\r
-\r
-  @param  This                  This EFI_USB_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_UNSUPPOURTED      The type of reset specified by Attributes is\r
-                                not currently supported by the host controller.\r
-  @retval EFI_DEVICE_ERROR      Host controller isn't halted to reset.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciReset (\r
-  IN EFI_USB_HC_PROTOCOL  *This,\r
-  IN UINT16               Attributes\r
-  );\r
-/**\r
-  Retrieve the current state of the USB host controller.\r
-\r
-  @param  This                  This EFI_USB_HC_PROTOCOL instance.\r
-  @param  State                 Variable to return the current host controller\r
-                                state.\r
-\r
-  @retval EFI_SUCCESS           Host controller state was returned in State.\r
-  @retval EFI_INVALID_PARAMETER State is NULL.\r
-  @retval EFI_DEVICE_ERROR      An error was encountered while attempting to\r
-                                retrieve the host controller's current state.\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetState (\r
-  IN  EFI_USB_HC_PROTOCOL  *This,\r
-  OUT EFI_USB_HC_STATE     *State\r
-  );\r
-/**\r
-  Sets the USB host controller to a specific state.\r
-\r
-  @param  This                  This EFI_USB_HC_PROTOCOL instance.\r
-  @param  State                 The state of the host controller that will be set.\r
-\r
-  @retval EFI_SUCCESS           The USB host controller was successfully placed\r
-                                in the state specified by State.\r
-  @retval EFI_INVALID_PARAMETER State is invalid.\r
-  @retval EFI_DEVICE_ERROR      Failed to set the state due to device error.\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSetState(\r
-  IN EFI_USB_HC_PROTOCOL  *This,\r
-  IN EFI_USB_HC_STATE     State\r
-  );\r
-/**\r
-\r
-  Submits control transfer to a target USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  IsSlowDevice          Indicates whether the target device is slow device\r
-                                or full-speed device.\r
-  @param  MaxPaketLength        Indicates the maximum packet size that the\r
-                                default control transfer endpoint is capable of\r
-                                sending or receiving.\r
-  @param  Request               A pointer to the USB device request that will be sent\r
-                                to the USB device.\r
-  @param  TransferDirection     Specifies the data direction for the transfer.\r
-                                There are three values available, DataIn, DataOut\r
-                                and NoData.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted\r
-                                to USB device or received from USB device.\r
-  @param  DataLength            Indicates the size, in bytes, of the data buffer\r
-                                specified by Data.\r
-  @param  TimeOut               Indicates the maximum time, in microseconds,\r
-                                which the transfer is allowed to complete.\r
-  @param  TransferResult        A pointer to the detailed result information generated\r
-                                by this control transfer.\r
-\r
-  @retval EFI_SUCCESS           The control transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The control transfer could not be completed due to a lack of resources.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\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 TranferResult for detailed error information.\r
-\r
---*/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciControlTransfer (\r
-  IN     EFI_USB_HC_PROTOCOL     *This,\r
-  IN     UINT8                   DeviceAddress,\r
-  IN     BOOLEAN                 IsSlowDevice,\r
-  IN     UINT8                   MaxPacketLength,\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
-  OUT    UINT32                  *TransferResult\r
-  );\r
-/**\r
-\r
-  Submits bulk transfer to a bulk endpoint of a USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       The combination of an endpoint number and an\r
-                                endpoint direction of the target USB device.\r
-                                Each endpoint address supports data transfer in\r
-                                one direction except the control endpoint\r
-                                (whose default endpoint address is 0).\r
-                                It is the caller's responsibility to make sure that\r
-                                the EndPointAddress represents a bulk endpoint.\r
-  @param  MaximumPacketLength   Indicates the maximum packet size the target endpoint\r
-                                is capable of sending or receiving.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted\r
-                                to USB device or received from USB device.\r
-  @param  DataLength            When input, indicates the size, in bytes, of the data buffer\r
-                                specified by Data. When output, indicates the actually\r
-                                transferred data size.\r
-  @param  DataToggle            A pointer to the data toggle value. On input, it indicates\r
-                                the initial data toggle value the bulk transfer should adopt;\r
-                                on output, it is updated to indicate the data toggle value\r
-                                of the subsequent bulk transfer.\r
-  @param  TimeOut               Indicates the maximum time, in microseconds, which the\r
-                                transfer is allowed to complete.\r
-  TransferResult                A pointer to the detailed result information of the\r
-                                bulk transfer.\r
-\r
-  @retval EFI_SUCCESS           The bulk transfer was completed successfully.\r
-  @retval EFI_OUT_OF_RESOURCES  The bulk transfer could not be submitted due to lack of resource.\r
-  @retval EFI_INVALID_PARAMETER Some parameters are invalid.\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 TranferResult for detailed error information.\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciBulkTransfer(\r
-  IN     EFI_USB_HC_PROTOCOL  *This,\r
-  IN     UINT8                DeviceAddress,\r
-  IN     UINT8                EndPointAddress,\r
-  IN     UINT8                MaxPacketLength,\r
-  IN OUT VOID                 *Data,\r
-  IN OUT UINTN                *DataLength,\r
-  IN OUT UINT8                *DataToggle,\r
-  IN     UINTN                TimeOut,\r
-  OUT    UINT32               *TransferResult\r
-  );\r
-/**\r
-\r
-  Submits an interrupt transfer to an interrupt endpoint of a USB device.\r
-\r
-  @param  Ohc                   Device private data\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device. Each endpoint address\r
-                                supports data transfer in one direction except the\r
-                                control endpoint (whose default endpoint address is 0).\r
-                                It is the caller's responsibility to make sure that\r
-                                the EndPointAddress represents an interrupt endpoint.\r
-  @param  IsSlowDevice          Indicates whether the target device is slow device\r
-                                or full-speed device.\r
-  @param  MaxPacketLength       Indicates the maximum packet size the target endpoint\r
-                                is capable of sending or receiving.\r
-  @param  IsNewTransfer         If TRUE, an asynchronous interrupt pipe is built between\r
-                                the host and the target interrupt endpoint.\r
-                                If FALSE, the specified asynchronous interrupt pipe\r
-                                is canceled.\r
-  @param  DataToggle            A pointer to the data toggle value.  On input, it is valid\r
-                                when IsNewTransfer is TRUE, and it indicates the initial\r
-                                data toggle value the asynchronous interrupt transfer\r
-                                should adopt.\r
-                                On output, it is valid when IsNewTransfer is FALSE,\r
-                                and it is updated to indicate the data toggle value of\r
-                                the subsequent asynchronous interrupt transfer.\r
-  @param  PollingInterval       Indicates the interval, in milliseconds, that the\r
-                                asynchronous interrupt transfer is polled.\r
-                                This parameter is required when IsNewTransfer is TRUE.\r
-  @param  UCBuffer              Uncacheable buffer\r
-  @param  DataLength            Indicates the length of data to be received at the\r
-                                rate specified by PollingInterval from the target\r
-                                asynchronous interrupt endpoint.  This parameter\r
-                                is only required when IsNewTransfer is TRUE.\r
-  @param  CallBackFunction      The Callback function.This function is called at the\r
-                                rate specified by PollingInterval.This parameter is\r
-                                only required when IsNewTransfer is TRUE.\r
-  @param  Context               The context that is passed to the CallBackFunction.\r
-                                This is an optional parameter and may be NULL.\r
-  @param  IsPeriodic            Periodic interrupt or not\r
-  @param  OutputED              The correspoding ED carried out\r
-  @param  OutputTD              The correspoding TD carried out\r
-\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
-\r
-EFI_STATUS\r
-OhciInterruptTransfer (\r
-  IN     USB_OHCI_HC_DEV                  *Ohc,\r
-  IN     UINT8                            DeviceAddress,\r
-  IN     UINT8                            EndPointAddress,\r
-  IN     BOOLEAN                          IsSlowDevice,\r
-  IN     UINT8                            MaxPacketLength,\r
-  IN     BOOLEAN                          IsNewTransfer,\r
-  IN OUT UINT8                            *DataToggle        OPTIONAL,\r
-  IN     UINTN                            PollingInterval    OPTIONAL,\r
-  IN     VOID                             *UCBuffer          OPTIONAL,\r
-  IN     UINTN                            DataLength         OPTIONAL,\r
-  IN     EFI_ASYNC_USB_TRANSFER_CALLBACK  CallBackFunction   OPTIONAL,\r
-  IN     VOID                             *Context           OPTIONAL,\r
-  IN     BOOLEAN                          IsPeriodic         OPTIONAL,\r
-  OUT    ED_DESCRIPTOR                    **OutputED         OPTIONAL,\r
-  OUT    TD_DESCRIPTOR                    **OutputTD         OPTIONAL\r
-  );\r
-/**\r
-\r
-  Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device. Each endpoint address\r
-                                supports data transfer in one direction except the\r
-                                control endpoint (whose default endpoint address is 0).\r
-                                It is the caller's responsibility to make sure that\r
-                                the EndPointAddress represents an interrupt endpoint.\r
-  @param  IsSlowDevice          Indicates whether the target device is slow device\r
-                                or full-speed device.\r
-  @param  MaxiumPacketLength    Indicates the maximum packet size the target endpoint\r
-                                is capable of sending or receiving.\r
-  @param  IsNewTransfer         If TRUE, an asynchronous interrupt pipe is built between\r
-                                the host and the target interrupt endpoint.\r
-                                If FALSE, the specified asynchronous interrupt pipe\r
-                                is canceled.\r
-  @param  DataToggle            A pointer to the data toggle value.  On input, it is valid\r
-                                when IsNewTransfer is TRUE, and it indicates the initial\r
-                                data toggle value the asynchronous interrupt transfer\r
-                                should adopt.\r
-                                On output, it is valid when IsNewTransfer is FALSE,\r
-                                and it is updated to indicate the data toggle value of\r
-                                the subsequent asynchronous interrupt transfer.\r
-  @param  PollingInterval       Indicates the interval, in milliseconds, that the\r
-                                asynchronous interrupt transfer is polled.\r
-                                This parameter is required when IsNewTransfer is TRUE.\r
-  @param  DataLength            Indicates the length of data to be received at the\r
-                                rate specified by PollingInterval from the target\r
-                                asynchronous interrupt endpoint.  This parameter\r
-                                is only required when IsNewTransfer is TRUE.\r
-  @param  CallBackFunction      The Callback function.This function is called at the\r
-                                rate specified by PollingInterval.This parameter is\r
-                                only required when IsNewTransfer is TRUE.\r
-  @param  Context               The context that is passed to the CallBackFunction.\r
-                                This is an 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
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciAsyncInterruptTransfer (\r
-  IN     EFI_USB_HC_PROTOCOL              *This,\r
-  IN     UINT8                            DeviceAddress,\r
-  IN     UINT8                            EndPointAddress,\r
-  IN     BOOLEAN                          IsSlowDevice,\r
-  IN     UINT8                            MaxPacketLength,\r
-  IN     BOOLEAN                          IsNewTransfer,\r
-  IN OUT UINT8                            *DataToggle        OPTIONAL,\r
-  IN     UINTN                            PollingInterval    OPTIONAL,\r
-  IN     UINTN                            DataLength         OPTIONAL,\r
-  IN     EFI_ASYNC_USB_TRANSFER_CALLBACK  CallBackFunction   OPTIONAL,\r
-  IN     VOID                             *Context           OPTIONAL\r
-  );\r
-/**\r
-\r
-  Submits synchronous interrupt transfer to an interrupt endpoint\r
-  of a USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       The combination of an endpoint number and an endpoint\r
-                                direction of the target USB device. Each endpoint\r
-                                address supports data transfer in one direction\r
-                                except the control endpoint (whose default\r
-                                endpoint address is 0). It is the caller's responsibility\r
-                                to make sure that the EndPointAddress represents\r
-                                an interrupt endpoint.\r
-  @param  IsSlowDevice          Indicates whether the target device is slow device\r
-                                or full-speed device.\r
-  @param  MaxPacketLength       Indicates the maximum packet size the target endpoint\r
-                                is capable of sending or receiving.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted\r
-                                to USB device or received from USB device.\r
-  @param  DataLength            On input, the size, in bytes, of the data buffer specified\r
-                                by Data. On output, the number of bytes transferred.\r
-  @param  DataToggle            A pointer to the data toggle value. On input, it indicates\r
-                                the initial data toggle value the synchronous interrupt\r
-                                transfer should adopt;\r
-                                on output, it is updated to indicate the data toggle value\r
-                                of the subsequent synchronous interrupt transfer.\r
-  @param  TimeOut               Indicates the maximum time, in microseconds, which the\r
-                                transfer is allowed to complete.\r
-  @param  TransferResult        A pointer to the detailed result information from\r
-                                the synchronous interrupt transfer.\r
-\r
-  @retval EFI_UNSUPPORTED       This interface not available.\r
-  @retval EFI_INVALID_PARAMETER Parameters not follow spec\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSyncInterruptTransfer (\r
-  IN     EFI_USB_HC_PROTOCOL  *This,\r
-  IN     UINT8                DeviceAddress,\r
-  IN     UINT8                EndPointAddress,\r
-  IN     BOOLEAN              IsSlowDevice,\r
-  IN     UINT8                MaxPacketLength,\r
-  IN OUT VOID                 *Data,\r
-  IN OUT UINTN                *DataLength,\r
-  IN OUT UINT8                *DataToggle,\r
-  IN     UINTN                TimeOut,\r
-  OUT    UINT32               *TransferResult\r
-  );\r
-/**\r
-\r
-  Submits isochronous transfer to a target USB device.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       End point address\r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the\r
-                                default control transfer endpoint is capable of\r
-                                sending or receiving.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted\r
-                                to USB device or received from USB device.\r
-  @param  DataLength            Indicates the size, in bytes, of the data buffer\r
-                                specified by Data.\r
-  @param  TransferResult        A pointer to the detailed result information generated\r
-                                by this control transfer.\r
-\r
-  @retval EFI_UNSUPPORTED       This interface not available\r
-  @retval EFI_INVALID_PARAMETER Data is NULL or DataLength is 0 or TransferResult is NULL\r
-\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciIsochronousTransfer (\r
-  IN     EFI_USB_HC_PROTOCOL  *This,\r
-  IN     UINT8                DeviceAddress,\r
-  IN     UINT8                EndPointAddress,\r
-  IN     UINT8                MaximumPacketLength,\r
-  IN OUT VOID                 *Data,\r
-  IN OUT UINTN                DataLength,\r
-  OUT    UINT32               *TransferResult\r
-  );\r
-/**\r
-\r
-  Submits Async isochronous transfer to a target USB device.\r
-\r
-  @param  his                   A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  DeviceAddress         Represents the address of the target device on the USB,\r
-                                which is assigned during USB enumeration.\r
-  @param  EndPointAddress       End point address\r
-  @param  MaximumPacketLength   Indicates the maximum packet size that the\r
-                                default control transfer endpoint is capable of\r
-                                sending or receiving.\r
-  @param  Data                  A pointer to the buffer of data that will be transmitted\r
-                                to USB device or received from USB device.\r
-  @param  IsochronousCallBack   When the transfer complete, the call back function will be called\r
-  @param  Context               Pass to the call back function as parameter\r
-\r
-  @retval EFI_UNSUPPORTED       This interface not available\r
-  @retval EFI_INVALID_PARAMETER Data is NULL or Datalength is 0\r
-\r
-**/\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciAsyncIsochronousTransfer (\r
-  IN     EFI_USB_HC_PROTOCOL                *This,\r
-  IN     UINT8                              DeviceAddress,\r
-  IN     UINT8                              EndPointAddress,\r
-  IN     UINT8                              MaximumPacketLength,\r
-  IN OUT VOID                               *Data,\r
-  IN OUT UINTN                              DataLength,\r
-  IN     EFI_ASYNC_USB_TRANSFER_CALLBACK    IsochronousCallBack,\r
-  IN     VOID                               *Context OPTIONAL\r
-  );\r
-\r
-/**\r
-\r
-  Retrieves the number of root hub ports.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  NumOfPorts            A pointer to the number of the root hub ports.\r
-\r
-  @retval EFI_SUCCESS           The port number was retrieved successfully.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetRootHubNumOfPorts (\r
-  IN  EFI_USB_HC_PROTOCOL  *This,\r
-  OUT UINT8                *NumOfPorts\r
-  );\r
-/**\r
-\r
-  Retrieves the current status of a USB root hub port.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL.\r
-  @param  PortNumber            Specifies the root hub port from which the status\r
-                                is to be retrieved.  This value is zero-based. For example,\r
-                                if a root hub has two ports, then the first port is numbered 0,\r
-                                and the second port is numbered 1.\r
-  @param  PortStatus            A pointer to the current port status bits and\r
-                                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 Port number not valid\r
-**/\r
-\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-OhciGetRootHubPortStatus (\r
-  IN  EFI_USB_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_USB_HC_PROTOCOL.\r
-  @param  PortNumber            Specifies the root hub port whose feature\r
-                                is requested to be set.\r
-  @param  PortFeature           Indicates the feature selector associated\r
-                                with the feature set request.\r
-\r
-  @retval EFI_SUCCESS           The feature specified by PortFeature was set for the\r
-                                USB root hub port specified by PortNumber.\r
-  @retval EFI_DEVICE_ERROR      Set feature failed because of hardware issue\r
-  @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciSetRootHubPortFeature (\r
-  IN EFI_USB_HC_PROTOCOL   *This,\r
-  IN UINT8                 PortNumber,\r
-  IN EFI_USB_PORT_FEATURE  PortFeature\r
-  );\r
-/**\r
-\r
-  Clears a feature for the specified root hub port.\r
-\r
-  @param  This                  A pointer to the EFI_USB_HC_PROTOCOL instance.\r
-  @param  PortNumber            Specifies the root hub port whose feature\r
-                                is requested to be cleared.\r
-  @param  PortFeature           Indicates the feature selector associated with the\r
-                                feature clear request.\r
-\r
-  @retval EFI_SUCCESS           The feature specified by PortFeature was cleared for the\r
-                                USB root hub port specified by PortNumber.\r
-  @retval EFI_INVALID_PARAMETER PortNumber is invalid or PortFeature is invalid.\r
-  @retval EFI_DEVICE_ERROR      Some error happened when clearing feature\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OhciClearRootHubPortFeature (\r
-  IN EFI_USB_HC_PROTOCOL   *This,\r
-  IN UINT8                 PortNumber,\r
-  IN EFI_USB_PORT_FEATURE  PortFeature\r
-  );\r
-\r
-\r
-/**\r
-  Test to see if this driver supports ControllerHandle. Any\r
-  ControllerHandle that has UsbHcProtocol installed will be supported.\r
-\r
-  @param  This                 Protocol instance pointer.\r
-  @param  Controller           Handle of device to test.\r
-  @param  RemainingDevicePath  Not used.\r
-\r
-  @return EFI_SUCCESS          This driver supports this device.\r
-  @return EFI_UNSUPPORTED      This driver does not support this device.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-\r
-OHCIDriverBindingSupported (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL  *This,\r
-  IN EFI_HANDLE                   Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
-  );\r
-\r
-/**\r
-  Starting the Usb OHCI Driver.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  Controller            Handle of device to test.\r
-  @param  RemainingDevicePath   Not used.\r
-\r
-  @retval EFI_SUCCESS           This driver supports this device.\r
-  @retval EFI_UNSUPPORTED       This driver does not support this device.\r
-  @retval EFI_DEVICE_ERROR      This driver cannot be started due to device Error.\r
-                                EFI_OUT_OF_RESOURCES- Failed due to resource shortage.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OHCIDriverBindingStart (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL  *This,\r
-  IN EFI_HANDLE                   Controller,\r
-  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
-  );\r
-\r
-/**\r
-  Stop this driver on ControllerHandle. Support stopping any child handles\r
-  created by this driver.\r
-\r
-  @param  This                  Protocol instance pointer.\r
-  @param  Controller            Handle of device to stop driver on.\r
-  @param  NumberOfChildren      Number of Children in the ChildHandleBuffer.\r
-  @param  ChildHandleBuffer     List of handles for the children we need to stop.\r
-\r
-  @return EFI_SUCCESS\r
-  @return others\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-OHCIDriverBindingStop (\r
-  IN EFI_DRIVER_BINDING_PROTOCOL  *This,\r
-  IN EFI_HANDLE                   Controller,\r
-  IN UINTN                        NumberOfChildren,\r
-  IN EFI_HANDLE                   *ChildHandleBuffer\r
-  );\r
-\r
-#endif\r