ArmPkg/BaseMemoryLibStm: implement new IsZeroGuid() API function

BaseMemoryLib has recently been extended with an API function
IsZeroGuid(), so copy the default implementation into BaseMemoryLibStm
as well.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
diff --git a/ArmPkg/Library/BaseMemoryLibStm/MemLibGuid.c b/ArmPkg/Library/BaseMemoryLibStm/MemLibGuid.c
index 2b4ed57..36d42d7 100644
--- a/ArmPkg/Library/BaseMemoryLibStm/MemLibGuid.c
+++ b/ArmPkg/Library/BaseMemoryLibStm/MemLibGuid.c
@@ -130,3 +130,32 @@
   }

   return NULL;

 }

+

+/**

+  Checks if the given GUID is a zero GUID.

+

+  This function checks whether the given GUID is a zero GUID. If the GUID is

+  identical to a zero GUID then TRUE is returned. Otherwise, FALSE is returned.

+

+  If Guid is NULL, then ASSERT().

+

+  @param  Guid        The pointer to a 128 bit GUID.

+

+  @retval TRUE        Guid is a zero GUID.

+  @retval FALSE       Guid is not a zero GUID.

+

+**/

+BOOLEAN

+EFIAPI

+IsZeroGuid (

+  IN CONST GUID  *Guid

+  )

+{

+  UINT64  LowPartOfGuid;

+  UINT64  HighPartOfGuid;

+

+  LowPartOfGuid  = ReadUnaligned64 ((CONST UINT64*) Guid);

+  HighPartOfGuid = ReadUnaligned64 ((CONST UINT64*) Guid + 1);

+

+  return (BOOLEAN) (LowPartOfGuid == 0 && HighPartOfGuid == 0);

+}