Main file for connect shell Driver1 function.\r
\r
(C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
- Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
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
EFI_STATUS Status;\r
EFI_HANDLE Handle;\r
EFI_HANDLE PreviousHandle;\r
- \r
+\r
if (DevicePathToConnect == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
PreviousHandle = NULL;\r
- do{ \r
+ do{\r
RemainingDevicePath = DevicePathToConnect;\r
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &Handle);\r
- \r
+\r
if (!EFI_ERROR (Status) && (Handle != NULL)) {\r
if (PreviousHandle == Handle) {\r
Status = EFI_NOT_FOUND;\r
Status = gBS->ConnectController (Handle, NULL, RemainingDevicePath, FALSE);\r
}\r
}\r
- \r
+\r
} while (!EFI_ERROR (Status) && !IsDevicePathEnd (RemainingDevicePath) );\r
- \r
+\r
return Status;\r
- \r
+\r
}\r
\r
/**\r
Connect drivers for PCI root bridge.\r
- \r
+\r
@retval EFI_SUCCESS Connect drivers successfully.\r
@retval EFI_NOT_FOUND Cannot find PCI root bridge device.\r
\r
ShellConnectPciRootBridge (\r
VOID\r
)\r
-{ \r
+{\r
UINTN RootBridgeHandleCount;\r
EFI_HANDLE *RootBridgeHandleBuffer;\r
UINTN RootBridgeIndex;\r
EFI_STATUS Status;\r
- \r
+\r
RootBridgeHandleCount = 0;\r
- \r
- Status = gBS->LocateHandleBuffer ( \r
- ByProtocol, \r
- &gEfiPciRootBridgeIoProtocolGuid, \r
- NULL, \r
- &RootBridgeHandleCount, \r
- &RootBridgeHandleBuffer \r
+\r
+ Status = gBS->LocateHandleBuffer (\r
+ ByProtocol,\r
+ &gEfiPciRootBridgeIoProtocolGuid,\r
+ NULL,\r
+ &RootBridgeHandleCount,\r
+ &RootBridgeHandleBuffer\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
- \r
- for (RootBridgeIndex = 0; RootBridgeIndex < RootBridgeHandleCount; RootBridgeIndex++) { \r
- gBS->ConnectController (RootBridgeHandleBuffer[RootBridgeIndex], NULL, NULL, FALSE); \r
- } \r
+\r
+ for (RootBridgeIndex = 0; RootBridgeIndex < RootBridgeHandleCount; RootBridgeIndex++) {\r
+ gBS->ConnectController (RootBridgeHandleBuffer[RootBridgeIndex], NULL, NULL, FALSE);\r
+ }\r
\r
FreePool (RootBridgeHandleBuffer);\r
- \r
+\r
return EFI_SUCCESS;\r
}\r
\r
{\r
EFI_DEVICE_PATH_PROTOCOL *DevPath;\r
EFI_DEVICE_PATH_PROTOCOL *CopyOfDevPath;\r
- EFI_DEVICE_PATH_PROTOCOL *Instance; \r
+ EFI_DEVICE_PATH_PROTOCOL *Instance;\r
EFI_DEVICE_PATH_PROTOCOL *Next;\r
UINTN Length;\r
UINTN Index;\r
BOOLEAN AtLeastOneConnected;\r
EFI_PCI_IO_PROTOCOL *PciIo;\r
UINT8 Class[3];\r
- \r
+\r
DevPath = NULL;\r
Length = 0;\r
AtLeastOneConnected = FALSE;\r
((DevicePathSubType (Instance) == MSG_USB_CLASS_DP)\r
|| (DevicePathSubType (Instance) == MSG_USB_WWID_DP)\r
)) {\r
- \r
+\r
Status = ShellConnectPciRootBridge ();\r
if (EFI_ERROR(Status)) {\r
FreePool(Instance);\r
FreePool(DevPath);\r
return Status;\r
}\r
- \r
+\r
Status = gBS->LocateHandleBuffer (\r
ByProtocol,\r
&gEfiPciIoProtocolGuid,\r
&HandleArrayCount,\r
&HandleArray\r
);\r
- \r
+\r
if (!EFI_ERROR (Status)) {\r
for (Index = 0; Index < HandleArrayCount; Index++) {\r
Status = gBS->HandleProtocol (\r
&gEfiPciIoProtocolGuid,\r
(VOID **)&PciIo\r
);\r
- \r
+\r
if (!EFI_ERROR (Status)) {\r
Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint8, 0x09, 3, &Class);\r
if (!EFI_ERROR (Status)) {\r
if (HandleArray != NULL) {\r
FreePool (HandleArray);\r
}\r
- } else { \r
+ } else {\r
//\r
// connect the entire device path\r
//\r
}\r
}\r
FreePool (Instance);\r
- \r
+\r
} while (CopyOfDevPath != NULL);\r
- \r
+\r
if (DevPath != NULL) {\r
FreePool(DevPath);\r
}\r
} else {\r
return EFI_NOT_FOUND;\r
}\r
- \r
+\r
}\r
\r
/**\r
Status = ShellCommandLineParse (ParamList, &Package, &ProblemParam, TRUE);\r
if (EFI_ERROR(Status)) {\r
if (Status == EFI_VOLUME_CORRUPTED && ProblemParam != NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"connect", ProblemParam); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"connect", ProblemParam);\r
FreePool(ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
//\r
// error for too many parameters\r
//\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"connect"); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"connect");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetFlag(Package, L"-c")) {\r
//\r
Status = ShellConvertStringToUint64(Param1, &Intermediate, TRUE, FALSE);\r
Handle1 = ConvertHandleIndexToHandle((UINTN)Intermediate);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param1); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param1);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
} else {\r
Status = ShellConvertStringToUint64(Param2, &Intermediate, TRUE, FALSE);\r
Handle2 = ConvertHandleIndexToHandle((UINTN)Intermediate);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
} else {\r
Handle2 = NULL;\r
}\r
- \r
+\r
if (ShellStatus == SHELL_SUCCESS) {\r
if (Param1 != NULL && Handle1 == NULL){\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param1); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param1);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (Param2 != NULL && Handle2 == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (Handle2 != NULL && Handle1 != NULL && EFI_ERROR(gBS->OpenProtocol(Handle2, &gEfiDriverBindingProtocolGuid, NULL, gImageHandle, NULL, EFI_OPEN_PROTOCOL_TEST_PROTOCOL))) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2); \r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
Status = ConvertAndConnectControllers(Handle1, Handle2, ShellCommandLineGetFlag(Package, L"-r"), (BOOLEAN)(Count!=0));\r