|
|
|
@ -280,18 +280,19 @@ struct KMemoryInfo {
|
|
|
|
|
|
|
|
|
|
class KMemoryBlock : public Common::IntrusiveRedBlackTreeBaseNode<KMemoryBlock> {
|
|
|
|
|
private:
|
|
|
|
|
u16 m_device_disable_merge_left_count;
|
|
|
|
|
u16 m_device_disable_merge_right_count;
|
|
|
|
|
VAddr m_address;
|
|
|
|
|
size_t m_num_pages;
|
|
|
|
|
KMemoryState m_memory_state;
|
|
|
|
|
u16 m_ipc_lock_count;
|
|
|
|
|
u16 m_device_use_count;
|
|
|
|
|
u16 m_ipc_disable_merge_count;
|
|
|
|
|
KMemoryPermission m_permission;
|
|
|
|
|
KMemoryPermission m_original_permission;
|
|
|
|
|
KMemoryAttribute m_attribute;
|
|
|
|
|
KMemoryBlockDisableMergeAttribute m_disable_merge_attribute;
|
|
|
|
|
u16 m_device_disable_merge_left_count{};
|
|
|
|
|
u16 m_device_disable_merge_right_count{};
|
|
|
|
|
VAddr m_address{};
|
|
|
|
|
size_t m_num_pages{};
|
|
|
|
|
KMemoryState m_memory_state{KMemoryState::None};
|
|
|
|
|
u16 m_ipc_lock_count{};
|
|
|
|
|
u16 m_device_use_count{};
|
|
|
|
|
u16 m_ipc_disable_merge_count{};
|
|
|
|
|
KMemoryPermission m_permission{KMemoryPermission::None};
|
|
|
|
|
KMemoryPermission m_original_permission{KMemoryPermission::None};
|
|
|
|
|
KMemoryAttribute m_attribute{KMemoryAttribute::None};
|
|
|
|
|
KMemoryBlockDisableMergeAttribute m_disable_merge_attribute{
|
|
|
|
|
KMemoryBlockDisableMergeAttribute::None};
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
static constexpr int Compare(const KMemoryBlock& lhs, const KMemoryBlock& rhs) {
|
|
|
|
@ -367,12 +368,8 @@ public:
|
|
|
|
|
|
|
|
|
|
constexpr KMemoryBlock(VAddr addr, size_t np, KMemoryState ms, KMemoryPermission p,
|
|
|
|
|
KMemoryAttribute attr)
|
|
|
|
|
: Common::IntrusiveRedBlackTreeBaseNode<KMemoryBlock>(),
|
|
|
|
|
m_device_disable_merge_left_count(), m_device_disable_merge_right_count(),
|
|
|
|
|
m_address(addr), m_num_pages(np), m_memory_state(ms), m_ipc_lock_count(0),
|
|
|
|
|
m_device_use_count(0), m_ipc_disable_merge_count(), m_permission(p),
|
|
|
|
|
m_original_permission(KMemoryPermission::None), m_attribute(attr),
|
|
|
|
|
m_disable_merge_attribute() {}
|
|
|
|
|
: Common::IntrusiveRedBlackTreeBaseNode<KMemoryBlock>(), m_address(addr), m_num_pages(np),
|
|
|
|
|
m_memory_state(ms), m_permission(p), m_attribute(attr) {}
|
|
|
|
|
|
|
|
|
|
constexpr void Initialize(VAddr addr, size_t np, KMemoryState ms, KMemoryPermission p,
|
|
|
|
|
KMemoryAttribute attr) {
|
|
|
|
|