/** @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 #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 { EFI_PHYSICAL_ADDRESS PhysicalBaseAddress; EFI_PHYSICAL_ADDRESS VirtualBaseAddress; UINT32 Length; } 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. /// UINT64 Count; /// /// The beginning of the runtime memory range data. /// PRM_RUNTIME_MMIO_RANGE Range[1]; } PRM_RUNTIME_MMIO_RANGES; #pragma pack(pop) #endif