summaryrefslogtreecommitdiff
path: root/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c
diff options
context:
space:
mode:
Diffstat (limited to 'EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c')
-rw-r--r--EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c b/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c
index 1db7d7d03..c93304d53 100644
--- a/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c
+++ b/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c
@@ -409,6 +409,7 @@ EblFileDevicePath (
Status = gBS->HandleProtocol (File->EfiHandle, &gEfiBlockIoProtocolGuid, (VOID **)&BlkIo);
if (!EFI_ERROR (Status)) {
File->FsBlockIoMedia = BlkIo->Media;
+ File->FsBlockIo = BlkIo;
// If we are not opening the device this will get over written with file info
File->MaxPosition = MultU64x32 (BlkIo->Media->LastBlock + 1, BlkIo->Media->BlockSize);
@@ -1732,6 +1733,15 @@ EfiSetCwd (
return EFI_INVALID_PARAMETER;
}
+ AsciiStrCpy (gCwd, File->DeviceName);
+ if (File->FileName == NULL) {
+ AsciiStrCat (gCwd, ":\\");
+ } else {
+ AsciiStrCat (gCwd, ":");
+ AsciiStrCat (gCwd, File->FileName);
+ }
+
+
EfiClose (File);
if (Path != Cwd) {
FreePool (Path);