mirror of
https://git.h3cjp.net/H3cJP/citra.git
synced 2024-11-28 06:52:47 +00:00
kernel: Add IPC Recorder to KernelSystem
Refer to the previous commit message for reasons why this is in kernel.
This commit is contained in:
parent
a3057c968b
commit
b093d39a27
|
@ -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));
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue