## @file
#  Provides a DTPM instance for TPM 2.0 TIS/PTP.
#
#  This library can be registered to Tpm 2.0 device router, to be active TPM 2.0
#  engine, based on platform setting. It supports both TIS (TPM Interface Specification)
#  and PTP (Platform TPM Profile) functions.
#
# 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                      = Tpm2InstanceLibDTpm
  MODULE_UNI_FILE                = Tpm2InstanceLibDTpm.uni
  FILE_GUID                      = 286BF25A-C2C3-408c-B3B4-25E6758B7317
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL
  CONSTRUCTOR                    = Tpm2InstanceLibDTpmConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  Tpm2Tis.c
  Tpm2Ptp.c
  Tpm2InstanceLibDTpm.c

[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  IoLib
  TimerLib
  DebugLib

[Pcd]
  gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress        ## CONSUMES
