## @file
#  Instance of Report Status Code Library for PEI Phase.
#
#  Instance of Report Status Code Library for PEI Phase. It first tries to report status
#  code via PEI Status Code Service. If the service is not available, it then tries calling
#  OEM Hook Status Code Library.
#
#  Copyright (c) 2006 - 2018, 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                      = PeiReportStatusCodeLib
  MODULE_UNI_FILE                = PeiReportStatusCodeLib.uni
  FILE_GUID                      = 8c690838-7a22-45c4-aa58-a33e3e515cd4
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = ReportStatusCodeLib|SEC PEIM PEI_CORE

#
# 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]
  ReportStatusCodeLib.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  PcdLib
  PeiServicesTablePointerLib
  BaseMemoryLib
  BaseLib
  DebugLib
  OemHookStatusCodeLib


[Guids]
  gEfiStatusCodeSpecificDataGuid                ## SOMETIMES_CONSUMES   ## UNDEFINED
  gEfiStatusCodeDataTypeDebugGuid               ## SOMETIMES_CONSUMES   ## UNDEFINED


[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask  ## CONSUMES

