TianoCore EDK2 master
Loading...
Searching...
No Matches
SmmProfileArch.h
Go to the documentation of this file.
1
9#ifndef _SMM_PROFILE_ARCH_H_
10#define _SMM_PROFILE_ARCH_H_
11
12#pragma pack (1)
13
14typedef struct _MSR_DS_AREA_STRUCT {
15 UINT32 BTSBufferBase;
16 UINT32 BTSIndex;
17 UINT32 BTSAbsoluteMaximum;
18 UINT32 BTSInterruptThreshold;
19 UINT32 PEBSBufferBase;
20 UINT32 PEBSIndex;
21 UINT32 PEBSAbsoluteMaximum;
22 UINT32 PEBSInterruptThreshold;
23 UINT32 PEBSCounterReset[4];
24 UINT32 Reserved;
26
27typedef struct _BRANCH_TRACE_RECORD {
28 UINT32 LastBranchFrom;
29 UINT32 LastBranchTo;
30 UINT32 Rsvd0 : 4;
31 UINT32 BranchPredicted : 1;
32 UINT32 Rsvd1 : 27;
34
35typedef struct _PEBS_RECORD {
36 UINT32 Eflags;
37 UINT32 LinearIP;
38 UINT32 Eax;
39 UINT32 Ebx;
40 UINT32 Ecx;
41 UINT32 Edx;
42 UINT32 Esi;
43 UINT32 Edi;
44 UINT32 Ebp;
45 UINT32 Esp;
47
48#pragma pack ()
49
50#define PHYSICAL_ADDRESS_MASK ((1ull << 32) - SIZE_4KB)
51
64VOID
66 UINT64 *PageTable,
67 UINT64 PFAddress,
68 UINTN CpuIndex,
69 UINTN ErrorCode,
70 BOOLEAN *IsValidPFAddress
71 );
72
79VOID
81 OUT UINTN *Cr3
82 );
83
88VOID
90 VOID
91 );
92
93#endif // _SMM_PROFILE_ARCH_H_
UINT64 UINTN
VOID InitPagesForPFHandler(VOID)
VOID RestorePageTableAbove4G(UINT64 *PageTable, UINT64 PFAddress, UINTN CpuIndex, UINTN ErrorCode, BOOLEAN *IsValidPFAddress)
VOID InitSmmS3Cr3(OUT UINTN *Cr3)
#define OUT
Definition: Base.h:284