]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Bus/Pci/Ehci/Dxe/Ehci.h
1. PEI core needs to check image machine type
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / Ehci / Dxe / Ehci.h
index 603bb2665a8b2c6717a1e9105181dfc0366af979..7ac5d2867694256be5e682602d3c21126ba16856 100644 (file)
@@ -1,11 +1,11 @@
 /*++\r
 \r
-Copyright (c) 2006, Intel Corporation\r
+Copyright (c) 2006 - 2007, 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
+                                                                                          \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
@@ -189,7 +189,7 @@ extern EFI_COMPONENT_NAME_PROTOCOL  gEhciComponentName;
 //\r
 // USB Base Class Code,Sub-Class Code and Programming Interface\r
 //\r
-#define PCI_CLASSC_PI_EHCI      0x20\r
+#define PCI_CLASSC_PI_EHCI      PCI_IF_EHCI\r
 \r
 #define SETUP_PACKET_ID         0x2D\r
 #define INPUT_PACKET_ID         0x69\r
@@ -403,6 +403,211 @@ typedef struct _USB2_HC_DEV {
 } USB2_HC_DEV;\r
 \r
 \r
+//\r
+// Prototypes\r
+// Driver model protocol interface\r
+//\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciDriverBindingSupported (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN EFI_HANDLE                      Controller,\r
+  IN EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciDriverBindingStart (\r
+  IN EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN EFI_HANDLE                      Controller,\r
+  IN EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciDriverBindingStop (\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
+  IN  EFI_HANDLE                      Controller,\r
+  IN  UINTN                           NumberOfChildren,\r
+  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  );\r
+\r
+//\r
+// Ehci protocol interface\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+EhciGetCapability (\r
+  IN  EFI_USB2_HC_PROTOCOL   *This,\r
+  OUT UINT8                  *MaxSpeed,\r
+  OUT UINT8                  *PortNumber,\r
+  OUT UINT8                  *Is64BitCapable\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciReset (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  IN  UINT16                   Attributes\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciGetState (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  OUT EFI_USB_HC_STATE         *State\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciSetState (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  IN  EFI_USB_HC_STATE         State\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciControlTransfer (\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,\r
+  IN  OUT UINTN                            *DataLength,\r
+  IN  UINTN                                TimeOut,\r
+  IN  EFI_USB2_HC_TRANSACTION_TRANSLATOR   *Translator,\r
+  OUT UINT32                               *TransferResult\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciBulkTransfer (\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
+EFI_STATUS\r
+EFIAPI\r
+EhciAsyncInterruptTransfer (\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,\r
+  IN  UINTN                                 DataLength,\r
+  IN  EFI_USB2_HC_TRANSACTION_TRANSLATOR    *Translator,\r
+  IN  EFI_ASYNC_USB_TRANSFER_CALLBACK       CallBackFunction,\r
+  IN  VOID                                  *Context OPTIONAL\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciSyncInterruptTransfer (\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
+EFI_STATUS\r
+EFIAPI\r
+EhciIsochronousTransfer (\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
+EFI_STATUS\r
+EFIAPI\r
+EhciAsyncIsochronousTransfer (\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\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciGetRootHubPortStatus (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  IN  UINT8                    PortNumber,\r
+  OUT EFI_USB_PORT_STATUS      *PortStatus\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciSetRootHubPortFeature (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  IN  UINT8                    PortNumber,\r
+  IN  EFI_USB_PORT_FEATURE     PortFeature\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciClearRootHubPortFeature (\r
+  IN  EFI_USB2_HC_PROTOCOL     *This,\r
+  IN  UINT8                    PortNumber,\r
+  IN  EFI_USB_PORT_FEATURE     PortFeature\r
+  );\r
+\r
+//\r
+// EFI Component Name Functions\r
+//\r
+EFI_STATUS\r
+EFIAPI\r
+EhciComponentNameGetDriverName (\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL     *This,\r
+  IN  CHAR8                           *Language,\r
+  OUT CHAR16                          **DriverName\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+EhciComponentNameGetControllerName (\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL     *This,\r
+  IN  EFI_HANDLE                      ControllerHandle,\r
+  IN  EFI_HANDLE                      ChildHandle, OPTIONAL\r
+  IN  CHAR8                           *Language,\r
+  OUT CHAR16                          **ControllerName\r
+  );\r
+\r
 //\r
 // Internal Functions Declaration\r
 //\r