https://bugzilla.tianocore.org/show_bug.cgi?id=2522 VariablePolicy is an updated interface to replace VarLock and VarCheckProtocol. Add connective code to publish the VariablePolicy protocol and wire it to either the SMM communication interface or directly into the VariablePolicyLib business logic. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Bret Barkelew <brbarkel@microsoft.com> Signed-off-by: Bret Barkelew <brbarkel@microsoft.com> Reviewed-by: Dandan Bi <dandan.bi@intel.com> Acked-by: Jian J Wang <jian.j.wang@intel.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
149 lines
5.5 KiB
INI
149 lines
5.5 KiB
INI
## @file
|
|
# Provides variable service.
|
|
#
|
|
# This module installs variable arch protocol and variable write arch protocol to provide
|
|
# variable services: SetVariable, GetVariable, GetNextVariableName and QueryVariableInfo.
|
|
#
|
|
# Caution: This module requires additional review when modified.
|
|
# This driver will have external input - variable data.
|
|
# This external input must be validated carefully to avoid security issues such as
|
|
# buffer overflow or integer overflow.
|
|
#
|
|
# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = VariableRuntimeDxe
|
|
MODULE_UNI_FILE = VariableRuntimeDxe.uni
|
|
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]
|
|
Reclaim.c
|
|
Variable.c
|
|
VariableDxe.c
|
|
Variable.h
|
|
VariableNonVolatile.c
|
|
VariableNonVolatile.h
|
|
VariableParsing.c
|
|
VariableParsing.h
|
|
VariableRuntimeCache.c
|
|
VariableRuntimeCache.h
|
|
PrivilegePolymorphic.h
|
|
Measurement.c
|
|
TcgMorLockDxe.c
|
|
VarCheck.c
|
|
VariableExLib.c
|
|
SpeculationBarrierDxe.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
|
|
[LibraryClasses]
|
|
MemoryAllocationLib
|
|
BaseLib
|
|
SynchronizationLib
|
|
UefiLib
|
|
UefiBootServicesTableLib
|
|
BaseMemoryLib
|
|
DebugLib
|
|
UefiRuntimeLib
|
|
DxeServicesTableLib
|
|
UefiDriverEntryPoint
|
|
PcdLib
|
|
HobLib
|
|
TpmMeasurementLib
|
|
AuthVariableLib
|
|
VarCheckLib
|
|
VariablePolicyLib
|
|
|
|
[Protocols]
|
|
gEfiFirmwareVolumeBlockProtocolGuid ## CONSUMES
|
|
## CONSUMES
|
|
## NOTIFY
|
|
gEfiFaultTolerantWriteProtocolGuid
|
|
gEfiVariableWriteArchProtocolGuid ## PRODUCES
|
|
gEfiVariableArchProtocolGuid ## PRODUCES
|
|
gEdkiiVariableLockProtocolGuid ## PRODUCES
|
|
gEdkiiVarCheckProtocolGuid ## PRODUCES
|
|
|
|
[Guids]
|
|
## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header
|
|
## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header
|
|
## SOMETIMES_CONSUMES ## HOB
|
|
## SOMETIMES_PRODUCES ## SystemTable
|
|
gEfiAuthenticatedVariableGuid
|
|
|
|
## SOMETIMES_CONSUMES ## GUID # Signature of Variable store header
|
|
## SOMETIMES_PRODUCES ## GUID # Signature of Variable store header
|
|
## SOMETIMES_CONSUMES ## HOB
|
|
## SOMETIMES_PRODUCES ## SystemTable
|
|
gEfiVariableGuid
|
|
|
|
## SOMETIMES_CONSUMES ## Variable:L"PlatformLang"
|
|
## SOMETIMES_PRODUCES ## Variable:L"PlatformLang"
|
|
## SOMETIMES_CONSUMES ## Variable:L"Lang"
|
|
## SOMETIMES_PRODUCES ## Variable:L"Lang"
|
|
## SOMETIMES_CONSUMES ## Variable:L"PK"
|
|
## SOMETIMES_CONSUMES ## Variable:L"KEK"
|
|
## SOMETIMES_CONSUMES ## Variable:L"SecureBoot"
|
|
gEfiGlobalVariableGuid
|
|
|
|
gEfiMemoryOverwriteControlDataGuid ## SOMETIMES_CONSUMES ## Variable:L"MemoryOverwriteRequestControl"
|
|
gEfiMemoryOverwriteRequestControlLockGuid ## SOMETIMES_PRODUCES ## Variable:L"MemoryOverwriteRequestControlLock"
|
|
|
|
gEfiEventVirtualAddressChangeGuid ## CONSUMES ## Event
|
|
gEfiSystemNvDataFvGuid ## CONSUMES ## GUID
|
|
gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event
|
|
gEdkiiFaultTolerantWriteGuid ## SOMETIMES_CONSUMES ## HOB
|
|
|
|
## SOMETIMES_CONSUMES ## Variable:L"VarErrorFlag"
|
|
## SOMETIMES_PRODUCES ## Variable:L"VarErrorFlag"
|
|
gEdkiiVarErrorFlagGuid
|
|
|
|
## SOMETIMES_CONSUMES ## Variable:L"db"
|
|
## SOMETIMES_CONSUMES ## Variable:L"dbx"
|
|
## SOMETIMES_CONSUMES ## Variable:L"dbt"
|
|
gEfiImageSecurityDatabaseGuid
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxHardwareErrorVariableSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdHwErrStorageSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxUserNvVariableSpaceSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdBoottimeReservedNvVariableSpaceSize ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdReclaimVariableSpaceAtEndOfDxe ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved ## SOMETIMES_CONSUMES
|
|
|
|
[FeaturePcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableCollectStatistics ## CONSUMES # statistic the information of variable.
|
|
gEfiMdePkgTokenSpaceGuid.PcdUefiVariableDefaultLangDeprecate ## CONSUMES # Auto update PlatformLang/Lang
|
|
|
|
[Depex]
|
|
TRUE
|
|
|
|
[UserExtensions.TianoCore."ExtraFiles"]
|
|
VariableRuntimeDxeExtra.uni
|