## @file
#  Component description file for SMM Base Helper SMM driver.
#
#  Copyright (c) 2009 - 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                      = SmmBaseHelper
  FILE_GUID                      = 8C87E0A0-B390-4be3-819C-7C6C83CAE4EB
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  PI_SPECIFICATION_VERSION       = 0x0001000A
  ENTRY_POINT                    = SmmBaseHelperMain

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 
#

[Sources]
  SmmBaseHelper.c
  SmramProfileRecord.c

[Sources.Ia32]
  PageFaultHandler.c
  
[Sources.X64]
  X64/PageFaultHandler.asm | MSFT

  X64/PageFaultHandler.asm | INTEL
  
  X64/PageFaultHandler.S   | GCC
 
[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  EdkCompatibilityPkg/EdkCompatibilityPkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  SmmServicesTableLib
  BaseMemoryLib
  PeCoffLib
  DevicePathLib
  CacheMaintenanceLib
  MemoryAllocationLib
  SynchronizationLib
  CpuLib
  PcdLib
  SmmMemLib

[Guids]
  gEfiSmmBaseThunkCommunicationGuid
  gEdkiiMemoryProfileGuid

[Protocols]
  gEfiSmmBaseHelperReadyProtocolGuid     # PROTOCOL ALWAYS_PRODUCED
  gEfiSmmCpuProtocolGuid                 # PROTOCOL ALWAYS_CONSUMED
  gEfiLoadedImageProtocolGuid            # PROTOCOL ALWAYS_CONSUMED
  gEfiLoadedImageDevicePathProtocolGuid  # PROTOCOL ALWAYS_CONSUMED
  gEfiSmmCpuSaveStateProtocolGuid        # PROTOCOL ALWAYS_CONSUMED
  gEfiMpServiceProtocolGuid              # PROTOCOL ALWAYS_CONSUMED
  gEfiSmmCpuIo2ProtocolGuid              # PROTOCOL ALWAYS_CONSUMED
  gEfiLoadPeImageProtocolGuid            # PROTOCOL ALWAYS_CONSUMED
  gEfiSmmReadyToLockProtocolGuid         # PROTOCOL ALWAYS_CONSUMED
  gEfiSmmCommunicationProtocolGuid

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask

[Depex]
  gEfiSmmCpuProtocolGuid AND
  gEfiMpServiceProtocolGuid AND
  gEfiSmmCpuIo2ProtocolGuid AND
  gEfiLoadPeImageProtocolGuid
