diff options
| author | Zephyron <zephyron@citron-emu.org> | 2025-03-06 06:42:48 +0000 | 
|---|---|---|
| committer | Zephyron <zephyron@citron-emu.org> | 2025-03-06 06:42:48 +0000 | 
| commit | af4f08be339a2ba093578e7083638a95d847fb9d (patch) | |
| tree | bbc13a49f4f8a73c925024e220e454942a59d1d9 /src/core/arm/nce | |
| parent | 0d0963d32ff11a487a4402dfd395c6d08afac6d6 (diff) | |
revert 6565055865688ba316801d99a3c3a5a0300cad5d
revert Fix: Core_Memory logging and ARM_NCE Mutex logging
Diffstat (limited to 'src/core/arm/nce')
| -rw-r--r-- | src/core/arm/nce/arm_nce.cpp | 8 | ||||
| -rw-r--r-- | src/core/arm/nce/arm_nce.h | 10 | 
2 files changed, 6 insertions, 12 deletions
| diff --git a/src/core/arm/nce/arm_nce.cpp b/src/core/arm/nce/arm_nce.cpp index 6220e3031..f08c5c352 100644 --- a/src/core/arm/nce/arm_nce.cpp +++ b/src/core/arm/nce/arm_nce.cpp @@ -199,7 +199,7 @@ bool ArmNce::HandleGuestAccessFault(GuestContext* guest_ctx, void* raw_info, voi          }          // Trigger an immediate remap if lookup fails -        if (!memory.Remap(fault_addr, Memory::CITRON_PAGESIZE, *nce)) { +        if (!memory.Remap(fault_addr, Memory::CITRON_PAGESIZE)) {              LOG_ERROR(Core_ARM, "Immediate remap failed for address {:X}", fault_addr);              return HandleFailedGuestFault(guest_ctx, raw_info, raw_context);          } @@ -430,7 +430,7 @@ void ArmNce::InvalidateCacheRange(u64 addr, std::size_t size) {  }  TlbEntry* ArmNce::FindTlbEntry(u64 guest_addr) { -    std::lock_guard<std::mutex> lock(m_tlb_mutex); // Correct usage of lock_guard +    std::lock_guard lock(m_tlb_mutex);      // Simple linear search - more reliable than complex indexing      for (size_t i = 0; i < TLB_SIZE; i++) { @@ -456,7 +456,7 @@ void ArmNce::AddTlbEntry(u64 guest_addr, u64 host_addr, u32 size, bool writable)          return;      } -    std::lock_guard<std::mutex> lock(m_tlb_mutex); // Correct usage of lock_guard +    std::lock_guard lock(m_tlb_mutex);      size_t replace_idx = TLB_SIZE;      auto now = std::chrono::steady_clock::now(); @@ -506,7 +506,7 @@ void ArmNce::AddTlbEntry(u64 guest_addr, u64 host_addr, u32 size, bool writable)  }  void ArmNce::InvalidateTlb() { -    std::lock_guard<std::mutex> lock(m_tlb_mutex); // Correct usage of lock_guard +    std::lock_guard lock(m_tlb_mutex);      auto now = std::chrono::steady_clock::now();      auto expiration_time = std::chrono::minutes(5); // Example: 5 minutes expiration diff --git a/src/core/arm/nce/arm_nce.h b/src/core/arm/nce/arm_nce.h index 416703557..13da2c8b4 100644 --- a/src/core/arm/nce/arm_nce.h +++ b/src/core/arm/nce/arm_nce.h @@ -62,11 +62,6 @@ public:      void LockThread(Kernel::KThread* thread) override;      void UnlockThread(Kernel::KThread* thread) override; -    // Method to provide access to TLB entries -    const std::array<TlbEntry, TLB_SIZE>& GetTlbEntries() const { -        return m_tlb; -    } -  protected:      const Kernel::DebugWatchpoint* HaltedWatchpoint() const override {          return nullptr; @@ -114,8 +109,8 @@ public:      std::unique_ptr<u8[]> m_stack{};      // Enhanced TLB implementation -    std::array<TlbEntry, TLB_SIZE> m_tlb{}; // Declare m_tlb -    std::mutex m_tlb_mutex; // Declare m_tlb_mutex +    std::array<TlbEntry, TLB_SIZE> m_tlb{}; +    std::mutex m_tlb_mutex;      u64 m_tlb_access_counter{0};      // TLB helper functions @@ -125,7 +120,6 @@ public:      size_t GetTlbSetIndex(u64 guest_addr) const;      size_t FindReplacementEntry(size_t set_start);      void UpdateTlbEntryStats(TlbEntry& entry); -    void StartTlbInvalidationTimer();      // Thread context caching      std::mutex m_context_mutex; | 
