diff options
author | bunnei <bunneidev@gmail.com> | 2021-04-22 06:43:25 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2021-05-06 01:40:52 +0200 |
commit | 0297448fbc6bf909b0bc061723c38208b9667b66 (patch) | |
tree | 7c21303536466b0a76331e4274ecb3e12eb40421 /src/core/hle/kernel/k_client_port.cpp | |
parent | hle: kernel: HandleTable: Remove deprecated APIs. (diff) | |
download | yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar.gz yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar.bz2 yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar.lz yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar.xz yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.tar.zst yuzu-0297448fbc6bf909b0bc061723c38208b9667b66.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/kernel/k_client_port.cpp (renamed from src/core/hle/kernel/client_port.cpp) | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/core/hle/kernel/client_port.cpp b/src/core/hle/kernel/k_client_port.cpp index ce88da1c3..15bf0d4fc 100644 --- a/src/core/hle/kernel/client_port.cpp +++ b/src/core/hle/kernel/k_client_port.cpp @@ -2,8 +2,8 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. -#include "core/hle/kernel/client_port.h" #include "core/hle/kernel/hle_ipc.h" +#include "core/hle/kernel/k_client_port.h" #include "core/hle/kernel/k_session.h" #include "core/hle/kernel/object.h" #include "core/hle/kernel/server_port.h" @@ -11,18 +11,23 @@ namespace Kernel { -ClientPort::ClientPort(KernelCore& kernel) : Object{kernel} {} -ClientPort::~ClientPort() = default; +KClientPort::KClientPort(KernelCore& kernel) : KSynchronizationObject{kernel} {} +KClientPort::~KClientPort() = default; -std::shared_ptr<ServerPort> ClientPort::GetServerPort() const { +void KClientPort::Initialize(s32 max_sessions_, std::string&& name_) { + max_sessions = max_sessions_; + name = std::move(name_); +} + +std::shared_ptr<ServerPort> KClientPort::GetServerPort() const { return server_port; } -ResultVal<KClientSession*> ClientPort::Connect() { - if (active_sessions >= max_sessions) { +ResultVal<KClientSession*> KClientPort::Connect() { + if (num_sessions >= max_sessions) { return ResultOutOfSessions; } - active_sessions++; + num_sessions++; auto* session = Kernel::KSession::Create(kernel); session->Initialize(name + ":ClientPort"); @@ -36,12 +41,18 @@ ResultVal<KClientSession*> ClientPort::Connect() { return MakeResult(std::addressof(session->GetClientSession())); } -void ClientPort::ConnectionClosed() { - if (active_sessions == 0) { +void KClientPort::ConnectionClosed() { + if (num_sessions == 0) { return; } - --active_sessions; + --num_sessions; +} + +void KClientPort::Destroy() {} + +bool KClientPort::IsSignaled() const { + return num_sessions < max_sessions; } } // namespace Kernel |