## @file
#  Capsule library instance for DXE_DRIVER.
#
#  Capsule library instance for DXE_DRIVER module types.
#
#  Copyright (c) 2016 - 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                      = DxeCapsuleLib
  MODULE_UNI_FILE                = DxeCapsuleLib.uni
  FILE_GUID                      = 534E35DE-8EB3-47b3-A4E0-72A571E50733
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = CapsuleLib|DXE_DRIVER UEFI_APPLICATION
  CONSTRUCTOR                    = DxeCapsuleLibConstructor
  DESTRUCTOR                     = DxeCapsuleLibDestructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  DxeCapsuleLib.c
  DxeCapsuleProcessLib.c
  DxeCapsuleReportLib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  MemoryAllocationLib
  DxeServicesTableLib
  UefiBootServicesTableLib
  DevicePathLib
  ReportStatusCodeLib
  PrintLib
  HobLib
  BmpSupportLib
  DisplayUpdateProgressLib

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleMax                               ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdSystemRebootAfterCapsuleProcessFlag      ## CONSUMES

  gEfiMdeModulePkgTokenSpaceGuid.PcdStatusCodeSubClassCapsule                ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesBegin    ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeProcessCapsulesEnd      ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdatingFirmware        ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareSuccess   ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeUpdateFirmwareFailed    ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCapsuleStatusCodeResettingSystem         ## CONSUMES

[Protocols]
  gEsrtManagementProtocolGuid                   ## CONSUMES
  gEfiFirmwareManagementProtocolGuid            ## CONSUMES
  gEdkiiVariableLockProtocolGuid                ## SOMETIMES_CONSUMES
  gEdkiiFirmwareManagementProgressProtocolGuid  ## SOMETIMES_CONSUMES

[Guids]
  gEfiFmpCapsuleGuid                      ## SOMETIMES_CONSUMES ## GUID
  gWindowsUxCapsuleGuid                   ## SOMETIMES_CONSUMES ## GUID
  ## SOMETIMES_CONSUMES ## Variable:L"CapsuleMax"
  ## SOMETIMES_PRODUCES ## Variable:L"CapsuleMax"
  gEfiCapsuleReportGuid
  gEfiCapsuleVendorGuid                   ## SOMETIMES_CONSUMES ## Variable:L"CapsuleUpdateData"
  gEfiEndOfDxeEventGroupGuid              ## CONSUMES ## Event

[Depex]
  gEfiVariableWriteArchProtocolGuid
