diff options
author | Qiu Shumin <shumin.qiu@intel.com> | 2016-05-20 12:48:44 +0800 |
---|---|---|
committer | Qiu Shumin <shumin.qiu@intel.com> | 2016-05-20 14:16:49 +0800 |
commit | f86a5c346578a9503f7383c6eb77ce256f33b605 (patch) | |
tree | 555d5badc4d87ef0f44cb911edb2f4937d3a3a9a /ShellPkg | |
parent | f3a51e989aeae40b754eb76e38a3cea73fe1c2d2 (diff) | |
download | edk2-f86a5c346578a9503f7383c6eb77ce256f33b605.zip edk2-f86a5c346578a9503f7383c6eb77ce256f33b605.tar.gz edk2-f86a5c346578a9503f7383c6eb77ce256f33b605.tar.bz2 |
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 <Marvin.Haeuser@outlook.com>
Reviewed-by: Qiu Shumin <shumin.qiu@intel.com>
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c b/ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.c index b407608..bf35a35b 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);
}
}
|