diff options
author | Lioncash <mathew1800@gmail.com> | 2018-09-02 17:58:58 +0200 |
---|---|---|
committer | Lioncash <mathew1800@gmail.com> | 2018-09-02 18:35:30 +0200 |
commit | 1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2 (patch) | |
tree | f540b9cbc6db29bb5d41668f7efa8fc5c4e44469 /src/core/hle/kernel/kernel.cpp | |
parent | Merge pull request #1213 from DarkLordZach/octopath-fs (diff) | |
download | yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar.gz yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar.bz2 yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar.lz yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar.xz yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.tar.zst yuzu-1242c1ec0aab88d91b0bb4faf6200e4f20e4bdc2.zip |
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r-- | src/core/hle/kernel/kernel.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 615d7901a..7902c2882 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -13,6 +13,7 @@ #include "core/core.h" #include "core/core_timing.h" +#include "core/hle/kernel/client_port.h" #include "core/hle/kernel/handle_table.h" #include "core/hle/kernel/kernel.h" #include "core/hle/kernel/process.h" @@ -124,6 +125,8 @@ struct KernelCore::Impl { timer_callback_handle_table.Clear(); timer_callback_event_type = nullptr; + + named_ports.clear(); } void InitializeResourceLimits(KernelCore& kernel) { @@ -217,6 +220,10 @@ struct KernelCore::Impl { // TODO(yuriks): This can be removed if Thread objects are explicitly pooled in the future, // allowing us to simply use a pool index or similar. Kernel::HandleTable thread_wakeup_callback_handle_table; + + /// Map of named ports managed by the kernel, which can be retrieved using + /// the ConnectToPort SVC. + NamedPortTable named_ports; }; KernelCore::KernelCore() : impl{std::make_unique<Impl>()} {} @@ -257,6 +264,23 @@ void KernelCore::AppendNewProcess(SharedPtr<Process> process) { impl->process_list.push_back(std::move(process)); } +void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) { + impl->named_ports.emplace(std::move(name), std::move(port)); +} + +KernelCore::NamedPortTable::iterator KernelCore::FindNamedPort(const std::string& name) { + return impl->named_ports.find(name); +} + +KernelCore::NamedPortTable::const_iterator KernelCore::FindNamedPort( + const std::string& name) const { + return impl->named_ports.find(name); +} + +bool KernelCore::IsValidNamedPort(NamedPortTable::const_iterator port) const { + return port != impl->named_ports.cend(); +} + u32 KernelCore::CreateNewObjectID() { return impl->next_object_id++; } |