/** @file Copyright (c) 2010, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _SMM_LOCK_BOX_LIB_PRIVATE_H_ #define _SMM_LOCK_BOX_LIB_PRIVATE_H_ #include #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