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/lm/lm.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/lm/lm.cpp')
| -rw-r--r-- | src/core/hle/service/lm/lm.cpp | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index b505cdcaf..2843e0e40 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp @@ -65,7 +65,7 @@ private: */ void Log(Kernel::HLERequestContext& ctx) { // This function only succeeds - Get that out of the way - IPC::RequestBuilder rb{ctx, 1}; + IPC::ResponseBuilder rb{ctx, 2}; rb.Push(RESULT_SUCCESS); // Read MessageHeader, despite not doing anything with it right now @@ -130,7 +130,7 @@ private: } output += message; - LOG_DEBUG(Debug_Emulated, "%s", output.c_str()); + LOG_INFO(Debug_Emulated, "%s", output.c_str()); } }; @@ -146,21 +146,11 @@ void InstallInterfaces(SM::ServiceManager& service_manager) { * 0: ResultCode */ void LM::Initialize(Kernel::HLERequestContext& ctx) { - // TODO(Subv): Verify if this should return the interface as a domain object when called from - // within a domain. - - auto logger = std::make_shared<Logger>(); - auto sessions = Kernel::ServerSession::CreateSessionPair(logger->GetServiceName()); - auto server = std::get<Kernel::SharedPtr<Kernel::ServerSession>>(sessions); - auto client = std::get<Kernel::SharedPtr<Kernel::ClientSession>>(sessions); - logger->ClientConnected(server); - - LOG_DEBUG(Service_SM, "called, initialized logger -> 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<Logger>(); - LOG_INFO(Service_SM, "called"); + LOG_DEBUG(Service, "called"); } LM::LM() : ServiceFramework("lm") { |
