## @file
# Provides a secure platform-specific method to detect physically present user.
#
# Copyright (c) 2013 Intel Corporation.
#
# 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                      = PlatformSecureLib
  FILE_GUID                      = 38BB5221-F685-469f-846E-F1C508FC5F4A
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PlatformSecureLib|DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_DRIVER
  CONSTRUCTOR                    = PlatformSecureLibInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  PlatformSecureLib.c

[Packages]
  MdePkg/MdePkg.dec
  QuarkSocPkg/QuarkSocPkg.dec
  QuarkPlatformPkg/QuarkPlatformPkg.dec

[LibraryClasses]
  DebugLib
  PlatformHelperLib
  UefiBootServicesTableLib
  I2cLib

[Pcd]
  gQuarkPlatformTokenSpaceGuid.PcdPlatformType
  gQuarkPlatformTokenSpaceGuid.PcdUserIsPhysicallyPresent
