@@ -1648,8 +1648,26 @@ bitflags! {
1648
1648
const MORE_RELIABLE = 0x10000 ;
1649
1649
/// This memory range can be set as read-only.
1650
1650
const READ_ONLY = 0x20000 ;
1651
+ /// This memory is earmarked for specific purposes such as for specific
1652
+ /// device drivers or applications. This serves as a hint to the OS to
1653
+ /// avoid this memory for core OS data or code that cannot be relocated.
1654
+ const SPECIAL_PURPOSE = 0x4_0000 ;
1655
+ /// This memory region is capable of being protected with the CPU's memory
1656
+ /// cryptography capabilities.
1657
+ const CPU_CRYPTO = 0x8_0000 ;
1651
1658
/// This memory must be mapped by the OS when a runtime service is called.
1652
1659
const RUNTIME = 0x8000_0000_0000_0000 ;
1660
+ /// This memory region is described with additional ISA-specific memory
1661
+ /// attributes as specified in `MemoryAttribute::ISA_MASK`.
1662
+ const ISA_VALID = 0x4000_0000_0000_0000 ;
1663
+ /// These bits are reserved for describing optional ISA-specific cache-
1664
+ /// ability attributes that are not covered by the standard UEFI Memory
1665
+ /// Attribute cacheability bits such as `UNCACHEABLE`, `WRITE_COMBINE`,
1666
+ /// `WRITE_THROUGH`, `WRITE_BACK`, and `UNCACHEABLE_EXPORTED`.
1667
+ ///
1668
+ /// See Section 2.3 "Calling Conventions" in the UEFI Specification
1669
+ /// for further information on each ISA that takes advantage of this.
1670
+ const ISA_MASK = 0x0FFF_F000_0000_0000 ;
1653
1671
}
1654
1672
}
1655
1673
0 commit comments