|
|
|
@ -13,9 +13,7 @@
|
|
|
|
|
|
|
|
|
|
namespace Kernel {
|
|
|
|
|
|
|
|
|
|
enum KMemoryRegionType : u32 {};
|
|
|
|
|
|
|
|
|
|
enum KMemoryRegionAttr : typename std::underlying_type<KMemoryRegionType>::type {
|
|
|
|
|
enum KMemoryRegionType : u32 {
|
|
|
|
|
KMemoryRegionAttr_CarveoutProtected = 0x04000000,
|
|
|
|
|
KMemoryRegionAttr_DidKernelMap = 0x08000000,
|
|
|
|
|
KMemoryRegionAttr_ShouldKernelMap = 0x10000000,
|
|
|
|
@ -23,7 +21,7 @@ enum KMemoryRegionAttr : typename std::underlying_type<KMemoryRegionType>::type
|
|
|
|
|
KMemoryRegionAttr_NoUserMap = 0x40000000,
|
|
|
|
|
KMemoryRegionAttr_LinearMapped = 0x80000000,
|
|
|
|
|
};
|
|
|
|
|
DECLARE_ENUM_FLAG_OPERATORS(KMemoryRegionAttr);
|
|
|
|
|
DECLARE_ENUM_FLAG_OPERATORS(KMemoryRegionType);
|
|
|
|
|
|
|
|
|
|
namespace impl {
|
|
|
|
|
|
|
|
|
@ -82,8 +80,8 @@ public:
|
|
|
|
|
return *this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
constexpr KMemoryRegionTypeValue& SetAttribute(KMemoryRegionAttr attr) {
|
|
|
|
|
m_value |= static_cast<u32>(attr);
|
|
|
|
|
constexpr KMemoryRegionTypeValue& SetAttribute(u32 attr) {
|
|
|
|
|
m_value |= attr;
|
|
|
|
|
return *this;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -95,9 +93,9 @@ public:
|
|
|
|
|
return new_type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
constexpr KMemoryRegionTypeValue DeriveAttribute(KMemoryRegionAttr attr) const {
|
|
|
|
|
constexpr KMemoryRegionTypeValue DeriveAttribute(u32 attr) const {
|
|
|
|
|
KMemoryRegionTypeValue new_type = *this;
|
|
|
|
|
new_type.m_value |= static_cast<u32>(attr);
|
|
|
|
|
new_type.m_value |= attr;
|
|
|
|
|
return new_type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|