summaryrefslogtreecommitdiffstats
path: root/MdePkg
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2023-02-02 19:03:33 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-03-30 11:05:22 +0000
commit53eb26b238541799134aa5846530485c915735da (patch)
tree45b5126d29add1a9ac77d597310d8de62bb9c281 /MdePkg
parent3b4d1b38eac0542c8942dd114a6600d31aec503d (diff)
downloadedk2-53eb26b238541799134aa5846530485c915735da.tar.gz
edk2-53eb26b238541799134aa5846530485c915735da.tar.bz2
edk2-53eb26b238541799134aa5846530485c915735da.zip
MdePkg: Update MemoryAttributesTable to v2.10
UEFI v2.10 introduces a new flag to the memory attributes table to inform the OS whether or not runtime services code regions were emitted by the compiler with guard instructions for forward edge control flow integrity enforcement. So update our definition accordingly. Link: https://uefi.org/specs/UEFI/2.10/04_EFI_System_Table.html#efi-memory-attributes-table Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com> Reviewed-by: Oliver Smith-Denny <osd@smith-denny.com>
Diffstat (limited to 'MdePkg')
-rw-r--r--MdePkg/Include/Guid/MemoryAttributesTable.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/MdePkg/Include/Guid/MemoryAttributesTable.h b/MdePkg/Include/Guid/MemoryAttributesTable.h
index 82f83a67b9..238c14ff92 100644
--- a/MdePkg/Include/Guid/MemoryAttributesTable.h
+++ b/MdePkg/Include/Guid/MemoryAttributesTable.h
@@ -17,11 +17,15 @@ typedef struct {
UINT32 Version;
UINT32 NumberOfEntries;
UINT32 DescriptorSize;
- UINT32 Reserved;
+ UINT32 Flags;
// EFI_MEMORY_DESCRIPTOR Entry[1];
} EFI_MEMORY_ATTRIBUTES_TABLE;
-#define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000001
+#define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION 0x00000002
+
+#define EFI_MEMORY_ATTRIBUTES_FLAGS_RT_FORWARD_CONTROL_FLOW_GUARD 0x1
+// BIT0 implies that Runtime code includes the forward control flow guard
+// instruction, such as X86 CET-IBT or ARM BTI.
extern EFI_GUID gEfiMemoryAttributesTableGuid;