## @file
#  SMM LockBox library instance.
#
#  Copyright (c) 2010 - 2018, 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                      = SmmLockBoxSmmLib
  MODULE_UNI_FILE                = SmmLockBoxSmmLib.uni
  FILE_GUID                      = E04894D6-290D-4171-A362-0ACFD939F3C8
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = LockBoxLib|DXE_SMM_DRIVER
  CONSTRUCTOR                    = SmmLockBoxSmmConstructor
  DESTRUCTOR                     = SmmLockBoxSmmDestructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  SmmLockBoxSmmLib.c
  SmmLockBoxLibPrivate.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  SmmServicesTableLib
  BaseLib
  DebugLib

[Protocols]
  gEfiSmmReadyToLockProtocolGuid    ## NOTIFY
  gEfiSmmEndOfDxeProtocolGuid       ## NOTIFY
  gEfiSmmSxDispatch2ProtocolGuid    ## NOTIFY

[Guids]
  ## SOMETIMES_CONSUMES   ## UNDEFINED # SmmSystemTable
  ## SOMETIMES_PRODUCES   ## UNDEFINED # SmmSystemTable
  gEfiSmmLockBoxCommunicationGuid
  ## CONSUMES             ## UNDEFINED # Protocol notify
  gEdkiiEndOfS3ResumeGuid

