## @file
# This driver installs Debug Support protocol for the selected processor.
#
# This driver provides the capabilities for debug-agent to gain control of the machine
# when certain types of events occur, i.e. breakpoint, processor execptions, etc. It also
# provides debug-agent to periodically gain control during operation of the machine to
# check for asynchronous commands form the host.
#
# Copyright (c) 2006 - 2014, 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                      = DebugSupportDxe
  MODULE_UNI_FILE                = DebugSupportDxe.uni
  FILE_GUID                      = 911D584C-35F7-4955-BEF9-B452769DDC3A
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeDebugSupportDriver

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  DebugSupport.c

[Sources.Ia32]
  Ia32/DebugSupport.h
  Ia32/PlDebugSupport.c
  Ia32/PlDebugSupport.h
  Ia32/PlDebugSupportIa32.c
  Ia32/AsmFuncs.S
  Ia32/AsmFuncs.asm

[Sources.X64]
  Ia32/DebugSupport.h
  Ia32/PlDebugSupport.c
  X64/PlDebugSupport.h
  X64/PlDebugSupportX64.c
  X64/AsmFuncs.S
  X64/AsmFuncs.asm

[Sources.IPF]
  Ipf/PlDebugSupport.h
  Ipf/PlDebugSupport.c
  Ipf/Ds64Macros.i
  Ipf/Common.i
  Ipf/AsmFuncs.s


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiDriverEntryPoint
  DebugLib

[LibraryClasses.IA32, LibraryClasses.X64]
  BaseLib

[Protocols]
  gEfiLoadedImageProtocolGuid                   ## CONSUMES
  gEfiDebugSupportProtocolGuid                  ## PRODUCES


[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  DebugSupportDxeExtra.uni
