|
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 |