summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/kernel.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-11-27 00:32:13 +0100
committerZach Hilman <zachhilman@gmail.com>2018-11-29 14:42:26 +0100
commitc61d2a28413bd149d58b1173fa89a250ddce03c4 (patch)
treeb45cef0f468a5cd28c7624a78db036025800525a /src/core/hle/kernel/kernel.cpp
parentkernel: Divide Event into ReadableEvent and WritableEvent (diff)
downloadyuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar.gz
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar.bz2
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar.lz
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar.xz
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.tar.zst
yuzu-c61d2a28413bd149d58b1173fa89a250ddce03c4.zip
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
-rw-r--r--src/core/hle/kernel/kernel.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index e441c5bc6..9cd714586 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -17,9 +17,11 @@
#include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/process.h"
+#include "core/hle/kernel/readable_event.h"
#include "core/hle/kernel/resource_limit.h"
#include "core/hle/kernel/thread.h"
#include "core/hle/kernel/timer.h"
+#include "core/hle/kernel/writable_event.h"
#include "core/hle/lock.h"
#include "core/hle/result.h"
@@ -175,6 +177,10 @@ struct KernelCore::Impl {
// allowing us to simply use a pool index or similar.
Kernel::HandleTable thread_wakeup_callback_handle_table;
+ /// Map of named events managed by the kernel, which are retrieved when HLE services need to
+ /// return an event to the system.
+ NamedEventTable named_events;
+
/// Map of named ports managed by the kernel, which can be retrieved using
/// the ConnectToPort SVC.
NamedPortTable named_ports;
@@ -221,6 +227,19 @@ const Process* KernelCore::CurrentProcess() const {
return impl->current_process;
}
+void KernelCore::AddNamedEvent(std::string name, SharedPtr<ReadableEvent> event) {
+ impl->named_events.emplace(std::move(name), std::move(event));
+}
+
+KernelCore::NamedEventTable::iterator KernelCore::FindNamedEvent(const std::string& name) {
+ return impl->named_events.find(name);
+}
+
+KernelCore::NamedEventTable::const_iterator KernelCore::FindNamedEvent(
+ const std::string& name) const {
+ return impl->named_events.find(name);
+}
+
void KernelCore::AddNamedPort(std::string name, SharedPtr<ClientPort> port) {
impl->named_ports.emplace(std::move(name), std::move(port));
}