diff mbox

[edk2] Fix Ebl dumpgcd bug with memory type and IO type

Message ID 1431998931-3095-1-git-send-email-heyi.guo@linaro.org
State New
Headers show

Commit Message

gary guo May 19, 2015, 1:28 a.m. UTC
1. Data type for GcdMemoryType and GcdIoType is enumeration type
rather than bit field, so we need to use strict equation "=="
instead of bit-and "&";
2. Testing for GcdIoType should use EfiGcdIoType*** constants
rather than EfiGcdMemoryType***;
3. As we are going to use strict equation, it is clearer to use
switch-case than if-else.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
---
 ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c | 31 +++++++++++++++++++++-------
 1 file changed, 24 insertions(+), 7 deletions(-)
diff mbox

Patch

diff --git a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
index 8999910..4a5f2be 100644
--- a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
+++ b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
@@ -325,14 +325,23 @@  EblDumpGcd (
     if (MemorySpaceMap[i].Attributes & EFI_MEMORY_XP)
         AsciiPrint (" MEM_XP");
 
-    if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeNonExistent)
+    switch (MemorySpaceMap[i].GcdMemoryType) {
+      case EfiGcdMemoryTypeNonExistent:
         AsciiPrint (" TYPE_NONEXISTENT");
-    if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeReserved)
+        break;
+      case EfiGcdMemoryTypeReserved:
         AsciiPrint (" TYPE_RESERVED");
-    if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeSystemMemory)
+        break;
+      case EfiGcdMemoryTypeSystemMemory:
         AsciiPrint (" TYPE_SYSMEM");
-    if (MemorySpaceMap[i].GcdMemoryType & EfiGcdMemoryTypeMemoryMappedIo)
+        break;
+      case EfiGcdMemoryTypeMemoryMappedIo:
         AsciiPrint (" TYPE_MEMMAP");
+        break;
+      default:
+        AsciiPrint (" TYPE_UNKNOWN");
+        break;
+    }
 
     AsciiPrint ("\n");
   }
@@ -347,12 +356,20 @@  EblDumpGcd (
     AsciiPrint ("IO  %08lx - %08lx",IoSpaceMap[i].BaseAddress,IoSpaceMap[i].BaseAddress+IoSpaceMap[i].Length);
     AsciiPrint ("\t%08x %08x",IoSpaceMap[i].ImageHandle,IoSpaceMap[i].DeviceHandle);
 
-    if (IoSpaceMap[i].GcdIoType & EfiGcdMemoryTypeNonExistent)
+    switch (IoSpaceMap[i].GcdIoType) {
+      case EfiGcdIoTypeNonExistent:
         AsciiPrint (" TYPE_NONEXISTENT");
-    if (IoSpaceMap[i].GcdIoType & EfiGcdMemoryTypeReserved)
+        break;
+      case EfiGcdIoTypeReserved:
         AsciiPrint (" TYPE_RESERVED");
-    if (IoSpaceMap[i].GcdIoType & EfiGcdIoTypeIo)
+        break;
+      case EfiGcdIoTypeIo:
         AsciiPrint (" TYPE_IO");
+        break;
+      default:
+        AsciiPrint (" TYPE_UNKNOWN");
+        break;
+    }
 
     AsciiPrint ("\n");
   }