## @file
# Full functionality QemuFwCfgS3Lib instance, for DXE phase modules.
#
# Copyright (C) 2017, Red Hat, Inc.
#
# 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                    = 1.25
  BASE_NAME                      = DxeQemuFwCfgS3LibFwCfg
  FILE_GUID                      = C5DE76EB-E8DE-4057-A487-C5A09AB039AB
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = QemuFwCfgS3Lib|DXE_DRIVER DXE_RUNTIME_DRIVER

#
# The following information is for reference only and not required by the build
# tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 ARM AARCH64 IPF EBC
#

[Sources]
  QemuFwCfgS3Dxe.c
  QemuFwCfgS3PeiDxe.c

[Packages]
  MdePkg/MdePkg.dec
  OvmfPkg/OvmfPkg.dec

[LibraryClasses]
  BaseLib
  DebugLib
  MemoryAllocationLib
  QemuFwCfgLib
  UefiBootServicesTableLib

[Protocols]
  gEfiS3SaveStateProtocolGuid ## SOMETIMES_CONSUMES
