|
|
@ -112,7 +112,6 @@ private: |
|
|
std::array<KThread*, Core::Hardware::NUM_CPU_CORES> m_pinned_threads{}; |
|
|
std::array<KThread*, Core::Hardware::NUM_CPU_CORES> m_pinned_threads{}; |
|
|
std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{}; |
|
|
std::array<DebugWatchpoint, Core::Hardware::NUM_WATCHPOINTS> m_watchpoints{}; |
|
|
std::map<KProcessAddress, u64> m_debug_page_refcounts{}; |
|
|
std::map<KProcessAddress, u64> m_debug_page_refcounts{}; |
|
|
std::unordered_map<u64, u64> m_post_handlers{}; |
|
|
|
|
|
std::atomic<s64> m_cpu_time{}; |
|
|
std::atomic<s64> m_cpu_time{}; |
|
|
std::atomic<s64> m_num_process_switches{}; |
|
|
std::atomic<s64> m_num_process_switches{}; |
|
|
std::atomic<s64> m_num_thread_switches{}; |
|
|
std::atomic<s64> m_num_thread_switches{}; |
|
|
@ -121,6 +120,9 @@ private: |
|
|
std::atomic<s64> m_num_ipc_messages{}; |
|
|
std::atomic<s64> m_num_ipc_messages{}; |
|
|
std::atomic<s64> m_num_ipc_replies{}; |
|
|
std::atomic<s64> m_num_ipc_replies{}; |
|
|
std::atomic<s64> m_num_ipc_receives{}; |
|
|
std::atomic<s64> m_num_ipc_receives{}; |
|
|
|
|
|
#ifdef HAS_NCE |
|
|
|
|
|
std::unordered_map<u64, u64> m_post_handlers{}; |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
private: |
|
|
private: |
|
|
Result StartTermination(); |
|
|
Result StartTermination(); |
|
|
@ -468,9 +470,11 @@ public: |
|
|
|
|
|
|
|
|
static void Switch(KProcess* cur_process, KProcess* next_process); |
|
|
static void Switch(KProcess* cur_process, KProcess* next_process); |
|
|
|
|
|
|
|
|
|
|
|
#ifdef HAS_NCE |
|
|
std::unordered_map<u64, u64>& GetPostHandlers() noexcept { |
|
|
std::unordered_map<u64, u64>& GetPostHandlers() noexcept { |
|
|
return m_post_handlers; |
|
|
return m_post_handlers; |
|
|
} |
|
|
} |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
public: |
|
|
public: |
|
|
// Attempts to insert a watchpoint into a free slot. Returns false if none are available. |
|
|
// Attempts to insert a watchpoint into a free slot. Returns false if none are available. |
|
|
|