#/** @file
# FvbService Library for UEFI drivers
#
# This library instance provide sevice functions to access Firmware Volume Block protocol.
# Copyright (c) 2006 - 2007, Intel Corporation
#
#  All rights reserved. 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                      = EdkFvbServiceLib
  FILE_GUID                      = bd4d540e-04b0-4b10-8fd5-4a7bb533cf67
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = FvbServiceLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  CONSTRUCTOR                    = FvbLibInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#
#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  FvbVirtualAddressChangeNotifyEvent
#

[Sources.common]
  Fvb.h

[Sources.Ia32]
  Ia32/Fvb.c

[Sources.X64]
  x64/Fvb.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses.IA32]
  UefiBootServicesTableLib
  UefiRuntimeLib
  BaseMemoryLib
  DebugLib
  BaseLib
  UefiLib

[LibraryClasses.X64]
  UefiBootServicesTableLib
  UefiRuntimeLib
  BaseMemoryLib
  DebugLib
  BaseLib
  UefiLib


[Protocols]
  gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL_NOTIFY SOMETIMES_CONSUMED

[Protocols.IA32]
  gEfiFvbExtensionProtocolGuid                  # PROTOCOL ALWAYS_CONSUMED
  gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_CONSUMED

[Protocols.X64]
  gEfiFvbExtensionProtocolGuid                  # PROTOCOL ALWAYS_CONSUMED
  gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_CONSUMED

