## @file
#  Produces the CPU I/O 2 Protocol by using the services of the I/O Library.
#
# Copyright (c) 2009 - 2016, 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                      = CpuIo2Dxe
  MODULE_UNI_FILE                = CpuIo2Dxe.uni
  FILE_GUID                      = A19B1FE7-C1BC-49F8-875F-54A5D542443F
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0  
  ENTRY_POINT                    = CpuIo2Initialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  CpuIo2Dxe.c
  CpuIo2Dxe.h
  IoFifo.h
  
[Sources.IA32]
  Ia32/IoFifo.nasm
  Ia32/IoFifo.asm

[Sources.X64]
  X64/IoFifo.nasm
  X64/IoFifo.asm

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  BaseLib
  DebugLib
  IoLib
  UefiBootServicesTableLib

[Protocols]
  gEfiCpuIo2ProtocolGuid                         ## PRODUCES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  CpuIo2DxeExtra.uni
