## @file
#  Base Synchronization Library implementation.
#
#  Copyright (c) 2007 - 2018, 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/InternalGetSpinLockProperties.c | MSFT
  Ia32/InterlockedCompareExchange64.c | MSFT
  Ia32/InterlockedCompareExchange32.c | MSFT
  Ia32/InterlockedCompareExchange16.c | MSFT
  Ia32/InterlockedDecrement.c | MSFT
  Ia32/InterlockedIncrement.c | MSFT
  SynchronizationMsc.c  | MSFT

  Ia32/InterlockedCompareExchange64.nasm| INTEL
  Ia32/InterlockedCompareExchange32.nasm| INTEL
  Ia32/InterlockedCompareExchange16.nasm| INTEL
  Ia32/InterlockedDecrement.nasm| INTEL
  Ia32/InterlockedIncrement.nasm| INTEL
  Synchronization.c | INTEL

  Ia32/InternalGetSpinLockProperties.c | GCC
  Ia32/GccInline.c | GCC
  SynchronizationGcc.c  | GCC

[Sources.X64]
  Ia32/InternalGetSpinLockProperties.c | MSFT
  X64/InterlockedCompareExchange64.c | MSFT
  X64/InterlockedCompareExchange32.c | MSFT
  X64/InterlockedCompareExchange16.c | MSFT

  X64/InterlockedCompareExchange64.nasm| INTEL
  X64/InterlockedCompareExchange32.nasm| INTEL
  X64/InterlockedCompareExchange16.nasm| INTEL

  X64/InterlockedDecrement.c | MSFT
  X64/InterlockedIncrement.c | MSFT
  SynchronizationMsc.c | MSFT

  X64/InterlockedDecrement.nasm| INTEL
  X64/InterlockedIncrement.nasm| INTEL
  Synchronization.c | INTEL

  Ia32/InternalGetSpinLockProperties.c | GCC
  X64/GccInline.c | GCC
  SynchronizationGcc.c  | GCC

[Sources.IPF]
  Ipf/Synchronization.c
  Ipf/InterlockedCompareExchange64.s
  Ipf/InterlockedCompareExchange32.s
  Ipf/InterlockedCompareExchange16.s

  Ipf/InternalGetSpinLockProperties.c | MSFT
  Ipf/InternalGetSpinLockProperties.c | GCC

  Synchronization.c     | INTEL
  SynchronizationMsc.c  | MSFT
  SynchronizationGcc.c  | GCC

[Sources.EBC]
  Synchronization.c
  Ebc/Synchronization.c

[Sources.ARM]
  Synchronization.c
  Arm/Synchronization.asm       | RVCT
  Arm/Synchronization.S         | GCC

[Sources.AARCH64]
  Synchronization.c
  AArch64/Synchronization.S     | GCC
  AArch64/Synchronization.asm   | MSFT

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  PcdLib
  TimerLib
  DebugLib
  BaseMemoryLib

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout  ## SOMETIMES_CONSUMES

