## @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.  For EBC, I/O port requests
#  ASSERT().
#
#  Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
#  Copyright (c) 2017, AMD Incorporated. 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 EBC IPF ARM AARCH64
#

[Sources]
  IoLibMmioBuffer.c
  BaseIoLibIntrinsicInternal.h
  IoHighLevel.c

[Sources.IA32]
  IoLibGcc.c    | GCC
  IoLibMsc.c    | MSFT
  IoLibIcc.c    | INTEL
  IoLib.c
  Ia32/IoFifo.nasm
  Ia32/IoFifo.asm

[Sources.X64]
  IoLibGcc.c    | GCC
  IoLibMsc.c    | MSFT
  IoLibIcc.c    | INTEL
  IoLib.c
  X64/IoFifo.nasm
  X64/IoFifo.asm

[Sources.EBC]
  IoLibEbc.c
  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

