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