2020-04-07 20:00:28 +02:00
|
|
|
/** @file
|
|
|
|
|
|
|
|
Definitions for the Platform Runtime Mechanism (PRM) MMIO elements.
|
|
|
|
|
|
|
|
Copyright (c) Microsoft Corporation
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef PRM_MMIO_H_
|
|
|
|
#define PRM_MMIO_H_
|
|
|
|
|
|
|
|
#include <Uefi.h>
|
|
|
|
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
|
|
|
|
///
|
|
|
|
/// Describes a memory range that needs to be made accessible at OS runtime.
|
|
|
|
///
|
|
|
|
/// The memory range with the given base address and length will be marked as EFI_MEMORY_RUNTIME.
|
|
|
|
///
|
|
|
|
typedef struct {
|
2022-03-15 19:46:34 +01:00
|
|
|
EFI_PHYSICAL_ADDRESS PhysicalBaseAddress;
|
|
|
|
EFI_PHYSICAL_ADDRESS VirtualBaseAddress;
|
|
|
|
UINT32 Length;
|
2020-04-07 20:00:28 +02:00
|
|
|
} PRM_RUNTIME_MMIO_RANGE;
|
|
|
|
|
|
|
|
///
|
|
|
|
/// Describes a buffer with an array of PRM module
|
|
|
|
/// config runtime memory ranges.
|
|
|
|
///
|
|
|
|
typedef struct {
|
|
|
|
///
|
|
|
|
/// The number of runtime memory range elements in this buffer.
|
|
|
|
///
|
2022-03-15 19:46:34 +01:00
|
|
|
UINT64 Count;
|
2020-04-07 20:00:28 +02:00
|
|
|
///
|
|
|
|
/// The beginning of the runtime memory range data.
|
|
|
|
///
|
2022-03-15 19:46:34 +01:00
|
|
|
PRM_RUNTIME_MMIO_RANGE Range[1];
|
2020-04-07 20:00:28 +02:00
|
|
|
} PRM_RUNTIME_MMIO_RANGES;
|
|
|
|
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
#endif
|