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 - 2016, 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  TcgMorLockDxe.c
46  VarCheck.c
47  VariableExLib.c
48
49[Packages]
50  MdePkg/MdePkg.dec
51  MdeModulePkg/MdeModulePkg.dec
52
53[LibraryClasses]
54  MemoryAllocationLib
55  BaseLib
56  SynchronizationLib
57  UefiLib
58  UefiBootServicesTableLib
59  BaseMemoryLib
60  DebugLib
61  UefiRuntimeLib
62  DxeServicesTableLib
63  UefiDriverEntryPoint
64  PcdLib
65  HobLib
66  TpmMeasurementLib
67  AuthVariableLib
68  VarCheckLib
69
70[Protocols]
71  gEfiFirmwareVolumeBlockProtocolGuid           ## CONSUMES
72  ## CONSUMES
73  ## NOTIFY
74  gEfiFaultTolerantWriteProtocolGuid
75  gEfiVariableWriteArchProtocolGuid             ## PRODUCES
76  gEfiVariableArchProtocolGuid                  ## PRODUCES
77  gEdkiiVariableLockProtocolGuid                ## PRODUCES
78  gEdkiiVarCheckProtocolGuid                    ## PRODUCES
79
80[Guids]
81  ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
82  ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
83  ## SOMETIMES_CONSUMES   ## HOB
84  ## SOMETIMES_PRODUCES   ## SystemTable
85  gEfiAuthenticatedVariableGuid
86
87  ## SOMETIMES_CONSUMES   ## GUID # Signature of Variable store header
88  ## SOMETIMES_PRODUCES   ## GUID # Signature of Variable store header
89  ## SOMETIMES_CONSUMES   ## HOB
90  ## SOMETIMES_PRODUCES   ## SystemTable
91  gEfiVariableGuid
92
93  ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLang"
94  ## SOMETIMES_PRODUCES   ## Variable:L"PlatformLang"
95  ## SOMETIMES_CONSUMES   ## Variable:L"Lang"
96  ## SOMETIMES_PRODUCES   ## Variable:L"Lang"
97  gEfiGlobalVariableGuid
98
99  gEfiMemoryOverwriteControlDataGuid            ## SOMETIMES_CONSUMES   ## Variable:L"MemoryOverwriteRequestControl"
100  gEfiMemoryOverwriteRequestControlLockGuid     ## SOMETIMES_PRODUCES   ## Variable:L"MemoryOverwriteRequestControlLock"
101
102  gEfiEventVirtualAddressChangeGuid             ## CONSUMES             ## Event
103  gEfiSystemNvDataFvGuid                        ## CONSUMES             ## GUID
104  gEfiEndOfDxeEventGroupGuid                    ## CONSUMES             ## Event
105  gEdkiiFaultTolerantWriteGuid                  ## SOMETIMES_CONSUMES   ## HOB
106
107  ## SOMETIMES_CONSUMES   ## Variable:L"VarErrorFlag"
108  ## SOMETIMES_PRODUCES   ## Variable:L"VarErrorFlag"
109  gEdkiiVarErrorFlagGuid
110
111  ## SOMETIMES_CONSUMES   ## Variable:L"DB"
112  ## SOMETIMES_CONSUMES   ## Variable:L"DBX"
113  gEfiImageSecurityDatabaseGuid
114
115[Pcd]
116  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize      ## CONSUMES
117  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase      ## SOMETIMES_CONSUMES
118  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64    ## CONSUMES
119  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize                 ## CONSUMES
120  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize             ## CONSUMES
121  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize    ## CONSUMES
122  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize               ## CONSUMES
123  gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize                ## CONSUMES
124  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize           ## CONSUMES
125  gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize  ## CONSUMES
126  gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe  ## CONSUMES
127
128[FeaturePcd]
129  gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics  ## CONSUMES # statistic the information of variable.
130  gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
131
132[Depex]
133  TRUE
134
135[UserExtensions.TianoCore."ExtraFiles"]
136  VariableRuntimeDxeExtra.uni
137