From 352297d361e46eb19a84d174d54d82bc3d2adcef Mon Sep 17 00:00:00 2001 From: Liam Date: Wed, 21 Feb 2024 21:57:18 -0500 Subject: psc: rewrite IPmService --- src/core/hle/service/psc/pm_service.cpp | 12 +++++------- src/core/hle/service/psc/pm_service.h | 5 ++++- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'src/core/hle') diff --git a/src/core/hle/service/psc/pm_service.cpp b/src/core/hle/service/psc/pm_service.cpp index 99b16bbb0..c4e0ad228 100644 --- a/src/core/hle/service/psc/pm_service.cpp +++ b/src/core/hle/service/psc/pm_service.cpp @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "core/hle/service/ipc_helpers.h" +#include "core/hle/service/cmif_serialization.h" #include "core/hle/service/psc/pm_module.h" #include "core/hle/service/psc/pm_service.h" @@ -10,7 +10,7 @@ namespace Service::PSC { IPmService::IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m"} { // clang-format off static const FunctionInfo functions[] = { - {0, &IPmService::GetPmModule, "GetPmModule"}, + {0, D<&IPmService::GetPmModule>, "GetPmModule"}, }; // clang-format on @@ -19,12 +19,10 @@ IPmService::IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m IPmService::~IPmService() = default; -void IPmService::GetPmModule(HLERequestContext& ctx) { +Result IPmService::GetPmModule(Out> out_module) { LOG_DEBUG(Service_PSC, "called"); - - IPC::ResponseBuilder rb{ctx, 2, 0, 1}; - rb.Push(ResultSuccess); - rb.PushIpcInterface(system); + *out_module = std::make_shared(system); + R_SUCCEED(); } } // namespace Service::PSC diff --git a/src/core/hle/service/psc/pm_service.h b/src/core/hle/service/psc/pm_service.h index e8bd1fa6b..08e14c6f8 100644 --- a/src/core/hle/service/psc/pm_service.h +++ b/src/core/hle/service/psc/pm_service.h @@ -3,17 +3,20 @@ #pragma once +#include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" namespace Service::PSC { +class IPmModule; + class IPmService final : public ServiceFramework { public: explicit IPmService(Core::System& system_); ~IPmService() override; private: - void GetPmModule(HLERequestContext& ctx); + Result GetPmModule(Out> out_module); }; } // namespace Service::PSC -- cgit v1.2.3