## @file
# Module produce Framework's EFI_PEI_FV_FILE_LOADER_PPI top of EFI_PEI_LOAD_FILE_PPI.
#
# UEFI PI Spec supersedes Intel's Framework Specs. 
# EFI_PEI_FV_FILE_LOADER_PPI defined in Intel Framework Pkg is replaced by EFI_PEI_LOAD_FILE_PPI
# in MdePkg.
# This module produces EFI_PEI_FV_FILE_LOADER_PPI on top of EFI_PEI_LOAD_FILE_PPI . 
# This module is used on platform when both of these two conditions are true:
# 1) Framework module consumes EFI_PEI_FV_FILE_LOADER_PPI is present.
# 2) The platform has PI modules that produce EFI_PEI_LOAD_FILE_PPI.
#
# Copyright (c) 2008 - 2010, 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
#  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                      = FvFileLoaderOnLoadFileThunk
  FILE_GUID                      = 6CDDBF28-89AC-4e01-9692-616B8A1009C8
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitPeim

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  FvFileLoaderOnLoadFileThunk.c

[Packages]
  MdePkg/MdePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  PeimEntryPoint
  PeiServicesLib
  DebugLib

[Ppis]
  gEfiPeiLoadFilePpiGuid      #ALWAYS_CONSUME
  gEfiPeiFvFileLoaderPpiGuid  #ALWAYS_PRODUCE
  
[Depex]
  gEfiPeiLoadFilePpiGuid
