diff options
| -rw-r--r-- | src/core/memory.cpp | 6 | ||||
| -rw-r--r-- | src/core/memory.h | 30 | ||||
| -rw-r--r-- | src/video_core/memory_manager.cpp | 26 | 
3 files changed, 3 insertions, 59 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 9a77e4ac0..b32071899 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp @@ -1183,9 +1183,9 @@ bool Memory::Remap(u64 guest_addr, u32 size, ArmNce& arm_nce) {  void Memory::ReclaimUnusedMemory(ArmNce& arm_nce) {      std::lock_guard<std::mutex> lock(arm_nce.m_tlb_mutex); // Correct usage of lock_guard -    auto& tlb_entries = arm_nce.GetTlbEntries(); +    const auto& tlb_entries = arm_nce.GetTlbEntries(); -    for (auto& entry : tlb_entries) { +    for (const auto& entry : tlb_entries) {          if (entry.valid && entry.ref_count == 0) {              // Unmap the memory region              UnmapRegion(*impl->current_page_table, entry.guest_addr, entry.size, false); @@ -1194,7 +1194,7 @@ void Memory::ReclaimUnusedMemory(ArmNce& arm_nce) {              std::free(reinterpret_cast<void*>(entry.host_addr));              // Invalidate the TLB entry -            entry.valid = false; +            const_cast<TlbEntry&>(entry).valid = false;              LOG_INFO(Core_Memory, "Reclaimed memory for address {:X}", entry.guest_addr);          } diff --git a/src/core/memory.h b/src/core/memory.h index 1fdb2ccc4..eeeee6d65 100644 --- a/src/core/memory.h +++ b/src/core/memory.h @@ -14,7 +14,6 @@  #include "common/typed_address.h"  #include "core/guest_memory.h"  #include "core/hle/result.h" -#include "core/arm/nce/arm_nce.h" // Include ArmNce header  namespace Common {  enum class MemoryPermission : u32; @@ -53,17 +52,6 @@ enum : u64 {      DEFAULT_STACK_SIZE = 0x100000,  }; -struct TlbEntry { -    u64 guest_addr; -    u64 host_addr; -    u32 size; -    bool valid; -    bool writable; -    u32 access_count; -    std::chrono::steady_clock::time_point last_access_time; -    u32 ref_count= 0; -}; -  /// Central class that handles all memory operations and state.  class Memory {  public: @@ -515,28 +503,10 @@ public:      bool Remap(u64 guest_addr, u32 size);      /** -     * Remaps a region of the emulated process address space. -     * -     * @param guest_addr The address to begin remapping at. -     * @param size       The amount of bytes to remap. -     * @param arm_nce    The ArmNce instance to use for TLB entries. -     * -     * @returns True if remapping is successful, false otherwise. -     */ -    bool Remap(u64 guest_addr, u32 size, ArmNce& arm_nce); - -    /**       * Reclaims memory from pages that are no longer used.       */      void ReclaimUnusedMemory(); -    /** -     * Reclaims memory from pages that are no longer used. -     * -     * @param arm_nce The ArmNce instance to use for TLB entries. -     */ -    void ReclaimUnusedMemory(ArmNce& arm_nce); -  private:      Core::System& system; diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 248b8bb5b..ffafc48ef 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -15,7 +15,6 @@  #include "video_core/memory_manager.h"  #include "video_core/rasterizer_interface.h"  #include "video_core/renderer_base.h" -#include "core/arm/nce/arm_nce.h"  namespace Tegra {  using Tegra::Memory::GuestMemoryFlags; @@ -786,28 +785,3 @@ u8* MemoryManager::GetSpan(const GPUVAddr src_addr, const std::size_t size) {  }  } // namespace Tegra - -namespace Core::Memory { - -void Memory::ReclaimUnusedMemory(ArmNce& arm_nce) { -    std::lock_guard<std::mutex> lock(arm_nce.m_tlb_mutex); // Correct usage of lock_guard - -    const auto& tlb_entries = arm_nce.GetTlbEntries(); - -    for (const auto& entry : tlb_entries) { -        if (entry.valid && entry.ref_count == 0) { -            // Unmap the memory region -            UnmapRegion(*impl->current_page_table, entry.guest_addr, entry.size, false); - -            // Free the memory -            std::free(reinterpret_cast<void*>(entry.host_addr)); - -            // Invalidate the TLB entry -            const_cast<TlbEntry&>(entry).valid = false; - -            LOG_INFO(Core_Memory, "Reclaimed memory for address {:X}", entry.guest_addr); -        } -    } -} - -} // namespace Core::Memory  | 
