@@ -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");
}
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(-)