## @file
#  Provides some common functions for the TCG feature
#
#  This instance provides basic TPM Interface Specification (TIS) functions 
#  and TPM hashall function.
#
# Copyright (c) 2006 - 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                      = TpmCommLib
  MODULE_UNI_FILE                = TpmCommLib.uni
  FILE_GUID                      = 7d9fe32e-a6a9-4cdf-abff-10cc7f22e1c9
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = TpmCommLib|DXE_DRIVER UEFI_DRIVER PEIM DXE_SMM_DRIVER

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  TisPc.c
  TpmComm.c
  CommonHeader.h

[Packages]
  MdePkg/MdePkg.dec
  SecurityPkg/SecurityPkg.dec
  CryptoPkg/CryptoPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  IoLib
  TimerLib
  BaseCryptLib
  MemoryAllocationLib
  DebugLib

