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//
29typedef struct {
30 EFI_GUID HandlerGuid;
31 UINT64 AcpiParameterBufferAddress;
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//
44typedef struct {
48 UINT32 Signature;
49
53 UINT16 Version;
54
58 UINT16 Reserved;
59
64
75
96
97//
98// A firmware internal data structure used to track context buffer and
99// runtime MMIO range usage across a PRM module.
100//
101typedef struct {
106
112
117
121
138
144
168
169#pragma pack(pop)
170
171#endif
UINT64 UINTN
Definition: Base.h:213
PRM_RUNTIME_MMIO_RANGES * RuntimeMmioRanges
PRM_DATA_BUFFER * StaticDataBuffer
ACPI_PARAMETER_BUFFER_DESCRIPTOR * AcpiParameterBufferDescriptors
PRM_CONTEXT_BUFFER * Buffer
PRM_RUNTIME_MMIO_RANGES * RuntimeMmioRanges