#/** @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 ReadOnlyVariable2ToReadOnlyVariableThunk module.

#
# Copyright (c) 2006 - 2007, 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                      = ReadOnlyVariableOnReadOnlyVariable2Thunk
  FILE_GUID                      = 0FDB764B-E669-4c69-83AC-5EDD99A2711E
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = PeimInitializeReadOnlyVariable

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  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
