OvmfPkg[all]
0.1
|
Data Structures | |
struct | SEV_ES_PER_CPU_DATA |
Macros | |
#define | VMGEXIT_MAXIMUM_VC_COUNT 2 |
Enumerations | |
enum | MEM_ENCRYPT_SEV_ADDRESS_RANGE_STATE { MemEncryptSevAddressRangeUnencrypted, MemEncryptSevAddressRangeEncrypted, MemEncryptSevAddressRangeMixed, MemEncryptSevAddressRangeError } |
Functions | |
BOOLEAN EFIAPI | MemEncryptSevEsIsEnabled (VOID) |
BOOLEAN EFIAPI | MemEncryptSevIsEnabled (VOID) |
RETURN_STATUS EFIAPI | MemEncryptSevClearPageEncMask (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS BaseAddress, IN UINTN NumPages) |
RETURN_STATUS EFIAPI | MemEncryptSevSetPageEncMask (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS BaseAddress, IN UINTN NumPages) |
RETURN_STATUS EFIAPI | MemEncryptSevLocateInitialSmramSaveStateMapPages (OUT UINTN *BaseAddress, OUT UINTN *NumberOfPages) |
UINT64 EFIAPI | MemEncryptSevGetEncryptionMask (VOID) |
MEM_ENCRYPT_SEV_ADDRESS_RANGE_STATE EFIAPI | MemEncryptSevGetAddressRangeState (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS BaseAddress, IN UINTN Length) |
RETURN_STATUS EFIAPI | MemEncryptSevClearMmioPageEncMask (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS BaseAddress, IN UINTN NumPages) |
Define Secure Encrypted Virtualization (SEV) base library helper function
Copyright (c) 2017 - 2020, AMD Incorporated. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
#define VMGEXIT_MAXIMUM_VC_COUNT 2 |
RETURN_STATUS EFIAPI MemEncryptSevClearMmioPageEncMask | ( | IN PHYSICAL_ADDRESS | Cr3BaseAddress, |
IN PHYSICAL_ADDRESS | BaseAddress, | ||
IN UINTN | NumPages | ||
) |
This function clears memory encryption bit for the MMIO region specified by BaseAddress and NumPages.
[in] | Cr3BaseAddress | Cr3 Base Address (if zero then use current CR3) |
[in] | BaseAddress | The physical address that is the start address of a MMIO region. |
[in] | NumPages | The number of pages from start memory region. |
RETURN_SUCCESS | The attributes were cleared for the memory region. |
RETURN_INVALID_PARAMETER | Number of pages is zero. |
RETURN_UNSUPPORTED | Clearing the memory encryption attribute is not supported |
RETURN_STATUS EFIAPI MemEncryptSevClearPageEncMask | ( | IN PHYSICAL_ADDRESS | Cr3BaseAddress, |
IN PHYSICAL_ADDRESS | BaseAddress, | ||
IN UINTN | NumPages | ||
) |
This function clears memory encryption bit for the memory region specified by BaseAddress and NumPages from the current page table context.
[in] | Cr3BaseAddress | Cr3 Base Address (if zero then use current CR3) |
[in] | BaseAddress | The physical address that is the start address of a memory region. |
[in] | NumPages | The number of pages from start memory region. |
RETURN_SUCCESS | The attributes were cleared for the memory region. |
RETURN_INVALID_PARAMETER | Number of pages is zero. |
RETURN_UNSUPPORTED | Clearing the memory encryption attribute is not supported |
BOOLEAN EFIAPI MemEncryptSevEsIsEnabled | ( | VOID | ) |
Returns a boolean to indicate whether SEV-ES is enabled.
TRUE | SEV-ES is enabled |
FALSE | SEV-ES is not enabled |
MEM_ENCRYPT_SEV_ADDRESS_RANGE_STATE EFIAPI MemEncryptSevGetAddressRangeState | ( | IN PHYSICAL_ADDRESS | Cr3BaseAddress, |
IN PHYSICAL_ADDRESS | BaseAddress, | ||
IN UINTN | Length | ||
) |
Returns the encryption state of the specified virtual address range.
[in] | Cr3BaseAddress | Cr3 Base Address (if zero then use current CR3) |
[in] | BaseAddress | Base address to check |
[in] | Length | Length of virtual address range |
MemEncryptSevAddressRangeUnencrypted | Address range is mapped unencrypted |
MemEncryptSevAddressRangeEncrypted | Address range is mapped encrypted |
MemEncryptSevAddressRangeMixed | Address range is mapped mixed |
MemEncryptSevAddressRangeError | Address range is not mapped |
UINT64 EFIAPI MemEncryptSevGetEncryptionMask | ( | VOID | ) |
Returns the SEV encryption mask.
BOOLEAN EFIAPI MemEncryptSevIsEnabled | ( | VOID | ) |
Returns a boolean to indicate whether SEV is enabled
TRUE | SEV is enabled |
FALSE | SEV is not enabled |
RETURN_STATUS EFIAPI MemEncryptSevLocateInitialSmramSaveStateMapPages | ( | OUT UINTN * | BaseAddress, |
OUT UINTN * | NumberOfPages | ||
) |
Locate the page range that covers the initial (pre-SMBASE-relocation) SMRAM Save State Map.
[out] | BaseAddress | The base address of the lowest-address page that covers the initial SMRAM Save State Map. |
[out] | NumberOfPages | The number of pages in the page range that covers the initial SMRAM Save State Map. |
RETURN_SUCCESS | BaseAddress and NumberOfPages have been set on output. |
RETURN_UNSUPPORTED | SMM is unavailable. |
RETURN_STATUS EFIAPI MemEncryptSevSetPageEncMask | ( | IN PHYSICAL_ADDRESS | Cr3BaseAddress, |
IN PHYSICAL_ADDRESS | BaseAddress, | ||
IN UINTN | NumPages | ||
) |
This function sets memory encryption bit for the memory region specified by BaseAddress and NumPages from the current page table context.
[in] | Cr3BaseAddress | Cr3 Base Address (if zero then use current CR3) |
[in] | BaseAddress | The physical address that is the start address of a memory region. |
[in] | NumPages | The number of pages from start memory region. |
RETURN_SUCCESS | The attributes were set for the memory region. |
RETURN_INVALID_PARAMETER | Number of pages is zero. |
RETURN_UNSUPPORTED | Setting the memory encryption attribute is not supported |