From 1efc09857e20a29ec3533d95e83981f5b207ca25 Mon Sep 17 00:00:00 2001 From: Qiu Shumin Date: Fri, 20 May 2016 12:48:44 +0800 Subject: ShellPkg/Bcfg: Add support for 'addp' command. Until now the 'addp' command has been handled in the same way as 'add'. Just copy the DevicePath starting from the Hard Drive node when 'addp' is used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Marvin Haeuser Reviewed-by: Qiu Shumin (cherry picked from commit f86a5c346578a9503f7383c6eb77ce256f33b605) --- .../UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) (limited to 'ShellPkg/Library') diff --git a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c index b407608d31..bf35a35b98 100644 --- a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c +++ b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c @@ -310,6 +310,7 @@ BcfgAdd( { EFI_STATUS Status; EFI_DEVICE_PATH_PROTOCOL *DevicePath; + EFI_DEVICE_PATH_PROTOCOL *DevPath; EFI_DEVICE_PATH_PROTOCOL *FilePath; CHAR16 *Str; UINT8 *TempByteBuffer; @@ -462,9 +463,9 @@ BcfgAdd( ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_BCFG_FILE_DP), gShellBcfgHiiHandle, L"bcfg", Arg->FullName); ShellStatus = SHELL_UNSUPPORTED; } else { -/* if (UsePath) { - DevPath = DevicePath; + DevPath = DevicePath; + ShellStatus = SHELL_INVALID_PARAMETER; while (!IsDevicePathEnd(DevPath)) { if ((DevicePathType(DevPath) == MEDIA_DEVICE_PATH) && (DevicePathSubType(DevPath) == MEDIA_HARDDRIVE_DP)) { @@ -472,24 +473,15 @@ BcfgAdd( // // If we find it use it instead // - DevicePath = DevPath; + ShellStatus = SHELL_SUCCESS; + FilePath = DuplicateDevicePath (DevPath); break; } DevPath = NextDevicePathNode(DevPath); } - // - // append the file - // - for(StringWalker=Arg->FullName; *StringWalker != CHAR_NULL && *StringWalker != ':'; StringWalker++); - FileNode = FileDevicePath(NULL, StringWalker+1); - FilePath = AppendDevicePath(DevicePath, FileNode); - FreePool(FileNode); } else { -*/ FilePath = DuplicateDevicePath(DevicePath); -/* } -*/ FreePool(DevicePath); } } -- cgit v1.2.3