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
@@ -33,6 +33,16 @@ typedef struct _SEC_SEV_ES_WORK_AREA {
|
||||
UINT64 EncryptionMask;
|
||||
} SEC_SEV_ES_WORK_AREA;
|
||||
|
||||
//
|
||||
// Memory encryption address range states.
|
||||
//
|
||||
typedef enum {
|
||||
MemEncryptSevAddressRangeUnencrypted,
|
||||
MemEncryptSevAddressRangeEncrypted,
|
||||
MemEncryptSevAddressRangeMixed,
|
||||
MemEncryptSevAddressRangeError,
|
||||
} MEM_ENCRYPT_SEV_ADDRESS_RANGE_STATE;
|
||||
|
||||
/**
|
||||
Returns a boolean to indicate whether SEV-ES is enabled.
|
||||
|
||||
@@ -147,4 +157,27 @@ MemEncryptSevGetEncryptionMask (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
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
|
||||
MemEncryptSevGetAddressRangeState (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
#endif // _MEM_ENCRYPT_SEV_LIB_H_
|
||||
|
Reference in New Issue
Block a user