Revision: 18144
          http://sourceforge.net/p/edk2/code/18144
Author:   erictian
Date:     2015-08-04 01:09:49 +0000 (Tue, 04 Aug 2015)
Log Message:
-----------
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 <[email protected]>
Reviewed-by: Feng Tian <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c

Modified: trunk/edk2/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c
===================================================================
--- trunk/edk2/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c      
2015-08-03 09:44:04 UTC (rev 18143)
+++ trunk/edk2/MdePkg/Library/UefiDevicePathLib/DevicePathToText.c      
2015-08-04 01:09:49 UTC (rev 18144)
@@ -1,6 +1,7 @@
 /** @file
   DevicePathToText protocol as defined in the UEFI 2.0 specification.
 
+  (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR>
 Copyright (c) 2013 - 2015, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD 
License
@@ -1918,40 +1919,40 @@
     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
       );


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to