summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-10-26 23:32:14 +0200
committerLiam <byteslice@airmail.cc>2022-10-31 22:45:45 +0100
commit7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089 (patch)
tree4ee0df95a65d98dd7e6b519c9aab13ab963a8c18
parentservice_thread: convert to map for session management (diff)
downloadyuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar.gz
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar.bz2
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar.lz
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar.xz
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.tar.zst
yuzu-7aa91c8d9ceb21e631e52c7ac30e47af2ec5a089.zip
-rw-r--r--src/core/hle/kernel/k_server_session.h4
-rw-r--r--src/core/hle/kernel/service_thread.cpp2
-rw-r--r--src/core/hle/service/sm/sm_controller.cpp5
3 files changed, 6 insertions, 5 deletions
diff --git a/src/core/hle/kernel/k_server_session.h b/src/core/hle/kernel/k_server_session.h
index e4698d3f5..6e189af8b 100644
--- a/src/core/hle/kernel/k_server_session.h
+++ b/src/core/hle/kernel/k_server_session.h
@@ -55,6 +55,10 @@ public:
Result ReceiveRequest(std::shared_ptr<HLERequestContext>* out_context = nullptr,
std::weak_ptr<SessionRequestManager> manager = {});
+ Result SendReplyHLE() {
+ return SendReply(true);
+ }
+
private:
/// Frees up waiting client sessions when this server session is about to die
void CleanupRequests();
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp
index 1d8775504..c8fe42537 100644
--- a/src/core/hle/kernel/service_thread.cpp
+++ b/src/core/hle/kernel/service_thread.cpp
@@ -103,7 +103,7 @@ void ServiceThread::Impl::WaitAndProcessImpl() {
Result service_rc = manager->CompleteSyncRequest(server_session, *context);
// Reply to the client.
- rc = server_session->SendReply(true);
+ rc = server_session->SendReplyHLE();
if (rc == ResultSessionClosed || service_rc == IPC::ERR_REMOTE_PROCESS_DEAD) {
SessionClosed(server_session, manager);
diff --git a/src/core/hle/service/sm/sm_controller.cpp b/src/core/hle/service/sm/sm_controller.cpp
index 940c33478..69e0fe808 100644
--- a/src/core/hle/service/sm/sm_controller.cpp
+++ b/src/core/hle/service/sm/sm_controller.cpp
@@ -33,16 +33,13 @@ void Controller::CloneCurrentObject(Kernel::HLERequestContext& ctx) {
// FIXME: this is duplicated from the SVC, it should just call it instead
// once this is a proper process
- // Declare the session we're going to allocate.
- Kernel::KSession* session;
-
// Reserve a new session from the process resource limit.
Kernel::KScopedResourceReservation session_reservation(&process,
Kernel::LimitableResource::Sessions);
ASSERT(session_reservation.Succeeded());
// Create the session.
- session = Kernel::KSession::Create(system.Kernel());
+ Kernel::KSession* session = Kernel::KSession::Create(system.Kernel());
ASSERT(session != nullptr);
// Initialize the session.