citra-emu
/
citra-canary
Archived
1
0
Fork 0

kernel: Add IPC Recorder to KernelSystem

Refer to the previous commit message for reasons why this is in kernel.
This commit is contained in:
zhupengfei 2019-07-22 20:10:47 +08:00
parent a3057c968b
commit b093d39a27
No known key found for this signature in database
GPG Key ID: DD129E108BD09378
2 changed files with 19 additions and 0 deletions

View File

@ -5,6 +5,7 @@
#include "core/hle/kernel/client_port.h" #include "core/hle/kernel/client_port.h"
#include "core/hle/kernel/config_mem.h" #include "core/hle/kernel/config_mem.h"
#include "core/hle/kernel/handle_table.h" #include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/ipc_debugger/recorder.h"
#include "core/hle/kernel/kernel.h" #include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/memory.h" #include "core/hle/kernel/memory.h"
#include "core/hle/kernel/process.h" #include "core/hle/kernel/process.h"
@ -25,6 +26,7 @@ KernelSystem::KernelSystem(Memory::MemorySystem& memory, Core::Timing& timing,
resource_limits = std::make_unique<ResourceLimitList>(*this); resource_limits = std::make_unique<ResourceLimitList>(*this);
thread_manager = std::make_unique<ThreadManager>(*this); thread_manager = std::make_unique<ThreadManager>(*this);
timer_manager = std::make_unique<TimerManager>(timing); timer_manager = std::make_unique<TimerManager>(timing);
ipc_recorder = std::make_unique<IPCDebugger::Recorder>();
} }
/// Shutdown the kernel /// Shutdown the kernel
@ -87,6 +89,14 @@ const SharedPage::Handler& KernelSystem::GetSharedPageHandler() const {
return *shared_page_handler; return *shared_page_handler;
} }
IPCDebugger::Recorder& KernelSystem::GetIPCRecorder() {
return *ipc_recorder;
}
const IPCDebugger::Recorder& KernelSystem::GetIPCRecorder() const {
return *ipc_recorder;
}
void KernelSystem::AddNamedPort(std::string name, std::shared_ptr<ClientPort> port) { void KernelSystem::AddNamedPort(std::string name, std::shared_ptr<ClientPort> port) {
named_ports.emplace(std::move(name), std::move(port)); named_ports.emplace(std::move(name), std::move(port));
} }

View File

@ -32,6 +32,10 @@ namespace Core {
class Timing; class Timing;
} }
namespace IPCDebugger {
class Recorder;
}
namespace Kernel { namespace Kernel {
class AddressArbiter; class AddressArbiter;
@ -222,6 +226,9 @@ public:
SharedPage::Handler& GetSharedPageHandler(); SharedPage::Handler& GetSharedPageHandler();
const SharedPage::Handler& GetSharedPageHandler() const; const SharedPage::Handler& GetSharedPageHandler() const;
IPCDebugger::Recorder& GetIPCRecorder();
const IPCDebugger::Recorder& GetIPCRecorder() const;
MemoryRegionInfo* GetMemoryRegion(MemoryRegion region); MemoryRegionInfo* GetMemoryRegion(MemoryRegion region);
void HandleSpecialMapping(VMManager& address_space, const AddressMapping& mapping); void HandleSpecialMapping(VMManager& address_space, const AddressMapping& mapping);
@ -274,6 +281,8 @@ private:
std::unique_ptr<ConfigMem::Handler> config_mem_handler; std::unique_ptr<ConfigMem::Handler> config_mem_handler;
std::unique_ptr<SharedPage::Handler> shared_page_handler; std::unique_ptr<SharedPage::Handler> shared_page_handler;
std::unique_ptr<IPCDebugger::Recorder> ipc_recorder;
}; };
} // namespace Kernel } // namespace Kernel