## @file
#  Capsule library instance for DXE_DRIVER.
#
#  Capsule library instance for DXE_DRIVER module types.
#
#  Copyright (c) 2016 - 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                      = 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 IPF 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

[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

[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
