@retval EFI_ABORTED The abort mechanism was received.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
LoadPciRomConnectAllDriversToAllControllers (\r
VOID\r
);\r
@retval EFI_ABORTED The abort mechanism was received.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
LoadPciRomConnectAllDriversToAllControllers (\r
VOID\r
)\r
-\r
{\r
EFI_STATUS Status;\r
- UINTN AllHandleCount;\r
- EFI_HANDLE *AllHandleBuffer;\r
- UINTN Index;\r
UINTN HandleCount;\r
EFI_HANDLE *HandleBuffer;\r
- UINTN *HandleType;\r
- UINTN HandleIndex;\r
- BOOLEAN Parent;\r
- BOOLEAN Device;\r
-\r
- Status = gBS->LocateHandleBuffer(\r
- AllHandles,\r
- NULL,\r
- NULL,\r
- &AllHandleCount,\r
- &AllHandleBuffer\r
- );\r
+ UINTN Index;\r
+\r
+ Status = gBS->LocateHandleBuffer (\r
+ AllHandles,\r
+ NULL,\r
+ NULL,\r
+ &HandleCount,\r
+ &HandleBuffer\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
- for (Index = 0; Index < AllHandleCount; Index++) {\r
+ for (Index = 0; Index < HandleCount; Index++) {\r
if (ShellGetExecutionBreakFlag ()) {\r
Status = EFI_ABORTED;\r
- goto Done;\r
- }\r
- //\r
- // Scan the handle database\r
- //\r
- Status = ParseHandleDatabaseByRelationshipWithType(\r
- NULL,\r
- AllHandleBuffer[Index],\r
- &HandleCount,\r
- &HandleBuffer,\r
- &HandleType\r
- );\r
-/*\r
- Status = LibScanHandleDatabase (\r
- NULL,\r
- NULL,\r
- AllHandleBuffer[Index],\r
- NULL,\r
- &HandleCount,\r
- &HandleBuffer,\r
- &HandleType\r
- );\r
-*/\r
- if (EFI_ERROR (Status)) {\r
- goto Done;\r
- }\r
-\r
- Device = TRUE;\r
- if ((HandleType[Index] & HR_DRIVER_BINDING_HANDLE) != 0) {\r
- Device = FALSE;\r
- }\r
-\r
- if ((HandleType[Index] & HR_IMAGE_HANDLE) != 0) {\r
- Device = FALSE;\r
- }\r
-\r
- if (Device) {\r
- Parent = FALSE;\r
- for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {\r
- if ((HandleType[HandleIndex] & HR_PARENT_HANDLE) != 0) {\r
- Parent = TRUE;\r
- }\r
- }\r
-\r
- if (!Parent) {\r
- if ((HandleType[Index] & HR_DEVICE_HANDLE) != 0) {\r
- Status = gBS->ConnectController (\r
- AllHandleBuffer[Index],\r
- NULL,\r
- NULL,\r
- TRUE\r
- );\r
- }\r
- }\r
+ break;\r
}\r
+ gBS->ConnectController (HandleBuffer[Index], NULL, NULL, TRUE);\r
+ }\r
\r
+ if (HandleBuffer != NULL) {\r
FreePool (HandleBuffer);\r
- FreePool (HandleType);\r
}\r
-\r
-Done:\r
- FreePool (AllHandleBuffer);\r
return Status;\r
}\r