## @file 
#  Performance library instance used in PEI phase.
#  
#  This library provides the performance measurement interfaces in PEI phase, it creates
#  and consumes GUIDed HOB for performance logging. The GUIDed HOB is passed to DXE phase
#  so that it can be taken over by DxeCorePerformanceLib.  
#  
#  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                      = PeiPerformanceLib
  MODULE_UNI_FILE                = PeiPerformanceLib.uni
  FILE_GUID                      = F72DE735-B24F-4ef6-897F-70A85D01A047
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PerformanceLib|PEIM PEI_CORE SEC

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC (EBC is for build only)
#

[Sources]
  PeiPerformanceLib.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec


[LibraryClasses]
  BaseMemoryLib
  PcdLib
  TimerLib
  BaseLib
  HobLib
  DebugLib


[Guids]
  ## PRODUCES ## HOB
  ## CONSUMES ## HOB
  gPerformanceProtocolGuid
  ## PRODUCES ## HOB
  ## CONSUMES ## HOB
  gPerformanceExProtocolGuid

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxPeiPerformanceLogEntries ## CONSUMES
  gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask    ## CONSUMES
