## @file
#  Platform BDS customizations library.
#
#  Copyright (c) 2007 - 2017, 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                      = PlatformBootManagerLib
  FILE_GUID                      = FB65006C-AC9F-4992-AD80-184B2BDBBD83
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PlatformBootManagerLib|DXE_DRIVER

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  BdsPlatform.c
  PlatformData.c
  QemuKernel.c
  BdsPlatform.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  SourceLevelDebugPkg/SourceLevelDebugPkg.dec
  OvmfPkg/OvmfPkg.dec

[LibraryClasses]
  BaseLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  PcdLib
  UefiBootManagerLib
  BootLogoLib
  DevicePathLib
  PciLib
  NvVarsFileLib
  QemuFwCfgLib
  QemuFwCfgS3Lib
  LoadLinuxLib
  QemuBootOrderLib
  UefiLib

[Pcd]
  gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashVariablesEnable
  gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut
  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile

[Pcd.IA32, Pcd.X64]
  gEfiMdePkgTokenSpaceGuid.PcdFSBClock

[Protocols]
  gEfiDecompressProtocolGuid
  gEfiPciRootBridgeIoProtocolGuid
  gEfiS3SaveStateProtocolGuid                   # PROTOCOL SOMETIMES_CONSUMED
  gEfiDxeSmmReadyToLockProtocolGuid             # PROTOCOL SOMETIMES_PRODUCED
  gEfiLoadedImageProtocolGuid                   # PROTOCOL SOMETIMES_PRODUCED
  gEfiFirmwareVolume2ProtocolGuid               # PROTOCOL SOMETIMES_CONSUMED

[Guids]
  gEfiXenInfoGuid
  gEfiEndOfDxeEventGroupGuid
  gRootBridgesConnectedEventGroupGuid
