#/** @file
#  
#  General BDS defines and produce general interfaces for platform BDS driver including:
#  1) BDS boot policy interface;
#  2) BDS boot device connect interface;
#  3) BDS Misc interfaces for mainting boot variable, ouput string, etc.
#  
#  Copyright (c) 2007 - 2008, Intel Corporation. <BR>
#  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                      = GenericBdsLib
  FILE_GUID                      = e405ec31-ccaa-4dd4-83e8-0aec01703f7e
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = GenericBdsLib|DXE_DRIVER UEFI_APPLICATION 

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  DevicePath.c
  Performance.c
  BdsConnect.c
  BdsMisc.c
  BdsConsole.c
  BdsBoot.c
  InternalBdsLib.h

[Sources.IPF]
  Ipf/ShadowRom.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  #
  #This dependency is because of gEfiLegacyBiosProtocolGuid. It may be removed if a Library class is created to
  #abstract away definition in Framework specification or PI spec incorporates the Legacy Booting Protocols.
  #
  IntelFrameworkPkg/IntelFrameworkPkg.dec


[LibraryClasses]
  DevicePathLib
  PeCoffGetEntryPointLib
  BaseLib
  HobLib
  UefiRuntimeServicesTableLib
  DxeServicesTableLib
  MemoryAllocationLib
  UefiLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  PrintLib
  PcdLib
  PerformanceLib
  TimerLib
  PcdLib
  DxeServicesLib

[Guids]
  gEfiVT100PlusGuid                             # ALWAYS_CONSUMED
  gEfiMemoryTypeInformationGuid                 # ALWAYS_CONSUMED
  gEfiVTUTF8Guid                                # ALWAYS_CONSUMED
  gEfiShellFileGuid                             # ALWAYS_CONSUMED
  gEfiGlobalVariableGuid                        # ALWAYS_CONSUMED
  gEfiVT100Guid                                 # ALWAYS_CONSUMED
  gEfiFileInfoGuid                              # ALWAYS_CONSUMED
  gEfiPcAnsiGuid                                # ALWAYS_CONSUMED
  gEfiGenericPlatformVariableGuid               # ALWAYS_CONSUMED
  gEfiUartDevicePathGuid                        # ALWAYS_CONSUMED
  gEfiSasDevicePathGuid                         # ALWAYS_CONSUMED
  
[Protocols]
  gEfiSimpleFileSystemProtocolGuid              # PROTOCOL ALWAYS_CONSUMED
  gEfiSimpleTextOutProtocolGuid                 # PROTOCOL ALWAYS_CONSUMED
  gEfiPciIoProtocolGuid                         # PROTOCOL ALWAYS_CONSUMED
  gEfiLoadedImageProtocolGuid                   # PROTOCOL ALWAYS_CONSUMED
  gEfiDevicePathToTextProtocolGuid              # PROTOCOL ALWAYS_CONSUMED
  gEfiSimpleNetworkProtocolGuid                 # PROTOCOL ALWAYS_CONSUMED
  gEfiDebugPortProtocolGuid                     # PROTOCOL ALWAYS_CONSUMED
  gEfiSimpleTextInProtocolGuid                  # PROTOCOL ALWAYS_CONSUMED
  gEfiBlockIoProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiFirmwareVolume2ProtocolGuid               # PROTOCOL ALWAYS_CONSUMED
  gEfiLegacyBiosProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
  gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
  gEfiFirmwareVolumeDispatchProtocolGuid        # PROTOCOL ALWAYS_CONSUMED
  gEfiAcpiS3SaveProtocolGuid
  gEfiGraphicsOutputProtocolGuid                # PROTOCOL ALWAYS_CONSUMED
  gEfiUgaDrawProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiConsoleControlProtocolGuid                # PROTOCOL ALWAYS_CONSUMED
  gEfiOEMBadgingProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
  gEfiHiiFontProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED

[FeaturePcd.common]
  gEfiMdePkgTokenSpaceGuid.PcdUgaConsumeSupport

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdPlatformBootTimeOutDefault
  gEfiMdeModulePkgTokenSpaceGuid.PcdDefaultBootFileName