VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/UefiCpuPkg/PiSmmCpuDxeSmm/SmmProfile.h@ 99404

Last change on this file since 99404 was 99404, checked in by vboxsync, 22 months ago

Devices/EFI/FirmwareNew: Update to edk2-stable202302 and make it build, bugref:4643

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1/** @file
2SMM profile header file.
3
4Copyright (c) 2012 - 2019, Intel Corporation. All rights reserved.<BR>
5SPDX-License-Identifier: BSD-2-Clause-Patent
6
7**/
8
9#ifndef _SMM_PROFILE_H_
10#define _SMM_PROFILE_H_
11
12#include "SmmProfileInternal.h"
13
14//
15// External functions
16//
17
18/**
19 Initialize processor environment for SMM profile.
20
21 @param CpuIndex The index of the processor.
22
23**/
24VOID
25ActivateSmmProfile (
26 IN UINTN CpuIndex
27 );
28
29/**
30 Initialize SMM profile in SMM CPU entry point.
31
32 @param[in] Cr3 The base address of the page tables to use in SMM.
33
34**/
35VOID
36InitSmmProfile (
37 UINT32 Cr3
38 );
39
40/**
41 Increase SMI number in each SMI entry.
42
43**/
44VOID
45SmmProfileRecordSmiNum (
46 VOID
47 );
48
49/**
50 The Page fault handler to save SMM profile data.
51
52 @param Rip The RIP when exception happens.
53 @param ErrorCode The Error code of exception.
54
55**/
56VOID
57SmmProfilePFHandler (
58 UINTN Rip,
59 UINTN ErrorCode
60 );
61
62/**
63 Updates page table to make some memory ranges (like system memory) absent
64 and make some memory ranges (like MMIO) present and execute disable. It also
65 update 2MB-page to 4KB-page for some memory ranges.
66
67**/
68VOID
69SmmProfileStart (
70 VOID
71 );
72
73/**
74 Page fault IDT handler for SMM Profile.
75
76**/
77VOID
78EFIAPI
79PageFaultIdtHandlerSmmProfile (
80 VOID
81 );
82
83/**
84 Check if feature is supported by a processor.
85
86**/
87VOID
88CheckFeatureSupported (
89 VOID
90 );
91
92/**
93 Update page table according to protected memory ranges and the 4KB-page mapped memory ranges.
94
95**/
96VOID
97InitPaging (
98 VOID
99 );
100
101/**
102 Get CPU Index from APIC ID.
103
104**/
105UINTN
106GetCpuIndex (
107 VOID
108 );
109
110/**
111 Handler for Page Fault triggered by Guard page.
112
113 @param ErrorCode The Error code of exception.
114
115**/
116VOID
117GuardPagePFHandler (
118 UINTN ErrorCode
119 );
120
121//
122// The flag indicates if execute-disable is supported by processor.
123//
124extern BOOLEAN mXdSupported;
125//
126// The flag indicates if execute-disable is enabled on processor.
127//
128extern BOOLEAN mXdEnabled;
129//
130// The flag indicates if #DB will be setup in #PF handler.
131//
132extern BOOLEAN mSetupDebugTrap;
133
134#endif // _SMM_PROFILE_H_
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette