This change added support of StandaloneMm for SmmLockBoxLib. It replaces gSmst with gMmst to support both traditional MM and standalone MM. The contructor and desctructor functions are abstracted to support different function prototype definitions. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Eric Dong <eric.dong@intel.com> Signed-off-by: Kun Qin <kun.q@outlook.com> Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
| Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _SMM_LOCK_BOX_LIB_PRIVATE_H_
 | |
| #define _SMM_LOCK_BOX_LIB_PRIVATE_H_
 | |
| 
 | |
| #include <Uefi.h>
 | |
| 
 | |
| #pragma pack(1)
 | |
| 
 | |
| //
 | |
| // Below data structure is used for lockbox registration in SMST
 | |
| //
 | |
| 
 | |
| #define SMM_LOCK_BOX_SIGNATURE_32 SIGNATURE_64 ('L','O','C','K','B','_','3','2')
 | |
| #define SMM_LOCK_BOX_SIGNATURE_64 SIGNATURE_64 ('L','O','C','K','B','_','6','4')
 | |
| 
 | |
| typedef struct {
 | |
|   UINT64                   Signature;
 | |
|   EFI_PHYSICAL_ADDRESS     LockBoxDataAddress;
 | |
| } SMM_LOCK_BOX_CONTEXT;
 | |
| 
 | |
| //
 | |
| // Below data structure is used for lockbox management
 | |
| //
 | |
| 
 | |
| #define SMM_LOCK_BOX_DATA_SIGNATURE SIGNATURE_64 ('L','O','C','K','B','O','X','D')
 | |
| 
 | |
| typedef struct {
 | |
|   UINT64                         Signature;
 | |
|   EFI_GUID                       Guid;
 | |
|   EFI_PHYSICAL_ADDRESS           Buffer;
 | |
|   UINT64                         Length;
 | |
|   UINT64                         Attributes;
 | |
|   EFI_PHYSICAL_ADDRESS           SmramBuffer;
 | |
|   LIST_ENTRY                     Link;
 | |
| } SMM_LOCK_BOX_DATA;
 | |
| 
 | |
| #pragma pack()
 | |
| 
 | |
| /**
 | |
|   Constructor for SmmLockBox library.
 | |
|   This is used to set SmmLockBox context, which will be used in PEI phase in S3 boot path later.
 | |
| 
 | |
|   @retval EFI_SUCEESS
 | |
|   @return Others          Some error occurs.
 | |
| **/
 | |
| EFI_STATUS
 | |
| SmmLockBoxMmConstructor (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Destructor for SmmLockBox library.
 | |
|   This is used to uninstall SmmLockBoxCommunication configuration table
 | |
|   if it has been installed in Constructor.
 | |
| 
 | |
|   @retval EFI_SUCEESS       The destructor always returns EFI_SUCCESS.
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| SmmLockBoxMmDestructor (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| #endif
 | |
| 
 |