#
#
# Copyright (c)  1999  - 2014, 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 that 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.    
#                                                                                  
#
#  Module Name:
#
#    MonoStatusCode.inf
#
#  Abstract:
#
#    Component description file for Status Code PEI module
#
#--*/

[defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = MonoStatusCode
  FILE_GUID                      = 4BB346D2-8076-4671-8BC9-7B95CBB9A6DF
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
#  ENTRY_POINT                    = InstallMonoStatusCode
  LIBRARY_CLASS                  = MonoStatusCodeLib

[sources.common]
  MonoStatusCode.c
  MonoStatusCode.h
  PlatformStatusCode.c
  PlatformStatusCode.h
  PeiPostCode.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IA32FamilyCpuPkg/IA32FamilyCpuPkg.dec
  Vlv2TbltDevicePkg/PlatformPkg.dec
  Vlv2DeviceRefCodePkg/Vlv2DeviceRefCodePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  PeimEntryPoint
  HobLib
  DebugLib
  SerialPortLib
  ReportStatusCodeLib
  PrintLib
  BaseMemoryLib
  PchPlatformLib

[Ppis]
  gEfiPeiMemoryDiscoveredPpiGuid
  gEfiPeiStatusCodePpiGuid
  gEfiPeiFvFileLoaderPpiGuid

[Protocols]
  gEfiStatusCodeRuntimeProtocolGuid

[Pcd]
  gEfiSerialPortTokenSpaceGuid.PcdStatusCodeUseRam

[Guids]
  gEfiPlatformCpuInfoGuid
  gEfiHtBistHobGuid
  gEfiStatusCodeDataTypeStringGuid              ## CONSUMES

[Depex]
  TRUE



