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   ZeroMemWrapper.c
15 
16 Abstract:
17 
18   ZeroMem() implementation.
19 
20 --*/
21 
22 #include "BaseMemoryLibInternal.h"
23 
24 /**
25   Fills a target buffer with zeros, and returns the target buffer.
26 
27   This function fills Length bytes of Buffer with zeros, and returns Buffer.
28   If Length > 0 and Buffer is NULL, then ASSERT().
29   If Length is greater than (MAX_ADDRESS ? Buffer + 1), then ASSERT().
30 
31   @param  Buffer      Pointer to the target buffer to fill with zeros.
32   @param  Length      Number of bytes in Buffer to fill with zeros.
33 
34   @return Buffer.
35 
36 **/
37 VOID *
38 EFIAPI
GlueZeroMem(OUT VOID * Buffer,IN UINTN Length)39 GlueZeroMem (
40   OUT VOID  *Buffer,
41   IN UINTN  Length
42   )
43 {
44   ASSERT (!(Buffer == NULL && Length > 0));
45   ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
46   return InternalMemZeroMem (Buffer, Length);
47 }
48