## @file
#  Instance of Base Memory Library with some ARM ldm/stm assembly.
#
#  This is a copy of the MdePkg BaseMemoryLib with the CopyMem and 
#  SetMem worker functions replaced with assembler that uses 
#  ldm/stm.
#
#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
#  Portions copyright (c) 2010, Apple Inc. All rights reserved.<BR>
#  Portions copyright (c) 2011 - 2013, ARM Ltd. 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                      = BaseMemoryLibStm
  FILE_GUID                      = 4D466AF3-2380-448D-A337-E4033F29F3F7
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = BaseMemoryLib 


#
#  VALID_ARCHITECTURES           = ARM AARCH64
#


[Sources.Common]
  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

[Sources.ARM]
  Arm/CopyMem.asm
  Arm/CopyMem.S
  Arm/SetMem.asm
  Arm/SetMem.S

[Sources.AARCH64]
  AArch64/CopyMem.c
  AArch64/SetMem.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
  BaseLib

