MdeModulePkg/VarCheckPolicyLib: implement standalone MM version
This commit adds the VarCheckPolicyLib that will be able to execute in the context of standalone MM. Signed-off-by: Masahisa Kojima <masahisa.kojima@linaro.org> Co-authored-by: Kun Qin <kun.q@outlook.com> Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Cc: Sami Mujawar <sami.mujawar@arm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
d15d0d3d8a
commit
e2747dbb5a
@ -12,7 +12,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/SafeIntLib.h>
|
||||
#include <Library/MmServicesTableLib.h>
|
||||
#include <Library/SmmMemLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
|
||||
@ -23,6 +22,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
#include <Guid/VarCheckPolicyMmi.h>
|
||||
|
||||
#include "VarCheckPolicyLib.h"
|
||||
|
||||
//================================================
|
||||
// As a VarCheck library, we're linked into the VariableServices
|
||||
// and may not be able to call them indirectly. To get around this,
|
||||
@ -102,7 +103,8 @@ VarCheckPolicyLibMmiHandler (
|
||||
// Make sure that the buffer does not overlap SMM.
|
||||
// This should be covered by the SmiManage infrastructure, but just to be safe...
|
||||
InternalCommBufferSize = *CommBufferSize;
|
||||
if (InternalCommBufferSize > VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE || !SmmIsBufferOutsideSmmValid((UINTN)CommBuffer, (UINT64)InternalCommBufferSize)) {
|
||||
if (InternalCommBufferSize > VAR_CHECK_POLICY_MM_COMM_BUFFER_SIZE ||
|
||||
!VarCheckPolicyIsBufferOutsideValid((UINTN)CommBuffer, (UINT64)InternalCommBufferSize)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a - Invalid CommBuffer supplied! 0x%016lX[0x%016lX]\n", __FUNCTION__, CommBuffer, InternalCommBufferSize));
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
@ -305,17 +307,13 @@ VarCheckPolicyLibMmiHandler (
|
||||
Constructor function of VarCheckPolicyLib to register VarCheck handler and
|
||||
SW MMI handlers.
|
||||
|
||||
@param[in] ImageHandle The firmware allocated handle for the EFI image.
|
||||
@param[in] SystemTable A pointer to the EFI System Table.
|
||||
|
||||
@retval EFI_SUCCESS The constructor executed correctly.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VarCheckPolicyLibConstructor (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
VarCheckPolicyLibCommonConstructor (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
Reference in New Issue
Block a user