## @file
#  Instance of CPU Library for various architecture.
#
#  CPU Library implemented using ASM functions for IA-32 and X64,
#  PAL CALLs for IPF, and empty functions for EBC.
#
#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
#  Portions copyright (c) 2008 - 2009, 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                      = BaseCpuLib
  MODULE_UNI_FILE                = BaseCpuLib.uni
  FILE_GUID                      = 4FBD2538-249C-4b50-8F4A-A9E66609CBF6
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = CpuLib 


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC ARM AARCH64
#

[Sources.IA32]
  Ia32/CpuSleep.c | MSFT 
  Ia32/CpuFlushTlb.c | MSFT 

  Ia32/CpuSleep.nasm| INTEL
  Ia32/CpuSleep.asm | INTEL 
  Ia32/CpuFlushTlb.nasm| INTEL
  Ia32/CpuFlushTlb.asm | INTEL 

  Ia32/CpuSleepGcc.c | GCC 
  Ia32/CpuFlushTlbGcc.c | GCC 

[Sources.X64]
  X64/CpuFlushTlb.nasm
  X64/CpuFlushTlb.asm 
  X64/CpuSleep.nasm
  X64/CpuSleep.asm

  X64/CpuSleep.nasm| GCC
  X64/CpuSleep.S | GCC 
  X64/CpuFlushTlb.nasm| GCC
  X64/CpuFlushTlb.S | GCC 

[Sources.IPF]
  Ipf/CpuFlushTlb.s
  Ipf/CpuSleep.c

[Sources.EBC]
  Ebc/CpuSleepFlushTlb.c

[Sources.ARM]
  Arm/CpuFlushTlb.asm | RVCT
  Arm/CpuSleep.asm    | RVCT  
  Arm/CpuFlushTlb.S   | GCC
  Arm/CpuSleep.S      | GCC  

[Sources.AARCH64]
  AArch64/CpuFlushTlb.S | GCC
  AArch64/CpuSleep.S    | GCC

[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses.IPF]
  PalLib
  BaseLib

