## @file
#  Instance of I/O Library using compiler intrinsics.
#
#  I/O Library that uses compiler intrinsics to perform IN and OUT instructions
#  for IA-32 and x64.  On IPF, I/O port requests are translated into MMIO requests.
#  MMIO requests are forwarded directly to memory.
#
#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
#  Portions copyright (c) 2008 - 2009, Apple Inc. 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                      = BaseIoLibIntrinsic
  MODULE_UNI_FILE                = BaseIoLibIntrinsic.uni
  FILE_GUID                      = 926c9cd0-4bb8-479b-9ac4-8a2a23f85307
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = IoLib 


#
#  VALID_ARCHITECTURES           = IA32 X64 IPF ARM AARCH64
#

[Sources]
  IoLibMmioBuffer.c
  BaseIoLibIntrinsicInternal.h
  IoHighLevel.c

[Sources.IA32]
  IoLibGcc.c    | GCC
  IoLibMsc.c    | MSFT
  IoLibIcc.c    | INTEL
  IoLib.c

[Sources.X64]
  IoLibGcc.c    | GCC
  IoLibMsc.c    | MSFT
  IoLibIcc.c    | INTEL
  IoLib.c

[Sources.IPF]
  IoLibIpf.c

[Sources.ARM]
  IoLibArm.c

[Sources.AARCH64]
  IoLibArm.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  DebugLib
  BaseLib

[LibraryClasses.IPF]
  PcdLib

[Pcd.IPF]
  gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf  ## SOMETIMES_CONSUMES

