diff options
Diffstat (limited to 'EmbeddedPkg/Library')
-rw-r--r-- | EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c b/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c index 1db7d7d035..c93304d537 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); |