]> git.proxmox.com Git - mirror_edk2.git/commitdiff
fix a misspelling.
authorjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 4 Oct 2010 16:25:24 +0000 (16:25 +0000)
committerjcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 4 Oct 2010 16:25:24 +0000 (16:25 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10905 6f19259b-4bc3-4df7-8a09-765794883524

ShellPkg/Include/Library/HandleParsingLib.h
ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c

index f08768c152159830122f735205db058f3a206440..b8166ff76fc4260107e15d68cf004ebb24a1dd88 100644 (file)
@@ -321,7 +321,7 @@ ConvertHandleIndexToHandle(
 **/\r
 EFI_HANDLE*\r
 EFIAPI\r
-GetHandleListByPotocol (\r
+GetHandleListByProtocol (\r
   IN CONST EFI_GUID *ProtocolGuid OPTIONAL\r
   );\r
 \r
@@ -335,7 +335,7 @@ GetHandleListByPotocol (
 **/\r
 EFI_HANDLE*\r
 EFIAPI\r
-GetHandleListByPotocolList (\r
+GetHandleListByProtocolList (\r
   IN CONST EFI_GUID **ProtocolGuids\r
   );\r
 \r
index c398618bbbab884faac13ece7425d63bcc4b0e07..107b3354e553243cfefa9f22e10297f8f7adfc56 100644 (file)
@@ -1116,7 +1116,7 @@ ParseHandleDatabaseForChildControllers(
     return Status;\r
   }\r
 \r
-  HandleBufferForReturn = GetHandleListByPotocol(&gEfiDriverBindingProtocolGuid);\r
+  HandleBufferForReturn = GetHandleListByProtocol(&gEfiDriverBindingProtocolGuid);\r
   if (HandleBufferForReturn == NULL) {\r
     FreePool (DriverBindingHandleBuffer);\r
     return Status;\r
@@ -1311,7 +1311,7 @@ ParseHandleDatabaseForChildDevices(
 **/\r
 EFI_HANDLE*\r
 EFIAPI\r
-GetHandleListByPotocol (\r
+GetHandleListByProtocol (\r
   IN CONST EFI_GUID *ProtocolGuid OPTIONAL\r
   )\r
 {\r
@@ -1329,6 +1329,9 @@ GetHandleListByPotocol (
     Status = gBS->LocateHandle(AllHandles, NULL, NULL, &Size, HandleList);\r
     if (Status == EFI_BUFFER_TOO_SMALL) {\r
       HandleList = AllocatePool(Size + sizeof(EFI_HANDLE));\r
+      if (HandleList == NULL) {\r
+        return (NULL);\r
+      }\r
       Status = gBS->LocateHandle(AllHandles, NULL, NULL, &Size, HandleList);\r
       HandleList[Size/sizeof(EFI_HANDLE)] = NULL;\r
     }\r
@@ -1336,6 +1339,9 @@ GetHandleListByPotocol (
     Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)ProtocolGuid, NULL, &Size, HandleList);\r
     if (Status == EFI_BUFFER_TOO_SMALL) {\r
       HandleList = AllocatePool(Size + sizeof(EFI_HANDLE));\r
+      if (HandleList == NULL) {\r
+        return (NULL);\r
+      }\r
       Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)ProtocolGuid, NULL, &Size, HandleList);\r
       HandleList[Size/sizeof(EFI_HANDLE)] = NULL;\r
     }\r
@@ -1359,13 +1365,14 @@ GetHandleListByPotocol (
 **/\r
 EFI_HANDLE*\r
 EFIAPI\r
-GetHandleListByPotocolList (\r
+GetHandleListByProtocolList (\r
   IN CONST EFI_GUID **ProtocolGuids\r
   )\r
 {\r
   EFI_HANDLE          *HandleList;\r
   UINTN               Size;\r
   UINTN               TotalSize;\r
+  UINTN               TempSize;\r
   EFI_STATUS          Status;\r
   CONST EFI_GUID      **GuidWalker;\r
   EFI_HANDLE          *HandleWalker1;\r
@@ -1381,7 +1388,15 @@ GetHandleListByPotocolList (
       TotalSize += Size;\r
     }\r
   }\r
-  HandleList = AllocatePool(TotalSize);\r
+\r
+  //\r
+  // No handles were found... \r
+  //\r
+  if (TotalSize == sizeof(EFI_HANDLE)) {\r
+    return (NULL);\r
+  }\r
+\r
+  HandleList = AllocateZeroPool(TotalSize);\r
   ASSERT(HandleList != NULL);\r
   if (HandleList == NULL) {\r
     return (NULL);\r
@@ -1389,9 +1404,15 @@ GetHandleListByPotocolList (
 \r
   Size = 0;\r
   for (GuidWalker = ProtocolGuids ; GuidWalker != NULL && *GuidWalker != NULL ; GuidWalker++){\r
-    Size = TotalSize - Size;\r
-    Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)(*GuidWalker), NULL, &Size, HandleList+((TotalSize - Size)/sizeof(EFI_HANDLE)));\r
-    ASSERT_EFI_ERROR(Status);\r
+    TempSize = TotalSize - Size;\r
+    Status = gBS->LocateHandle(ByProtocol, (EFI_GUID*)(*GuidWalker), NULL, &TempSize, HandleList+((TotalSize - Size)/sizeof(EFI_HANDLE)));\r
+\r
+    //\r
+    // Allow for missing protocols... Only update the 'used' size upon success.\r
+    //\r
+    if (!EFI_ERROR(Status)) {\r
+      Size = TempSize;\r
+    }\r
   }\r
   HandleList[(TotalSize/sizeof(EFI_HANDLE))-1] = NULL;\r
 \r