]> git.proxmox.com Git - mirror_edk2.git/commitdiff
edk2/MdeModulePkg/Bus/Usb/UsbBusDxe/usbbus.h:
authorjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Feb 2008 01:14:47 +0000 (01:14 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 26 Feb 2008 01:14:47 +0000 (01:14 +0000)
  Renamed to 'UsbBus.h' to match recommended file naming conventions.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4755 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.h [new file with mode: 0644]
MdeModulePkg/Bus/Usb/UsbBusDxe/usbbus.h [deleted file]

diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.h b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.h
new file mode 100644 (file)
index 0000000..e85fc84
--- /dev/null
@@ -0,0 +1,313 @@
+/** @file\r
+Copyright (c) 2004 - 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
+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:\r
+\r
+    UsbBus.h\r
+\r
+  Abstract:\r
+\r
+    Usb Bus Driver Binding and Bus IO Protocol\r
+\r
+  Revision History\r
+\r
+\r
+**/\r
+\r
+#ifndef _EFI_USB_BUS_H_\r
+#define _EFI_USB_BUS_H_\r
+\r
+\r
+#include <PiDxe.h>\r
+\r
+#include <Protocol/Usb2HostController.h>\r
+#include <Protocol/UsbHostController.h>\r
+#include <Protocol/UsbIo.h>\r
+#include <Protocol/DevicePath.h>\r
+\r
+#include <library/BaseLib.h>\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/DevicePathLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+\r
+\r
+#include <IndustryStandard/Usb.h>\r
+\r
+typedef struct _USB_DEVICE     USB_DEVICE;\r
+typedef struct _USB_INTERFACE  USB_INTERFACE;\r
+typedef struct _USB_BUS        USB_BUS;\r
+typedef struct _USB_HUB_API    USB_HUB_API;\r
+\r
+\r
+#include "UsbUtility.h"\r
+#include "UsbDesc.h"\r
+#include "UsbHub.h"\r
+#include "UsbEnumer.h"\r
+\r
+enum {\r
+  USB_MAX_LANG_ID           = 16,\r
+  USB_MAX_INTERFACE         = 16,\r
+  USB_MAX_DEVICES           = 128,\r
+\r
+  USB_BUS_1_MILLISECOND     = 1000,\r
+\r
+  //\r
+  // Roothub and hub's polling interval, set by experience,\r
+  // The unit of roothub is 100us, means 1s as interval, and\r
+  // the unit of hub is 1ms, means 64ms as interval.\r
+  //\r
+  USB_ROOTHUB_POLL_INTERVAL = 1000 * 10000U,\r
+  USB_HUB_POLL_INTERVAL     = 64,\r
+\r
+  //\r
+  // Wait for port stable to work, refers to specification\r
+  // [USB20-9.1.2]\r
+  //\r
+  USB_WAIT_PORT_STABLE_STALL     = 100 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for port statue reg change, set by experience\r
+  //\r
+  USB_WAIT_PORT_STS_CHANGE_STALL = 5 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for set device address, refers to specification\r
+  // [USB20-9.2.6.3, it says 2ms]\r
+  //\r
+  USB_SET_DEVICE_ADDRESS_STALL   = 20 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for retry max packet size, set by experience\r
+  //\r
+  USB_RETRY_MAX_PACK_SIZE_STALL  = 100 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for hub port power-on, refers to specification\r
+  // [USB20-11.23.2]\r
+  //\r
+  USB_SET_PORT_POWER_STALL       = 2 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for port reset, refers to specification\r
+  // [USB20-7.1.7.5, it says 10ms for hub and 50ms for\r
+  // root hub]\r
+  //\r
+  USB_SET_PORT_RESET_STALL       = 20 * USB_BUS_1_MILLISECOND,\r
+  USB_SET_ROOT_PORT_RESET_STALL  = 50 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for clear roothub port reset, set by experience\r
+  //\r
+  USB_CLR_ROOT_PORT_RESET_STALL  = 1 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Wait for set roothub port enable, set by experience\r
+  //\r
+  USB_SET_ROOT_PORT_ENABLE_STALL = 20 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Send general device request timeout, refers to\r
+  // specification[USB20-11.24.1]\r
+  //\r
+  USB_GENERAL_DEVICE_REQUEST_TIMEOUT = 50 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Send clear feature request timeout, set by experience\r
+  //\r
+  USB_CLEAR_FEATURE_REQUEST_TIMEOUT  = 10 * USB_BUS_1_MILLISECOND,\r
+\r
+  //\r
+  // Bus raises TPL to TPL_NOTIFY to serialize all its operations\r
+  // to protect shared data structures.\r
+  //\r
+  USB_BUS_TPL               = TPL_NOTIFY,\r
+\r
+  USB_INTERFACE_SIGNATURE   = EFI_SIGNATURE_32 ('U', 'S', 'B', 'I'),\r
+  USB_BUS_SIGNATURE         = EFI_SIGNATURE_32 ('U', 'S', 'B', 'B')\r
+};\r
+\r
+#define USB_BIT(a)                  ((UINTN)(1 << (a)))\r
+#define USB_BIT_IS_SET(Data, Bit)   ((BOOLEAN)(((Data) & (Bit)) == (Bit)))\r
+\r
+#define EFI_USB_BUS_PROTOCOL_GUID \\r
+          {0x2B2F68CC, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75}}\r
+\r
+#define USB_INTERFACE_FROM_USBIO(a) \\r
+          CR(a, USB_INTERFACE, UsbIo, USB_INTERFACE_SIGNATURE)\r
+\r
+#define USB_BUS_FROM_THIS(a) \\r
+          CR(a, USB_BUS, BusId, USB_BUS_SIGNATURE)\r
+\r
+//\r
+// Used to locate USB_BUS\r
+//\r
+typedef struct _EFI_USB_BUS_PROTOCOL {\r
+  UINT64                    Reserved;\r
+} EFI_USB_BUS_PROTOCOL;\r
+\r
+\r
+//\r
+// Stands for the real USB device. Each device may\r
+// has several seperately working interfaces.\r
+//\r
+struct _USB_DEVICE {\r
+  USB_BUS                   *Bus;\r
+\r
+  //\r
+  // Configuration information\r
+  //\r
+  UINT8                     Speed;\r
+  UINT8                     Address;\r
+  UINT8                     MaxPacket0;\r
+\r
+  //\r
+  // The device's descriptors and its configuration\r
+  //\r
+  USB_DEVICE_DESC           *DevDesc;\r
+  USB_CONFIG_DESC           *ActiveConfig;\r
+\r
+  UINT16                    LangId [USB_MAX_LANG_ID];\r
+  UINT16                    TotalLangId;\r
+\r
+  UINT8                     NumOfInterface;\r
+  USB_INTERFACE             *Interfaces [USB_MAX_INTERFACE];\r
+\r
+  //\r
+  // Parent child relationship\r
+  //\r
+  EFI_USB2_HC_TRANSACTION_TRANSLATOR Translator;\r
+\r
+  UINT8                     ParentAddr;\r
+  USB_INTERFACE             *ParentIf;\r
+  UINT8                     ParentPort;       // Start at 0\r
+};\r
+\r
+//\r
+// Stands for different functions of USB device\r
+//\r
+struct _USB_INTERFACE {\r
+  UINTN                     Signature;\r
+  USB_DEVICE                *Device;\r
+  USB_INTERFACE_DESC        *IfDesc;\r
+  USB_INTERFACE_SETTING     *IfSetting;\r
+\r
+  //\r
+  // Handles and protocols\r
+  //\r
+  EFI_HANDLE                Handle;\r
+  EFI_USB_IO_PROTOCOL       UsbIo;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  BOOLEAN                   IsManaged;\r
+\r
+  //\r
+  // Hub device special data\r
+  //\r
+  BOOLEAN                   IsHub;\r
+  USB_HUB_API               *HubApi;\r
+  UINT8                     NumOfPort;\r
+  EFI_EVENT                 HubNotify;\r
+\r
+  //\r
+  // Data used only by normal hub devices\r
+  //\r
+  USB_ENDPOINT_DESC         *HubEp;\r
+  UINT8                     *ChangeMap;\r
+\r
+  //\r
+  // Data used only by root hub to hand over device to\r
+  // companion UHCI driver if low/full speed devices are\r
+  // connected to EHCI.\r
+  //\r
+  UINT8                     MaxSpeed;\r
+};\r
+\r
+//\r
+// Stands for the current USB Bus\r
+//\r
+struct _USB_BUS {\r
+  UINTN                     Signature;\r
+  EFI_USB_BUS_PROTOCOL      BusId;\r
+\r
+  //\r
+  // Managed USB host controller\r
+  //\r
+  EFI_HANDLE                HostHandle;\r
+  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
+  EFI_USB2_HC_PROTOCOL      *Usb2Hc;\r
+  EFI_USB_HC_PROTOCOL       *UsbHc;\r
+\r
+  //\r
+  // An array of device that is on the bus. Devices[0] is\r
+  // for root hub. Device with address i is at Devices[i].\r
+  //\r
+  USB_DEVICE                *Devices[USB_MAX_DEVICES];\r
+\r
+  //\r
+  // USB Bus driver need to control the recursive connect policy of the bus, only those wanted\r
+  // usb child device will be recursively connected.\r
+  //\r
+  // WantedUsbIoDPList tracks the Usb child devices which user want to recursivly fully connecte,\r
+  // every wanted child device is stored in a item of the WantedUsbIoDPList, whose structrure is\r
+  // DEVICE_PATH_LIST_ITEM\r
+  //\r
+  LIST_ENTRY                WantedUsbIoDPList;\r
+\r
+};\r
+\r
+#define USB_US_LAND_ID   0x0409\r
+\r
+#define DEVICE_PATH_LIST_ITEM_SIGNATURE     EFI_SIGNATURE_32('d','p','l','i')\r
+typedef struct _DEVICE_PATH_LIST_ITEM{\r
+  UINTN                                 Signature;\r
+  LIST_ENTRY                            Link;\r
+  EFI_DEVICE_PATH_PROTOCOL              *DevicePath;\r
+} DEVICE_PATH_LIST_ITEM;\r
+\r
+typedef struct {\r
+  USB_CLASS_DEVICE_PATH           UsbClass;\r
+  EFI_DEVICE_PATH_PROTOCOL        End;\r
+} USB_CLASS_FORMAT_DEVICE_PATH;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+UsbBusFreeUsbDPList (\r
+  IN     LIST_ENTRY                                 *UsbIoDPList\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+UsbBusAddWantedUsbIoDP (\r
+  IN EFI_USB_BUS_PROTOCOL         *UsbBusId,\r
+  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
+  );\r
+\r
+BOOLEAN\r
+EFIAPI\r
+UsbBusIsWantedUsbIO (\r
+  IN USB_BUS                 *Bus,\r
+  IN USB_INTERFACE           *UsbIf\r
+  );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+UsbBusRecursivelyConnectWantedUsbIo (\r
+  IN EFI_USB_BUS_PROTOCOL         *UsbBusId\r
+  );\r
+\r
+extern EFI_USB_IO_PROTOCOL            mUsbIoProtocol;\r
+extern EFI_DRIVER_BINDING_PROTOCOL    mUsbBusDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL    mUsbBusComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL   mUsbBusComponentName2;\r
+\r
+#endif\r
diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/usbbus.h b/MdeModulePkg/Bus/Usb/UsbBusDxe/usbbus.h
deleted file mode 100644 (file)
index e85fc84..0000000
+++ /dev/null
@@ -1,313 +0,0 @@
-/** @file\r
-Copyright (c) 2004 - 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
-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:\r
-\r
-    UsbBus.h\r
-\r
-  Abstract:\r
-\r
-    Usb Bus Driver Binding and Bus IO Protocol\r
-\r
-  Revision History\r
-\r
-\r
-**/\r
-\r
-#ifndef _EFI_USB_BUS_H_\r
-#define _EFI_USB_BUS_H_\r
-\r
-\r
-#include <PiDxe.h>\r
-\r
-#include <Protocol/Usb2HostController.h>\r
-#include <Protocol/UsbHostController.h>\r
-#include <Protocol/UsbIo.h>\r
-#include <Protocol/DevicePath.h>\r
-\r
-#include <library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/DevicePathLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-\r
-\r
-#include <IndustryStandard/Usb.h>\r
-\r
-typedef struct _USB_DEVICE     USB_DEVICE;\r
-typedef struct _USB_INTERFACE  USB_INTERFACE;\r
-typedef struct _USB_BUS        USB_BUS;\r
-typedef struct _USB_HUB_API    USB_HUB_API;\r
-\r
-\r
-#include "UsbUtility.h"\r
-#include "UsbDesc.h"\r
-#include "UsbHub.h"\r
-#include "UsbEnumer.h"\r
-\r
-enum {\r
-  USB_MAX_LANG_ID           = 16,\r
-  USB_MAX_INTERFACE         = 16,\r
-  USB_MAX_DEVICES           = 128,\r
-\r
-  USB_BUS_1_MILLISECOND     = 1000,\r
-\r
-  //\r
-  // Roothub and hub's polling interval, set by experience,\r
-  // The unit of roothub is 100us, means 1s as interval, and\r
-  // the unit of hub is 1ms, means 64ms as interval.\r
-  //\r
-  USB_ROOTHUB_POLL_INTERVAL = 1000 * 10000U,\r
-  USB_HUB_POLL_INTERVAL     = 64,\r
-\r
-  //\r
-  // Wait for port stable to work, refers to specification\r
-  // [USB20-9.1.2]\r
-  //\r
-  USB_WAIT_PORT_STABLE_STALL     = 100 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for port statue reg change, set by experience\r
-  //\r
-  USB_WAIT_PORT_STS_CHANGE_STALL = 5 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for set device address, refers to specification\r
-  // [USB20-9.2.6.3, it says 2ms]\r
-  //\r
-  USB_SET_DEVICE_ADDRESS_STALL   = 20 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for retry max packet size, set by experience\r
-  //\r
-  USB_RETRY_MAX_PACK_SIZE_STALL  = 100 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for hub port power-on, refers to specification\r
-  // [USB20-11.23.2]\r
-  //\r
-  USB_SET_PORT_POWER_STALL       = 2 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for port reset, refers to specification\r
-  // [USB20-7.1.7.5, it says 10ms for hub and 50ms for\r
-  // root hub]\r
-  //\r
-  USB_SET_PORT_RESET_STALL       = 20 * USB_BUS_1_MILLISECOND,\r
-  USB_SET_ROOT_PORT_RESET_STALL  = 50 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for clear roothub port reset, set by experience\r
-  //\r
-  USB_CLR_ROOT_PORT_RESET_STALL  = 1 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Wait for set roothub port enable, set by experience\r
-  //\r
-  USB_SET_ROOT_PORT_ENABLE_STALL = 20 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Send general device request timeout, refers to\r
-  // specification[USB20-11.24.1]\r
-  //\r
-  USB_GENERAL_DEVICE_REQUEST_TIMEOUT = 50 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Send clear feature request timeout, set by experience\r
-  //\r
-  USB_CLEAR_FEATURE_REQUEST_TIMEOUT  = 10 * USB_BUS_1_MILLISECOND,\r
-\r
-  //\r
-  // Bus raises TPL to TPL_NOTIFY to serialize all its operations\r
-  // to protect shared data structures.\r
-  //\r
-  USB_BUS_TPL               = TPL_NOTIFY,\r
-\r
-  USB_INTERFACE_SIGNATURE   = EFI_SIGNATURE_32 ('U', 'S', 'B', 'I'),\r
-  USB_BUS_SIGNATURE         = EFI_SIGNATURE_32 ('U', 'S', 'B', 'B')\r
-};\r
-\r
-#define USB_BIT(a)                  ((UINTN)(1 << (a)))\r
-#define USB_BIT_IS_SET(Data, Bit)   ((BOOLEAN)(((Data) & (Bit)) == (Bit)))\r
-\r
-#define EFI_USB_BUS_PROTOCOL_GUID \\r
-          {0x2B2F68CC, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75}}\r
-\r
-#define USB_INTERFACE_FROM_USBIO(a) \\r
-          CR(a, USB_INTERFACE, UsbIo, USB_INTERFACE_SIGNATURE)\r
-\r
-#define USB_BUS_FROM_THIS(a) \\r
-          CR(a, USB_BUS, BusId, USB_BUS_SIGNATURE)\r
-\r
-//\r
-// Used to locate USB_BUS\r
-//\r
-typedef struct _EFI_USB_BUS_PROTOCOL {\r
-  UINT64                    Reserved;\r
-} EFI_USB_BUS_PROTOCOL;\r
-\r
-\r
-//\r
-// Stands for the real USB device. Each device may\r
-// has several seperately working interfaces.\r
-//\r
-struct _USB_DEVICE {\r
-  USB_BUS                   *Bus;\r
-\r
-  //\r
-  // Configuration information\r
-  //\r
-  UINT8                     Speed;\r
-  UINT8                     Address;\r
-  UINT8                     MaxPacket0;\r
-\r
-  //\r
-  // The device's descriptors and its configuration\r
-  //\r
-  USB_DEVICE_DESC           *DevDesc;\r
-  USB_CONFIG_DESC           *ActiveConfig;\r
-\r
-  UINT16                    LangId [USB_MAX_LANG_ID];\r
-  UINT16                    TotalLangId;\r
-\r
-  UINT8                     NumOfInterface;\r
-  USB_INTERFACE             *Interfaces [USB_MAX_INTERFACE];\r
-\r
-  //\r
-  // Parent child relationship\r
-  //\r
-  EFI_USB2_HC_TRANSACTION_TRANSLATOR Translator;\r
-\r
-  UINT8                     ParentAddr;\r
-  USB_INTERFACE             *ParentIf;\r
-  UINT8                     ParentPort;       // Start at 0\r
-};\r
-\r
-//\r
-// Stands for different functions of USB device\r
-//\r
-struct _USB_INTERFACE {\r
-  UINTN                     Signature;\r
-  USB_DEVICE                *Device;\r
-  USB_INTERFACE_DESC        *IfDesc;\r
-  USB_INTERFACE_SETTING     *IfSetting;\r
-\r
-  //\r
-  // Handles and protocols\r
-  //\r
-  EFI_HANDLE                Handle;\r
-  EFI_USB_IO_PROTOCOL       UsbIo;\r
-  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
-  BOOLEAN                   IsManaged;\r
-\r
-  //\r
-  // Hub device special data\r
-  //\r
-  BOOLEAN                   IsHub;\r
-  USB_HUB_API               *HubApi;\r
-  UINT8                     NumOfPort;\r
-  EFI_EVENT                 HubNotify;\r
-\r
-  //\r
-  // Data used only by normal hub devices\r
-  //\r
-  USB_ENDPOINT_DESC         *HubEp;\r
-  UINT8                     *ChangeMap;\r
-\r
-  //\r
-  // Data used only by root hub to hand over device to\r
-  // companion UHCI driver if low/full speed devices are\r
-  // connected to EHCI.\r
-  //\r
-  UINT8                     MaxSpeed;\r
-};\r
-\r
-//\r
-// Stands for the current USB Bus\r
-//\r
-struct _USB_BUS {\r
-  UINTN                     Signature;\r
-  EFI_USB_BUS_PROTOCOL      BusId;\r
-\r
-  //\r
-  // Managed USB host controller\r
-  //\r
-  EFI_HANDLE                HostHandle;\r
-  EFI_DEVICE_PATH_PROTOCOL  *DevicePath;\r
-  EFI_USB2_HC_PROTOCOL      *Usb2Hc;\r
-  EFI_USB_HC_PROTOCOL       *UsbHc;\r
-\r
-  //\r
-  // An array of device that is on the bus. Devices[0] is\r
-  // for root hub. Device with address i is at Devices[i].\r
-  //\r
-  USB_DEVICE                *Devices[USB_MAX_DEVICES];\r
-\r
-  //\r
-  // USB Bus driver need to control the recursive connect policy of the bus, only those wanted\r
-  // usb child device will be recursively connected.\r
-  //\r
-  // WantedUsbIoDPList tracks the Usb child devices which user want to recursivly fully connecte,\r
-  // every wanted child device is stored in a item of the WantedUsbIoDPList, whose structrure is\r
-  // DEVICE_PATH_LIST_ITEM\r
-  //\r
-  LIST_ENTRY                WantedUsbIoDPList;\r
-\r
-};\r
-\r
-#define USB_US_LAND_ID   0x0409\r
-\r
-#define DEVICE_PATH_LIST_ITEM_SIGNATURE     EFI_SIGNATURE_32('d','p','l','i')\r
-typedef struct _DEVICE_PATH_LIST_ITEM{\r
-  UINTN                                 Signature;\r
-  LIST_ENTRY                            Link;\r
-  EFI_DEVICE_PATH_PROTOCOL              *DevicePath;\r
-} DEVICE_PATH_LIST_ITEM;\r
-\r
-typedef struct {\r
-  USB_CLASS_DEVICE_PATH           UsbClass;\r
-  EFI_DEVICE_PATH_PROTOCOL        End;\r
-} USB_CLASS_FORMAT_DEVICE_PATH;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusFreeUsbDPList (\r
-  IN     LIST_ENTRY                                 *UsbIoDPList\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusAddWantedUsbIoDP (\r
-  IN EFI_USB_BUS_PROTOCOL         *UsbBusId,\r
-  IN EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
-  );\r
-\r
-BOOLEAN\r
-EFIAPI\r
-UsbBusIsWantedUsbIO (\r
-  IN USB_BUS                 *Bus,\r
-  IN USB_INTERFACE           *UsbIf\r
-  );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-UsbBusRecursivelyConnectWantedUsbIo (\r
-  IN EFI_USB_BUS_PROTOCOL         *UsbBusId\r
-  );\r
-\r
-extern EFI_USB_IO_PROTOCOL            mUsbIoProtocol;\r
-extern EFI_DRIVER_BINDING_PROTOCOL    mUsbBusDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL    mUsbBusComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL   mUsbBusComponentName2;\r
-\r
-#endif\r