CHAR16 *FullFileStringPath;\r
UINTN NewSize;\r
\r
+ CalleeStatus = EFI_SUCCESS;\r
Key.UnicodeChar = CHAR_NULL;\r
Key.ScanCode = 0;\r
\r
//\r
// Now check the parent controller using this as the child.\r
//\r
- if (DeviceNameToReturn == NULL) {\r
- PARSE_HANDLE_DATABASE_PARENTS (DeviceHandle, &ParentControllerCount, &ParentControllerBuffer);\r
+ Status = PARSE_HANDLE_DATABASE_PARENTS (DeviceHandle, &ParentControllerCount, &ParentControllerBuffer);\r
+ if ((DeviceNameToReturn == NULL) && !EFI_ERROR (Status)) {\r
for (LoopVar = 0; LoopVar < ParentControllerCount; LoopVar++) {\r
- PARSE_HANDLE_DATABASE_UEFI_DRIVERS (ParentControllerBuffer[LoopVar], &ParentDriverCount, &ParentDriverBuffer);\r
- for (HandleCount = 0; HandleCount < ParentDriverCount; HandleCount++) {\r
- //\r
- // try using that driver's component name with controller and our driver as the child.\r
- //\r
- Status = gBS->OpenProtocol (\r
- ParentDriverBuffer[HandleCount],\r
- &gEfiComponentName2ProtocolGuid,\r
- (VOID **)&CompName2,\r
- gImageHandle,\r
- NULL,\r
- EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
- );\r
- if (EFI_ERROR (Status)) {\r
+ Status = PARSE_HANDLE_DATABASE_UEFI_DRIVERS (ParentControllerBuffer[LoopVar], &ParentDriverCount, &ParentDriverBuffer);\r
+ if (!EFI_ERROR (Status)) {\r
+ for (HandleCount = 0; HandleCount < ParentDriverCount; HandleCount++) {\r
+ //\r
+ // try using that driver's component name with controller and our driver as the child.\r
+ //\r
Status = gBS->OpenProtocol (\r
ParentDriverBuffer[HandleCount],\r
- &gEfiComponentNameProtocolGuid,\r
+ &gEfiComponentName2ProtocolGuid,\r
(VOID **)&CompName2,\r
gImageHandle,\r
NULL,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
);\r
- }\r
+ if (EFI_ERROR (Status)) {\r
+ Status = gBS->OpenProtocol (\r
+ ParentDriverBuffer[HandleCount],\r
+ &gEfiComponentNameProtocolGuid,\r
+ (VOID **)&CompName2,\r
+ gImageHandle,\r
+ NULL,\r
+ EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+ );\r
+ }\r
\r
- if (EFI_ERROR (Status)) {\r
- continue;\r
+ if (EFI_ERROR (Status)) {\r
+ continue;\r
+ }\r
+\r
+ Lang = GetBestLanguageForDriver (CompName2->SupportedLanguages, Language, FALSE);\r
+ Status = CompName2->GetControllerName (CompName2, ParentControllerBuffer[LoopVar], DeviceHandle, Lang, &DeviceNameToReturn);\r
+ FreePool (Lang);\r
+ Lang = NULL;\r
+ if (!EFI_ERROR (Status) && (DeviceNameToReturn != NULL)) {\r
+ break;\r
+ }\r
}\r
\r
- Lang = GetBestLanguageForDriver (CompName2->SupportedLanguages, Language, FALSE);\r
- Status = CompName2->GetControllerName (CompName2, ParentControllerBuffer[LoopVar], DeviceHandle, Lang, &DeviceNameToReturn);\r
- FreePool (Lang);\r
- Lang = NULL;\r
+ SHELL_FREE_NON_NULL (ParentDriverBuffer);\r
if (!EFI_ERROR (Status) && (DeviceNameToReturn != NULL)) {\r
break;\r
}\r
}\r
-\r
- SHELL_FREE_NON_NULL (ParentDriverBuffer);\r
- if (!EFI_ERROR (Status) && (DeviceNameToReturn != NULL)) {\r
- break;\r
- }\r
}\r
\r
SHELL_FREE_NON_NULL (ParentControllerBuffer);\r
CHAR16 *MapName;\r
SHELL_MAP_LIST *MapListItem;\r
\r
- SplitCurDir = NULL;\r
- MapName = NULL;\r
- MapListItem = NULL;\r
- HandleList = NULL;\r
+ ConsistMappingTable = NULL;\r
+ SplitCurDir = NULL;\r
+ MapName = NULL;\r
+ MapListItem = NULL;\r
+ HandleList = NULL;\r
\r
//\r
// Reset the static members back to zero\r
//\r
PerformQuickSort (DevicePathList, Count, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare);\r
\r
- ShellCommandConsistMappingInitialize (&ConsistMappingTable);\r
- //\r
- // Assign new Mappings to all...\r
- //\r
- for (Count = 0; HandleList[Count] != NULL; Count++) {\r
- //\r
- // Get default name first\r
- //\r
- NewDefaultName = ShellCommandCreateNewMappingName (MappingTypeFileSystem);\r
- ASSERT (NewDefaultName != NULL);\r
- Status = ShellCommandAddMapItemAndUpdatePath (NewDefaultName, DevicePathList[Count], 0, TRUE);\r
- ASSERT_EFI_ERROR (Status);\r
- FreePool (NewDefaultName);\r
-\r
+ if (!EFI_ERROR (ShellCommandConsistMappingInitialize (&ConsistMappingTable))) {\r
//\r
- // Now do consistent name\r
+ // Assign new Mappings to all...\r
//\r
- NewConsistName = ShellCommandConsistMappingGenMappingName (DevicePathList[Count], ConsistMappingTable);\r
- if (NewConsistName != NULL) {\r
- Status = ShellCommandAddMapItemAndUpdatePath (NewConsistName, DevicePathList[Count], 0, FALSE);\r
+ for (Count = 0; HandleList[Count] != NULL; Count++) {\r
+ //\r
+ // Get default name first\r
+ //\r
+ NewDefaultName = ShellCommandCreateNewMappingName (MappingTypeFileSystem);\r
+ ASSERT (NewDefaultName != NULL);\r
+ Status = ShellCommandAddMapItemAndUpdatePath (NewDefaultName, DevicePathList[Count], 0, TRUE);\r
ASSERT_EFI_ERROR (Status);\r
- FreePool (NewConsistName);\r
+ FreePool (NewDefaultName);\r
+\r
+ //\r
+ // Now do consistent name\r
+ //\r
+ NewConsistName = ShellCommandConsistMappingGenMappingName (DevicePathList[Count], ConsistMappingTable);\r
+ if (NewConsistName != NULL) {\r
+ Status = ShellCommandAddMapItemAndUpdatePath (NewConsistName, DevicePathList[Count], 0, FALSE);\r
+ ASSERT_EFI_ERROR (Status);\r
+ FreePool (NewConsistName);\r
+ }\r
}\r
}\r
\r
- ShellCommandConsistMappingUnInitialize (ConsistMappingTable);\r
+ if (ConsistMappingTable != NULL) {\r
+ ShellCommandConsistMappingUnInitialize (ConsistMappingTable);\r
+ }\r
\r
SHELL_FREE_NON_NULL (HandleList);\r
SHELL_FREE_NON_NULL (DevicePathList);\r
//\r
PerformQuickSort (DevicePathList, Count, sizeof (EFI_DEVICE_PATH_PROTOCOL *), DevicePathCompare);\r
\r
- ShellCommandConsistMappingInitialize (&ConsistMappingTable);\r
+ Status = ShellCommandConsistMappingInitialize (&ConsistMappingTable);\r
\r
//\r
// Assign new Mappings to remainders\r
//\r
- for (Count = 0; !EFI_ERROR (Status) && HandleList[Count] != NULL && !EFI_ERROR (Status); Count++) {\r
+ for (Count = 0; !EFI_ERROR (Status) && HandleList[Count] != NULL; Count++) {\r
//\r
// Skip ones that already have\r
//\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
\r
- ShellConvertStringToUint64 (LbaString, &Lba, TRUE, FALSE);\r
+ if (EFI_ERROR (ShellConvertStringToUint64 (LbaString, &Lba, TRUE, FALSE))) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"dblk", LbaString);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ }\r
}\r
\r
if (BlockCountString == NULL) {\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
\r
- ShellConvertStringToUint64 (BlockCountString, &BlockCount, TRUE, FALSE);\r
- if (BlockCount > 0x10) {\r
- BlockCount = 0x10;\r
- } else if (BlockCount == 0) {\r
- ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"dblk", BlockCountString);\r
- ShellStatus = SHELL_INVALID_PARAMETER;\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (BlockCountString, &BlockCount, TRUE, FALSE))) {\r
+ if (BlockCount > 0x10) {\r
+ BlockCount = 0x10;\r
+ } else if (BlockCount == 0) {\r
+ ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDebug1HiiHandle, L"dblk", BlockCountString);\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ }\r
}\r
}\r
\r
\r
if (ShellStatus == SHELL_SUCCESS) {\r
Status = FileHandleGetSize (InFileHandle, &Temp64Bit);\r
- ASSERT (Temp64Bit <= (UINT32)(-1));\r
- InSize = (UINTN)Temp64Bit;\r
ASSERT_EFI_ERROR (Status);\r
- InBuffer = AllocateZeroPool (InSize);\r
+ if (!EFI_ERROR (Status)) {\r
+ ASSERT (Temp64Bit <= (UINT32)(-1));\r
+ InSize = (UINTN)Temp64Bit;\r
+ InBuffer = AllocateZeroPool (InSize);\r
+ }\r
+\r
if (InBuffer == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
} else {\r
Count = ShellCommandLineGetCount (Package);\r
\r
if (Param1 != NULL) {\r
- Status = ShellConvertStringToUint64 (Param1, &Intermediate, TRUE, FALSE);\r
- Handle1 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
- if (EFI_ERROR (Status)) {\r
+ Status = ShellConvertStringToUint64 (Param1, &Intermediate, TRUE, FALSE);\r
+ if (!EFI_ERROR (Status)) {\r
+ Handle1 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
+ } else {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param1);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
}\r
\r
if (Param2 != NULL) {\r
- Status = ShellConvertStringToUint64 (Param2, &Intermediate, TRUE, FALSE);\r
- Handle2 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
- if (EFI_ERROR (Status)) {\r
+ Status = ShellConvertStringToUint64 (Param2, &Intermediate, TRUE, FALSE);\r
+ if (!EFI_ERROR (Status)) {\r
+ Handle2 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
+ } else {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"connect", Param2);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
}\r
Param1 = ShellCommandLineGetRawValue (Package, 1);\r
Param2 = ShellCommandLineGetRawValue (Package, 2);\r
Param3 = ShellCommandLineGetRawValue (Package, 3);\r
- ShellConvertStringToUint64 (Param1, &Intermediate1, TRUE, FALSE);\r
- Handle1 = Param1 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate1) : NULL;\r
- ShellConvertStringToUint64 (Param2, &Intermediate2, TRUE, FALSE);\r
- Handle2 = Param2 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate2) : NULL;\r
- ShellConvertStringToUint64 (Param3, &Intermediate3, TRUE, FALSE);\r
- Handle3 = Param3 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate3) : NULL;\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Param1, &Intermediate1, TRUE, FALSE))) {\r
+ Handle1 = Param1 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate1) : NULL;\r
+ }\r
+\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Param2, &Intermediate2, TRUE, FALSE))) {\r
+ Handle2 = Param2 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate2) : NULL;\r
+ }\r
+\r
+ if (!EFI_ERROR (ShellConvertStringToUint64 (Param3, &Intermediate3, TRUE, FALSE))) {\r
+ Handle3 = Param3 != NULL ? ConvertHandleIndexToHandle ((UINTN)Intermediate3) : NULL;\r
+ }\r
\r
if ((Param1 != NULL) && (Handle1 == NULL)) {\r
ShellPrintHiiEx (-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"disconnect", Param1);\r
ControllerHandleStr = ShellCommandLineGetRawValue (Package, 2);\r
ChildHandleStr = ShellCommandLineGetRawValue (Package, 3);\r
\r
- if (DriverHandleStr == NULL) {\r
- Handle1 = NULL;\r
- } else {\r
- ShellConvertStringToUint64 (DriverHandleStr, &Intermediate, TRUE, FALSE);\r
+ if ((DriverHandleStr != NULL) && !EFI_ERROR (ShellConvertStringToUint64 (DriverHandleStr, &Intermediate, TRUE, FALSE))) {\r
Handle1 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
+ } else {\r
+ Handle1 = NULL;\r
}\r
\r
- if (ControllerHandleStr == NULL) {\r
- Handle2 = NULL;\r
- } else {\r
- ShellConvertStringToUint64 (ControllerHandleStr, &Intermediate, TRUE, FALSE);\r
+ if ((ControllerHandleStr != NULL) && !EFI_ERROR (ShellConvertStringToUint64 (ControllerHandleStr, &Intermediate, TRUE, FALSE))) {\r
Handle2 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
+ } else {\r
+ Handle2 = NULL;\r
}\r
\r
- if (ChildHandleStr == NULL) {\r
- Handle3 = NULL;\r
- } else {\r
- ShellConvertStringToUint64 (ChildHandleStr, &Intermediate, TRUE, FALSE);\r
+ if ((ChildHandleStr != NULL) && !EFI_ERROR (ShellConvertStringToUint64 (ChildHandleStr, &Intermediate, TRUE, FALSE))) {\r
Handle3 = ConvertHandleIndexToHandle ((UINTN)Intermediate);\r
+ } else {\r
+ Handle3 = NULL;\r
}\r
\r
Status = DoDiagnostics (\r