mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-14 06:08:09 +02:00
Moved SetMemN API to a separate file to eliminate unnecessary inclusion of InternalMemSetMem64 and InternalMemSetMem32 APIs in driver binary. When the compiler linking the Object files it may not remove all the unused from NASM OBJs. This change is to reorganize the C files to minimize the impact of the NASM behavior resulting is code size reduction. Signed-off-by: Ashraf Ali <ashraf.ali.s@intel.com>
52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
/** @file
|
|
SetMem() implementation.
|
|
|
|
The following BaseMemoryLib instances contain the same copy of this file:
|
|
|
|
BaseMemoryLib
|
|
BaseMemoryLibMmx
|
|
BaseMemoryLibSse2
|
|
BaseMemoryLibRepStr
|
|
BaseMemoryLibOptDxe
|
|
BaseMemoryLibOptPei
|
|
PeiMemoryLib
|
|
UefiMemoryLib
|
|
|
|
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#include "MemLibInternals.h"
|
|
|
|
/**
|
|
Fills a target buffer with a byte value, and returns the target buffer.
|
|
|
|
This function fills Length bytes of Buffer with Value, and returns Buffer.
|
|
|
|
If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
|
|
|
|
@param Buffer The memory to set.
|
|
@param Length The number of bytes to set.
|
|
@param Value The value with which to fill Length bytes of Buffer.
|
|
|
|
@return Buffer.
|
|
|
|
**/
|
|
VOID *
|
|
EFIAPI
|
|
SetMem (
|
|
OUT VOID *Buffer,
|
|
IN UINTN Length,
|
|
IN UINT8 Value
|
|
)
|
|
{
|
|
if (Length == 0) {
|
|
return Buffer;
|
|
}
|
|
|
|
ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
|
|
|
|
return InternalMemSetMem (Buffer, Length, Value);
|
|
}
|