| /** @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 |