ZeroMemWrapper.c revision cc4e0485045285042ad088736ef278459b139d54
1e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff/** @file
2e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  ZeroMem() implementation.
3e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
4e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  Copyright (c) 2006, Intel Corporation<BR>
5e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  All rights reserved. This program and the accompanying materials
6e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  are licensed and made available under the terms and conditions of the BSD License
7e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  which accompanies this distribution.  The full text of the license may be found at
8e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  http://opensource.org/licenses/bsd-license.php
9e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
10e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
13e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  The following BaseMemoryLib instances share the same version of this file:
14e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
15e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    BaseMemoryLib
16e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    BaseMemoryLibMmx
17e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    BaseMemoryLibSse2
18e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    BaseMemoryLibRepStr
19e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    PeiMemoryLib
20e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff    DxeMemoryLib
21e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
22e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff**/
23e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
24e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff//
25e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff// Include common header file for this module.
26e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff//
27f734a10ab104f1072f94cab66a5489e0fd8fce8aAJFISH
28e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
29e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#include "MemLibInternals.h"
30e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
31e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff/**
32e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  Fills a target buffer with zeros, and returns the target buffer.
33e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
34e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  This function fills Length bytes of Buffer with zeros, and returns Buffer.
35e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  If Length > 0 and Buffer is NULL, then ASSERT().
36cc4e0485045285042ad088736ef278459b139d54lgao  If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
37e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
38e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  @param  Buffer      Pointer to the target buffer to fill with zeros.
39e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  @param  Length      Number of bytes in Buffer to fill with zeros.
40e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
41e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  @return Buffer.
42e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff
43e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff**/
44e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffVOID *
45e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffEFIAPI
46e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffZeroMem (
47e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  OUT VOID  *Buffer,
48e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  IN UINTN  Length
49e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  )
50e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff{
5138bbd3d91c38481d18c1a7e2049473c951ee98edyshang  ASSERT (!(NULL == Buffer && Length > 0));
52e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
53e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff  return InternalMemZeroMem (Buffer, Length);
54e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff}
55