1## @file
2#  Provides variable service.
3#
4#  This module installs variable arch protocol and variable write arch protocol to provide
5#  variable services: SetVariable, GetVariable, GetNextVariableName and QueryVariableInfo.
6#
7#  Caution: This module requires additional review when modified.
8#  This driver will have external input - variable data.
9#  This external input must be validated carefully to avoid security issues such as
10#  buffer overflow or integer overflow.
11#
12# Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
13# This program and the accompanying materials
14# are licensed and made available under the terms and conditions of the BSD License
15# which accompanies this distribution. The full text of the license may be found at
16# http://opensource.org/licenses/bsd-license.php
17# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
18# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19#
20##
21
22[Defines]
23  INF_VERSION                    = 0x00010005
24  BASE_NAME                      = VariableRuntimeDxe
25  MODULE_UNI_FILE                = VariableRuntimeDxe.uni
26  FILE_GUID                      = CBD2E4D5-7068-4FF5-B462-9822B4AD8D60
27  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
28  VERSION_STRING                 = 1.0
29  ENTRY_POINT                    = VariableServiceInitialize
30
31#
32# The following information is for reference only and not required by the build tools.
33#
34#  VALID_ARCHITECTURES           = IA32 X64 EBC
35#
36#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  VariableClassAddressChangeEvent
37#
38
39[Sources]
40  Reclaim.c
41  Variable.c
42  VariableDxe.c
43  Variable.h
44  Measurement.c
45  VarCheck.c
46  VariableExLib.c
47
48[Packages]
49  MdePkg/MdePkg.dec
50  MdeModulePkg/MdeModulePkg.dec
51
52[LibraryClasses]
53  MemoryAllocationLib
54  BaseLib
55  SynchronizationLib
56  UefiLib
57  UefiBootServicesTableLib
58  BaseMemoryLib
59  DebugLib
60  UefiRuntimeLib
61  DxeServicesTableLib
62  UefiDriverEntryPoint
63  PcdLib
64  HobLib
65  TpmMeasurementLib
66  AuthVariableLib
67  VarCheckLib
68
69[Protocols]
70  gEfiFirmwareVolumeBlockProtocolGuid           ## CONSUMES
71  ## CONSUMES
72  ## NOTIFY
73  gEfiFaultTolerantWriteProtocolGuid
74  gEfiVariableWriteArchProtocolGuid             ## PRODUCES
75  gEfiVariableArchProtocolGuid                  ## PRODUCES
76  gEdkiiVariableLockProtocolGuid                ## PRODUCES
77  gEdkiiVarCheckProtocolGuid                    ## PRODUCES
78
79[Guids]
80  ## PRODUCES             ## GUID # Signature of Variable store header
81  ## CONSUMES             ## GUID # Signature of Variable store header
82  ## SOMETIMES_CONSUMES   ## HOB
83  ## SOMETIMES_PRODUCES   ## SystemTable
84  gEfiAuthenticatedVariableGuid
85
86  ## PRODUCES             ## GUID # Signature of Variable store header
87  ## CONSUMES             ## GUID # Signature of Variable store header
88  ## SOMETIMES_CONSUMES   ## HOB
89  ## SOMETIMES_PRODUCES   ## SystemTable
90  gEfiVariableGuid
91
92  ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLang"
93  ## SOMETIMES_PRODUCES   ## Variable:L"PlatformLang"
94  ## SOMETIMES_CONSUMES   ## Variable:L"Lang"
95  ## SOMETIMES_PRODUCES   ## Variable:L"Lang"
96  gEfiGlobalVariableGuid
97
98  gEfiEventVirtualAddressChangeGuid             ## CONSUMES             ## Event
99  gEfiSystemNvDataFvGuid                        ## CONSUMES             ## GUID
100  gEfiEndOfDxeEventGroupGuid                    ## CONSUMES             ## Event
101  gEdkiiFaultTolerantWriteGuid                  ## SOMETIMES_CONSUMES   ## HOB
102  gEdkiiVarErrorFlagGuid                        ## CONSUMES             ## GUID
103
104  ## SOMETIMES_CONSUMES   ## Variable:L"DB"
105  ## SOMETIMES_CONSUMES   ## Variable:L"DBX"
106  gEfiImageSecurityDatabaseGuid
107
108[Pcd]
109  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize      ## CONSUMES
110  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase      ## SOMETIMES_CONSUMES
111  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64    ## CONSUMES
112  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize                 ## CONSUMES
113  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize             ## CONSUMES
114  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize    ## CONSUMES
115  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize               ## CONSUMES
116  gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                ## CONSUMES
117  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES
118  gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES
119  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe  ## CONSUMES
120
121[FeaturePcd]
122  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics  ## CONSUMES # statistic the information of variable.
123  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
124
125[Depex]
126  TRUE
127
128[UserExtensions.TianoCore."ExtraFiles"]
129  VariableRuntimeDxeExtra.uni
130