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>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file -- VarCheckPolicyLibTraditional.c
 | 
						|
This is an instance of a VarCheck lib constructor for traditional SMM.
 | 
						|
 | 
						|
Copyright (c) Microsoft Corporation. All rights reserved.
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <Library/SmmMemLib.h>
 | 
						|
 | 
						|
#include "VarCheckPolicyLib.h"
 | 
						|
 | 
						|
/**
 | 
						|
  Traditional constructor function of VarCheckPolicyLib to invoke common
 | 
						|
  constructor routine.
 | 
						|
 | 
						|
  @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
 | 
						|
VarCheckPolicyLibTraditionalConstructor (
 | 
						|
  IN EFI_HANDLE             ImageHandle,
 | 
						|
  IN EFI_SYSTEM_TABLE       *SystemTable
 | 
						|
  )
 | 
						|
{
 | 
						|
  return VarCheckPolicyLibCommonConstructor ();
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
  This function is wrapper function to validate the buffer.
 | 
						|
 | 
						|
  @param Buffer  The buffer start address to be checked.
 | 
						|
  @param Length  The buffer length to be checked.
 | 
						|
 | 
						|
  @retval TRUE  This buffer is valid per processor architecture and not overlap with SMRAM.
 | 
						|
  @retval FALSE This buffer is not valid per processor architecture or overlap with SMRAM.
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
VarCheckPolicyIsBufferOutsideValid (
 | 
						|
  IN EFI_PHYSICAL_ADDRESS  Buffer,
 | 
						|
  IN UINT64                Length
 | 
						|
  )
 | 
						|
{
 | 
						|
  return SmmIsBufferOutsideSmmValid (Buffer, Length);
 | 
						|
}
 |