## @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 - 2010, Intel Corporation
#
#  All rights reserved. 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
  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]
  PcdLib
  BaseLib

[LibraryClasses.X64]
  BaseLib


[Protocols]
  gEfiLoadedImageProtocolGuid                   ## CONSUMED
  gEfiDebugSupportProtocolGuid                  ## PRODUCED


[Depex]
  TRUE

