This change added support of StandaloneMm for ReportStatusCodeLib. It adds a new instance of ReportStatusCodeLib for MM_STANDALONE type, and abstracts the references of gMmst and gSmst functionalities into separate files in order to link in proper Service Table for SMM core/drivers. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Dandan Bi <dandan.bi@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Kun Qin <kun.q@outlook.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
		
			
				
	
	
		
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Abstraction layer for SMM service table used by SMM ReportStatusCodeLib.
 | 
						|
 | 
						|
  Copyright (c) Microsoft Corporation.
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#include <PiMm.h>
 | 
						|
 | 
						|
#include <Library/SmmServicesTableLib.h>
 | 
						|
 | 
						|
/**
 | 
						|
  Returns the first protocol instance that matches the given protocol.
 | 
						|
 | 
						|
  @param[in]  Protocol          Provides the protocol to search for.
 | 
						|
  @param[in]  Registration      Optional registration key returned from
 | 
						|
                                RegisterProtocolNotify().
 | 
						|
  @param[out]  Interface        On return, a pointer to the first interface that matches Protocol and
 | 
						|
                                Registration.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS           A protocol instance matching Protocol was found and returned in
 | 
						|
                                Interface.
 | 
						|
  @retval EFI_NOT_FOUND         No protocol instances were found that match Protocol and
 | 
						|
                                Registration.
 | 
						|
  @retval EFI_INVALID_PARAMETER Interface is NULL.
 | 
						|
                                Protocol is NULL.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
InternalLocateProtocol (
 | 
						|
  IN  EFI_GUID  *Protocol,
 | 
						|
  IN  VOID      *Registration, OPTIONAL
 | 
						|
  OUT VOID      **Interface
 | 
						|
  )
 | 
						|
{
 | 
						|
  return gSmst->SmmLocateProtocol (Protocol, Registration, Interface);
 | 
						|
}
 |