From 24de7645e857287d096b058f7a64fb7f618c0194 Mon Sep 17 00:00:00 2001 From: bxing Date: Tue, 16 May 2006 03:26:32 +0000 Subject: Split wrapper functions into separate source files to reduce image code size git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@168 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/BaseMemoryLibMmx/CompareMemWrapper.c | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c (limited to 'MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c') diff --git a/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c b/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c new file mode 100644 index 0000000000..c8199d8dc3 --- /dev/null +++ b/MdePkg/Library/BaseMemoryLibMmx/CompareMemWrapper.c @@ -0,0 +1,67 @@ +/** @file + CompareMem() implementation. + + Copyright (c) 2006, Intel Corporation
+ All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + Module Name: CompareMemWrapper.c + + The following BaseMemoryLib instances share the same version of this file: + + BaseMemoryLib + BaseMemoryLibMmx + BaseMemoryLibSse2 + BaseMemoryLibRepStr + PeiMemoryLib + UefiMemoryLib + +**/ + +#include "MemLibInternals.h" + +/** + Compares two memory buffers of a given length. + + This function compares Length bytes of SourceBuffer to Length bytes of + DestinationBuffer. If all Length bytes of the two buffers are identical, then + 0 is returned. Otherwise, the value returned is the first mismatched byte in + SourceBuffer subtracted from the first mismatched byte in DestinationBuffer. + + If DestinationBuffer is NULL and Length > 0, then ASSERT(). + If SourceBuffer is NULL and Length > 0, then ASSERT(). + If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then + ASSERT(). + If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT(). + + @param DestinationBuffer First memory buffer + @param SourceBuffer Second memory buffer + @param Length Length of DestinationBuffer and SourceBuffer memory + regions to compare + + @retval 0 if DestinationBuffer == SourceBuffer + @retval Non-zero if DestinationBuffer != SourceBuffer + +**/ +INTN +EFIAPI +CompareMem ( + IN CONST VOID *DestinationBuffer, + IN CONST VOID *SourceBuffer, + IN UINTN Length + ) +{ + ASSERT (DestinationBuffer != NULL); + ASSERT (SourceBuffer != NULL); + ASSERT (Length <= MAX_ADDRESS - (UINTN)DestinationBuffer + 1); + ASSERT (Length <= MAX_ADDRESS - (UINTN)SourceBuffer + 1); + if (Length == 0) { + return 0; + } + return InternalMemCompareMem (DestinationBuffer, SourceBuffer, Length); +} -- cgit v1.2.3