TianoCore EDK2
master
Loading...
Searching...
No Matches
PiSmmCommunicationRegionTable.h
Go to the documentation of this file.
1
8
#ifndef _PI_SMM_COMMUNICATION_REGION_TABLE_H_
9
#define _PI_SMM_COMMUNICATION_REGION_TABLE_H_
10
11
#define EDKII_PI_SMM_COMMUNICATION_REGION_TABLE_GUID {\
12
0x4e28ca50, 0xd582, 0x44ac, {0xa1, 0x1f, 0xe3, 0xd5, 0x65, 0x26, 0xdb, 0x34} \
13
}
14
15
//
16
// This table to declare the generic SMM communication buffer location.
17
// If this table is present, it means the SMM communication buffer is restricted to
18
// EfiReservedMemoryType, EfiACPIMemoryNVS, or EfiRuntimeServicesData.
19
//
20
// This table is installed to UEFI configuration table by generic driver
21
// or platform driver, at early DXE phase.
22
//
23
// The EFI_MEMORY_DESCRIPTOR entry must contain at least one entry.
24
// The entries must be normal memory region in EfiReservedMemoryType, EfiACPIMemoryNVS,
25
// or EfiRuntimeServicesData.
26
// If the Entry.Type is EfiConventionalMemory, it means this entry is free to use.
27
// If the Entry.Type is other, it means this entry is occupied.
28
//
29
// Any non-SMM component may put communication data there, then use
30
// UEFI defined SMM Communication ACPI Table, or PI defined EFI_SMM_COMMUNICATION_PROTOCOL
31
// to communicate with SMI handler. The process is:
32
// 1) Find an entry whose type is EfiConventional.
33
// 2) Change type to be EfiReservedMemoryType before use.
34
// 3) Use it.
35
// 4) Restore type be EfiConventional.
36
// The step 2) must be performed as an atomic transaction, if there might be conflict during runtime.
37
// For example, on IA-32/x64 platforms, this can be done using the CMPXCHG CPU instruction.
38
// If there is guarantee on no conflict during boot time, these steps can be skipped.
39
// For example, DXE, UEFI driver and UEFI application runs in sequence.
40
//
41
// For example, FPDT driver can use this communication buffer to get SMM
42
// performance data in SMM. Profile driver can use this communication buffer
43
// to get SMM profile data in SMM.
44
//
45
typedef
struct
{
46
UINT32 Version;
47
UINT32 NumberOfEntries;
48
UINT32 DescriptorSize;
49
UINT32 Reserved;
50
// EFI_MEMORY_DESCRIPTOR Entry[1];
51
}
EDKII_PI_SMM_COMMUNICATION_REGION_TABLE
;
52
53
#define EDKII_PI_SMM_COMMUNICATION_REGION_TABLE_VERSION 0x00000001
54
55
extern
EFI_GUID
gEdkiiPiSmmCommunicationRegionTableGuid;
56
57
#endif
EDKII_PI_SMM_COMMUNICATION_REGION_TABLE
Definition:
PiSmmCommunicationRegionTable.h:45
GUID
Definition:
Base.h:213
MdeModulePkg
Include
Guid
PiSmmCommunicationRegionTable.h
Generated on Fri Nov 15 2024 18:01:11 for TianoCore EDK2 by
1.9.6