/** @file\r
- SetMem() implementation.\r
+ SetMem() and SetMemN() implementation.\r
\r
The following BaseMemoryLib instances contain the same copy of this file:\r
\r
\r
return InternalMemSetMem (Buffer, Length, Value);\r
}\r
+\r
+/**\r
+ Fills a target buffer with a value that is size UINTN, and returns the target buffer.\r
+\r
+ This function fills Length bytes of Buffer with the UINTN sized value specified by\r
+ Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length\r
+ bytes of Buffer.\r
+\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 UINTN boundary, then ASSERT().\r
+ If Length is not aligned on a UINTN boundary, then ASSERT().\r
+\r
+ @param Buffer Pointer to the target buffer to fill.\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
+\r
+**/\r
+VOID *\r
+EFIAPI\r
+SetMemN (\r
+ OUT VOID *Buffer,\r
+ IN UINTN Length,\r
+ IN UINTN Value\r
+ )\r
+{\r
+ if (sizeof (UINTN) == sizeof (UINT64)) {\r
+ return SetMem64 (Buffer, Length, (UINT64)Value);\r
+ }\r
+ return SetMem32 (Buffer, Length, (UINT32)Value);\r
+}\r