/** @file\r
Main file for DrvCfg shell Driver1 function.\r
\r
- Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+ (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>\r
+ Copyright (c) 2010 - 2016, 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_NOT_FOUND There was no EFI_HII_HANDLE found for that deviec path.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
FindHiiHandleViaDevPath(\r
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevPath1,\r
OUT EFI_HII_HANDLE *HiiHandle,\r
Status = HiiDb->ListPackageLists(HiiDb, EFI_HII_PACKAGE_DEVICE_PATH, NULL, &HandleBufferSize, HandleBuffer);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
HandleBuffer = AllocateZeroPool(HandleBufferSize);\r
- ASSERT (HandleBuffer != NULL);\r
- Status = HiiDb->ListPackageLists(HiiDb, EFI_HII_PACKAGE_DEVICE_PATH, NULL, &HandleBufferSize, HandleBuffer);\r
+ if (HandleBuffer == NULL) {\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ } else {\r
+ Status = HiiDb->ListPackageLists (HiiDb, EFI_HII_PACKAGE_DEVICE_PATH, NULL, &HandleBufferSize, HandleBuffer);\r
+ }\r
}\r
if (EFI_ERROR(Status)) {\r
SHELL_FREE_NON_NULL(HandleBuffer);\r
Status = HiiDb->ExportPackageLists(HiiDb, HandleBuffer[LoopVariable], &MainBufferSize, MainBuffer);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
MainBuffer = AllocateZeroPool(MainBufferSize);\r
- ASSERT (MainBuffer != NULL);\r
- Status = HiiDb->ExportPackageLists(HiiDb, HandleBuffer[LoopVariable], &MainBufferSize, MainBuffer);\r
+ if (MainBuffer != NULL) {\r
+ Status = HiiDb->ExportPackageLists (HiiDb, HandleBuffer[LoopVariable], &MainBufferSize, MainBuffer);\r
+ }\r
+ }\r
+ if (EFI_ERROR (Status)) {\r
+ continue;\r
}\r
//\r
// Enumerate through the block of returned memory.\r
@retval EFI_SUCCESS The operation was successful.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
ConvertHandleToHiiHandle(\r
IN CONST EFI_HANDLE Handle,\r
OUT EFI_HII_HANDLE *HiiHandle,\r
@param[in] FileName The filename to rwite the info to.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
ConfigToFile(\r
IN CONST EFI_HANDLE Handle,\r
IN CONST CHAR16 *FileName\r
-1,\r
-1,\r
NULL,\r
- STRING_TOKEN(STR_GEN_FILE_OPEN), \r
- gShellDriver1HiiHandle, \r
+ STRING_TOKEN(STR_GEN_FILE_OPEN_FAIL),\r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
FileName, \r
Status);\r
return (SHELL_DEVICE_ERROR);\r
-1, \r
NULL,\r
STRING_TOKEN(STR_GEN_PROTOCOL_NF), \r
- gShellDriver1HiiHandle, \r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
L"EfiHiiDatabaseProtocol", \r
&gEfiHiiDatabaseProtocolGuid);\r
ShellCloseFile(&FileHandle);\r
return (SHELL_NOT_FOUND);\r
}\r
\r
+ HiiHandle = NULL;\r
Status = ConvertHandleToHiiHandle(Handle, &HiiHandle, HiiDatabase);\r
if (EFI_ERROR(Status)) {\r
ShellPrintHiiEx(\r
-1, \r
NULL, \r
STRING_TOKEN(STR_GEN_HANDLE_NOT), \r
- gShellDriver1HiiHandle, \r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
ConvertHandleToHandleIndex(Handle), \r
L"Device");\r
ShellCloseFile(&FileHandle);\r
-1,\r
NULL,\r
STRING_TOKEN(STR_FILE_WRITE_FAIL), \r
- gShellDriver1HiiHandle, \r
- FileName, \r
- Status);\r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
+ FileName);\r
return (SHELL_DEVICE_ERROR); \r
}\r
ShellPrintHiiEx(\r
@param[in] FileName The filename to read the info from.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
ConfigFromFile(\r
IN EFI_HANDLE Handle,\r
IN CONST CHAR16 *FileName\r
-1,\r
-1,\r
NULL,\r
- STRING_TOKEN(STR_GEN_FILE_OPEN), \r
+ STRING_TOKEN(STR_GEN_FILE_OPEN_FAIL),\r
gShellDriver1HiiHandle, \r
+ L"drvcfg",\r
FileName, \r
Status);\r
return (SHELL_DEVICE_ERROR);\r
NULL,\r
STRING_TOKEN(STR_GEN_PROTOCOL_NF), \r
gShellDriver1HiiHandle, \r
+ L"drvcfg",\r
L"EfiHiiDatabaseProtocol", \r
&gEfiHiiDatabaseProtocolGuid);\r
ShellCloseFile(&FileHandle);\r
-1, \r
NULL, \r
STRING_TOKEN(STR_FILE_READ_FAIL), \r
- gShellDriver1HiiHandle, \r
- FileName,\r
- Status);\r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
+ FileName);\r
+\r
ShellCloseFile(&FileHandle);\r
return (SHELL_DEVICE_ERROR); \r
}\r
-1, \r
NULL, \r
STRING_TOKEN(STR_GEN_OUT_MEM), \r
- gShellDriver1HiiHandle);\r
+ gShellDriver1HiiHandle, L"drvcfg");\r
ShellCloseFile(&FileHandle);\r
return (SHELL_DEVICE_ERROR); \r
}\r
NULL, \r
STRING_TOKEN(STR_FILE_READ_FAIL), \r
gShellDriver1HiiHandle, \r
- FileName,\r
- Status);\r
+ L"drvcfg",\r
+ FileName);\r
+\r
ShellCloseFile(&FileHandle);\r
SHELL_FREE_NON_NULL(MainBuffer);\r
return (SHELL_DEVICE_ERROR); \r
-1, \r
NULL, \r
STRING_TOKEN(STR_GEN_HANDLE_NOT), \r
- gShellDriver1HiiHandle, \r
+ gShellDriver1HiiHandle, L"drvcfg",\r
ConvertHandleToHandleIndex(Handle), \r
L"Device");\r
ShellCloseFile(&FileHandle);\r
-1, \r
-1, \r
NULL, \r
- STRING_TOKEN(STR_GEN_UEFI_FUNC_ERROR), \r
- gShellDriver1HiiHandle, \r
+ STRING_TOKEN(STR_GEN_UEFI_FUNC_WARN),\r
+ gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
L"HiiDatabase->UpdatePackageList", \r
Status);\r
return (SHELL_DEVICE_ERROR); \r
//\r
// print out an error.\r
//\r
- TempDevPathString = gDevPathToText->ConvertDevicePathToText((EFI_DEVICE_PATH_PROTOCOL*)(((CHAR8*)PackageHeader) + sizeof(EFI_HII_PACKAGE_HEADER)), TRUE, TRUE);\r
+ TempDevPathString = ConvertDevicePathToText((EFI_DEVICE_PATH_PROTOCOL*)(((CHAR8*)PackageHeader) + sizeof(EFI_HII_PACKAGE_HEADER)), TRUE, TRUE);\r
ShellPrintHiiEx(\r
-1, \r
-1, \r
-1, \r
-1, \r
NULL, \r
- STRING_TOKEN(STR_GEN_UEFI_FUNC_ERROR), \r
+ STRING_TOKEN(STR_GEN_UEFI_FUNC_WARN),\r
gShellDriver1HiiHandle, \r
+ L"drvcfg",\r
L"HiiDatabase->UpdatePackageList", \r
Status);\r
return (SHELL_DEVICE_ERROR);\r
@retval SHELL_INVALID_PARAMETER A parameter has a invalid value.\r
**/\r
EFI_STATUS\r
-EFIAPI\r
ShellCmdDriverConfigurationProcessActionRequired (\r
EFI_HANDLE DriverImageHandle,\r
EFI_HANDLE ControllerHandle,\r
@retval SHELL_INVALID_PARAMETER A parameter has a invalid value.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
PreHiiDrvCfg (\r
IN CONST CHAR8 *Language,\r
IN BOOLEAN ForceDefaults,\r
-1,\r
-1,\r
NULL,\r
- STRING_TOKEN (STR_GEN_PROBLEM_VAL),\r
+ STRING_TOKEN (STR_GEN_NO_VALUE),\r
gShellDriver1HiiHandle,\r
+ L"drvcfg",\r
L"-l"\r
);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
@retval SHELL_SUCCESS The operation was successful.\r
**/\r
SHELL_STATUS\r
-EFIAPI\r
PrintConfigInfoOnAll(\r
IN CONST BOOLEAN ChildrenToo,\r
IN CONST CHAR8 *Language,\r
}\r
\r
if (!Found) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DRVCFG_NONE), gShellDriver1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_DRVCFG_NONE_FOUND), gShellDriver1HiiHandle);\r
return (SHELL_SUCCESS);\r
}\r
\r
Status = EFI_SUCCESS;\r
Language = NULL;\r
UseHii = TRUE;\r
+ ProblemParam = NULL;\r
\r
//\r
// initialize the shell lib (we must be in non-auto-init...)\r
Status = ShellCommandLineParse (ParamListPreHii, &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"drvcfg", ProblemParam);\r
FreePool(ProblemParam);\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
} \r
if (ShellStatus == SHELL_SUCCESS) {\r
+ if (ShellCommandLineGetCount(Package) > 4) {\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_TOO_MANY), gShellDriver1HiiHandle, L"drvcfg");\r
+ ShellStatus = SHELL_INVALID_PARAMETER;\r
+ goto Done;\r
+ }\r
Lang = ShellCommandLineGetValue(Package, L"-l");\r
if (Lang != NULL) {\r
Language = AllocateZeroPool(StrSize(Lang));\r
AsciiSPrint(Language, StrSize(Lang), "%S", Lang);\r
} else if (ShellCommandLineGetFlag(Package, L"-l")){\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"drvcfg", L"-l");\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
\r
if (InFromFile && EFI_ERROR(ShellFileExists(FileName))) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FIND_FAIL), gShellDriver1HiiHandle, FileName);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FIND_FAIL), gShellDriver1HiiHandle, L"drvcfg", FileName); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done; \r
}\r
if (OutToFile && !EFI_ERROR(ShellFileExists(FileName))) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_EXIST), gShellDriver1HiiHandle, FileName);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_FILE_EXIST), gShellDriver1HiiHandle, L"drvcfg", FileName); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done; \r
}\r
if (Force && ForceTypeString == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"-f");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"drvcfg", L"-f"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} \r
if (Force) {\r
Status = ShellConvertStringToUint64(ForceTypeString, &Intermediate, FALSE, FALSE);\r
if (EFI_ERROR(Status)) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDriver1HiiHandle, L"-f");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM_VAL), gShellDriver1HiiHandle, L"drvcfg", ForceTypeString, L"-f"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (HandleIndex1 != NULL && !EFI_ERROR(ShellConvertStringToUint64(HandleIndex1, &Intermediate, TRUE, FALSE))) {\r
Handle1 = ConvertHandleIndexToHandle((UINTN)Intermediate);\r
if (Handle1 == NULL || (UINT64)(UINTN)Intermediate != Intermediate) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, HandleIndex1);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"drvcfg", HandleIndex1); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (HandleIndex2 != NULL && !EFI_ERROR(ShellConvertStringToUint64(HandleIndex2, &Intermediate, TRUE, FALSE))) {\r
Handle2 = ConvertHandleIndexToHandle((UINTN)Intermediate);\r
if (Handle2 == NULL || (UINT64)(UINTN)Intermediate != Intermediate) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, HandleIndex2);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"drvcfg", HandleIndex2); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (HandleIndex3 != NULL && !EFI_ERROR(ShellConvertStringToUint64(HandleIndex3, &Intermediate, TRUE, FALSE))) {\r
Handle3 = ConvertHandleIndexToHandle((UINTN)Intermediate);\r
if (Handle3 == NULL || (UINT64)(UINTN)Intermediate != Intermediate) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, HandleIndex3);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_INV_HANDLE), gShellDriver1HiiHandle, L"drvcfg", HandleIndex3); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
\r
if ((InFromFile || OutToFile) && (FileName == NULL)) {\r
if (FileName == NULL) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, InFromFile?L"-i":L"-o");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_NO_VALUE), gShellDriver1HiiHandle, L"drvcfg", InFromFile?L"-i":L"-o"); \r
} else {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_HANDLE_REQ), gShellDriver1HiiHandle);\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_HANDLE_REQ), gShellDriver1HiiHandle, L"drvcfg"); \r
}\r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (!UseHii && (InFromFile || OutToFile)) {\r
if (InFromFile) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"-i");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDriver1HiiHandle, L"drvcfg", L"-i"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} \r
if (OutToFile) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PROBLEM), gShellDriver1HiiHandle, L"-o");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_INV), gShellDriver1HiiHandle, L"drvcfg", L"-o"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
}\r
if (Validate && Force) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONF), gShellDriver1HiiHandle, L"-v", L"-f");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellDriver1HiiHandle, L"drvcfg", L"-v", L"-f"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} \r
if (Validate && Set) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONF), gShellDriver1HiiHandle, L"-v", L"-s");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellDriver1HiiHandle, L"drvcfg", L"-v", L"-s"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
} \r
if (Set && Force) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONF), gShellDriver1HiiHandle, L"-s", L"-f");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellDriver1HiiHandle, L"drvcfg", L"-s", L"-f"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r
if (OutToFile && InFromFile) {\r
- ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONF), gShellDriver1HiiHandle, L"-i", L"-o");\r
+ ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_PARAM_CONFLICT), gShellDriver1HiiHandle, L"drvcfg", L"-i", L"-o"); \r
ShellStatus = SHELL_INVALID_PARAMETER;\r
goto Done;\r
}\r