THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
- Module Name: MemLibGuid.c\r
-\r
The following BaseMemoryLib instances share the same version of this file:\r
\r
BaseMemoryLib\r
BaseMemoryLibSse2\r
BaseMemoryLibRepStr\r
PeiMemoryLib\r
- UefiMemoryLib\r
+ DxeMemoryLib\r
\r
**/\r
\r
+//\r
+// Include common header file for this module.\r
+//\r
+#include "MemLibInternals.h"\r
+\r
/**\r
Copies a source GUID to a destination GUID.\r
\r
IN CONST GUID *Guid2\r
)\r
{\r
- return (BOOLEAN)(\r
- ReadUnaligned64 ((CONST UINT64*)Guid1)\r
- == ReadUnaligned64 ((CONST UINT64*)Guid2) &&\r
- ReadUnaligned64 ((CONST UINT64*)Guid1 + 1)\r
- == ReadUnaligned64 ((CONST UINT64*)Guid2 + 1)\r
+ UINT64 Guid1ValueLo;\r
+ UINT64 Guid1ValueHi;\r
+ UINT64 Guid2ValueLo;\r
+ UINT64 Guid2ValueHi;\r
+\r
+ Guid1ValueLo = ReadUnaligned64 ((CONST UINT64*)Guid1);\r
+ Guid2ValueLo = ReadUnaligned64 ((CONST UINT64*)Guid2);\r
+\r
+ Guid1ValueHi = ReadUnaligned64 ((CONST UINT64*)Guid1 + 1);\r
+ Guid2ValueHi = ReadUnaligned64 ((CONST UINT64*)Guid2 + 1);\r
+\r
+\r
+ return (BOOLEAN)\r
+ ((Guid1ValueLo == Guid2ValueLo) &&\r
+ (Guid1ValueHi == Guid2ValueHi)\r
);\r
}\r
\r
GUID in the target buffer is returned. If no match is found, then NULL is returned.\r
If Length is 0, then NULL is returned.\r
If Length > 0 and Buffer is NULL, then ASSERT().\r
- If Buffer is not aligned on a 64-bit boundary, then ASSERT().\r
- If Length is greater than (MAX_ADDRESS \96 Buffer + 1), then ASSERT(). \r
+ If Buffer is not aligned on a 32-bit boundary, then ASSERT().\r
+ If Length is not aligned on a 128-bit boundary, then ASSERT().\r
+ If Length is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT(). \r
\r
@param Buffer Pointer to the target buffer to scan.\r
@param Length Number of bytes in Buffer to scan.\r
{\r
CONST GUID *GuidPtr;\r
\r
- ASSERT (Buffer != NULL);\r
- //\r
- // Make sure Buffer is aligned on a 64-bit boundary.\r
- //\r
- ASSERT (((UINTN) Buffer & 7) == 0);\r
-\r
+ ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);\r
ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));\r
+ ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);\r
\r
GuidPtr = (GUID*)Buffer;\r
- Buffer = GuidPtr + Length / sizeof (*GuidPtr);\r
+ Buffer = GuidPtr + Length / sizeof (*GuidPtr);\r
while (GuidPtr < (CONST GUID*)Buffer) {\r
if (CompareGuid (GuidPtr, Guid)) {\r
return (VOID*)GuidPtr;\r