Value, and returns Buffer. Value is repeated every 64-bits in for Length\r
bytes of Buffer.\r
\r
- If Buffer is NULL and Length > 0, then ASSERT().\r
+ If Length > 0 and Buffer is NULL, then ASSERT().\r
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().\r
If Buffer is not aligned on a 64-bit boundary, then ASSERT().\r
If Length is not aligned on a 64-bit boundary, then ASSERT().\r
@param Length Number of bytes in Buffer to fill.\r
@param Value Value with which to fill Length bytes of Buffer.\r
\r
- @return Buffer\r
+ @return Buffer.\r
\r
**/\r
VOID *\r
EFIAPI\r
SetMem64 (\r
- OUT VOID *Buffer,\r
- IN UINTN Length,\r
- IN UINT64 Value\r
+ OUT VOID *Buffer,\r
+ IN UINTN Length,\r
+ IN UINT64 Value\r
)\r
{\r
- ASSERT (Buffer != NULL);\r
- ASSERT (Length <= MAX_ADDRESS - (UINTN)Buffer + 1);\r
- ASSERT ((((UINTN)Buffer) & 1) != 0);\r
- ASSERT ((Length & 1) != 0);\r
-\r
- if ((Length /= sizeof (Value)) == 0) {\r
+ if (Length == 0) {\r
return Buffer;\r
}\r
- return InternalMemSetMem64 (Buffer, Length, Value);\r
+\r
+ ASSERT (Buffer != NULL);\r
+ ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));\r
+ ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);\r
+ ASSERT ((Length & (sizeof (Value) - 1)) == 0);\r
+\r
+ return InternalMemSetMem64 (Buffer, Length / sizeof (Value), Value);\r
}\r