/** @file\r
Main file for Dh shell Driver1 function.\r
\r
- Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>\r
+ (C) Copyright 2014-2015 Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2010 - 2017, 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
@retval EFI_SUCCESS The name was found.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
GetDriverName (\r
IN EFI_HANDLE TheHandle,\r
IN CONST CHAR8 *Language,\r
)\r
{\r
CHAR8 *Lang;\r
- CHAR8 *TempChar;\r
EFI_STATUS Status;\r
EFI_COMPONENT_NAME2_PROTOCOL *CompName2;\r
CHAR16 *NameToReturn;\r
if (EFI_ERROR(Status)) {\r
return (EFI_NOT_FOUND);\r
}\r
- if (Language == NULL) {\r
- Lang = AllocateZeroPool(AsciiStrSize(CompName2->SupportedLanguages));\r
- if (Lang == NULL) {\r
- return (EFI_OUT_OF_RESOURCES);\r
- }\r
- AsciiStrCpy(Lang, CompName2->SupportedLanguages);\r
- TempChar = AsciiStrStr(Lang, ";");\r
- if (TempChar != NULL){\r
- *TempChar = CHAR_NULL;\r
- }\r
- } else {\r
- Lang = AllocateZeroPool(AsciiStrSize(Language));\r
- if (Lang == NULL) {\r
- return (EFI_OUT_OF_RESOURCES);\r
- }\r
- AsciiStrCpy(Lang, Language);\r
- }\r
+ Lang = GetBestLanguageForDriver (CompName2->SupportedLanguages, Language, FALSE);\r
Status = CompName2->GetDriverName(CompName2, Lang, &NameToReturn);\r
FreePool(Lang);\r
\r
@retval FALSE The guid does not represent a driver model protocol.\r
**/\r
BOOLEAN\r
-EFIAPI\r
IsDriverProt (\r
IN CONST EFI_GUID *Guid\r
)\r
\r
@param[in] TheHandle The handles to show info on.\r
@param[in] Language Language string per UEFI specification.\r
- @param[in] Seperator Separator string between information blocks.\r
+ @param[in] Separator Separator string between information blocks.\r
@param[in] Verbose TRUE for extra info, FALSE otherwise.\r
@param[in] ExtraInfo TRUE for extra info, FALSE otherwise.\r
\r
@retval SHELL_INVALID_PARAMETER ProtocolName was NULL or invalid.\r
**/\r
CHAR16*\r
-EFIAPI\r
GetProtocolInfoString(\r
IN CONST EFI_HANDLE TheHandle,\r
IN CONST CHAR8 *Language,\r
- IN CONST CHAR16 *Seperator,\r
+ IN CONST CHAR16 *Separator,\r
IN CONST BOOLEAN Verbose,\r
IN CONST BOOLEAN ExtraInfo\r
)\r
CHAR16 *RetVal;\r
UINTN Size;\r
CHAR16 *Temp;\r
+ CHAR16 GuidStr[40];\r
\r
ProtocolGuidArray = NULL;\r
RetVal = NULL;\r
if (!EFI_ERROR (Status)) {\r
for (ProtocolIndex = 0; ProtocolIndex < ArrayCount; ProtocolIndex++) {\r
Temp = GetStringNameFromGuid(ProtocolGuidArray[ProtocolIndex], Language);\r
- if (Temp != NULL) {\r
- ASSERT((RetVal == NULL && Size == 0) || (RetVal != NULL));\r
- if (Size != 0) {\r
- StrnCatGrow(&RetVal, &Size, Seperator, 0);\r
- }\r
- StrnCatGrow(&RetVal, &Size, L"%H", 0);\r
+ ASSERT((RetVal == NULL && Size == 0) || (RetVal != NULL));\r
+ if (Size != 0) {\r
+ StrnCatGrow(&RetVal, &Size, Separator, 0);\r
+ }\r
+ StrnCatGrow(&RetVal, &Size, L"%H", 0);\r
+ if (Temp == NULL) {\r
+ UnicodeSPrint (GuidStr, sizeof (GuidStr), L"%g", ProtocolGuidArray[ProtocolIndex]);\r
+ StrnCatGrow (&RetVal, &Size, GuidStr, 0);\r
+ } else {\r
StrnCatGrow(&RetVal, &Size, Temp, 0);\r
- StrnCatGrow(&RetVal, &Size, L"%N", 0);\r
FreePool(Temp);\r
}\r
+ StrnCatGrow(&RetVal, &Size, L"%N", 0);\r
if (ExtraInfo) {\r
Temp = GetProtocolInformationDump(TheHandle, ProtocolGuidArray[ProtocolIndex], Verbose);\r
if (Temp != NULL) {\r
StrnCatGrow(&RetVal, &Size, Temp, 0);\r
StrnCatGrow(&RetVal, &Size, L")\r\n", 0);\r
} else {\r
- StrnCatGrow(&RetVal, &Size, Seperator, 0);\r
+ StrnCatGrow(&RetVal, &Size, Separator, 0);\r
StrnCatGrow(&RetVal, &Size, Temp, 0);\r
}\r
FreePool(Temp);\r
}\r
\r
ASSERT((RetVal == NULL && Size == 0) || (RetVal != NULL));\r
- StrnCatGrow(&RetVal, &Size, Seperator, 0);\r
+ StrnCatGrow(&RetVal, &Size, Separator, 0);\r
return (RetVal);\r
}\r
\r
@retval EFI_SUCCESS The operation was successful.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
GetDriverImageName (\r
IN EFI_HANDLE TheHandle,\r
OUT CHAR16 **Name\r
return (Status);\r
}\r
DevicePath = LoadedImage->FilePath;\r
- *Name = gDevPathToText->ConvertDevicePathToText(DevicePath, TRUE, TRUE);\r
+ *Name = ConvertDevicePathToText(DevicePath, TRUE, TRUE);\r
return (EFI_SUCCESS);\r
}\r
\r
@param[in] Language The language to output in.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
DisplayDriverModelHandle (\r
IN EFI_HANDLE Handle,\r
IN BOOLEAN BestName,\r
UINTN ChildIndex;\r
BOOLEAN Image;\r
\r
+ DriverName = NULL;\r
+\r
//\r
// See if Handle is a device handle and display its details.\r
//\r
ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DH_OUTPUT_DRIVER1), gShellDriver1HiiHandle, TempStringPointer!=NULL?TempStringPointer:L"<Unknown>");\r
SHELL_FREE_NON_NULL(TempStringPointer);\r
\r
- TempStringPointer = gDevPathToText->ConvertDevicePathToText(DevicePath, TRUE, FALSE);\r
+ TempStringPointer = ConvertDevicePathToText(DevicePath, TRUE, FALSE);\r
ShellPrintHiiEx(\r
-1, \r
-1, \r
@retval SHELL_INVALID_PARAMETER ProtocolName was NULL or invalid.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
DoDhByHandle(\r
IN CONST EFI_HANDLE TheHandle,\r
IN CONST BOOLEAN Verbose,\r
{\r
CHAR16 *ProtocolInfoString;\r
SHELL_STATUS ShellStatus;\r
- EFI_STATUS Status;\r
\r
- Status = EFI_SUCCESS;\r
ShellStatus = SHELL_SUCCESS;\r
ProtocolInfoString = NULL;\r
\r
@retval SHELL_INVALID_PARAMETER ProtocolName was NULL or invalid.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
DoDhForHandleList(\r
IN CONST EFI_HANDLE *HandleList,\r
IN CONST BOOLEAN Verbose,\r
DriverInfo,\r
TRUE\r
);\r
+ if (ShellGetExecutionBreakFlag ()) {\r
+ ShellStatus = SHELL_ABORTED;\r
+ break;\r
+ }\r
}\r
return (ShellStatus);\r
}\r
@retval SHELL_INVALID_PARAMETER ProtocolName was NULL or invalid.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
DoDhForAll(\r
IN CONST BOOLEAN Sfo,\r
IN CONST BOOLEAN Verbose,\r
@retval SHELL_INVALID_PARAMETER ProtocolName was NULL or invalid.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
DoDhByProtocol(\r
IN CONST CHAR16 *ProtocolName,\r
IN CONST BOOLEAN Verbose,\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, ProblemParam);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"dh", ProblemParam); \r
FreePool(ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
}\r
} else {\r
if (ShellCommandLineGetCount(Package) > 2) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"dh"); \r
ShellCommandLineFreeVarList (Package);\r
return (SHELL_INVALID_PARAMETER);\r
}\r
AsciiSPrint(Language, 10, "en-us");\r
} else {\r
ASSERT(Language == NULL);\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"-l");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"dh", L"-l"); \r
ShellCommandLineFreeVarList (Package);\r
return (SHELL_INVALID_PARAMETER);\r
}\r
\r
if (ShellCommandLineGetFlag(Package, L"-p")) {\r
if (ShellCommandLineGetCount(Package) > 1) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"dh"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else if (ShellCommandLineGetValue(Package, L"-p") == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"-p");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"dh", L"-p"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
//\r
} else {\r
Status = ShellConvertStringToUint64(Temp2, &Intermediate, TRUE, FALSE);\r
if (EFI_ERROR(Status) || ConvertHandleIndexToHandle((UINTN)Intermediate) == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, Temp2);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"dh", Temp2); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
} else {\r
//\r