/** @file\r
Main file for Dh shell Driver1 function.\r
\r
- Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2010 - 2013, 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
)\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
if (!Verbose) {\r
StrnCatGrow(&RetVal, &Size, L"(", 0);\r
StrnCatGrow(&RetVal, &Size, Temp, 0);\r
- StrnCatGrow(&RetVal, &Size, L")", 0);\r
+ StrnCatGrow(&RetVal, &Size, L")\r\n", 0);\r
} else {\r
StrnCatGrow(&RetVal, &Size, Seperator, 0);\r
StrnCatGrow(&RetVal, &Size, Temp, 0);\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
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
Language,\r
&DriverName\r
);\r
- if (DriverName == NULL) {\r
+ if (EFI_ERROR (Status)) {\r
Status = GetDriverImageName (\r
DriverBindingHandleBuffer[Index],\r
&DriverName\r
);\r
+ if (EFI_ERROR (Status)) {\r
+ DriverName = NULL;\r
+ }\r
}\r
\r
if (Image) {\r
}\r
\r
Status = GetDriverName (Handle, Language, &DriverName);\r
+ if (EFI_ERROR (Status)) {\r
+ DriverName = NULL;\r
+ }\r
\r
ShellPrintHiiEx(\r
-1, \r
DriverName!=NULL?DriverName:L"<Unknown>"\r
);\r
SHELL_FREE_NON_NULL(DriverName);\r
- DriverName = NULL;\r
Status = GetDriverImageName (\r
Handle,\r
&DriverName\r
);\r
+ if (EFI_ERROR (Status)) {\r
+ DriverName = NULL;\r
+ }\r
ShellPrintHiiEx(\r
-1, \r
-1, \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
Display information for all handles on a list.\r
\r
@param[in] HandleList The NULL-terminated list of handles.\r
+ @param[in] Verbose TRUE for extra info, FALSE otherwise.\r
@param[in] Sfo TRUE to output in standard format output (spec).\r
@param[in] Language Language string per UEFI specification.\r
@param[in] DriverInfo TRUE to show all info about the handle.\r
EFIAPI\r
DoDhForHandleList(\r
IN CONST EFI_HANDLE *HandleList,\r
+ IN CONST BOOLEAN Verbose,\r
IN CONST BOOLEAN Sfo,\r
IN CONST CHAR8 *Language,\r
IN CONST BOOLEAN DriverInfo\r
for (HandleWalker = HandleList ; HandleWalker != NULL && *HandleWalker != NULL && ShellStatus == SHELL_SUCCESS; HandleWalker++) {\r
ShellStatus = DoDhByHandle(\r
*HandleWalker,\r
- FALSE,\r
+ Verbose,\r
Sfo,\r
Language,\r
DriverInfo,\r
Display information for all handles.\r
\r
@param[in] Sfo TRUE to output in standard format output (spec).\r
+ @param[in] Verbose TRUE for extra info, FALSE otherwise.\r
@param[in] Language Language string per UEFI specification.\r
@param[in] DriverInfo TRUE to show all info about the handle.\r
\r
EFIAPI\r
DoDhForAll(\r
IN CONST BOOLEAN Sfo,\r
+ IN CONST BOOLEAN Verbose,\r
IN CONST CHAR8 *Language,\r
IN CONST BOOLEAN DriverInfo\r
)\r
\r
ShellStatus = DoDhForHandleList(\r
HandleList,\r
+ Verbose,\r
Sfo,\r
Language,\r
DriverInfo);\r
Display information for all handles which have a specific protocol.\r
\r
@param[in] ProtocolName The pointer to the name of the protocol.\r
+ @param[in] Verbose TRUE for extra info, FALSE otherwise.\r
@param[in] Sfo TRUE to output in standard format output (spec).\r
@param[in] Language Language string per UEFI specification.\r
@param[in] DriverInfo TRUE to show all info about the handle.\r
EFIAPI\r
DoDhByProtocol(\r
IN CONST CHAR16 *ProtocolName,\r
+ IN CONST BOOLEAN Verbose,\r
IN CONST BOOLEAN Sfo,\r
IN CONST CHAR8 *Language,\r
IN CONST BOOLEAN DriverInfo\r
\r
ShellStatus = DoDhForHandleList(\r
HandleList,\r
+ Verbose,\r
Sfo,\r
Language,\r
DriverInfo);\r
//\r
ShellStatus = DoDhByProtocol(\r
ShellCommandLineGetValue(Package, L"-p"),\r
+ Verbose,\r
SfoMode,\r
Lang==NULL?NULL:Language,\r
FlagD\r
//\r
ShellStatus = DoDhForAll(\r
SfoMode,\r
+ Verbose,\r
Lang==NULL?NULL:Language,\r
FlagD\r
);\r