## @file
#  PEI LockBox library instance.
#
#  Copyright (c) 2010 - 2014, 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                      = SmmLockBoxPeiLib
  MODULE_UNI_FILE                = SmmLockBoxPeiLib.uni
  FILE_GUID                      = 5F5E6140-E7BA-4bd6-B85F-236B5BCD8E1E
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LockBoxLib|PEIM

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 
#

[Sources]
  SmmLockBoxPeiLib.c
  SmmLockBoxLibPrivate.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  PeiServicesTablePointerLib
  PeiServicesLib
  BaseLib
  BaseMemoryLib
  HobLib
  DebugLib

[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode  ## CONSUMES

[Guids]
  ## SOMETIMES_CONSUMES ## UNDEFINED # Used to do smm communication
  ## SOMETIMES_CONSUMES ## UNDEFINED # SmmSystemTable
  gEfiSmmLockBoxCommunicationGuid
  gEfiAcpiVariableGuid                  ## SOMETIMES_CONSUMES ## HOB

[Ppis]
  gEfiPeiSmmCommunicationPpiGuid        ## CONSUMES
  gPeiSmmAccessPpiGuid                  ## SOMETIMES_CONSUMES
