This change moves the following functions into a dedicated file so they may be used in other variable files as needed. These are commonly needed for basic variable data structure parsing operations. The functions are grouped together in VariableParsing.c to support cohesiveness for these operations in the file. Furthermore, it reduces the overall size of the common Variable.c file. * DataSizeOfVariable () * FindVariableEx () * GetEndPointer () * GetNextVariablePtr () * GetStartPointer () * GetVariableDataOffset () * GetVariableDataPtr () * GetVariableHeaderSize () * GetVariableNamePtr () * GetVariableStoreStatus () * GetVendorGuidPtr () * IsValidVariableHeader () * NameSizeOfVariable () * SetDataSizeOfVariable () * SetNameSizeOfVariable () * UpdateVariableInfo () * VariableCompareTimeStampInternal () * VariableServiceGetNextVariableInternal () Cc: Dandan Bi <dandan.bi@intel.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Eric Dong <eric.dong@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com> Reviewed-by: Jian J Wang <jian.j.wang@intel.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
143 lines
5.4 KiB
INI
143 lines
5.4 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>
|
|
# 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
|
|
VariableParsing.c
|
|
VariableParsing.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
|
|
|
|
[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
|