## @file
#  Base Synchronization Library implementation.
#
#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
#  Portions copyright (c) 2008 - 2009, 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                      = BaseSynchronizationLib
  MODULE_UNI_FILE                = BaseSynchronizationLib.uni
  FILE_GUID                      = FC9990DF-C5FF-44cf-8799-CBB45B577F87
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = SynchronizationLib

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC ARM AARCH64
#
[Sources]
  BaseSynchronizationLibInternals.h

[Sources.IA32]
  Ia32/InterlockedCompareExchange64.c | MSFT 
  Ia32/InterlockedCompareExchange32.c | MSFT 
  Ia32/InterlockedDecrement.c | MSFT 
  Ia32/InterlockedIncrement.c | MSFT 
  SynchronizationMsc.c  | MSFT

  Ia32/InterlockedCompareExchange64.asm | INTEL 
  Ia32/InterlockedCompareExchange32.asm | INTEL 
  Ia32/InterlockedDecrement.asm | INTEL 
  Ia32/InterlockedIncrement.asm | INTEL 
  Synchronization.c | INTEL

  Ia32/GccInline.c | GCC
  SynchronizationGcc.c  | GCC

[Sources.X64]
  X64/InterlockedCompareExchange64.c | MSFT
  X64/InterlockedCompareExchange32.c | MSFT
  
  X64/InterlockedCompareExchange64.asm | INTEL
  X64/InterlockedCompareExchange32.asm | INTEL
  
  X64/InterlockedDecrement.c | MSFT 
  X64/InterlockedIncrement.c | MSFT 
  SynchronizationMsc.c | MSFT 

  X64/InterlockedDecrement.asm | INTEL 
  X64/InterlockedIncrement.asm | INTEL 
  Synchronization.c | INTEL 

  X64/GccInline.c | GCC
  SynchronizationGcc.c  | GCC 

[Sources.IPF]
  Ipf/Synchronization.c
  Ipf/InterlockedCompareExchange64.s
  Ipf/InterlockedCompareExchange32.s

  Synchronization.c     | INTEL 
  SynchronizationMsc.c  | MSFT 
  SynchronizationGcc.c  | GCC 

[Sources.EBC]
  Synchronization.c
  Ebc/Synchronization.c

[Sources.ARM]
  Synchronization.c
  Arm/Synchronization.c

[Sources.AARCH64]
  Synchronization.c
  AArch64/Synchronization.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  PcdLib
  TimerLib
  DebugLib
  BaseMemoryLib

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout  ## SOMETIMES_CONSUMES

