mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-26 07:01:02 +00:00
mods based on suggestion/feedback
This commit is contained in:
@@ -215,9 +215,7 @@ bool memory_manager::protect_memory(const uint64_t address, const size_t size, c
|
||||
|
||||
merge_regions(committed_regions);
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -242,9 +240,7 @@ bool memory_manager::allocate_mmio(const uint64_t address, const size_t size, mm
|
||||
|
||||
entry->second.committed_regions[address] = committed_region{size, memory_permission::read_write};
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -270,9 +266,7 @@ bool memory_manager::allocate_memory(const uint64_t address, const size_t size,
|
||||
entry->second.committed_regions[address] = committed_region{size, memory_permission::read_write};
|
||||
}
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -334,9 +328,7 @@ bool memory_manager::commit_memory(const uint64_t address, const size_t size, co
|
||||
|
||||
merge_regions(committed_regions);
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -384,9 +376,7 @@ bool memory_manager::decommit_memory(const uint64_t address, const size_t size)
|
||||
++i;
|
||||
}
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -440,10 +430,7 @@ bool memory_manager::release_memory(const uint64_t address, size_t size)
|
||||
}
|
||||
|
||||
this->reserved_regions_.erase(entry);
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
inc_memory_layout_state_ver();
|
||||
#endif
|
||||
invalidate_memory_layout_state_version();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#pragma once
|
||||
#include <map>
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#endif
|
||||
|
||||
#include "memory_region.hpp"
|
||||
#include "address_utils.hpp"
|
||||
@@ -127,12 +125,10 @@ class memory_manager
|
||||
return reserved_regions_;
|
||||
}
|
||||
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
std::uint64_t get_memory_layout_state_ver() const
|
||||
{
|
||||
return memory_layout_state_ver_.load(std::memory_order_relaxed);
|
||||
return memory_layout_state_version_.load(std::memory_order_relaxed);
|
||||
}
|
||||
#endif
|
||||
|
||||
private:
|
||||
reserved_region_map reserved_regions_{};
|
||||
@@ -144,14 +140,14 @@ class memory_manager
|
||||
virtual void apply_memory_protection(uint64_t address, size_t size, memory_permission permissions) = 0;
|
||||
|
||||
protected:
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
std::atomic<std::uint64_t> memory_layout_state_ver_{0};
|
||||
std::atomic<std::uint64_t> memory_layout_state_version_{0};
|
||||
|
||||
void inc_memory_layout_state_ver()
|
||||
void invalidate_memory_layout_state_version()
|
||||
{
|
||||
memory_layout_state_ver_.fetch_add(1, std::memory_order_relaxed);
|
||||
}
|
||||
#if MOMO_REFLECTION_LEVEL > 0
|
||||
memory_layout_state_version_.fetch_add(1, std::memory_order_relaxed);
|
||||
#endif
|
||||
}
|
||||
|
||||
void serialize_memory_state(utils::buffer_serializer& buffer, bool is_snapshot) const;
|
||||
void deserialize_memory_state(utils::buffer_deserializer& buffer, bool is_snapshot);
|
||||
|
||||
Reference in New Issue
Block a user