Browse Source

psc: rewrite IPmService

pull/15/merge
Liam 2 years ago
parent
commit
352297d361
  1. 12
      src/core/hle/service/psc/pm_service.cpp
  2. 5
      src/core/hle/service/psc/pm_service.h

12
src/core/hle/service/psc/pm_service.cpp

@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // 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_module.h"
#include "core/hle/service/psc/pm_service.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"} { IPmService::IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, &IPmService::GetPmModule, "GetPmModule"},
{0, D<&IPmService::GetPmModule>, "GetPmModule"},
}; };
// clang-format on // clang-format on
@ -19,12 +19,10 @@ IPmService::IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m
IPmService::~IPmService() = default; IPmService::~IPmService() = default;
void IPmService::GetPmModule(HLERequestContext& ctx) {
Result IPmService::GetPmModule(Out<SharedPointer<IPmModule>> out_module) {
LOG_DEBUG(Service_PSC, "called"); LOG_DEBUG(Service_PSC, "called");
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess);
rb.PushIpcInterface<IPmModule>(system);
*out_module = std::make_shared<IPmModule>(system);
R_SUCCEED();
} }
} // namespace Service::PSC } // namespace Service::PSC

5
src/core/hle/service/psc/pm_service.h

@ -3,17 +3,20 @@
#pragma once #pragma once
#include "core/hle/service/cmif_types.h"
#include "core/hle/service/service.h" #include "core/hle/service/service.h"
namespace Service::PSC { namespace Service::PSC {
class IPmModule;
class IPmService final : public ServiceFramework<IPmService> { class IPmService final : public ServiceFramework<IPmService> {
public: public:
explicit IPmService(Core::System& system_); explicit IPmService(Core::System& system_);
~IPmService() override; ~IPmService() override;
private: private:
void GetPmModule(HLERequestContext& ctx);
Result GetPmModule(Out<SharedPointer<IPmModule>> out_module);
}; };
} // namespace Service::PSC } // namespace Service::PSC
Loading…
Cancel
Save