From a3bc432af63cf24991b4df27f06b832aa19de07b Mon Sep 17 00:00:00 2001 From: Tapan Shah Date: Tue, 4 Aug 2015 01:09:49 +0000 Subject: MdePkg/UefiDevicePathLib: Fix RAM Disk Device Path To Text Issue Perform Left Shift 32 bits of a 32-bit StartAddr[1] and EndingAddr[1] instead of Right Shift when displaying 64-bit Start and End Address Value. StartAddr[1] and EndingAddr[1] are already a 32-bit value and it should perform left shift 32-bit to generate a complete 64-bit value along with StartAddr[0] and EndingAddr[0] respectively. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Tapan Shah Reviewed-by: Feng Tian git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18144 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/UefiDevicePathLib/DevicePathToText.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'MdePkg/Library') diff --git a/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c b/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c index 8428c1cb7e..be4619ab85 100644 --- a/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c +++ b/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c @@ -1,6 +1,7 @@ /** @file DevicePathToText protocol as defined in the UEFI 2.0 specification. + (C) Copyright 2015 Hewlett-Packard Development Company, L.P.
Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -1918,40 +1919,40 @@ DevPathToTextRamDisk ( UefiDevicePathLibCatPrint ( Str, L"VirtualDisk(0x%lx,0x%lx,%d)", - RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], - RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], + LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], + LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], RamDisk->Instance ); } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiVirtualCdGuid)) { UefiDevicePathLibCatPrint ( Str, L"VirtualCD(0x%lx,0x%lx,%d)", - RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], - RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], + LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], + LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], RamDisk->Instance ); } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiPersistentVirtualDiskGuid)) { UefiDevicePathLibCatPrint ( Str, L"PersistentVirtualDisk(0x%lx,0x%lx,%d)", - RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], - RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], + LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], + LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], RamDisk->Instance ); } else if (CompareGuid (&RamDisk->TypeGuid, &gEfiPersistentVirtualCdGuid)) { UefiDevicePathLibCatPrint ( Str, L"PersistentVirtualCD(0x%lx,0x%lx,%d)", - RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], - RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], + LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], + LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], RamDisk->Instance ); } else { UefiDevicePathLibCatPrint ( Str, L"RamDisk(0x%lx,0x%lx,%d,%g)", - RShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], - RShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], + LShiftU64 ((UINT64)RamDisk->StartingAddr[1], 32) | RamDisk->StartingAddr[0], + LShiftU64 ((UINT64)RamDisk->EndingAddr[1], 32) | RamDisk->EndingAddr[0], RamDisk->Instance, &RamDisk->TypeGuid ); -- cgit v1.2.3