aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/hid/hid.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-01-24 23:09:03 -0500
committerGitHub <noreply@github.com>2018-01-24 23:09:03 -0500
commit748c0de539674dc8ca4a5a8aadd2a61b0eabe652 (patch)
treeae56efe8654d3aa3a5e75ec04bd9dfdcc06023a9 /src/core/hle/service/hid/hid.cpp
parent44eb8402322a47a52f0401f9ef7473bea719e2bf (diff)
parentde177f66926a5170c1ad0621085494d27de8e2d4 (diff)
Merge pull request #137 from bunnei/improve-ipc
Improve IPC, unify Domains and Sessions, and add validation
Diffstat (limited to 'src/core/hle/service/hid/hid.cpp')
-rw-r--r--src/core/hle/service/hid/hid.cpp17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index ae60cc7b4..326e0a4ab 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -46,7 +46,7 @@ public:
private:
void GetSharedMemoryHandle(Kernel::HLERequestContext& ctx) {
- IPC::RequestBuilder rb{ctx, 2, 1};
+ IPC::ResponseBuilder rb{ctx, 2, 1};
rb.Push(RESULT_SUCCESS);
rb.PushCopyObjects(shared_mem);
LOG_DEBUG(Service, "called");
@@ -169,19 +169,10 @@ private:
applet_resource = std::make_shared<IAppletResource>();
}
- // TODO(Subv): Verify if this should return the interface as a domain object when called
- // from within a domain.
-
- auto sessions = Kernel::ServerSession::CreateSessionPair(applet_resource->GetServiceName());
- auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions);
- auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions);
- applet_resource->ClientConnected(server);
-
- LOG_DEBUG(Service, "called, initialized IAppletResource -> session=%u",
- client->GetObjectId());
- IPC::RequestBuilder rb{ctx, 2, 0, 1};
+ IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(RESULT_SUCCESS);
- rb.PushMoveObjects(std::move(client));
+ rb.PushIpcInterface<IAppletResource>(applet_resource);
+ LOG_DEBUG(Service, "called");
}
};