-///\r
-/// SMRAM states and capabilities\r
-///\r
-#define EFI_SMRAM_OPEN 0x00000001\r
-#define EFI_SMRAM_CLOSED 0x00000002\r
-#define EFI_SMRAM_LOCKED 0x00000004\r
-#define EFI_CACHEABLE 0x00000008\r
-#define EFI_ALLOCATED 0x00000010\r
-#define EFI_NEEDS_TESTING 0x00000020\r
-#define EFI_NEEDS_ECC_INITIALIZATION 0x00000040\r
-\r
-///\r
-/// Structure describing a SMRAM region and its accessibility attributes\r
-///\r
-typedef struct {\r
- ///\r
- /// Designates the physical address of the SMRAM in memory. This view of memory is \r
- /// the same as seen by I/O-based agents, for example, but it may not be the address seen \r
- /// by the processors.\r
- ///\r
- EFI_PHYSICAL_ADDRESS PhysicalStart;\r
- ///\r
- /// Designates the address of the SMRAM, as seen by software executing on the \r
- /// processors. This address may or may not match PhysicalStart.\r
- ///\r
- EFI_PHYSICAL_ADDRESS CpuStart; \r
- ///\r
- /// Describes the number of bytes in the SMRAM region.\r
- ///\r
- UINT64 PhysicalSize;\r
- ///\r
- /// Describes the accessibility attributes of the SMRAM. These attributes include the \r
- /// hardware state (e.g., Open/Closed/Locked), capability (e.g., cacheable), logical \r
- /// allocation (e.g., allocated), and pre-use initialization (e.g., needs testing/ECC \r
- /// initialization).\r
- ///\r
- UINT64 RegionState;\r
-} EFI_SMRAM_DESCRIPTOR;\r