PrmMmio.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /** @file
  2. Definitions for the Platform Runtime Mechanism (PRM) MMIO elements.
  3. Copyright (c) Microsoft Corporation
  4. SPDX-License-Identifier: BSD-2-Clause-Patent
  5. **/
  6. #ifndef PRM_MMIO_H_
  7. #define PRM_MMIO_H_
  8. #include <Uefi.h>
  9. #pragma pack(push, 1)
  10. ///
  11. /// Describes a memory range that needs to be made accessible at OS runtime.
  12. ///
  13. /// The memory range with the given base address and length will be marked as EFI_MEMORY_RUNTIME.
  14. ///
  15. typedef struct {
  16. EFI_PHYSICAL_ADDRESS PhysicalBaseAddress;
  17. EFI_PHYSICAL_ADDRESS VirtualBaseAddress;
  18. UINT32 Length;
  19. } PRM_RUNTIME_MMIO_RANGE;
  20. ///
  21. /// Describes a buffer with an array of PRM module
  22. /// config runtime memory ranges.
  23. ///
  24. typedef struct {
  25. ///
  26. /// The number of runtime memory range elements in this buffer.
  27. ///
  28. UINT64 Count;
  29. ///
  30. /// The beginning of the runtime memory range data.
  31. ///
  32. PRM_RUNTIME_MMIO_RANGE Range[1];
  33. } PRM_RUNTIME_MMIO_RANGES;
  34. #pragma pack(pop)
  35. #endif