1e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff/** @file 2e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff ZeroMem() implementation. 3e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 42bfb60098f608dc32ff5d22b0fd087c1636b0881lgao The following BaseMemoryLib instances contain the same copy of this file: 5eb1c78dbb988654f46cc111d5b4a9dabd5578c1fgikidy 6e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff BaseMemoryLib 7e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff BaseMemoryLibMmx 8e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff BaseMemoryLibSse2 9e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff BaseMemoryLibRepStr 102bfb60098f608dc32ff5d22b0fd087c1636b0881lgao BaseMemoryLibOptDxe 112bfb60098f608dc32ff5d22b0fd087c1636b0881lgao BaseMemoryLibOptPei 12e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff PeiMemoryLib 131fef058f4b8fefc455bb171e4908c3e835b1b492qhuang UefiMemoryLib 14eb1c78dbb988654f46cc111d5b4a9dabd5578c1fgikidy 152fc59a003ed9104f9feebe0e418f2a04a50f3284myronporter Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR> 16c33c6476ca8156ddf3c32dbf95048c32f30dc84ahhtian This program and the accompanying materials 17d531bfee01a957038d7ac1a16748558a62165fb2eric_tian are licensed and made available under the terms and conditions of the BSD License 18d531bfee01a957038d7ac1a16748558a62165fb2eric_tian which accompanies this distribution. The full text of the license may be found at 192fc59a003ed9104f9feebe0e418f2a04a50f3284myronporter http://opensource.org/licenses/bsd-license.php. 20d531bfee01a957038d7ac1a16748558a62165fb2eric_tian 21d531bfee01a957038d7ac1a16748558a62165fb2eric_tian THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 22d531bfee01a957038d7ac1a16748558a62165fb2eric_tian WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 23d531bfee01a957038d7ac1a16748558a62165fb2eric_tian 24e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff**/ 25e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 26e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff#include "MemLibInternals.h" 27e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 28e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff/** 29e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff Fills a target buffer with zeros, and returns the target buffer. 30e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 31e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff This function fills Length bytes of Buffer with zeros, and returns Buffer. 32eb1c78dbb988654f46cc111d5b4a9dabd5578c1fgikidy 33e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff If Length > 0 and Buffer is NULL, then ASSERT(). 34cc4e0485045285042ad088736ef278459b139d54lgao If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). 35e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 362fc59a003ed9104f9feebe0e418f2a04a50f3284myronporter @param Buffer The pointer to the target buffer to fill with zeros. 372fc59a003ed9104f9feebe0e418f2a04a50f3284myronporter @param Length The number of bytes in Buffer to fill with zeros. 38e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 39e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff @return Buffer. 40e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff 41e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff**/ 42e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffVOID * 43e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffEFIAPI 44e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeffZeroMem ( 45e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff OUT VOID *Buffer, 46e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff IN UINTN Length 47e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff ) 48e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff{ 492bfb60098f608dc32ff5d22b0fd087c1636b0881lgao ASSERT (!(Buffer == NULL && Length > 0)); 50e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1)); 51e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff return InternalMemZeroMem (Buffer, Length); 52e1f414b6a7d8a0424e0e01f655b09a4612b4d0e8vanjeff} 53