#/** @file
# Component description file for Apple Pre PI Library
#
# LIbrary helps you build a platform that skips PEI and loads DXE Core
# directly. Helps building HOBs, reading data from the FV, and doing
# decompression.
#
#  Copyright (c) 2008, Apple Inc. 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                      = PrePiLib
  FILE_GUID                      = 1F3A3278-82EB-4C0D-86F1-5BCDA5846CB2
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PrePiLib


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  FwVol.c
  PrePiLib.c
  ReportStatusCode.c

[Packages]
  MdePkg/MdePkg.dec
  EmbeddedPkg/EmbeddedPkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec              # needed to support StatusCodes
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec  # needed to support StatusCodes


[LibraryClasses]
  BaseLib
  DebugLib
  BaseMemoryLib
  UefiDecompressLib
  PeCoffLib
  CacheMaintenanceLib
  PrintLib
  SerialPortLib
  ExtractGuidedSectionLib
  TimerLib
  PerformanceLib
  HobLib

[Guids]
  gEfiStatusCodeSpecificDataGuid
  gEfiMemoryTypeInformationGuid
  gEfiStatusCodeDataTypeDebugGuid

[Protocols]
  gEfiStatusCodeRuntimeProtocolGuid
  gPeCoffLoaderProtocolGuid


[FixedPcd.common]
  gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize
  gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize

  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode
  gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData

[FeaturePcd]
  gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob
