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....@linaro.org> --- ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c | 31 +++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) 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"); } -- 2.1.4 ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel