diff options
| author | bunnei <bunneidev@gmail.com> | 2018-01-24 23:09:03 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-01-24 23:09:03 -0500 |
| commit | 748c0de539674dc8ca4a5a8aadd2a61b0eabe652 (patch) | |
| tree | ae56efe8654d3aa3a5e75ec04bd9dfdcc06023a9 /src/core/hle/service/hid/hid.cpp | |
| parent | 44eb8402322a47a52f0401f9ef7473bea719e2bf (diff) | |
| parent | de177f66926a5170c1ad0621085494d27de8e2d4 (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.cpp | 17 |
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"); } }; |
