TianoCore EDK2 master
|
Go to the source code of this file.
Data Structures | |
struct | _MSR_DS_AREA_STRUCT |
struct | _BRANCH_TRACE_RECORD |
struct | _PEBS_RECORD |
Macros | |
#define | PHYSICAL_ADDRESS_MASK ((1ull << 52) - SIZE_4KB) |
Typedefs | |
typedef struct _MSR_DS_AREA_STRUCT | MSR_DS_AREA_STRUCT |
typedef struct _BRANCH_TRACE_RECORD | BRANCH_TRACE_RECORD |
typedef struct _PEBS_RECORD | PEBS_RECORD |
Functions | |
VOID | RestorePageTableAbove4G (UINT64 *PageTable, UINT64 PFAddress, UINTN CpuIndex, UINTN ErrorCode, BOOLEAN *IsValidPFAddress) |
VOID | InitSmmS3Cr3 (OUT UINTN *Cr3) |
VOID | InitPagesForPFHandler (VOID) |
VOID | SetSubEntriesNum (IN OUT UINT64 *Entry, IN UINT64 SubEntryNum) |
UINT64 | GetSubEntriesNum (IN UINT64 *Entry) |
UINT64 | AllocPage (VOID) |
VOID | SetAccNum (IN OUT UINT64 *Entry, IN UINT64 Acc) |
Variables | |
BOOLEAN | m1GPageTableSupport |
X64 processor specific header file to enable SMM profile.
Copyright (c) 2012 - 2024, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file SmmProfileArch.h.
#define PHYSICAL_ADDRESS_MASK ((1ull << 52) - SIZE_4KB) |
Definition at line 60 of file SmmProfileArch.h.
UINT64 AllocPage | ( | VOID | ) |
UINT64 GetSubEntriesNum | ( | IN UINT64 * | Entry | ) |
VOID InitPagesForPFHandler | ( | VOID | ) |
Allocate pages for creating 4KB-page based on 2MB-page when page fault happens.
Allocate pages for creating 4KB-page based on 2MB-page when page fault happens. 32-bit firmware does not need it.
Definition at line 36 of file SmmProfileArch.c.
Create SMM page table for S3 path.
[out] | Cr3 | The base address of the page tables. |
Definition at line 19 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. |
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. 32-bit firmware does not need it.
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 55 of file SmmProfileArch.c.