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 - 2019, Intel Corporation. All rights reserved.<BR>
13# SPDX-License-Identifier: BSD-2-Clause-Patent
14#
15##
16
17[Defines]
18  INF_VERSION                    = 0x00010005
19  BASE_NAME                      = VariableRuntimeDxe
20  MODULE_UNI_FILE                = VariableRuntimeDxe.uni
21  FILE_GUID                      = CBD2E4D5-7068-4FF5-B462-9822B4AD8D60
22  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
23  VERSION_STRING                 = 1.0
24  ENTRY_POINT                    = VariableServiceInitialize
25
26#
27# The following information is for reference only and not required by the build tools.
28#
29#  VALID_ARCHITECTURES           = IA32 X64 EBC
30#
31#  VIRTUAL_ADDRESS_MAP_CALLBACK  =  VariableClassAddressChangeEvent
32#
33
34[Sources]
35  Reclaim.c
36  Variable.c
37  VariableDxe.c
38  Variable.h
39  VariableNonVolatile.c
40  VariableNonVolatile.h
41  VariableParsing.c
42  VariableParsing.h
43  VariableRuntimeCache.c
44  VariableRuntimeCache.h
45  PrivilegePolymorphic.h
46  Measurement.c
47  TcgMorLockDxe.c
48  VarCheck.c
49  VariableExLib.c
50  SpeculationBarrierDxe.c
51
52[Packages]
53  MdePkg/MdePkg.dec
54  MdeModulePkg/MdeModulePkg.dec
55
56[LibraryClasses]
57  MemoryAllocationLib
58  BaseLib
59  SynchronizationLib
60  UefiLib
61  UefiBootServicesTableLib
62  BaseMemoryLib
63  DebugLib
64  UefiRuntimeLib
65  DxeServicesTableLib
66  UefiDriverEntryPoint
67  PcdLib
68  HobLib
69  TpmMeasurementLib
70  AuthVariableLib
71  VarCheckLib
72
73[Protocols]
74  gEfiFirmwareVolumeBlockProtocolGuid           ## CONSUMES
75  ## CONSUMES
76  ## NOTIFY
77  gEfiFaultTolerantWriteProtocolGuid
78  gEfiVariableWriteArchProtocolGuid             ## PRODUCES
79  gEfiVariableArchProtocolGuid                  ## PRODUCES
80  gEdkiiVariableLockProtocolGuid                ## PRODUCES
81  gEdkiiVarCheckProtocolGuid                    ## PRODUCES
82
83[Guids]
84  ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
85  ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
86  ## SOMETIMES_CONSUMES   ## HOB
87  ## SOMETIMES_PRODUCES   ## SystemTable
88  gEfiAuthenticatedVariableGuid
89
90  ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
91  ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
92  ## SOMETIMES_CONSUMES   ## HOB
93  ## SOMETIMES_PRODUCES   ## SystemTable
94  gEfiVariableGuid
95
96  ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLang"
97  ## SOMETIMES_PRODUCES   ## Variable:L"PlatformLang"
98  ## SOMETIMES_CONSUMES   ## Variable:L"Lang"
99  ## SOMETIMES_PRODUCES   ## Variable:L"Lang"
100  ## SOMETIMES_CONSUMES   ## Variable:L"PK"
101  ## SOMETIMES_CONSUMES   ## Variable:L"KEK"
102  ## SOMETIMES_CONSUMES   ## Variable:L"SecureBoot"
103  gEfiGlobalVariableGuid
104
105  gEfiMemoryOverwriteControlDataGuid            ## SOMETIMES_CONSUMES   ## Variable:L"MemoryOverwriteRequestControl"
106  gEfiMemoryOverwriteRequestControlLockGuid     ## SOMETIMES_PRODUCES   ## Variable:L"MemoryOverwriteRequestControlLock"
107
108  gEfiEventVirtualAddressChangeGuid             ## CONSUMES             ## Event
109  gEfiSystemNvDataFvGuid                        ## CONSUMES             ## GUID
110  gEfiEndOfDxeEventGroupGuid                    ## CONSUMES             ## Event
111  gEdkiiFaultTolerantWriteGuid                  ## SOMETIMES_CONSUMES   ## HOB
112
113  ## SOMETIMES_CONSUMES   ## Variable:L"VarErrorFlag"
114  ## SOMETIMES_PRODUCES   ## Variable:L"VarErrorFlag"
115  gEdkiiVarErrorFlagGuid
116
117  ## SOMETIMES_CONSUMES   ## Variable:L"db"
118  ## SOMETIMES_CONSUMES   ## Variable:L"dbx"
119  ## SOMETIMES_CONSUMES   ## Variable:L"dbt"
120  gEfiImageSecurityDatabaseGuid
121
122[Pcd]
123  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize      ## CONSUMES
124  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase      ## SOMETIMES_CONSUMES
125  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64    ## CONSUMES
126  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize                 ## CONSUMES
127  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize             ## CONSUMES
128  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize         ## CONSUMES
129  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize    ## CONSUMES
130  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize               ## CONSUMES
131  gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                ## CONSUMES
132  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES
133  gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES
134  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe  ## CONSUMES
135  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable         ## SOMETIMES_CONSUMES
136  gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved      ## SOMETIMES_CONSUMES
137
138[FeaturePcd]
139  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics  ## CONSUMES # statistic the information of variable.
140  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
141
142[Depex]
143  TRUE
144
145[UserExtensions.TianoCore."ExtraFiles"]
146  VariableRuntimeDxeExtra.uni
147