]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Library/BaseMemoryLibRepStr/SetMem16Wrapper.c
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibRepStr / SetMem16Wrapper.c
CommitLineData
e1f414b6 1/** @file\r
2 SetMem16() implementation.\r
3\r
2bfb6009 4 The following BaseMemoryLib instances contain the same copy of this file:\r
e1f414b6 5 BaseMemoryLib\r
6 BaseMemoryLibMmx\r
7 BaseMemoryLibSse2\r
8 BaseMemoryLibRepStr\r
2bfb6009
LG
9 BaseMemoryLibOptDxe\r
10 BaseMemoryLibOptPei\r
e1f414b6 11 PeiMemoryLib\r
1fef058f 12 UefiMemoryLib\r
e1f414b6 13\r
2fc59a00 14 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
9344f092 15 SPDX-License-Identifier: BSD-2-Clause-Patent\r
d531bfee 16\r
e1f414b6 17**/\r
18\r
e1f414b6 19#include "MemLibInternals.h"\r
20\r
21/**\r
22 Fills a target buffer with a 16-bit value, and returns the target buffer.\r
23\r
24 This function fills Length bytes of Buffer with the 16-bit value specified by\r
25 Value, and returns Buffer. Value is repeated every 16-bits in for Length\r
26 bytes of Buffer.\r
27\r
28 If Length > 0 and Buffer is NULL, then ASSERT().\r
29 If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().\r
30 If Buffer is not aligned on a 16-bit boundary, then ASSERT().\r
31 If Length is not aligned on a 16-bit boundary, then ASSERT().\r
32\r
2fc59a00 33 @param Buffer The pointer to the target buffer to fill.\r
34 @param Length The number of bytes in Buffer to fill.\r
35 @param Value The value with which to fill Length bytes of Buffer.\r
e1f414b6 36\r
37 @return Buffer.\r
38\r
39**/\r
40VOID *\r
41EFIAPI\r
42SetMem16 (\r
43 OUT VOID *Buffer,\r
44 IN UINTN Length,\r
45 IN UINT16 Value\r
46 )\r
47{\r
2bfb6009 48 if (Length == 0) {\r
e1f414b6 49 return Buffer;\r
50 }\r
51\r
52 ASSERT (Buffer != NULL);\r
53 ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));\r
54 ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);\r
55 ASSERT ((Length & (sizeof (Value) - 1)) == 0);\r
56\r
57 return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value);\r
58}\r