## @file
#  Platform BDS customizations library.
#
#  Copyright (c) 2007 - 2018, 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 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
  SecurityPkg/SecurityPkg.dec

[LibraryClasses]
  BaseLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  PcdLib
  UefiBootManagerLib
  BootLogoLib
  DevicePathLib
  PciLib
  NvVarsFileLib
  QemuFwCfgLib
  QemuFwCfgS3Lib
  LoadLinuxLib
  QemuBootOrderLib
  ReportStatusCodeLib
  UefiLib
  Tcg2PhysicalPresenceLib

[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
