OvmfPkg/MemEncryptSevLib: Address range encryption state interface
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3108 Update the MemEncryptSevLib library to include an interface that can report the encryption state on a range of memory. The values will represent the range as being unencrypted, encrypted, a mix of unencrypted and encrypted, and error (e.g. ranges that aren't mapped). Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Cc: Brijesh Singh <brijesh.singh@amd.com> Acked-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Message-Id: <0d98f4d42a2b67310c29bac7bcdcf1eda6835847.1610045305.git.thomas.lendacky@amd.com>
This commit is contained in:
committed by
mergify[bot]
parent
a746ca5b47
commit
c330af0246
@@ -3,7 +3,7 @@
|
||||
Virtual Memory Management Services to set or clear the memory encryption bit
|
||||
|
||||
Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR>
|
||||
Copyright (c) 2017 - 2020, AMD Incorporated. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@@ -178,7 +178,17 @@ typedef struct {
|
||||
UINTN FreePages;
|
||||
} PAGE_TABLE_POOL;
|
||||
|
||||
/**
|
||||
Return the pagetable memory encryption mask.
|
||||
|
||||
@return The pagetable memory encryption mask.
|
||||
|
||||
**/
|
||||
UINT64
|
||||
EFIAPI
|
||||
InternalGetMemEncryptionAddressMask (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
This function clears memory encryption bit for the memory region specified by
|
||||
@@ -234,4 +244,27 @@ InternalMemEncryptSevSetMemoryEncrypted (
|
||||
IN BOOLEAN Flush
|
||||
);
|
||||
|
||||
/**
|
||||
Returns the encryption state of the specified virtual address range.
|
||||
|
||||
@param[in] Cr3BaseAddress Cr3 Base Address (if zero then use
|
||||
current CR3)
|
||||
@param[in] BaseAddress Base address to check
|
||||
@param[in] Length Length of virtual address range
|
||||
|
||||
@retval MemEncryptSevAddressRangeUnencrypted Address range is mapped
|
||||
unencrypted
|
||||
@retval MemEncryptSevAddressRangeEncrypted Address range is mapped
|
||||
encrypted
|
||||
@retval MemEncryptSevAddressRangeMixed Address range is mapped mixed
|
||||
@retval MemEncryptSevAddressRangeError Address range is not mapped
|
||||
**/
|
||||
MEM_ENCRYPT_SEV_ADDRESS_RANGE_STATE
|
||||
EFIAPI
|
||||
InternalMemEncryptSevGetAddressRangeState (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user