TianoCore EDK2 master
Loading...
Searching...
No Matches
SecVirtualMemory.c File Reference

Go to the source code of this file.

Functions

UINT64 EFIAPI InternalGetMemEncryptionAddressMask (VOID)
 
RETURN_STATUS EFIAPI InternalMemEncryptSevSetMemoryDecrypted (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS PhysicalAddress, IN UINTN Length)
 
RETURN_STATUS EFIAPI InternalMemEncryptSevSetMemoryEncrypted (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS PhysicalAddress, IN UINTN Length)
 
RETURN_STATUS EFIAPI InternalMemEncryptSevClearMmioPageEncMask (IN PHYSICAL_ADDRESS Cr3BaseAddress, IN PHYSICAL_ADDRESS PhysicalAddress, IN UINTN Length)
 

Detailed Description

Virtual Memory Management Services to set or clear the memory encryption bit

Copyright (c) 2020, AMD Incorporated. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file SecVirtualMemory.c.

Function Documentation

◆ InternalGetMemEncryptionAddressMask()

UINT64 EFIAPI InternalGetMemEncryptionAddressMask ( VOID  )

Return the pagetable memory encryption mask.

Returns
The pagetable memory encryption mask.

Definition at line 24 of file SecVirtualMemory.c.

◆ InternalMemEncryptSevClearMmioPageEncMask()

RETURN_STATUS EFIAPI InternalMemEncryptSevClearMmioPageEncMask ( IN PHYSICAL_ADDRESS  Cr3BaseAddress,
IN PHYSICAL_ADDRESS  PhysicalAddress,
IN UINTN  Length 
)

This function clears memory encryption bit for the MMIO region specified by PhysicalAddress and Length.

Parameters
[in]Cr3BaseAddressCr3 Base Address (if zero then use current CR3)
[in]PhysicalAddressThe physical address that is the start address of a MMIO region.
[in]LengthThe length of memory region
Return values
RETURN_SUCCESSThe attributes were cleared for the memory region.
RETURN_INVALID_PARAMETERLength is zero.
RETURN_UNSUPPORTEDClearing the memory encyrption attribute is not supported

Definition at line 116 of file SecVirtualMemory.c.

◆ InternalMemEncryptSevSetMemoryDecrypted()

RETURN_STATUS EFIAPI InternalMemEncryptSevSetMemoryDecrypted ( IN PHYSICAL_ADDRESS  Cr3BaseAddress,
IN PHYSICAL_ADDRESS  PhysicalAddress,
IN UINTN  Length 
)

This function clears memory encryption bit for the memory region specified by PhysicalAddress and Length from the current page table context.

Parameters
[in]Cr3BaseAddressCr3 Base Address (if zero then use current CR3)
[in]PhysicalAddressThe physical address that is the start address of a memory region.
[in]LengthThe length of memory region
Return values
RETURN_SUCCESSThe attributes were cleared for the memory region.
RETURN_INVALID_PARAMETERNumber of pages is zero.
RETURN_UNSUPPORTEDClearing the memory encyrption attribute is not supported

Definition at line 54 of file SecVirtualMemory.c.

◆ InternalMemEncryptSevSetMemoryEncrypted()

RETURN_STATUS EFIAPI InternalMemEncryptSevSetMemoryEncrypted ( IN PHYSICAL_ADDRESS  Cr3BaseAddress,
IN PHYSICAL_ADDRESS  PhysicalAddress,
IN UINTN  Length 
)

This function sets memory encryption bit for the memory region specified by PhysicalAddress and Length from the current page table context.

Parameters
[in]Cr3BaseAddressCr3 Base Address (if zero then use current CR3)
[in]PhysicalAddressThe physical address that is the start address of a memory region.
[in]LengthThe length of memory region
[in]FlushFlush the caches before applying the encryption mask
Return values
RETURN_SUCCESSThe attributes were set for the memory region.
RETURN_INVALID_PARAMETERNumber of pages is zero.
RETURN_UNSUPPORTEDSetting the memory encyrption attribute is not supported

Definition at line 86 of file SecVirtualMemory.c.