From: Leif Lindholm <leif.lindholm@linaro.org>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: edk2-devel@lists.01.org
Subject: Re: [PATCH 1/3] ArmPkg: remove BaseMemoryLibVstm implementation of BaseMemoryLib
Date: Thu, 1 Sep 2016 13:58:22 +0100 [thread overview]
Message-ID: <20160901125822.GW4715@bivouac.eciton.net> (raw)
In-Reply-To: <1472634453-27246-2-git-send-email-ard.biesheuvel@linaro.org>
On Wed, Aug 31, 2016 at 10:07:31AM +0100, Ard Biesheuvel wrote:
> The BaseMemoryLibVstm implementation of BaseMemoryLib is ARM only, uses
> the NEON register file despite the fact that the UEFI spec does not allow
> it, and is currently not used anywhere. So remove it.
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
So separate from the rest of the series, it would make sense to merge
this one before moving BaseMemoryLibStm to MdePkg.
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>.
> ---
> ArmPkg/ArmPkg.dsc | 2 -
> ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S | 112 ---------
> ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm | 114 ---------
> ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S | 76 ------
> ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm | 78 ------
> ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf | 70 ------
> ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c | 66 -----
> ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c | 62 -----
> ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c | 63 -----
> ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c | 264 --------------------
> ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c | 132 ----------
> ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h | 234 -----------------
> ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c | 67 -----
> ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c | 66 -----
> ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c | 67 -----
> ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c | 99 --------
> ArmPkg/Library/BaseMemoryLibVstm/SetMem.c | 53 ----
> ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c | 64 -----
> ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c | 64 -----
> ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c | 64 -----
> ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c | 91 -------
> ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c | 52 ----
> 22 files changed, 1960 deletions(-)
>
> diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
> index 7b278cdd4124..6f9fc661fbdc 100644
> --- a/ArmPkg/ArmPkg.dsc
> +++ b/ArmPkg/ArmPkg.dsc
> @@ -150,8 +150,6 @@ [Components.common]
> ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
>
> [Components.ARM]
> - ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
> -
> ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf
> ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
> ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S
> deleted file mode 100644
> index 69de4c1fd48e..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.S
> +++ /dev/null
> @@ -1,112 +0,0 @@
> -#------------------------------------------------------------------------------
> -#
> -# CopyMem() worker for ARM
> -#
> -# This file started out as C code that did 64 bit moves if the buffer was
> -# 32-bit aligned, else it does a byte copy. It also does a byte copy for
> -# any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.
> -#
> -# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
> -# 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.
> -#
> -#------------------------------------------------------------------------------
> -
> -#include <AsmMacroIoLib.h>
> -
> -/**
> - Copy Length bytes from Source to Destination. Overlap is OK.
> -
> - This implementation
> -
> - @param Destination Target of copy
> - @param Source Place to copy from
> - @param Length Number of bytes to copy
> -
> - @return Destination
> -
> -
> -VOID *
> -EFIAPI
> -InternalMemCopyMem (
> - OUT VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -**/
> -ASM_FUNC(InternalMemCopyMem)
> - stmfd sp!, {r4, r9, lr}
> - tst r0, #3
> - mov r4, r0
> - mov r9, r0
> - mov ip, r2
> - mov lr, r1
> - movne r0, #0
> - bne L4
> - tst r1, #3
> - movne r3, #0
> - moveq r3, #1
> - cmp r2, #127
> - movls r0, #0
> - andhi r0, r3, #1
> -L4:
> - cmp r4, r1
> - bcc L26
> - bls L7
> - rsb r3, r1, r4
> - cmp ip, r3
> - bcc L26
> - cmp ip, #0
> - beq L7
> - add r9, r4, ip
> - add lr, ip, r1
> - b L16
> -L29:
> - sub ip, ip, #8
> - cmp ip, #7
> - ldrd r2, [lr, #-8]!
> - movls r0, #0
> - cmp ip, #0
> - strd r2, [r9, #-8]!
> - beq L7
> -L16:
> - cmp r0, #0
> - bne L29
> - sub r3, lr, #1
> - sub ip, ip, #1
> - ldrb r3, [r3, #0]
> - sub r2, r9, #1
> - cmp ip, #0
> - sub r9, r9, #1
> - sub lr, lr, #1
> - strb r3, [r2, #0]
> - bne L16
> - b L7
> -L11:
> - ldrb r3, [lr], #1
> - sub ip, ip, #1
> - strb r3, [r9], #1
> -L26:
> - cmp ip, #0
> - beq L7
> -L30:
> - cmp r0, #0
> - beq L11
> - sub ip, ip, #128 // 32
> - cmp ip, #127 // 31
> - vldm lr!, {d0-d15}
> - movls r0, #0
> - cmp ip, #0
> - vstm r9!, {d0-d15}
> - bne L30
> -L7:
> - dsb
> - mov r0, r4
> - ldmfd sp!, {r4, r9, pc}
> -
> -
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm
> deleted file mode 100644
> index 5afd1e5f2bc1..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/CopyMem.asm
> +++ /dev/null
> @@ -1,114 +0,0 @@
> -;------------------------------------------------------------------------------
> -;
> -; CopyMem() worker for ARM
> -;
> -; This file started out as C code that did 64 bit moves if the buffer was
> -; 32-bit aligned, else it does a byte copy. It also does a byte copy for
> -; any trailing bytes. Update using VSTM/SLDM to do 128 byte copies.
> -;
> -; Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
> -; 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.
> -;
> -;------------------------------------------------------------------------------
> -
> -/**
> - Copy Length bytes from Source to Destination. Overlap is OK.
> -
> - This implementation
> -
> - @param Destination Target of copy
> - @param Source Place to copy from
> - @param Length Number of bytes to copy
> -
> - @return Destination
> -
> -
> -VOID *
> -EFIAPI
> -InternalMemCopyMem (
> - OUT VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -**/
> -
> - INCLUDE AsmMacroExport.inc
> -
> - RVCT_ASM_EXPORT InternalMemCopyMem
> - stmfd sp!, {r4, r9, lr}
> - tst r0, #3
> - mov r4, r0
> - mov r9, r0
> - mov ip, r2
> - mov lr, r1
> - movne r0, #0
> - bne L4
> - tst r1, #3
> - movne r3, #0
> - moveq r3, #1
> - cmp r2, #127
> - movls r0, #0
> - andhi r0, r3, #1
> -L4
> - cmp r4, r1
> - bcc L26
> - bls L7
> - rsb r3, r1, r4
> - cmp ip, r3
> - bcc L26
> - cmp ip, #0
> - beq L7
> - add r9, r4, ip
> - add lr, ip, r1
> - b L16
> -L29
> - sub ip, ip, #8
> - cmp ip, #7
> - ldrd r2, [lr, #-8]!
> - movls r0, #0
> - cmp ip, #0
> - strd r2, [r9, #-8]!
> - beq L7
> -L16
> - cmp r0, #0
> - bne L29
> - sub r3, lr, #1
> - sub ip, ip, #1
> - ldrb r3, [r3, #0]
> - sub r2, r9, #1
> - cmp ip, #0
> - sub r9, r9, #1
> - sub lr, lr, #1
> - strb r3, [r2, #0]
> - bne L16
> - b L7
> -L11
> - ldrb r3, [lr], #1
> - sub ip, ip, #1
> - strb r3, [r9], #1
> -L26
> - cmp ip, #0
> - beq L7
> -L30
> - cmp r0, #0
> - beq L11
> - sub ip, ip, #128 // 32
> - cmp ip, #127 // 31
> - vldm lr!, {d0-d15}
> - movls r0, #0
> - cmp ip, #0
> - vstm r9!, {d0-d15}
> - bne L30
> -L7
> - dsb
> - mov r0, r4
> - ldmfd sp!, {r4, r9, pc}
> -
> - END
> -
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S
> deleted file mode 100644
> index 28ba38b79c6a..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.S
> +++ /dev/null
> @@ -1,76 +0,0 @@
> -#------------------------------------------------------------------------------
> -#
> -# SemMem() worker for ARM
> -#
> -# This file started out as C code that did 64 bit moves if the buffer was
> -# 32-bit aligned, else it does a byte copy. It also does a byte copy for
> -# any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.
> -#
> -# Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
> -# 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.
> -#
> -#------------------------------------------------------------------------------
> -
> -#include <AsmMacroIoLib.h>
> -
> -/**
> - Set Buffer to Value for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> - @param Value Value of the set operation.
> -
> - @return Buffer
> -
> -VOID *
> -EFIAPI
> -InternalMemSetMem (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - )
> -**/
> -ASM_FUNC(InternalMemSetMem)
> - stmfd sp!, {r4-r7, lr}
> - tst r0, #3
> - movne r3, #0
> - moveq r3, #1
> - cmp r1, #127
> - movls lr, #0
> - andhi lr, r3, #1
> - cmp lr, #0
> - mov r12, r0
> - bne L31
> -L32:
> - mov r3, #0
> - b L43
> -L31:
> - vdup.8 q0,r2
> - vmov q1,q0
> - vmov q2,q0
> - vmov q3,q0
> - vmov q4,q0
> - vmov q5,q0
> - vmov q6,q0
> - vmov q7,q0
> - b L32
> -L34:
> - cmp lr, #0
> - streqb r2, [r12], #1
> - subeq r1, r1, #1
> - beq L43
> - sub r1, r1, #128
> - cmp r1, #127
> - cmp r1, #31
> - movls lr, r3
> - vstm r12!, {d0-d15}
> -L43:
> - cmp r1, #0
> - bne L34
> - ldmfd sp!, {pc}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm b/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm
> deleted file mode 100644
> index c4a7c2b72008..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/Arm/SetMem.asm
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -;------------------------------------------------------------------------------
> -;
> -; SetMem() worker for ARM
> -;
> -; This file started out as C code that did 64 bit moves if the buffer was
> -; 32-bit aligned, else it does a byte copy. It also does a byte copy for
> -; any trailing bytes. Update to use VSTM/VLDM to do 128 byte writes.
> -;
> -; Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
> -; 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.
> -;
> -
> -/**
> - Set Buffer to Value for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> - @param Value Value of the set operation.
> -
> - @return Buffer
> -
> -VOID *
> -EFIAPI
> -InternalMemSetMem (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - )
> -**/
> -
> -
> - INCLUDE AsmMacroExport.inc
> -
> - RVCT_ASM_EXPORT InternalMemSetMem
> - stmfd sp!, {lr}
> - tst r0, #3
> - movne r3, #0
> - moveq r3, #1
> - cmp r1, #127
> - movls lr, #0
> - andhi lr, r3, #1
> - cmp lr, #0
> - mov r12, r0
> - bne L31
> -L32
> - mov r3, #0
> - b L43
> -L31
> - vdup.8 q0,r2
> - vmov q1,q0
> - vmov q2,q0
> - vmov q3,q0
> - vmov q4,q0
> - vmov q5,q0
> - vmov q6,q0
> - vmov q7,q0
> - b L32
> -L34
> - cmp lr, #0
> - streqb r2, [r12], #1
> - subeq r1, r1, #1
> - beq L43
> - sub r1, r1, #128
> - cmp r1, #127
> - movls lr, r3
> - vstm r12!, {d0-d15}
> -L43
> - cmp r1, #0
> - bne L34
> - ldmfd sp!, {pc}
> -
> - END
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf b/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
> deleted file mode 100644
> index 4c388fa8984d..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
> +++ /dev/null
> @@ -1,70 +0,0 @@
> -## @file
> -# Instance of Base Memory Library with some ARM vldm/vstm assembly.
> -#
> -# This is a copy of the MdePkg BaseMemoryLib with the CopyMem and
> -# SetMem worker functions replaced with assembler that uses
> -# vldm/vstm (part of NEON SIMD, optional in ARMv7-A).
> -#
> -# Note: You need to enable NEON in SEC to use this library
> -# // Enable NEON register in case folks want to use them for optimizations (CopyMem)
> -# mrc p15, 0, r0, c1, c0, 2
> -# orr r0, r0, #0x00f00000 // Enable VPF access (V* instructions)
> -# mcr p15, 0, r0, c1, c0, 2
> -# mov r0, #0x40000000 // Set EN bit in FPEXC
> -# msr FPEXC,r0
> -#
> -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
> -# Portions copyright (c) 2010, Apple Inc. All rights reserved.<BR>
> -#
> -# 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.
> -#
> -#
> -##
> -
> -[Defines]
> - INF_VERSION = 0x00010005
> - BASE_NAME = BaseMemoryLibVstm
> - FILE_GUID = 09EE1E8D-7A2E-4573-8117-68A18569C1F5
> - MODULE_TYPE = BASE
> - VERSION_STRING = 1.0
> - LIBRARY_CLASS = BaseMemoryLib
> -
> -
> -#
> -# VALID_ARCHITECTURES = ARM
> -#
> -
> -[Sources.ARM]
> - ScanMem64Wrapper.c
> - ScanMem32Wrapper.c
> - ScanMem16Wrapper.c
> - ScanMem8Wrapper.c
> - ZeroMemWrapper.c
> - CompareMemWrapper.c
> - SetMem64Wrapper.c
> - SetMem32Wrapper.c
> - SetMem16Wrapper.c
> - SetMemWrapper.c
> - CopyMemWrapper.c
> - MemLibGeneric.c
> - MemLibGuid.c
> - MemLibInternals.h
> - Arm/CopyMem.asm
> - Arm/CopyMem.S
> - Arm/SetMem.asm
> - Arm/SetMem.S
> -
> -
> -[Packages]
> - MdePkg/MdePkg.dec
> - ArmPkg/ArmPkg.dec
> -
> -[LibraryClasses]
> - DebugLib
> - BaseLib
> -
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c
> deleted file mode 100644
> index c83988f59ecb..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/CompareMemWrapper.c
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/** @file
> - CompareMem() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> -Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> -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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Compares the contents of two buffers.
> -
> - 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 Length > 0 and DestinationBuffer is NULL, then ASSERT().
> - If Length > 0 and SourceBuffer is NULL, 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 Pointer to the destination buffer to compare.
> - @param SourceBuffer Pointer to the source buffer to compare.
> - @param Length Number of bytes to compare.
> -
> - @return 0 All Length bytes of the two buffers are identical.
> - @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
> - mismatched byte in DestinationBuffer.
> -
> -**/
> -INTN
> -EFIAPI
> -CompareMem (
> - IN CONST VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -{
> - if (Length == 0 || DestinationBuffer == SourceBuffer) {
> - return 0;
> - }
> - ASSERT (DestinationBuffer != NULL);
> - ASSERT (SourceBuffer != NULL);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
> -
> - return InternalMemCompareMem (DestinationBuffer, SourceBuffer, Length);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c
> deleted file mode 100644
> index b30faed5607d..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMem.c
> +++ /dev/null
> @@ -1,62 +0,0 @@
> -/** @file
> - Implementation of the InternalMemCopyMem routine. This function is broken
> - out into its own source file so that it can be excluded from a build for a
> - particular platform easily if an optimized version is desired.
> -
> - Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -
> -
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Copy Length bytes from Source to Destination.
> -
> - @param DestinationBuffer Target of copy
> - @param SourceBuffer Place to copy from
> - @param Length Number of bytes to copy
> -
> - @return Destination
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemCopyMem (
> - OUT VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -{
> - //
> - // Declare the local variables that actually move the data elements as
> - // volatile to prevent the optimizer from replacing this function with
> - // the intrinsic memcpy()
> - //
> - volatile UINT8 *Destination8;
> - CONST UINT8 *Source8;
> -
> - if (SourceBuffer > DestinationBuffer) {
> - Destination8 = (UINT8*)DestinationBuffer;
> - Source8 = (CONST UINT8*)SourceBuffer;
> - while (Length-- != 0) {
> - *(Destination8++) = *(Source8++);
> - }
> - } else if (SourceBuffer < DestinationBuffer) {
> - Destination8 = (UINT8*)DestinationBuffer + Length;
> - Source8 = (CONST UINT8*)SourceBuffer + Length;
> - while (Length-- != 0) {
> - *(--Destination8) = *(--Source8);
> - }
> - }
> - return DestinationBuffer;
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c
> deleted file mode 100644
> index 2adfb3114910..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/CopyMemWrapper.c
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -/** @file
> - CopyMem() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Copies a source buffer to a destination buffer, and returns the destination buffer.
> -
> - This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns
> - DestinationBuffer. The implementation must be reentrant, and it must handle the case
> - where SourceBuffer overlaps DestinationBuffer.
> -
> - If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT().
> - If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT().
> -
> - @param DestinationBuffer Pointer to the destination buffer of the memory copy.
> - @param SourceBuffer Pointer to the source buffer of the memory copy.
> - @param Length Number of bytes to copy from SourceBuffer to DestinationBuffer.
> -
> - @return DestinationBuffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -CopyMem (
> - OUT VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -{
> - if (Length == 0) {
> - return DestinationBuffer;
> - }
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)DestinationBuffer));
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)SourceBuffer));
> -
> - if (DestinationBuffer == SourceBuffer) {
> - return DestinationBuffer;
> - }
> - return InternalMemCopyMem (DestinationBuffer, SourceBuffer, Length);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c
> deleted file mode 100644
> index 54c27012955f..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGeneric.c
> +++ /dev/null
> @@ -1,264 +0,0 @@
> -/** @file
> - Architecture Independent Base Memory Library Implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Fills a target buffer with a 16-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 16-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem16 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - )
> -{
> - do {
> - ((UINT16*)Buffer)[--Length] = Value;
> - } while (Length != 0);
> - return Buffer;
> -}
> -
> -/**
> - Fills a target buffer with a 32-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 32-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem32 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - )
> -{
> - do {
> - ((UINT32*)Buffer)[--Length] = Value;
> - } while (Length != 0);
> - return Buffer;
> -}
> -
> -/**
> - Fills a target buffer with a 64-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 64-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem64 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - )
> -{
> - do {
> - ((UINT64*)Buffer)[--Length] = Value;
> - } while (Length != 0);
> - return Buffer;
> -}
> -
> -/**
> - Set Buffer to 0 for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemZeroMem (
> - OUT VOID *Buffer,
> - IN UINTN Length
> - )
> -{
> - return InternalMemSetMem (Buffer, Length, 0);
> -}
> -
> -/**
> - Compares two memory buffers of a given length.
> -
> - @param DestinationBuffer First memory buffer
> - @param SourceBuffer Second memory buffer
> - @param Length Length of DestinationBuffer and SourceBuffer memory
> - regions to compare. Must be non-zero.
> -
> - @return 0 All Length bytes of the two buffers are identical.
> - @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
> - mismatched byte in DestinationBuffer.
> -
> -**/
> -INTN
> -EFIAPI
> -InternalMemCompareMem (
> - IN CONST VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - )
> -{
> - while ((--Length != 0) &&
> - (*(INT8*)DestinationBuffer == *(INT8*)SourceBuffer)) {
> - DestinationBuffer = (INT8*)DestinationBuffer + 1;
> - SourceBuffer = (INT8*)SourceBuffer + 1;
> - }
> - return (INTN)*(UINT8*)DestinationBuffer - (INTN)*(UINT8*)SourceBuffer;
> -}
> -
> -/**
> - Scans a target buffer for an 8-bit value, and returns a pointer to the
> - matching 8-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 8-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem8 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - )
> -{
> - CONST UINT8 *Pointer;
> -
> - Pointer = (CONST UINT8*)Buffer;
> - do {
> - if (*Pointer == Value) {
> - return Pointer;
> - }
> - Pointer++;
> - } while (--Length != 0);
> - return NULL;
> -}
> -
> -/**
> - Scans a target buffer for a 16-bit value, and returns a pointer to the
> - matching 16-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 16-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem16 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - )
> -{
> - CONST UINT16 *Pointer;
> -
> - Pointer = (CONST UINT16*)Buffer;
> - do {
> - if (*Pointer == Value) {
> - return Pointer;
> - }
> - Pointer++;
> - } while (--Length != 0);
> - return NULL;
> -}
> -
> -/**
> - Scans a target buffer for a 32-bit value, and returns a pointer to the
> - matching 32-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 32-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem32 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - )
> -{
> - CONST UINT32 *Pointer;
> -
> - Pointer = (CONST UINT32*)Buffer;
> - do {
> - if (*Pointer == Value) {
> - return Pointer;
> - }
> - Pointer++;
> - } while (--Length != 0);
> - return NULL;
> -}
> -
> -/**
> - Scans a target buffer for a 64-bit value, and returns a pointer to the
> - matching 64-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 64-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem64 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - )
> -{
> - CONST UINT64 *Pointer;
> -
> - Pointer = (CONST UINT64*)Buffer;
> - do {
> - if (*Pointer == Value) {
> - return Pointer;
> - }
> - Pointer++;
> - } while (--Length != 0);
> - return NULL;
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c b/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c
> deleted file mode 100644
> index dc9e2c319ba9..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibGuid.c
> +++ /dev/null
> @@ -1,132 +0,0 @@
> -/** @file
> - Implementation of GUID functions.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Copies a source GUID to a destination GUID.
> -
> - This function copies the contents of the 128-bit GUID specified by SourceGuid to
> - DestinationGuid, and returns DestinationGuid.
> -
> - If DestinationGuid is NULL, then ASSERT().
> - If SourceGuid is NULL, then ASSERT().
> -
> - @param DestinationGuid Pointer to the destination GUID.
> - @param SourceGuid Pointer to the source GUID.
> -
> - @return DestinationGuid.
> -
> -**/
> -GUID *
> -EFIAPI
> -CopyGuid (
> - OUT GUID *DestinationGuid,
> - IN CONST GUID *SourceGuid
> - )
> -{
> - WriteUnaligned64 (
> - (UINT64*)DestinationGuid,
> - ReadUnaligned64 ((CONST UINT64*)SourceGuid)
> - );
> - WriteUnaligned64 (
> - (UINT64*)DestinationGuid + 1,
> - ReadUnaligned64 ((CONST UINT64*)SourceGuid + 1)
> - );
> - return DestinationGuid;
> -}
> -
> -/**
> - Compares two GUIDs.
> -
> - This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned.
> - If there are any bit differences in the two GUIDs, then FALSE is returned.
> -
> - If Guid1 is NULL, then ASSERT().
> - If Guid2 is NULL, then ASSERT().
> -
> - @param Guid1 A pointer to a 128 bit GUID.
> - @param Guid2 A pointer to a 128 bit GUID.
> -
> - @retval TRUE Guid1 and Guid2 are identical.
> - @retval FALSE Guid1 and Guid2 are not identical.
> -
> -**/
> -BOOLEAN
> -EFIAPI
> -CompareGuid (
> - IN CONST GUID *Guid1,
> - IN CONST GUID *Guid2
> - )
> -{
> - return (CompareMem(Guid1, Guid2, sizeof(GUID) == 0)) ? TRUE : FALSE;
> -}
> -
> -/**
> - Scans a target buffer for a GUID, and returns a pointer to the matching GUID
> - in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from
> - the lowest address to the highest address at 128-bit increments for the 128-bit
> - GUID value that matches Guid. If a match is found, then a pointer to the matching
> - GUID in the target buffer is returned. If no match is found, then NULL is returned.
> - If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Buffer is not aligned on a 32-bit boundary, then ASSERT().
> - If Length is not aligned on a 128-bit boundary, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Guid Value to search for in the target buffer.
> -
> - @return A pointer to the matching Guid in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanGuid (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN CONST GUID *Guid
> - )
> -{
> - CONST GUID *GuidPtr;
> -
> - ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0);
> - ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
> - ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0);
> -
> - GuidPtr = (GUID*)Buffer;
> - Buffer = GuidPtr + Length / sizeof (*GuidPtr);
> - while (GuidPtr < (CONST GUID*)Buffer) {
> - if (CompareGuid (GuidPtr, Guid)) {
> - return (VOID*)GuidPtr;
> - }
> - GuidPtr++;
> - }
> - return NULL;
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h b/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h
> deleted file mode 100644
> index 10c741f2c311..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/MemLibInternals.h
> +++ /dev/null
> @@ -1,234 +0,0 @@
> -/** @file
> - Declaration of internal functions for Base Memory Library.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#ifndef __MEM_LIB_INTERNALS__
> -#define __MEM_LIB_INTERNALS__
> -
> -#include <Base.h>
> -#include <Library/BaseMemoryLib.h>
> -#include <Library/BaseLib.h>
> -#include <Library/DebugLib.h>
> -
> -/**
> - Copy Length bytes from Source to Destination.
> -
> - @param DestinationBuffer Target of copy
> - @param SourceBuffer Place to copy from
> - @param Length Number of bytes to copy
> -
> - @return Destination
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemCopyMem (
> - OUT VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - );
> -
> -/**
> - Set Buffer to Value for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> - @param Value Value of the set operation.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - );
> -
> -/**
> - Fills a target buffer with a 16-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 16-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem16 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - );
> -
> -/**
> - Fills a target buffer with a 32-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 32-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem32 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - );
> -
> -/**
> - Fills a target buffer with a 64-bit value, and returns the target buffer.
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Count of 64-bit value to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem64 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - );
> -
> -/**
> - Set Buffer to 0 for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemZeroMem (
> - OUT VOID *Buffer,
> - IN UINTN Length
> - );
> -
> -/**
> - Compares two memory buffers of a given length.
> -
> - @param DestinationBuffer First memory buffer
> - @param SourceBuffer Second memory buffer
> - @param Length Length of DestinationBuffer and SourceBuffer memory
> - regions to compare. Must be non-zero.
> -
> - @return 0 All Length bytes of the two buffers are identical.
> - @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first
> - mismatched byte in DestinationBuffer.
> -
> -**/
> -INTN
> -EFIAPI
> -InternalMemCompareMem (
> - IN CONST VOID *DestinationBuffer,
> - IN CONST VOID *SourceBuffer,
> - IN UINTN Length
> - );
> -
> -/**
> - Scans a target buffer for an 8-bit value, and returns a pointer to the
> - matching 8-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 8-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem8 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - );
> -
> -/**
> - Scans a target buffer for a 16-bit value, and returns a pointer to the
> - matching 16-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 16-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem16 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - );
> -
> -/**
> - Scans a target buffer for a 32-bit value, and returns a pointer to the
> - matching 32-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 32-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem32 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - );
> -
> -/**
> - Scans a target buffer for a 64-bit value, and returns a pointer to the
> - matching 64-bit value in the target buffer.
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Count of 64-bit value to scan. Must be non-zero.
> - @param Value Value to search for in the target buffer.
> -
> - @return Pointer to the first occurrence or NULL if not found.
> -
> -**/
> -CONST VOID *
> -EFIAPI
> -InternalMemScanMem64 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - );
> -
> -#endif
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c
> deleted file mode 100644
> index 1c727b3e8077..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem16Wrapper.c
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/** @file
> - ScanMem16() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Scans a target buffer for a 16-bit value, and returns a pointer to the matching 16-bit value
> - in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from the lowest
> - address to the highest address for a 16-bit value that matches Value. If a match is found,
> - then a pointer to the matching byte in the target buffer is returned. If no match is found,
> - then NULL is returned. If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Buffer is not aligned on a 16-bit boundary, then ASSERT().
> - If Length is not aligned on a 16-bit boundary, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Value Value to search for in the target buffer.
> -
> - @return A pointer to the matching byte in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanMem16 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - )
> -{
> - if (Length == 0) {
> - return NULL;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c
> deleted file mode 100644
> index 79ab60ced84c..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem32Wrapper.c
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -/** @file
> - ScanMem32() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Scans a target buffer for a 32-bit value, and returns a pointer to the matching 32-bit value
> - in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from the lowest
> - address to the highest address for a 32-bit value that matches Value. If a match is found,
> - then a pointer to the matching byte in the target buffer is returned. If no match is found,
> - then NULL is returned. If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Buffer is not aligned on a 32-bit boundary, then ASSERT().
> - If Length is not aligned on a 32-bit boundary, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Value Value to search for in the target buffer.
> -
> - @return A pointer to the matching byte in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanMem32 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - )
> -{
> - if (Length == 0) {
> - return NULL;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return (VOID*)InternalMemScanMem32 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c
> deleted file mode 100644
> index d11e50b9d5f6..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem64Wrapper.c
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/** @file
> - ScanMem64() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Scans a target buffer for a 64-bit value, and returns a pointer to the matching 64-bit value
> - in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from the lowest
> - address to the highest address for a 64-bit value that matches Value. If a match is found,
> - then a pointer to the matching byte in the target buffer is returned. If no match is found,
> - then NULL is returned. If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Buffer is not aligned on a 64-bit boundary, then ASSERT().
> - If Length is not aligned on a 64-bit boundary, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Value Value to search for in the target buffer.
> -
> - @return A pointer to the matching byte in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanMem64 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - )
> -{
> - if (Length == 0) {
> - return NULL;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return (VOID*)InternalMemScanMem64 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c
> deleted file mode 100644
> index c6c6d5f39ba4..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/ScanMem8Wrapper.c
> +++ /dev/null
> @@ -1,99 +0,0 @@
> -/** @file
> - ScanMem8() and ScanMemN() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Scans a target buffer for an 8-bit value, and returns a pointer to the matching 8-bit value
> - in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from the lowest
> - address to the highest address for an 8-bit value that matches Value. If a match is found,
> - then a pointer to the matching byte in the target buffer is returned. If no match is found,
> - then NULL is returned. If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Value Value to search for in the target buffer.
> -
> - @return A pointer to the matching byte in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanMem8 (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - )
> -{
> - if (Length == 0) {
> - return NULL;
> - }
> - ASSERT (Buffer != NULL);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> -
> - return (VOID*)InternalMemScanMem8 (Buffer, Length, Value);
> -}
> -
> -/**
> - Scans a target buffer for a UINTN sized value, and returns a pointer to the matching
> - UINTN sized value in the target buffer.
> -
> - This function searches the target buffer specified by Buffer and Length from the lowest
> - address to the highest address for a UINTN sized value that matches Value. If a match is found,
> - then a pointer to the matching byte in the target buffer is returned. If no match is found,
> - then NULL is returned. If Length is 0, then NULL is returned.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Buffer is not aligned on a UINTN boundary, then ASSERT().
> - If Length is not aligned on a UINTN boundary, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to scan.
> - @param Length Number of bytes in Buffer to scan.
> - @param Value Value to search for in the target buffer.
> -
> - @return A pointer to the matching byte in the target buffer or NULL otherwise.
> -
> -**/
> -VOID *
> -EFIAPI
> -ScanMemN (
> - IN CONST VOID *Buffer,
> - IN UINTN Length,
> - IN UINTN Value
> - )
> -{
> - if (sizeof (UINTN) == sizeof (UINT64)) {
> - return ScanMem64 (Buffer, Length, (UINT64)Value);
> - } else {
> - return ScanMem32 (Buffer, Length, (UINT32)Value);
> - }
> -}
> -
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c
> deleted file mode 100644
> index 5c30e9b45f76..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem.c
> +++ /dev/null
> @@ -1,53 +0,0 @@
> -/** @file
> - Implementation of the EfiSetMem routine. This function is broken
> - out into its own source file so that it can be excluded from a
> - build for a particular platform easily if an optimized version
> - is desired.
> -
> - Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -
> -
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Set Buffer to Value for Size bytes.
> -
> - @param Buffer Memory to set.
> - @param Length Number of bytes to set
> - @param Value Value of the set operation.
> -
> - @return Buffer
> -
> -**/
> -VOID *
> -EFIAPI
> -InternalMemSetMem (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT8 Value
> - )
> -{
> - //
> - // Declare the local variables that actually move the data elements as
> - // volatile to prevent the optimizer from replacing this function with
> - // the intrinsic memset()
> - //
> - volatile UINT8 *Pointer;
> -
> - Pointer = (UINT8*)Buffer;
> - while (Length-- > 0) {
> - *(Pointer++) = Value;
> - }
> - return Buffer;
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c
> deleted file mode 100644
> index 8129d21e0dbe..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem16Wrapper.c
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/** @file
> - SetMem16() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Fills a target buffer with a 16-bit value, and returns the target buffer.
> -
> - This function fills Length bytes of Buffer with the 16-bit value specified by
> - Value, and returns Buffer. Value is repeated every 16-bits in for Length
> - bytes of Buffer.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> - If Buffer is not aligned on a 16-bit boundary, then ASSERT().
> - If Length is not aligned on a 16-bit boundary, then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Number of bytes in Buffer to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -SetMem16 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT16 Value
> - )
> -{
> - if (Length == 0) {
> - return Buffer;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return InternalMemSetMem16 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c
> deleted file mode 100644
> index b57ba4057af6..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem32Wrapper.c
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/** @file
> - SetMem32() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Fills a target buffer with a 32-bit value, and returns the target buffer.
> -
> - This function fills Length bytes of Buffer with the 32-bit value specified by
> - Value, and returns Buffer. Value is repeated every 32-bits in for Length
> - bytes of Buffer.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> - If Buffer is not aligned on a 32-bit boundary, then ASSERT().
> - If Length is not aligned on a 32-bit boundary, then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Number of bytes in Buffer to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -SetMem32 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT32 Value
> - )
> -{
> - if (Length == 0) {
> - return Buffer;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return InternalMemSetMem32 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c
> deleted file mode 100644
> index f979580b1739..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMem64Wrapper.c
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -/** @file
> - SetMem64() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Fills a target buffer with a 64-bit value, and returns the target buffer.
> -
> - This function fills Length bytes of Buffer with the 64-bit value specified by
> - Value, and returns Buffer. Value is repeated every 64-bits in for Length
> - bytes of Buffer.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> - If Buffer is not aligned on a 64-bit boundary, then ASSERT().
> - If Length is not aligned on a 64-bit boundary, then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Number of bytes in Buffer to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -SetMem64 (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINT64 Value
> - )
> -{
> - if (Length == 0) {
> - return Buffer;
> - }
> -
> - ASSERT (Buffer != NULL);
> - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer));
> - ASSERT ((((UINTN)Buffer) & (sizeof (Value) - 1)) == 0);
> - ASSERT ((Length & (sizeof (Value) - 1)) == 0);
> -
> - return InternalMemSetMem64 (Buffer, Length / sizeof (Value), Value);
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c
> deleted file mode 100644
> index 9240c89e8b87..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/SetMemWrapper.c
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -/** @file
> - SetMem() and SetMemN() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#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 Memory to set.
> - @param Length Number of bytes to set.
> - @param Value 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);
> -}
> -
> -/**
> - Fills a target buffer with a value that is size UINTN, and returns the target buffer.
> -
> - This function fills Length bytes of Buffer with the UINTN sized value specified by
> - Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length
> - bytes of Buffer.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> - If Buffer is not aligned on a UINTN boundary, then ASSERT().
> - If Length is not aligned on a UINTN boundary, then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to fill.
> - @param Length Number of bytes in Buffer to fill.
> - @param Value Value with which to fill Length bytes of Buffer.
> -
> - @return Buffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -SetMemN (
> - OUT VOID *Buffer,
> - IN UINTN Length,
> - IN UINTN Value
> - )
> -{
> - if (sizeof (UINTN) == sizeof (UINT64)) {
> - return SetMem64 (Buffer, Length, (UINT64)Value);
> - } else {
> - return SetMem32 (Buffer, Length, (UINT32)Value);
> - }
> -}
> diff --git a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c b/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c
> deleted file mode 100644
> index d6c6279f682f..000000000000
> --- a/ArmPkg/Library/BaseMemoryLibVstm/ZeroMemWrapper.c
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -/** @file
> - ZeroMem() implementation.
> -
> - The following BaseMemoryLib instances contain the same copy of this file:
> -
> - BaseMemoryLib
> - BaseMemoryLibMmx
> - BaseMemoryLibSse2
> - BaseMemoryLibRepStr
> - BaseMemoryLibOptDxe
> - BaseMemoryLibOptPei
> - PeiMemoryLib
> - UefiMemoryLib
> -
> - Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>
> - 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.
> -
> -**/
> -
> -#include "MemLibInternals.h"
> -
> -/**
> - Fills a target buffer with zeros, and returns the target buffer.
> -
> - This function fills Length bytes of Buffer with zeros, and returns Buffer.
> -
> - If Length > 0 and Buffer is NULL, then ASSERT().
> - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT().
> -
> - @param Buffer Pointer to the target buffer to fill with zeros.
> - @param Length Number of bytes in Buffer to fill with zeros.
> -
> - @return Buffer.
> -
> -**/
> -VOID *
> -EFIAPI
> -ZeroMem (
> - OUT VOID *Buffer,
> - IN UINTN Length
> - )
> -{
> - ASSERT (!(Buffer == NULL && Length > 0));
> - ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1));
> - return InternalMemZeroMem (Buffer, Length);
> -}
> --
> 2.7.4
>
next prev parent reply other threads:[~2016-09-01 12:58 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-31 9:07 [PATCH 0/3] ArmPkg: introduce IsZeroGuid() and IsZeroBuffer() Ard Biesheuvel
2016-08-31 9:07 ` [PATCH 1/3] ArmPkg: remove BaseMemoryLibVstm implementation of BaseMemoryLib Ard Biesheuvel
2016-09-01 12:58 ` Leif Lindholm [this message]
2016-08-31 9:07 ` [PATCH 2/3] ArmPkg/BaseMemoryLibStm: implement new IsZeroGuid() API function Ard Biesheuvel
2016-08-31 9:07 ` [PATCH 3/3] ArmPkg/BaseMemoryLibStm: implement new IsZeroBuffer() " Ard Biesheuvel
2016-08-31 12:48 ` [PATCH 0/3] ArmPkg: introduce IsZeroGuid() and IsZeroBuffer() Leif Lindholm
2016-09-02 11:33 ` Laszlo Ersek
2016-09-02 13:01 ` Leif Lindholm
2016-09-02 14:18 ` Laszlo Ersek
2016-09-02 14:40 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160901125822.GW4715@bivouac.eciton.net \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox