mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-27 01:02:48 +01:00
hle: kernel: Merge KMemoryRegionAttr and KMemoryRegionType.
- Fixes clang errors with mixed enum arithmetic.
This commit is contained in:
parent
3ffbe50e7d
commit
1d78190843
2 changed files with 9 additions and 11 deletions
|
@ -91,7 +91,7 @@ public:
|
||||||
return (this->GetType() | type) == this->GetType();
|
return (this->GetType() | type) == this->GetType();
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr bool HasTypeAttribute(KMemoryRegionAttr attr) const {
|
constexpr bool HasTypeAttribute(u32 attr) const {
|
||||||
return (this->GetType() | attr) == this->GetType();
|
return (this->GetType() | attr) == this->GetType();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ public:
|
||||||
pair_address = a;
|
pair_address = a;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr void SetTypeAttribute(KMemoryRegionAttr attr) {
|
constexpr void SetTypeAttribute(u32 attr) {
|
||||||
type_id |= attr;
|
type_id |= attr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,7 +237,7 @@ public:
|
||||||
return extents;
|
return extents;
|
||||||
}
|
}
|
||||||
|
|
||||||
DerivedRegionExtents GetDerivedRegionExtents(KMemoryRegionAttr type_id) const {
|
DerivedRegionExtents GetDerivedRegionExtents(u32 type_id) const {
|
||||||
return GetDerivedRegionExtents(static_cast<KMemoryRegionType>(type_id));
|
return GetDerivedRegionExtents(static_cast<KMemoryRegionType>(type_id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,7 @@
|
||||||
|
|
||||||
namespace Kernel {
|
namespace Kernel {
|
||||||
|
|
||||||
enum KMemoryRegionType : u32 {};
|
enum KMemoryRegionType : u32 {
|
||||||
|
|
||||||
enum KMemoryRegionAttr : typename std::underlying_type<KMemoryRegionType>::type {
|
|
||||||
KMemoryRegionAttr_CarveoutProtected = 0x04000000,
|
KMemoryRegionAttr_CarveoutProtected = 0x04000000,
|
||||||
KMemoryRegionAttr_DidKernelMap = 0x08000000,
|
KMemoryRegionAttr_DidKernelMap = 0x08000000,
|
||||||
KMemoryRegionAttr_ShouldKernelMap = 0x10000000,
|
KMemoryRegionAttr_ShouldKernelMap = 0x10000000,
|
||||||
|
@ -23,7 +21,7 @@ enum KMemoryRegionAttr : typename std::underlying_type<KMemoryRegionType>::type
|
||||||
KMemoryRegionAttr_NoUserMap = 0x40000000,
|
KMemoryRegionAttr_NoUserMap = 0x40000000,
|
||||||
KMemoryRegionAttr_LinearMapped = 0x80000000,
|
KMemoryRegionAttr_LinearMapped = 0x80000000,
|
||||||
};
|
};
|
||||||
DECLARE_ENUM_FLAG_OPERATORS(KMemoryRegionAttr);
|
DECLARE_ENUM_FLAG_OPERATORS(KMemoryRegionType);
|
||||||
|
|
||||||
namespace impl {
|
namespace impl {
|
||||||
|
|
||||||
|
@ -82,8 +80,8 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr KMemoryRegionTypeValue& SetAttribute(KMemoryRegionAttr attr) {
|
constexpr KMemoryRegionTypeValue& SetAttribute(u32 attr) {
|
||||||
m_value |= static_cast<u32>(attr);
|
m_value |= attr;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,9 +93,9 @@ public:
|
||||||
return new_type;
|
return new_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr KMemoryRegionTypeValue DeriveAttribute(KMemoryRegionAttr attr) const {
|
constexpr KMemoryRegionTypeValue DeriveAttribute(u32 attr) const {
|
||||||
KMemoryRegionTypeValue new_type = *this;
|
KMemoryRegionTypeValue new_type = *this;
|
||||||
new_type.m_value |= static_cast<u32>(attr);
|
new_type.m_value |= attr;
|
||||||
return new_type;
|
return new_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue