From 208a8330d0029d4025f6f27f182d627bd9d7b38b Mon Sep 17 00:00:00 2001 From: andrewfish Date: Fri, 7 May 2010 16:45:48 +0000 Subject: Fix svn check in bug that broke CWD. Update the connect disconnect support in device command to minimize operations. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10462 6f19259b-4bc3-4df7-8a09-765794883524 --- EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'EmbeddedPkg/Library') diff --git a/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c b/EmbeddedPkg/Library/EfiFileLib/EfiFileLib.c index 1db7d7d..c93304d 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); -- cgit v1.1