## @file
# UEFI Instance of SAL Library Class.
#
# This instance of SAL library retrieves the SAL Entry Point from the SAL System Table
# register in the EFI System Confguration Table.
#
# Copyright (c) 2007 - 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                      = UefiSalLib
  MODULE_UNI_FILE                = UefiSalLib.uni
  FILE_GUID                      = 4ABCFD77-4A33-4089-B003-5F09BCA940A2
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = SalLib|UEFI_DRIVER UEFI_APPLICATION

  CONSTRUCTOR                    = UefiSalLibConstructor
#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IPF
#

[Sources]
  UefiSalLib.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiLib
  DebugLib

[Guids]
  gEfiSalSystemTableGuid        ## CONSUMES ## SystemTable

