## @file
# SMM Instance of I/O Library using SMM CPU I/O 2 Protocol.
#
# I/O Library SMM implementation that uses SMM CPU I/O 2 Protocol for I/O
#  and MMIO operations.
# Copyright (c) 2009 - 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                      = SmmIoLibSmmCpuIo2
  MODULE_UNI_FILE                = SmmIoLibSmmCpuIo2.uni
  FILE_GUID                      = DEEEA15E-4A77-4513-BA75-71D26FEF78A1
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = IoLib|DXE_SMM_DRIVER SMM_CORE
  PI_SPECIFICATION_VERSION       = 0x0001000A

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  IoLibMmioBuffer.c
  SmmCpuIoLibInternal.h
  IoHighLevel.c
  IoLib.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  SmmServicesTableLib

[Depex.common.DXE_SMM_DRIVER]
  gEfiSmmCpuIo2ProtocolGuid

