TianoCore EDK2 master
|
Go to the source code of this file.
Functions | |
VOID | InitSmmS3Cr3 (OUT UINTN *Cr3) |
VOID | InitPagesForPFHandler (VOID) |
VOID | AcquirePage (UINT64 *Uplink) |
VOID | SmmProfileMapPFAddress (VOID) |
VOID | RestorePageTableAbove4G (UINT64 *PageTable, UINT64 PFAddress, UINTN CpuIndex, UINTN ErrorCode, BOOLEAN *IsValidPFAddress) |
VOID | ClearTrapFlag (IN OUT EFI_SYSTEM_CONTEXT SystemContext) |
Variables | |
UINTN | mPFPageIndex |
UINT64 | mPFPageBuffer |
UINT64 * | mPFPageUplink [MAX_PF_PAGE_COUNT] |
X64 processor specific functions to enable SMM profile.
Copyright (c) 2012 - 2024, Intel Corporation. All rights reserved.
Copyright (c) 2017, AMD Incorporated. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SmmProfileArch.c.
VOID AcquirePage | ( | UINT64 * | Uplink | ) |
Allocate one page for creating 4KB-page based on 2MB-page.
Uplink | The address of Page-Directory entry. |
Definition at line 84 of file SmmProfileArch.c.
VOID ClearTrapFlag | ( | IN OUT EFI_SYSTEM_CONTEXT | SystemContext | ) |
Clear TF in FLAGS.
SystemContext | A pointer to the processor context when the interrupt occurred on the processor. |
Definition at line 473 of file SmmProfileArch.c.
VOID InitPagesForPFHandler | ( | VOID | ) |
Allocate pages for creating 4KB-page based on 2MB-page when page fault happens.
Definition at line 56 of file SmmProfileArch.c.
Create SMM page table for S3 path.
[out] | Cr3 | The base address of the page tables. |
Definition at line 36 of file SmmProfileArch.c.
VOID RestorePageTableAbove4G | ( | UINT64 * | PageTable, |
UINT64 | PFAddress, | ||
UINTN | CpuIndex, | ||
UINTN | ErrorCode, | ||
BOOLEAN * | IsValidPFAddress | ||
) |
Update page table to map the memory correctly in order to make the instruction which caused page fault execute successfully. And it also save the original page table to be restored in single-step exception.
PageTable | PageTable Address. |
PFAddress | The memory address which caused page fault exception. |
CpuIndex | The index of the processor. |
ErrorCode | The Error code of exception. |
IsValidPFAddress | The flag indicates if SMM profile data need be added. |
Definition at line 275 of file SmmProfileArch.c.
VOID SmmProfileMapPFAddress | ( | VOID | ) |
Create new entry in page table for page fault address in SmmProfilePFHandler.
Definition at line 117 of file SmmProfileArch.c.
UINT64 mPFPageBuffer |
Definition at line 22 of file SmmProfileArch.c.
UINTN mPFPageIndex |
Definition at line 17 of file SmmProfileArch.c.
UINT64* mPFPageUplink[MAX_PF_PAGE_COUNT] |
Definition at line 27 of file SmmProfileArch.c.