diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp index e85a8bdb9..b497376d7 100644 --- a/src/core/hle/service/lm/lm.cpp +++ b/src/core/hle/service/lm/lm.cpp @@ -4,10 +4,12 @@ #include #include + #include "common/logging/log.h" #include "core/hle/ipc_helpers.h" -#include "core/hle/kernel/client_session.h" #include "core/hle/service/lm/lm.h" +#include "core/hle/service/service.h" +#include "core/memory.h" namespace Service::LM { @@ -15,13 +17,12 @@ class Logger final : public ServiceFramework { public: Logger() : ServiceFramework("Logger") { static const FunctionInfo functions[] = { - {0x00000000, &Logger::Log, "Log"}, + {0x00000000, &Logger::Initialize, "Initialize"}, + {0x00000001, nullptr, "SetDestination"}, }; RegisterHandlers(functions); } - ~Logger() = default; - private: struct MessageHeader { enum Flags : u32_le { @@ -66,13 +67,13 @@ private: }; /** - * LM::Log service function + * ILogger::Initialize service function * Inputs: * 0: 0x00000000 * Outputs: * 0: ResultCode */ - void Log(Kernel::HLERequestContext& ctx) { + void Initialize(Kernel::HLERequestContext& ctx) { // This function only succeeds - Get that out of the way IPC::ResponseBuilder rb{ctx, 2}; rb.Push(RESULT_SUCCESS); @@ -162,30 +163,33 @@ private: std::ostringstream log_stream; }; +class LM final : public ServiceFramework { +public: + explicit LM() : ServiceFramework{"lm"} { + static const FunctionInfo functions[] = { + {0x00000000, &LM::OpenLogger, "OpenLogger"}, + }; + RegisterHandlers(functions); + } + + /** + * LM::OpenLogger service function + * Inputs: + * 0: 0x00000000 + * Outputs: + * 0: ResultCode + */ + void OpenLogger(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 2, 0, 1}; + rb.Push(RESULT_SUCCESS); + rb.PushIpcInterface(); + + LOG_DEBUG(Service_LM, "called"); + } +}; + void InstallInterfaces(SM::ServiceManager& service_manager) { std::make_shared()->InstallAsService(service_manager); } -/** - * LM::Initialize service function - * Inputs: - * 0: 0x00000000 - * Outputs: - * 0: ResultCode - */ -void LM::Initialize(Kernel::HLERequestContext& ctx) { - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; - rb.Push(RESULT_SUCCESS); - rb.PushIpcInterface(); - - LOG_DEBUG(Service_LM, "called"); -} - -LM::LM() : ServiceFramework("lm") { - static const FunctionInfo functions[] = { - {0x00000000, &LM::Initialize, "Initialize"}, - }; - RegisterHandlers(functions); -} - } // namespace Service::LM diff --git a/src/core/hle/service/lm/lm.h b/src/core/hle/service/lm/lm.h index 63d6506fe..7806ae27b 100644 --- a/src/core/hle/service/lm/lm.h +++ b/src/core/hle/service/lm/lm.h @@ -4,21 +4,12 @@ #pragma once -#include -#include "core/hle/kernel/kernel.h" -#include "core/hle/service/service.h" +namespace Service::SM { +class ServiceManager; +} namespace Service::LM { -class LM final : public ServiceFramework { -public: - LM(); - ~LM() = default; - -private: - void Initialize(Kernel::HLERequestContext& ctx); -}; - /// Registers all LM services with the specified service manager. void InstallInterfaces(SM::ServiceManager& service_manager);