#/** @file
# Uga driver
#
# UGA is short hand for Universal Graphics Abstraction protocol.
#  This file is a verision of UgaIo the uses UnixThunk system calls as an IO
#  abstraction. For a PCI device UnixIo would be replaced with
#  a PCI IO abstraction that abstracted a specific PCI device.
# Copyright (c) 2006, 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                      = UnixUga
  FILE_GUID                      = f33cad86-8985-11db-8040-0040d02b1835
  MODULE_TYPE                    = UEFI_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = InitializeUnixUga

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#
#  DRIVER_BINDING                =  gUnixUgaDriverBinding                        
#  COMPONENT_NAME                =  gUnixUgaComponentName                        
#

[Sources.common]
  ComponentName.c
  UnixUgaScreen.c
  UnixUgaDriver.c
  UnixUgaInput.c
  UnixUga.h
  EntryPoint.c


[Packages]
  MdePkg/MdePkg.dec
  UnixPkg/UnixPkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  BaseMemoryLib
  UefiLib
  UefiDriverEntryPoint
  BaseLib
  DebugLib


[Guids]
  gEfiEventExitBootServicesGuid                 # SOMETIMES_CONSUMED  Create Event: EVENT_GROUP_GUID
  gEfiUnixUgaGuid                              # ALWAYS_CONSUMED


[Protocols]
  gEfiSimpleTextInProtocolGuid                  # PROTOCOL BY_START
  gEfiUnixUgaIoProtocolGuid                     # PROTOCOL BY_START
  gEfiUgaDrawProtocolGuid                       # PROTOCOL BY_START
  gEfiUnixIoProtocolGuid                        # PROTOCOL TO_START

