## @file
#  Debug Agent library instance for SEC Core and PEI modules.
#
#  Copyright (c) 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.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = SecPeiDebugAgentLib
  FILE_GUID                      = 508B7D59-CD4E-4a6b-A45B-6D3B2D90111E
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 0.7
  LIBRARY_CLASS                  = DebugAgentLib|SEC PEIM

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources.common]
  SecPeiDebugAgent/SecPeiDebugAgentLib.c
  SecPeiDebugAgent/SecPeiDebugAgentLib.h
  DebugAgentCommon/DebugAgent.c
  DebugAgentCommon/DebugAgent.h
  DebugAgentCommon/DebugTimer.c
  DebugAgentCommon/DebugTimer.h
  DebugAgentCommon/DebugMp.c
  DebugAgentCommon/DebugMp.h

[Sources.Ia32]
  DebugAgentCommon/Ia32/AsmFuncs.S     | GCC
  DebugAgentCommon/Ia32/AsmFuncs.asm   | MSFT
  DebugAgentCommon/Ia32/ArchDebugSupport.h
  DebugAgentCommon/Ia32/ArchDebugSupport.c
  DebugAgentCommon/Ia32/ArchReadGroupRegister.c
  DebugAgentCommon/Ia32/ArchRegisters.h
  DebugAgentCommon/Ia32/DebugException.h

[Sources.X64]
  DebugAgentCommon/X64/AsmFuncs.S      | GCC
  DebugAgentCommon/X64/AsmFuncs.asm    | MSFT
  DebugAgentCommon/X64/ArchDebugSupport.h
  DebugAgentCommon/X64/ArchDebugSupport.c
  DebugAgentCommon/X64/ArchReadGroupRegister.c
  DebugAgentCommon/X64/ArchRegisters.h
  DebugAgentCommon/X64/DebugException.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec
  SourceLevelDebugPkg/SourceLevelDebugPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  ResetSystemLib
  IoLib
  HobLib
  PcdLib
  DebugCommunicationLib
  SynchronizationLib
  LocalApicLib

[Guids]
  gEfiDebugAgentGuid                            ## PRODUCES ## HOB

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdFSBClock                                  ## CONSUMES
  gEfiSourceLevelDebugPkgTokenSpaceGuid.PcdExceptionsIgnoredByDebugger  ## CONSUMES

