## @file
#  Implementation for PlatformBootManagerLib library class interfaces.
#
#  Copyright (C) 2015-2016, Red Hat, Inc.
#  Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
#  Copyright (c) 2007 - 2014, 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                      = 469184E8-FADA-41E4-8823-012CA19B40D4
  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           = ARM AARCH64
#

[Sources]
  PlatformBm.c
  QemuKernel.c

[Packages]
  ArmVirtPkg/ArmVirtPkg.dec
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec
  OvmfPkg/OvmfPkg.dec
  ShellPkg/ShellPkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  BootLogoLib
  DebugLib
  DevicePathLib
  MemoryAllocationLib
  PcdLib
  PrintLib
  QemuBootOrderLib
  QemuFwCfgLib
  UefiBootManagerLib
  UefiBootServicesTableLib
  UefiLib
  UefiRuntimeServicesTableLib

[FixedPcd]
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits

[Pcd]
  gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer
  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut

[Guids]
  gEfiFileInfoGuid
  gEfiFileSystemInfoGuid
  gEfiFileSystemVolumeLabelInfoIdGuid
  gEfiEndOfDxeEventGroupGuid
  gRootBridgesConnectedEventGroupGuid
  gUefiShellFileGuid

[Protocols]
  gEfiDevicePathProtocolGuid
  gEfiFirmwareVolume2ProtocolGuid
  gEfiGraphicsOutputProtocolGuid
  gEfiLoadedImageProtocolGuid
  gEfiPciRootBridgeIoProtocolGuid
  gEfiSimpleFileSystemProtocolGuid
