diff options
author | Heyi Guo <heyi.guo@linaro.org> | 2015-05-27 15:11:19 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@Edk2> | 2015-05-27 15:11:19 +0000 |
commit | 9507640c625d31b4ce3e5b45d8db58151b781dcb (patch) | |
tree | 3ec5ea8b2ebfa257916e0be3a4ae5420ae890a8d | |
parent | 829ea9b2dd8795da26729b4cd192e3e907725809 (diff) | |
download | edk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.tar.gz edk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.tar.bz2 edk2-9507640c625d31b4ce3e5b45d8db58151b781dcb.zip |
EmbeddedPkg: Fix Ebl dumpgcd bug with memory type and IO type
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>
Reviewed-by: Olivier Martin <Olivier.Martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17527 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r-- | ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c index 899991062f..4a5f2be394 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");
}
|