diff options
author | Subv <subv2112@gmail.com> | 2016-05-22 18:22:49 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2016-06-05 16:35:31 +0200 |
commit | 3d9fbffbabbe2125ae6208d2d0049552e9293e49 (patch) | |
tree | 3a3d81d602b210bbf38323dd4898ff5225bf8754 /src/core/hle/kernel/server_port.cpp | |
parent | Merge pull request #1863 from mailwl/gpu-threadid-reset (diff) | |
download | yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar.gz yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar.bz2 yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar.lz yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar.xz yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.tar.zst yuzu-3d9fbffbabbe2125ae6208d2d0049552e9293e49.zip |
Diffstat (limited to 'src/core/hle/kernel/server_port.cpp')
-rw-r--r-- | src/core/hle/kernel/server_port.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/core/hle/kernel/server_port.cpp b/src/core/hle/kernel/server_port.cpp new file mode 100644 index 000000000..ca41265ff --- /dev/null +++ b/src/core/hle/kernel/server_port.cpp @@ -0,0 +1,38 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "common/assert.h" + +#include "core/hle/kernel/kernel.h" +#include "core/hle/kernel/server_port.h" +#include "core/hle/kernel/thread.h" + +namespace Kernel { + +ServerPort::ServerPort() {} +ServerPort::~ServerPort() {} + +bool ServerPort::ShouldWait() { + // If there are no pending sessions, we wait until a new one is added. + return pending_sessions.size() == 0; +} + +void ServerPort::Acquire() { + ASSERT_MSG(!ShouldWait(), "object unavailable!"); +} + +std::tuple<SharedPtr<ServerPort>, SharedPtr<ClientPort>> ServerPort::CreatePortPair(u32 max_sessions, std::string name) { + SharedPtr<ServerPort> server_port(new ServerPort); + SharedPtr<ClientPort> client_port(new ClientPort); + + server_port->name = name + "_Server"; + client_port->name = name + "_Client"; + client_port->server_port = server_port; + client_port->max_sessions = max_sessions; + client_port->active_sessions = 0; + + return std::make_tuple(std::move(server_port), std::move(client_port)); +} + +} // namespace |