## @file
# Module produce EFI_PEI_READ_ONLY_VARIABLE_PPI on top of EFI_PEI_READ_ONLY_VARIABLE2_PPI.
#
# UEFI PI Spec supersedes Intel's Framework Specs. 
# EFI_PEI_READ_ONLY_VARIABLE_PPI defined in Intel Framework Pkg is replaced by EFI_PEI_READ_ONLY_VARIABLE2_PPI
# in MdePkg.
# This module produces EFI_PEI_READ_ONLY_VARIABLE_PPI on top of EFI_PEI_READ_ONLY_VARIABLE2_PPI. 
# This module is used on platform when both of these two conditions are true:
# 1) Framework module consumes EFI_PEI_READ_ONLY_VARIABLE_PPI is present.
# 2) The platform has a PI module that only produces EFI_PEI_READ_ONLY_VARIABLE2_PPI.
# This module can't be used together with ReadOnlyVariable2OnReadOnlyVariableThunk module.
#
#
# Copyright (c) 2006 - 2011, 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                      = ReadOnlyVariableOnReadOnlyVariable2Thunk
  FILE_GUID                      = 0FDB764B-E669-4c69-83AC-5EDD99A2711E
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = PeimInitializeReadOnlyVariable

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  ReadOnlyVariableOnReadOnlyVariable2Thunk.c

[Packages]
  MdePkg/MdePkg.dec
  EdkCompatibilityPkg/EdkCompatibilityPkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  PeimEntryPoint
  DebugLib
  PeiServicesLib

[Ppis]
  gEfiPeiReadOnlyVariable2PpiGuid               # PPI ALWAYS_CONSUMED
  gEfiPeiReadOnlyVariablePpiGuid                # PPI ALWAYS_PRODUCED

[Depex]
  gEfiPeiReadOnlyVariable2PpiGuid
