TianoCore EDK2
master
Loading...
Searching...
No Matches
PrmContextBuffer.h
Go to the documentation of this file.
1
10
#ifndef PRM_CONTEXT_BUFFER_H_
11
#define PRM_CONTEXT_BUFFER_H_
12
13
#include <
PrmDataBuffer.h
>
14
#include <
PrmMmio.h
>
15
#include <
Uefi.h
>
16
17
#define PRM_CONTEXT_BUFFER_SIGNATURE SIGNATURE_32('P','R','M','C')
18
#define PRM_CONTEXT_BUFFER_INTERFACE_VERSION 1
19
20
#pragma pack(push, 1)
21
22
//
23
// Associates an ACPI parameter buffer with a particular PRM handler in
24
// a PRM module.
25
//
26
// If either the GUID or address are zero then neither value is used to
27
// copy the ACPI parameter buffer address to the PRMT ACPI table.
28
//
29
typedef
struct
{
30
EFI_GUID
HandlerGuid;
31
UINT64 AcpiParameterBufferAddress;
32
}
ACPI_PARAMETER_BUFFER_DESCRIPTOR
;
33
34
//
35
// This is the context buffer structure that is passed to a PRM handler.
36
//
37
// At OS runtime, the OS will allocate and populate this structure and
38
// place virtual addresses in the pointer fields.
39
//
40
// It is also reused internally in FW (in the PRM_MODULE_CONTEXT_BUFFERS structure)
41
// to track context buffers within a given PRM module. In that internal usage,
42
// the addresses will be physical addresses.
43
//
44
typedef
struct
{
48
UINT32
Signature
;
49
53
UINT16
Version
;
54
58
UINT16
Reserved
;
59
63
EFI_GUID
HandlerGuid
;
64
74
PRM_DATA_BUFFER
*
StaticDataBuffer
;
75
94
PRM_RUNTIME_MMIO_RANGES
*
RuntimeMmioRanges
;
95
}
PRM_CONTEXT_BUFFER
;
96
97
//
98
// A firmware internal data structure used to track context buffer and
99
// runtime MMIO range usage across a PRM module.
100
//
101
typedef
struct
{
105
EFI_GUID
ModuleGuid
;
106
111
UINTN
BufferCount
;
112
116
PRM_CONTEXT_BUFFER
*
Buffer
;
117
121
137
PRM_RUNTIME_MMIO_RANGES
*
RuntimeMmioRanges
;
138
143
UINTN
AcpiParameterBufferDescriptorCount
;
144
166
ACPI_PARAMETER_BUFFER_DESCRIPTOR
*
AcpiParameterBufferDescriptors
;
167
}
PRM_MODULE_CONTEXT_BUFFERS
;
168
169
#pragma pack(pop)
170
171
#endif
UINTN
UINT64 UINTN
Definition:
ProcessorBind.h:112
PrmDataBuffer.h
PrmMmio.h
Uefi.h
ACPI_PARAMETER_BUFFER_DESCRIPTOR
Definition:
PrmContextBuffer.h:29
GUID
Definition:
Base.h:213
PRM_CONTEXT_BUFFER
Definition:
PrmContextBuffer.h:44
PRM_CONTEXT_BUFFER::RuntimeMmioRanges
PRM_RUNTIME_MMIO_RANGES * RuntimeMmioRanges
Definition:
PrmContextBuffer.h:94
PRM_CONTEXT_BUFFER::Version
UINT16 Version
Definition:
PrmContextBuffer.h:53
PRM_CONTEXT_BUFFER::HandlerGuid
EFI_GUID HandlerGuid
Definition:
PrmContextBuffer.h:63
PRM_CONTEXT_BUFFER::Reserved
UINT16 Reserved
Definition:
PrmContextBuffer.h:58
PRM_CONTEXT_BUFFER::Signature
UINT32 Signature
Definition:
PrmContextBuffer.h:48
PRM_CONTEXT_BUFFER::StaticDataBuffer
PRM_DATA_BUFFER * StaticDataBuffer
Definition:
PrmContextBuffer.h:74
PRM_DATA_BUFFER
Definition:
PrmDataBuffer.h:36
PRM_MODULE_CONTEXT_BUFFERS
Definition:
PrmContextBuffer.h:101
PRM_MODULE_CONTEXT_BUFFERS::AcpiParameterBufferDescriptors
ACPI_PARAMETER_BUFFER_DESCRIPTOR * AcpiParameterBufferDescriptors
Definition:
PrmContextBuffer.h:166
PRM_MODULE_CONTEXT_BUFFERS::AcpiParameterBufferDescriptorCount
UINTN AcpiParameterBufferDescriptorCount
Definition:
PrmContextBuffer.h:143
PRM_MODULE_CONTEXT_BUFFERS::Buffer
PRM_CONTEXT_BUFFER * Buffer
Definition:
PrmContextBuffer.h:116
PRM_MODULE_CONTEXT_BUFFERS::BufferCount
UINTN BufferCount
Definition:
PrmContextBuffer.h:111
PRM_MODULE_CONTEXT_BUFFERS::ModuleGuid
EFI_GUID ModuleGuid
Definition:
PrmContextBuffer.h:105
PRM_MODULE_CONTEXT_BUFFERS::RuntimeMmioRanges
PRM_RUNTIME_MMIO_RANGES * RuntimeMmioRanges
Definition:
PrmContextBuffer.h:137
PRM_RUNTIME_MMIO_RANGES
Definition:
PrmMmio.h:32
PrmPkg
Include
PrmContextBuffer.h
Generated on Fri Nov 15 2024 18:01:22 for TianoCore EDK2 by
1.9.6