Import BaseMemoryLibMmx;
[mirror_edk2.git] / MdePkg / Library / PeiMemoryLib / SetMemWrapper.c
1 /** @file
2 SetMem() implementation.
3
4 Copyright (c) 2006, Intel Corporation<BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 Module Name: SetMemWrapper.c
14
15 The following BaseMemoryLib instances share the same version of this file:
16
17 BaseMemoryLib
18 BaseMemoryLibMmx
19 BaseMemoryLibSse2
20 BaseMemoryLibRepStr
21 PeiMemoryLib
22 DxeMemoryLib
23
24 **/
25
26 #include "MemLibInternals.h"
27
28 /**
29 Fills a target buffer with a byte value, and returns the target buffer.
30
31 This function fills Length bytes of Buffer with Value, and returns Buffer.
32 If Length is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT().
33
34 @param Buffer Memory to set.
35 @param Length Number of bytes to set.
36 @param Value Value of the set operation.
37
38 @return Buffer.
39
40 **/
41 VOID *
42 EFIAPI
43 SetMem (
44 OUT VOID *Buffer,
45 IN UINTN Length,
46 IN UINT8 Value
47 )
48 {
49 if (Length == 0) {
50 return Buffer;
51 }
52
53 ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
54
55 return InternalMemSetMem (Buffer, Length, Value);
56 }