TianoCore EDK2 master
|
#include <PiDxe.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/BaseLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/LockBoxLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiLib.h>
#include <Protocol/SmmCommunication.h>
#include <Guid/SmmLockBox.h>
#include <Guid/PiSmmCommunicationRegionTable.h>
#include "SmmLockBoxLibPrivate.h"
Go to the source code of this file.
Functions | |
EFI_SMM_COMMUNICATION_PROTOCOL * | LockBoxGetSmmCommProtocol (VOID) |
UINT8 * | LockBoxGetSmmCommBuffer (VOID) |
RETURN_STATUS EFIAPI | SaveLockBox (IN GUID *Guid, IN VOID *Buffer, IN UINTN Length) |
RETURN_STATUS EFIAPI | SetLockBoxAttributes (IN GUID *Guid, IN UINT64 Attributes) |
RETURN_STATUS EFIAPI | UpdateLockBox (IN GUID *Guid, IN UINTN Offset, IN VOID *Buffer, IN UINTN Length) |
RETURN_STATUS EFIAPI | RestoreLockBox (IN GUID *Guid, IN VOID *Buffer OPTIONAL, IN OUT UINTN *Length OPTIONAL) |
RETURN_STATUS EFIAPI | RestoreAllLockBoxInPlace (VOID) |
Variables | |
EFI_SMM_COMMUNICATION_PROTOCOL * | mLockBoxSmmCommProtocol = NULL |
UINT8 * | mLockBoxSmmCommBuffer = NULL |
Copyright (c) 2010 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SmmLockBoxDxeLib.c.
UINT8 * LockBoxGetSmmCommBuffer | ( | VOID | ) |
Get smm communication buffer for lockbox.
Definition at line 65 of file SmmLockBoxDxeLib.c.
EFI_SMM_COMMUNICATION_PROTOCOL * LockBoxGetSmmCommProtocol | ( | VOID | ) |
Get smm communication protocol for lockbox.
Definition at line 33 of file SmmLockBoxDxeLib.c.
RETURN_STATUS EFIAPI RestoreAllLockBoxInPlace | ( | VOID | ) |
This function will restore confidential information from all lockbox which have RestoreInPlace attribute.
RETURN_SUCCESS | the information is restored successfully. |
RETURN_NOT_STARTED | it is too early to invoke this interface |
RETURN_UNSUPPORTED | the service is not supported by implementaion. |
Definition at line 502 of file SmmLockBoxDxeLib.c.
RETURN_STATUS EFIAPI RestoreLockBox | ( | IN GUID * | Guid, |
IN VOID *Buffer | OPTIONAL, | ||
IN OUT UINTN *Length | OPTIONAL | ||
) |
This function will restore confidential information from lockbox.
Guid | the guid to identify the confidential information |
Buffer | the address of the restored confidential information NULL means restored to original address, Length MUST be NULL at same time. |
Length | the length of the restored confidential information |
RETURN_SUCCESS | the information is restored successfully. |
RETURN_INVALID_PARAMETER | the Guid is NULL, or one of Buffer and Length is NULL. |
RETURN_WRITE_PROTECTED | Buffer and Length are NULL, but the LockBox has no LOCK_BOX_ATTRIBUTE_RESTORE_IN_PLACE attribute. |
RETURN_BUFFER_TOO_SMALL | the Length is too small to hold the confidential information. |
RETURN_NOT_FOUND | the requested GUID not found. |
RETURN_NOT_STARTED | it is too early to invoke this interface |
RETURN_ACCESS_DENIED | not allow to restore to the address |
RETURN_UNSUPPORTED | the service is not supported by implementaion. |
Definition at line 413 of file SmmLockBoxDxeLib.c.
This function will save confidential information to lockbox.
Guid | the guid to identify the confidential information |
Buffer | the address of the confidential information |
Length | the length of the confidential information |
RETURN_SUCCESS | the information is saved successfully. |
RETURN_INVALID_PARAMETER | the Guid is NULL, or Buffer is NULL, or Length is 0 |
RETURN_ALREADY_STARTED | the requested GUID already exist. |
RETURN_OUT_OF_RESOURCES | no enough resource to save the information. |
RETURN_ACCESS_DENIED | it is too late to invoke this interface |
RETURN_NOT_STARTED | it is too early to invoke this interface |
RETURN_UNSUPPORTED | the service is not supported by implementaion. |
Definition at line 148 of file SmmLockBoxDxeLib.c.
This function will set lockbox attributes.
Guid | the guid to identify the confidential information |
Attributes | the attributes of the lockbox |
RETURN_SUCCESS | the information is saved successfully. |
RETURN_INVALID_PARAMETER | attributes is invalid. |
RETURN_NOT_FOUND | the requested GUID not found. |
RETURN_ACCESS_DENIED | it is too late to invoke this interface |
RETURN_NOT_STARTED | it is too early to invoke this interface |
RETURN_UNSUPPORTED | the service is not supported by implementaion. |
Definition at line 232 of file SmmLockBoxDxeLib.c.
RETURN_STATUS EFIAPI UpdateLockBox | ( | IN GUID * | Guid, |
IN UINTN | Offset, | ||
IN VOID * | Buffer, | ||
IN UINTN | Length | ||
) |
This function will update confidential information to lockbox.
Guid | the guid to identify the original confidential information |
Offset | the offset of the original confidential information |
Buffer | the address of the updated confidential information |
Length | the length of the updated confidential information |
RETURN_SUCCESS | the information is saved successfully. |
RETURN_INVALID_PARAMETER | the Guid is NULL, or Buffer is NULL, or Length is 0. |
RETURN_NOT_FOUND | the requested GUID not found. |
RETURN_BUFFER_TOO_SMALL | for lockbox without attribute LOCK_BOX_ATTRIBUTE_RESTORE_IN_S3_ONLY, the original buffer to too small to hold new information. |
RETURN_OUT_OF_RESOURCES | for lockbox with attribute LOCK_BOX_ATTRIBUTE_RESTORE_IN_S3_ONLY, no enough resource to save the information. |
RETURN_ACCESS_DENIED | it is too late to invoke this interface |
RETURN_NOT_STARTED | it is too early to invoke this interface |
RETURN_UNSUPPORTED | the service is not supported by implementaion. |
Definition at line 322 of file SmmLockBoxDxeLib.c.
UINT8* mLockBoxSmmCommBuffer = NULL |
Definition at line 24 of file SmmLockBoxDxeLib.c.
EFI_SMM_COMMUNICATION_PROTOCOL* mLockBoxSmmCommProtocol = NULL |
Definition at line 23 of file SmmLockBoxDxeLib.c.