## @file
#  This module produces Boot Manager Policy protocol.
#
#  Copyright (c) 2015 - 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                      = BootManagerPolicyDxe
  MODULE_UNI_FILE                = BootManagerPolicyDxe.uni
  FILE_GUID                      = E622443C-284E-4b47-A984-FD66B482DAC0
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = BootManagerPolicyInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  BootManagerPolicyDxe.c


[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseMemoryLib
  MemoryAllocationLib
  UefiLib
  DevicePathLib
  DebugLib
  UefiDriverEntryPoint
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  UefiBootManagerLib

[Guids]
  gEfiBootManagerPolicyConnectAllGuid           ## CONSUMES ## GUID
  gEfiBootManagerPolicyNetworkGuid              ## CONSUMES ## GUID
  gEfiBootManagerPolicyConsoleGuid              ## CONSUMES ## GUID

[Protocols]
  gEfiManagedNetworkServiceBindingProtocolGuid  ## CONSUMES
  gEfiBootManagerPolicyProtocolGuid             ## PRODUCES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  BootManagerPolicyDxeExtra.uni
