#/** @file
# Serial I/O driver
#
# Our DriverBinding member functions operate on the handles
#  created by the Unix Bus driver
# Copyright (c) 2006 - 2007, Intel Corporation
#
#  All rights reserved. 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                      = UnixSerialIo
  FILE_GUID                      = 600F2BF2-63A7-48ca-9FD0-A3450B87EE05
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = InitializeUnixSerialIo

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#
#  DRIVER_BINDING                =  gUnixSerialIoDriverBinding                   
#  COMPONENT_NAME                =  gUnixSerialIoComponentName                   
#

[Sources.common]
  ComponentName.c
  UnixSerialIo.c
  UnixSerialIo.h
  EntryPoint.c


[Packages]
  MdePkg/MdePkg.dec
  UnixPkg/UnixPkg.dec


[LibraryClasses]
  MemoryAllocationLib
  DevicePathLib
  UefiBootServicesTableLib
  BaseMemoryLib
  UefiLib
  UefiDriverEntryPoint
  BaseLib
  DebugLib


[Guids]
  gEfiUnixSerialPortGuid                       # ALWAYS_CONSUMED


[Protocols]
  gEfiSerialIoProtocolGuid                      # PROTOCOL BY_START
  gEfiDevicePathProtocolGuid                    # PROTOCOL TO_START
  gEfiUnixIoProtocolGuid                        # PROTOCOL TO_START

