## @file
#  Provides TPM 2.0 TIS functions
#
#  This library is TPM 2.0 device router. Platform can register multi TPM 2.0 instance to
#  it via PcdTpmInstanceGuid. Platform need make choice that which one will be final one.
#  At most one TPM 2.0 instance can be finally registered, and other will return unsupported.
#
# Copyright (c) 2013 - 2016, 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                      = Tpm2DeviceLibRouterDxe
  MODULE_UNI_FILE                = Tpm2DeviceLibRouterDxe.uni
  FILE_GUID                      = C3D69D87-5200-4aab-A6DB-2569BA1A92FC
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = Tpm2DeviceLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER 

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  Tpm2DeviceLibRouterDxe.c

[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  PcdLib

[Pcd]
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmInstanceGuid           ## CONSUMES
