xref: /freebsd/sys/contrib/edk2/Include/Guid/MemoryAttributesTable.h (revision f439973d6726c3be929c8fb3b1545b8b1744abc3)
1*f439973dSWarner Losh /** @file
2*f439973dSWarner Losh   GUIDs used for UEFI Memory Attributes Table in the UEFI 2.6 specification.
3*f439973dSWarner Losh 
4*f439973dSWarner Losh   Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5*f439973dSWarner Losh   SPDX-License-Identifier: BSD-2-Clause-Patent
6*f439973dSWarner Losh 
7*f439973dSWarner Losh **/
8*f439973dSWarner Losh 
9*f439973dSWarner Losh #ifndef __UEFI_MEMORY_ATTRIBUTES_TABLE_H__
10*f439973dSWarner Losh #define __UEFI_MEMORY_ATTRIBUTES_TABLE_H__
11*f439973dSWarner Losh 
12*f439973dSWarner Losh #define EFI_MEMORY_ATTRIBUTES_TABLE_GUID  {\
13*f439973dSWarner Losh   0xdcfa911d, 0x26eb, 0x469f, {0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20} \
14*f439973dSWarner Losh }
15*f439973dSWarner Losh 
16*f439973dSWarner Losh typedef struct {
17*f439973dSWarner Losh   UINT32    Version;
18*f439973dSWarner Losh   UINT32    NumberOfEntries;
19*f439973dSWarner Losh   UINT32    DescriptorSize;
20*f439973dSWarner Losh   UINT32    Flags;
21*f439973dSWarner Losh   // EFI_MEMORY_DESCRIPTOR Entry[1];
22*f439973dSWarner Losh } EFI_MEMORY_ATTRIBUTES_TABLE;
23*f439973dSWarner Losh 
24*f439973dSWarner Losh #define EFI_MEMORY_ATTRIBUTES_TABLE_VERSION  0x00000002
25*f439973dSWarner Losh 
26*f439973dSWarner Losh #define EFI_MEMORY_ATTRIBUTES_FLAGS_RT_FORWARD_CONTROL_FLOW_GUARD  0x1
27*f439973dSWarner Losh // BIT0 implies that Runtime code includes the forward control flow guard
28*f439973dSWarner Losh // instruction, such as X86 CET-IBT or ARM BTI.
29*f439973dSWarner Losh 
30*f439973dSWarner Losh extern EFI_GUID  gEfiMemoryAttributesTableGuid;
31*f439973dSWarner Losh 
32*f439973dSWarner Losh #endif
33