-#/** @file\r
-# Component description file for Variable module.\r
+## @file\r
+# Provides variable service.\r
#\r
-# This module installs three EFI_RUNTIME_SERVICES: SetVariable, GetVariable, GetNextVariableName.\r
-# Copyright (c) 2006 - 2007, Intel Corporation\r
+# This module installs variable arch protocol and variable write arch protocol to provide\r
+# variable services: SetVariable, GetVariable, GetNextVariableName and QueryVariableInfo.\r
#\r
-# All rights reserved. This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# Caution: This module requires additional review when modified.\r
+# This driver will have external input - variable data.\r
+# This external input must be validated carefully to avoid security issues such as\r
+# buffer overflow or integer overflow.\r
#\r
+# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
-#**/\r
+##\r
\r
[Defines]\r
INF_VERSION = 0x00010005\r
BASE_NAME = VariableRuntimeDxe\r
+ MODULE_UNI_FILE = VariableRuntimeDxe.uni\r
FILE_GUID = CBD2E4D5-7068-4FF5-B462-9822B4AD8D60\r
MODULE_TYPE = DXE_RUNTIME_DRIVER\r
VERSION_STRING = 1.0\r
- EDK_RELEASE_VERSION = 0x00020000\r
- EFI_SPECIFICATION_VERSION = 0x00020000\r
-\r
ENTRY_POINT = VariableServiceInitialize\r
\r
#\r
# The following information is for reference only and not required by the build tools.\r
#\r
-# VALID_ARCHITECTURES = IA32 X64\r
+# VALID_ARCHITECTURES = IA32 X64 EBC\r
#\r
# VIRTUAL_ADDRESS_MAP_CALLBACK = VariableClassAddressChangeEvent\r
#\r
\r
-[Sources.common]\r
- InitVariable.c\r
- reclaim.c\r
+[Sources]\r
+ Reclaim.c\r
Variable.c\r
+ VariableDxe.c\r
Variable.h\r
+ VariableParsing.c\r
+ VariableParsing.h\r
+ PrivilegePolymorphic.h\r
+ Measurement.c\r
+ TcgMorLockDxe.c\r
+ VarCheck.c\r
+ VariableExLib.c\r
+ SpeculationBarrierDxe.c\r
\r
[Packages]\r
MdePkg/MdePkg.dec\r
[LibraryClasses]\r
MemoryAllocationLib\r
BaseLib\r
+ SynchronizationLib\r
UefiLib\r
UefiBootServicesTableLib\r
- FvbServiceLib\r
BaseMemoryLib\r
DebugLib\r
UefiRuntimeLib\r
UefiDriverEntryPoint\r
PcdLib\r
HobLib\r
+ TpmMeasurementLib\r
+ AuthVariableLib\r
+ VarCheckLib\r
\r
[Protocols]\r
- gEfiFirmwareVolumeBlockProtocolGuid # PROTOCOL SOMETIMES_CONSUMED\r
- gEfiFaultTolerantWriteLiteProtocolGuid # PROTOCOL SOMETIMES_CONSUMED\r
- gEfiVariableWriteArchProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
- gEfiVariableArchProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
+ gEfiFirmwareVolumeBlockProtocolGuid ## CONSUMES\r
+ ## CONSUMES\r
+ ## NOTIFY\r
+ gEfiFaultTolerantWriteProtocolGuid\r
+ gEfiVariableWriteArchProtocolGuid ## PRODUCES\r
+ gEfiVariableArchProtocolGuid ## PRODUCES\r
+ gEdkiiVariableLockProtocolGuid ## PRODUCES\r
+ gEdkiiVarCheckProtocolGuid ## PRODUCES\r
\r
[Guids]\r
- gEfiVariableInfoGuid\r
+ ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header\r
+ ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header\r
+ ## SOMETIMES_CONSUMES ## HOB\r
+ ## SOMETIMES_PRODUCES ## SystemTable\r
+ gEfiAuthenticatedVariableGuid\r
+\r
+ ## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header\r
+ ## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header\r
+ ## SOMETIMES_CONSUMES ## HOB\r
+ ## SOMETIMES_PRODUCES ## SystemTable\r
+ gEfiVariableGuid\r
+\r
+ ## SOMETIMES_CONSUMES ## Variable:L"PlatformLang"\r
+ ## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"Lang"\r
+ ## SOMETIMES_PRODUCES ## Variable:L"Lang"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"PK"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"KEK"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"SecureBoot"\r
gEfiGlobalVariableGuid\r
\r
-[Pcd.common]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase\r
- \r
-[FeaturePcd.common]\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics\r
+ gEfiMemoryOverwriteControlDataGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"\r
+ gEfiMemoryOverwriteRequestControlLockGuid ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControlLock"\r
+\r
+ gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event\r
+ gEfiSystemNvDataFvGuid ## CONSUMES ## GUID\r
+ gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event\r
+ gEdkiiFaultTolerantWriteGuid ## SOMETIMES_CONSUMES ## HOB\r
+\r
+ ## SOMETIMES_CONSUMES ## Variable:L"VarErrorFlag"\r
+ ## SOMETIMES_PRODUCES ## Variable:L"VarErrorFlag"\r
+ gEdkiiVarErrorFlagGuid\r
+\r
+ ## SOMETIMES_CONSUMES ## Variable:L"db"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"dbx"\r
+ ## SOMETIMES_CONSUMES ## Variable:L"dbt"\r
+ gEfiImageSecurityDatabaseGuid\r
+\r
+[Pcd]\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## SOMETIMES_CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe ## CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable ## SOMETIMES_CONSUMES\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ## SOMETIMES_CONSUMES\r
+\r
+[FeaturePcd]\r
+ gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics ## CONSUMES # statistic the information of variable.\r
+ gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang\r
\r
[Depex]\r
- gEfiFirmwareVolumeBlockProtocolGuid AND gEfiAlternateFvBlockGuid AND gEfiFaultTolerantWriteLiteProtocolGuid\r
+ TRUE\r
\r
+[UserExtensions.TianoCore."ExtraFiles"]\r
+ VariableRuntimeDxeExtra.uni\r