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