]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Core/Dxe/Hand/DriverSupport.c
Clean up DxeCore to remove duplicate memory allocation & device path utility services...
[mirror_edk2.git] / MdeModulePkg / Core / Dxe / Hand / DriverSupport.c
index 72ebc8e8973e5d4e0e0d6df0d1c6022cfd7c30f5..9db124c9f3f672190342a4274af8d42e808aec67 100644 (file)
@@ -1,34 +1,42 @@
-/** @file \r
-\r
+/** @file\r
   Support functions to connect/disconnect UEFI Driver model Protocol\r
 \r
-Copyright (c) 2006 - 2008, 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
+Copyright (c) 2006 - 2008, Intel Corporation. <BR>\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
 **/\r
 \r
-#include <DxeMain.h>\r
+#include "DxeMain.h"\r
 \r
-//\r
-// Driver Support Function Prototypes\r
-//\r
-EFI_STATUS \r
-CoreConnectSingleController (\r
-  IN  EFI_HANDLE                ControllerHandle,\r
-  IN  EFI_HANDLE                *DriverImageHandle    OPTIONAL,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL  *RemainingDevicePath  OPTIONAL\r
-  );\r
 \r
 //\r
 // Driver Support Functions\r
 //\r
-EFI_STATUS \r
+/**\r
+  Connects one or more drivers to a controller.\r
+\r
+  @param  ControllerHandle                      Handle of the controller to be\r
+                                                connected.\r
+  @param  DriverImageHandle                     DriverImageHandle A pointer to an\r
+                                                ordered list of driver image\r
+                                                handles.\r
+  @param  RemainingDevicePath                   RemainingDevicePath A pointer to\r
+                                                the device path that specifies a\r
+                                                child of the controller specified\r
+                                                by ControllerHandle.\r
+  @param  Recursive                             Whether the function would be\r
+                                                called recursively or not.\r
+\r
+  @return Status code.\r
+\r
+**/\r
+EFI_STATUS\r
 EFIAPI\r
 CoreConnectController (\r
   IN  EFI_HANDLE                ControllerHandle,\r
@@ -36,28 +44,6 @@ CoreConnectController (
   IN  EFI_DEVICE_PATH_PROTOCOL  *RemainingDevicePath  OPTIONAL,\r
   IN  BOOLEAN                   Recursive\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Connects one or more drivers to a controller.\r
-\r
-Arguments:\r
-\r
-  ControllerHandle            - Handle of the controller to be connected.\r
-\r
-  DriverImageHandle           - DriverImageHandle A pointer to an ordered list of driver image handles.\r
-\r
-  RemainingDevicePath         - RemainingDevicePath A pointer to the device path that specifies a child of the\r
-                                controller specified by ControllerHandle.\r
-    \r
-  Recursive                   - Whether the function would be called recursively or not.\r
-\r
-Returns:\r
-\r
-  Status code.\r
-\r
---*/\r
 {\r
   EFI_STATUS                           Status;\r
   EFI_STATUS                           ReturnStatus;\r
@@ -70,7 +56,7 @@ Returns:
   EFI_HANDLE                           *ChildHandleBuffer;\r
   UINTN                                ChildHandleCount;\r
   UINTN                                Index;\r
-  \r
+\r
   //\r
   // Make sure ControllerHandle is valid\r
   //\r
@@ -86,7 +72,7 @@ Returns:
   //\r
   AlignedRemainingDevicePath = NULL;\r
   if (RemainingDevicePath != NULL) {\r
-    AlignedRemainingDevicePath = CoreDuplicateDevicePath (RemainingDevicePath);\r
+    AlignedRemainingDevicePath = DuplicateDevicePath (RemainingDevicePath);\r
   }\r
 \r
   //\r
@@ -97,10 +83,10 @@ Returns:
   //\r
   do {\r
     ReturnStatus = CoreConnectSingleController (\r
-                    ControllerHandle,\r
-                    DriverImageHandle,\r
-                    AlignedRemainingDevicePath\r
-                    );\r
+                     ControllerHandle,\r
+                     DriverImageHandle,\r
+                     AlignedRemainingDevicePath\r
+                     );\r
   } while (ReturnStatus == EFI_NOT_READY);\r
 \r
   //\r
@@ -138,8 +124,8 @@ Returns:
     //\r
     for (Link = Handle->Protocols.ForwardLink, ChildHandleCount = 0; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
       Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-      for (ProtLink = Prot->OpenList.ForwardLink; \r
-          ProtLink != &Prot->OpenList; \r
+      for (ProtLink = Prot->OpenList.ForwardLink;\r
+          ProtLink != &Prot->OpenList;\r
           ProtLink = ProtLink->ForwardLink) {\r
         OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
         if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {\r
@@ -151,15 +137,15 @@ Returns:
     //\r
     // Allocate a handle buffer for ControllerHandle's children\r
     //\r
-    ChildHandleBuffer = CoreAllocateBootServicesPool (ChildHandleCount * sizeof(EFI_HANDLE));\r
+    ChildHandleBuffer = AllocatePool (ChildHandleCount * sizeof(EFI_HANDLE));\r
 \r
     //\r
     // Fill in a handle buffer with ControllerHandle's children\r
     //\r
     for (Link = Handle->Protocols.ForwardLink, ChildHandleCount = 0; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
       Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-      for (ProtLink = Prot->OpenList.ForwardLink; \r
-          ProtLink != &Prot->OpenList; \r
+      for (ProtLink = Prot->OpenList.ForwardLink;\r
+          ProtLink != &Prot->OpenList;\r
           ProtLink = ProtLink->ForwardLink) {\r
         OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
         if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {\r
@@ -183,7 +169,7 @@ Returns:
         NULL,\r
         NULL,\r
         TRUE\r
-        ); \r
+        );\r
     }\r
 \r
     //\r
@@ -195,41 +181,35 @@ Returns:
   return ReturnStatus;\r
 }\r
 \r
+\r
+/**\r
+  Add Driver Binding Protocols from Context Driver Image Handles to sorted\r
+  Driver Binding Protocol list.\r
+\r
+  @param  DriverBindingHandle                   Handle of the driver binding\r
+                                                protocol.\r
+  @param  NumberOfSortedDriverBindingProtocols  Number Of sorted driver binding\r
+                                                protocols\r
+  @param  SortedDriverBindingProtocols          The sorted protocol list.\r
+  @param  DriverBindingHandleCount              Driver Binding Handle Count.\r
+  @param  DriverBindingHandleBuffer             The buffer of driver binding\r
+                                                protocol to be modified.\r
+  @param  IsImageHandle                         Indicate whether\r
+                                                DriverBindingHandle is an image\r
+                                                handle\r
+\r
+  @return None.\r
+\r
+**/\r
 VOID\r
 AddSortedDriverBindingProtocol (\r
   IN      EFI_HANDLE                   DriverBindingHandle,\r
-  IN OUT  UINTN                        *NumberOfSortedDriverBindingProtocols, \r
+  IN OUT  UINTN                        *NumberOfSortedDriverBindingProtocols,\r
   IN OUT  EFI_DRIVER_BINDING_PROTOCOL  **SortedDriverBindingProtocols,\r
   IN      UINTN                        DriverBindingHandleCount,\r
   IN OUT  EFI_HANDLE                   *DriverBindingHandleBuffer,\r
   IN      BOOLEAN                      IsImageHandle\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Add Driver Binding Protocols from Context Driver Image Handles to sorted \r
-   Driver Binding Protocol list.\r
-\r
-Arguments:\r
-\r
-  DriverBindingHandle - Handle of the driver binding protocol.\r
-\r
-  NumberOfSortedDriverBindingProtocols - Number Of sorted driver binding protocols\r
-\r
-  SortedDriverBindingProtocols - The sorted protocol list.                        \r
-    \r
-  DriverBindingHandleCount - Driver Binding Handle Count.\r
-\r
-  DriverBindingHandleBuffer - The buffer of driver binding protocol to be modified.\r
-\r
-  IsImageHandle - Indicate whether DriverBindingHandle is an image handle\r
-  \r
-Returns:\r
-\r
-  None.\r
-\r
---*/\r
 {\r
   EFI_STATUS                   Status;\r
   EFI_DRIVER_BINDING_PROTOCOL  *DriverBinding;\r
@@ -258,7 +238,7 @@ Returns:
       Status = CoreHandleProtocol (\r
                 DriverBindingHandleBuffer[Index],\r
                 &gEfiDriverBindingProtocolGuid,\r
-                (VOID **)&DriverBinding\r
+                (VOID **) &DriverBinding\r
                 );\r
       if (EFI_ERROR (Status) || DriverBinding == NULL) {\r
         continue;\r
@@ -271,7 +251,7 @@ Returns:
       if (DriverBinding->ImageHandle == DriverBindingHandle) {\r
         AddSortedDriverBindingProtocol (\r
           DriverBindingHandleBuffer[Index],\r
-          NumberOfSortedDriverBindingProtocols, \r
+          NumberOfSortedDriverBindingProtocols,\r
           SortedDriverBindingProtocols,\r
           DriverBindingHandleCount,\r
           DriverBindingHandleBuffer,\r
@@ -288,7 +268,7 @@ Returns:
   Status = CoreHandleProtocol(\r
              DriverBindingHandle,\r
              &gEfiDriverBindingProtocolGuid,\r
-             (VOID **)&DriverBinding\r
+             (VOID **) &DriverBinding\r
              );\r
   //\r
   // If DriverBindingHandle does not support the Driver Binding Protocol then return\r
@@ -323,33 +303,35 @@ Returns:
     }\r
   }\r
 }\r
\r
-EFI_STATUS \r
-CoreConnectSingleController (\r
-  IN  EFI_HANDLE                ControllerHandle,\r
-  IN  EFI_HANDLE                *ContextDriverImageHandles OPTIONAL,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL  *RemainingDevicePath       OPTIONAL     \r
-  )\r
-/*++\r
 \r
-Routine Description:\r
 \r
+/**\r
   Connects a controller to a driver.\r
 \r
-Arguments:\r
-\r
-  ControllerHandle            - Handle of the controller to be connected.\r
-  ContextDriverImageHandles   - DriverImageHandle A pointer to an ordered list of driver image handles.\r
-  RemainingDevicePath         - RemainingDevicePath A pointer to the device path that specifies a child \r
-                                of the controller specified by ControllerHandle.\r
-    \r
-Returns:\r
-\r
-  EFI_SUCCESS           - One or more drivers were connected to ControllerHandle.\r
-  EFI_OUT_OF_RESOURCES  - No enough system resources to complete the request.\r
-  EFI_NOT_FOUND         - No drivers were connected to ControllerHandle.\r
+  @param  ControllerHandle                      Handle of the controller to be\r
+                                                connected.\r
+  @param  ContextDriverImageHandles             DriverImageHandle A pointer to an\r
+                                                ordered list of driver image\r
+                                                handles.\r
+  @param  RemainingDevicePath                   RemainingDevicePath A pointer to\r
+                                                the device path that specifies a\r
+                                                child  of the controller\r
+                                                specified by ControllerHandle.\r
+\r
+  @retval EFI_SUCCESS                           One or more drivers were\r
+                                                connected to ControllerHandle.\r
+  @retval EFI_OUT_OF_RESOURCES                  No enough system resources to\r
+                                                complete the request.\r
+  @retval EFI_NOT_FOUND                         No drivers were connected to\r
+                                                ControllerHandle.\r
 \r
---*/\r
+**/\r
+EFI_STATUS\r
+CoreConnectSingleController (\r
+  IN  EFI_HANDLE                ControllerHandle,\r
+  IN  EFI_HANDLE                *ContextDriverImageHandles OPTIONAL,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL  *RemainingDevicePath       OPTIONAL\r
+  )\r
 {\r
   EFI_STATUS                                 Status;\r
   UINTN                                      Index;\r
@@ -381,10 +363,10 @@ Returns:
   // Get list of all Driver Binding Protocol Instances\r
   //\r
   Status = CoreLocateHandleBuffer (\r
-             ByProtocol,   \r
-             &gEfiDriverBindingProtocolGuid,  \r
+             ByProtocol,\r
+             &gEfiDriverBindingProtocolGuid,\r
              NULL,\r
-             &DriverBindingHandleCount, \r
+             &DriverBindingHandleCount,\r
              &DriverBindingHandleBuffer\r
              );\r
   if (EFI_ERROR (Status) || (DriverBindingHandleCount == 0)) {\r
@@ -394,7 +376,7 @@ Returns:
   //\r
   // Allocate a duplicate array for the sorted Driver Binding Protocol Instances\r
   //\r
-  SortedDriverBindingProtocols = CoreAllocateBootServicesPool (sizeof (VOID *) * DriverBindingHandleCount);\r
+  SortedDriverBindingProtocols = AllocatePool (sizeof (VOID *) * DriverBindingHandleCount);\r
   if (SortedDriverBindingProtocols == NULL) {\r
     CoreFreePool (DriverBindingHandleBuffer);\r
     return EFI_OUT_OF_RESOURCES;\r
@@ -407,7 +389,7 @@ Returns:
     for (Index = 0; ContextDriverImageHandles[Index] != NULL; Index++) {\r
       AddSortedDriverBindingProtocol (\r
         ContextDriverImageHandles[Index],\r
-        &NumberOfSortedDriverBindingProtocols, \r
+        &NumberOfSortedDriverBindingProtocols,\r
         SortedDriverBindingProtocols,\r
         DriverBindingHandleCount,\r
         DriverBindingHandleBuffer,\r
@@ -420,9 +402,9 @@ Returns:
   // Add the Platform Driver Override Protocol drivers for ControllerHandle next\r
   //\r
   Status = CoreLocateProtocol (\r
-             &gEfiPlatformDriverOverrideProtocolGuid, \r
-             NULL, \r
-             (VOID **)&PlatformDriverOverride\r
+             &gEfiPlatformDriverOverrideProtocolGuid,\r
+             NULL,\r
+             (VOID **) &PlatformDriverOverride\r
              );\r
   if (!EFI_ERROR (Status) && (PlatformDriverOverride != NULL)) {\r
     DriverImageHandle = NULL;\r
@@ -435,7 +417,7 @@ Returns:
       if (!EFI_ERROR (Status)) {\r
         AddSortedDriverBindingProtocol (\r
           DriverImageHandle,\r
-          &NumberOfSortedDriverBindingProtocols, \r
+          &NumberOfSortedDriverBindingProtocols,\r
           SortedDriverBindingProtocols,\r
           DriverBindingHandleCount,\r
           DriverBindingHandleBuffer,\r
@@ -449,9 +431,9 @@ Returns:
   // Get the Bus Specific Driver Override Protocol instance on the Controller Handle\r
   //\r
   Status = CoreHandleProtocol (\r
-             ControllerHandle,  \r
-             &gEfiBusSpecificDriverOverrideProtocolGuid, \r
-             (VOID **)&BusSpecificDriverOverride\r
+             ControllerHandle,\r
+             &gEfiBusSpecificDriverOverrideProtocolGuid,\r
+             (VOID **) &BusSpecificDriverOverride\r
              );\r
   if (!EFI_ERROR (Status) && (BusSpecificDriverOverride != NULL)) {\r
     DriverImageHandle = NULL;\r
@@ -463,7 +445,7 @@ Returns:
       if (!EFI_ERROR (Status)) {\r
         AddSortedDriverBindingProtocol (\r
           DriverImageHandle,\r
-          &NumberOfSortedDriverBindingProtocols, \r
+          &NumberOfSortedDriverBindingProtocols,\r
           SortedDriverBindingProtocols,\r
           DriverBindingHandleCount,\r
           DriverBindingHandleBuffer,\r
@@ -480,7 +462,7 @@ Returns:
   for (Index = 0; Index < DriverBindingHandleCount; Index++) {\r
     AddSortedDriverBindingProtocol (\r
       DriverBindingHandleBuffer[Index],\r
-      &NumberOfSortedDriverBindingProtocols, \r
+      &NumberOfSortedDriverBindingProtocols,\r
       SortedDriverBindingProtocols,\r
       DriverBindingHandleCount,\r
       DriverBindingHandleBuffer,\r
@@ -498,10 +480,10 @@ Returns:
   // EFI_NOT_READY, so it will be restarted\r
   //\r
   Status = CoreLocateHandleBuffer (\r
-             ByProtocol,   \r
-             &gEfiDriverBindingProtocolGuid,  \r
+             ByProtocol,\r
+             &gEfiDriverBindingProtocolGuid,\r
              NULL,\r
-             &NewDriverBindingHandleCount, \r
+             &NewDriverBindingHandleCount,\r
              &NewDriverBindingHandleBuffer\r
              );\r
   CoreFreePool (NewDriverBindingHandleBuffer);\r
@@ -542,7 +524,7 @@ Returns:
 \r
     //\r
     // Loop through the sorted Driver Binding Protocol Instances in order, and see if\r
-    // any of the Driver Binding Protocols support the controller specified by \r
+    // any of the Driver Binding Protocols support the controller specified by\r
     // ControllerHandle.\r
     //\r
     DriverBinding = NULL;\r
@@ -551,7 +533,7 @@ Returns:
       if (SortedDriverBindingProtocols[Index] != NULL) {\r
         DriverBinding = SortedDriverBindingProtocols[Index];\r
         Status = DriverBinding->Supported(\r
-                                  DriverBinding, \r
+                                  DriverBinding,\r
                                   ControllerHandle,\r
                                   RemainingDevicePath\r
                                   );\r
@@ -565,7 +547,7 @@ Returns:
           //\r
           PERF_START (DriverBinding->DriverBindingHandle, DRIVERBINDING_START_TOK, NULL, 0);\r
           Status = DriverBinding->Start (\r
-                                    DriverBinding, \r
+                                    DriverBinding,\r
                                     ControllerHandle,\r
                                     RemainingDevicePath\r
                                     );\r
@@ -592,7 +574,7 @@ Returns:
   //\r
   if (OneStarted) {\r
     return EFI_SUCCESS;\r
-  } \r
+  }\r
 \r
   //\r
   // If no drivers started and RemainingDevicePath is an End Device Path Node, then return EFI_SUCCESS\r
@@ -601,7 +583,7 @@ Returns:
     if (IsDevicePathEnd (RemainingDevicePath)) {\r
       return EFI_SUCCESS;\r
     }\r
-  } \r
+  }\r
 \r
   //\r
   // Otherwise, no drivers were started on ControllerHandle, so return EFI_NOT_FOUND\r
@@ -610,38 +592,47 @@ Returns:
 }\r
 \r
 \r
-EFI_STATUS \r
+\r
+/**\r
+  Disonnects a controller from a driver\r
+\r
+  @param  ControllerHandle                      ControllerHandle The handle of\r
+                                                the controller from which\r
+                                                driver(s)  are to be\r
+                                                disconnected.\r
+  @param  DriverImageHandle                     DriverImageHandle The driver to\r
+                                                disconnect from ControllerHandle.\r
+  @param  ChildHandle                           ChildHandle The handle of the\r
+                                                child to destroy.\r
+\r
+  @retval EFI_SUCCESS                           One or more drivers were\r
+                                                disconnected from the controller.\r
+  @retval EFI_SUCCESS                           On entry, no drivers are managing\r
+                                                ControllerHandle.\r
+  @retval EFI_SUCCESS                           DriverImageHandle is not NULL,\r
+                                                and on entry DriverImageHandle is\r
+                                                not managing ControllerHandle.\r
+  @retval EFI_INVALID_PARAMETER                 ControllerHandle is not a valid\r
+                                                EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER                 DriverImageHandle is not NULL,\r
+                                                and it is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER                 ChildHandle is not NULL, and it\r
+                                                is not a valid EFI_HANDLE.\r
+  @retval EFI_OUT_OF_RESOURCES                  There are not enough resources\r
+                                                available to disconnect any\r
+                                                drivers from ControllerHandle.\r
+  @retval EFI_DEVICE_ERROR                      The controller could not be\r
+                                                disconnected because of a device\r
+                                                error.\r
+\r
+**/\r
+EFI_STATUS\r
 EFIAPI\r
 CoreDisconnectController (\r
   IN  EFI_HANDLE  ControllerHandle,\r
   IN  EFI_HANDLE  DriverImageHandle  OPTIONAL,\r
   IN  EFI_HANDLE  ChildHandle        OPTIONAL\r
   )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Disonnects a controller from a driver\r
-\r
-Arguments:\r
-\r
-  ControllerHandle  - ControllerHandle The handle of the controller from which driver(s) \r
-                        are to be disconnected.\r
-  DriverImageHandle - DriverImageHandle The driver to disconnect from ControllerHandle.\r
-  ChildHandle       - ChildHandle The handle of the child to destroy.\r
-\r
-Returns:\r
-\r
-  EFI_SUCCESS           -  One or more drivers were disconnected from the controller.\r
-  EFI_SUCCESS           -  On entry, no drivers are managing ControllerHandle.\r
-  EFI_SUCCESS           -  DriverImageHandle is not NULL, and on entry DriverImageHandle is not managing ControllerHandle.\r
-  EFI_INVALID_PARAMETER -  ControllerHandle is not a valid EFI_HANDLE.\r
-  EFI_INVALID_PARAMETER -  DriverImageHandle is not NULL, and it is not a valid EFI_HANDLE.\r
-  EFI_INVALID_PARAMETER -  ChildHandle is not NULL, and it is not a valid EFI_HANDLE.\r
-  EFI_OUT_OF_RESOURCES  -  There are not enough resources available to disconnect any drivers from ControllerHandle.\r
-  EFI_DEVICE_ERROR      -  The controller could not be disconnected because of a device error.\r
-\r
---*/\r
 {\r
   EFI_STATUS                          Status;\r
   IHANDLE                             *Handle;\r
@@ -686,8 +677,8 @@ Returns:
   // Get list of drivers that are currently managing ControllerHandle\r
   //\r
   DriverImageHandleBuffer = NULL;\r
-  DriverImageHandleCount  = 1;  \r
-  \r
+  DriverImageHandleCount  = 1;\r
+\r
   if (DriverImageHandle == NULL) {\r
     //\r
     // Look at each protocol interface for a match\r
@@ -697,8 +688,8 @@ Returns:
     CoreAcquireProtocolLock ();\r
     for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
       Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-      for (ProtLink = Prot->OpenList.ForwardLink; \r
-           ProtLink != &Prot->OpenList; \r
+      for (ProtLink = Prot->OpenList.ForwardLink;\r
+           ProtLink != &Prot->OpenList;\r
            ProtLink = ProtLink->ForwardLink) {\r
         OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
         if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {\r
@@ -707,7 +698,7 @@ Returns:
       }\r
     }\r
     CoreReleaseProtocolLock ();\r
-    \r
+\r
     //\r
     // If there are no drivers managing this controller, then return EFI_SUCCESS\r
     //\r
@@ -716,7 +707,7 @@ Returns:
       goto Done;\r
     }\r
 \r
-    DriverImageHandleBuffer = CoreAllocateBootServicesPool (sizeof (EFI_HANDLE) * DriverImageHandleCount);\r
+    DriverImageHandleBuffer = AllocatePool (sizeof (EFI_HANDLE) * DriverImageHandleCount);\r
     if (DriverImageHandleBuffer == NULL) {\r
       Status = EFI_OUT_OF_RESOURCES;\r
       goto Done;\r
@@ -727,8 +718,8 @@ Returns:
     CoreAcquireProtocolLock ();\r
     for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
       Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-      for (ProtLink = Prot->OpenList.ForwardLink; \r
-           ProtLink != &Prot->OpenList; \r
+      for (ProtLink = Prot->OpenList.ForwardLink;\r
+           ProtLink != &Prot->OpenList;\r
            ProtLink = ProtLink->ForwardLink) {\r
         OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
         if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {\r
@@ -760,8 +751,8 @@ Returns:
     // Get the Driver Binding Protocol of the driver that is managing this controller\r
     //\r
     Status = CoreHandleProtocol (\r
-               DriverImageHandle,  \r
-               &gEfiDriverBindingProtocolGuid,   \r
+               DriverImageHandle,\r
+               &gEfiDriverBindingProtocolGuid,\r
                (VOID **)&DriverBinding\r
                );\r
     if (EFI_ERROR (Status)) {\r
@@ -778,14 +769,14 @@ Returns:
     CoreAcquireProtocolLock ();\r
     for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
       Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-      for (ProtLink = Prot->OpenList.ForwardLink; \r
-           ProtLink != &Prot->OpenList; \r
+      for (ProtLink = Prot->OpenList.ForwardLink;\r
+           ProtLink != &Prot->OpenList;\r
            ProtLink = ProtLink->ForwardLink) {\r
         OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
         if (OpenData->AgentHandle == DriverImageHandle) {\r
           if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER) != 0) {\r
             ChildBufferCount++;\r
-          } \r
+          }\r
           if ((OpenData->Attributes & EFI_OPEN_PROTOCOL_BY_DRIVER) != 0) {\r
             DriverImageHandleValid = TRUE;\r
           }\r
@@ -798,7 +789,7 @@ Returns:
       ChildHandleValid = FALSE;\r
       ChildBuffer = NULL;\r
       if (ChildBufferCount != 0) {\r
-        ChildBuffer = CoreAllocateBootServicesPool (sizeof (EFI_HANDLE) * ChildBufferCount);\r
+        ChildBuffer = AllocatePool (sizeof (EFI_HANDLE) * ChildBufferCount);\r
         if (ChildBuffer == NULL) {\r
           Status = EFI_OUT_OF_RESOURCES;\r
           goto Done;\r
@@ -809,8 +800,8 @@ Returns:
         CoreAcquireProtocolLock ();\r
         for (Link = Handle->Protocols.ForwardLink; Link != &Handle->Protocols; Link = Link->ForwardLink) {\r
           Prot = CR(Link, PROTOCOL_INTERFACE, Link, PROTOCOL_INTERFACE_SIGNATURE);\r
-          for (ProtLink = Prot->OpenList.ForwardLink; \r
-               ProtLink != &Prot->OpenList; \r
+          for (ProtLink = Prot->OpenList.ForwardLink;\r
+               ProtLink != &Prot->OpenList;\r
                ProtLink = ProtLink->ForwardLink) {\r
             OpenData = CR (ProtLink, OPEN_PROTOCOL_DATA, Link, OPEN_PROTOCOL_DATA_SIGNATURE);\r
             if ((OpenData->AgentHandle == DriverImageHandle) &&\r
@@ -866,8 +857,8 @@ Returns:
   } else {\r
     Status = EFI_NOT_FOUND;\r
   }\r
-  \r
-Done:  \r
+\r
+Done:\r
 \r
   if (DriverImageHandleBuffer != NULL) {\r
     CoreFreePool (DriverImageHandleBuffer);\r