#/** @file
# Component description file for Variable module.
#
# This module installs three EFI_RUNTIME_SERVICES: SetVariable, GetVariable, GetNextVariableName.
# 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                      = VariableRuntimeDxe
  FILE_GUID                      = CBD2E4D5-7068-4FF5-B462-9822B4AD8D60
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = VariableServiceInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#
#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  VariableClassAddressChangeEvent
#

[Sources.common]
  Reclaim.c
  Variable.c
  Variable.h

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  MemoryAllocationLib
  BaseLib
  SynchronizationLib
  UefiLib
  UefiBootServicesTableLib
  BaseMemoryLib
  DebugLib
  UefiRuntimeLib
  DxeServicesTableLib
  UefiDriverEntryPoint
  PcdLib

[Protocols]
  gEfiFirmwareVolumeBlockProtocolGuid           ## SOMETIMES_CONSUMES
  gEfiVariableWriteArchProtocolGuid             ## ALWAYS_PRODUCES
  gEfiVariableArchProtocolGuid                  ## ALWAYS_PRODUCES
  gEfiFaultTolerantWriteProtocolGuid            ## SOMETIMES_CONSUMES

[Guids]
  gEfiVariableGuid                              ## PRODUCES ## Configuration Table Guid 
  gEfiGlobalVariableGuid                        ## PRODUCES ## Variable Guid
  gEfiEventVirtualAddressChangeGuid             ## PRODUCES ## Event

[Pcd.common]
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize
  gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize
  
[FeaturePcd.common]
  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics  ## SOMETIME_CONSUMES (statistic the information of variable.)

[Depex]
  gEfiFirmwareVolumeBlockProtocolGuid AND gEfiFaultTolerantWriteProtocolGuid

# [Event]
#   ##
#   # Event will be signaled for VIRTUAL_ADDRESS_CHANGE event.
#   #
#   EVENT_TYPE_NOTIFY_SIGNAL                    ## PRODUCES
#
#