From 3b8c0f8885c9e590f4317d8de51ea3d669ccdfcd Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sat, 20 Oct 2018 17:22:15 -0400 Subject: service: Add skeleton for psm service Seems to be the power controller. Listed in switchbrew under the category PTM services. --- src/core/hle/service/ptm/psm.cpp | 48 ++++++++++++++++++++++++++++++++++++++++ src/core/hle/service/ptm/psm.h | 22 ++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 src/core/hle/service/ptm/psm.cpp create mode 100644 src/core/hle/service/ptm/psm.h (limited to 'src/core/hle/service/ptm') diff --git a/src/core/hle/service/ptm/psm.cpp b/src/core/hle/service/ptm/psm.cpp new file mode 100644 index 000000000..f6186b809 --- /dev/null +++ b/src/core/hle/service/ptm/psm.cpp @@ -0,0 +1,48 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include + +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/ptm/psm.h" +#include "core/hle/service/service.h" +#include "core/hle/service/sm/sm.h" + +namespace Service::PSM { + +PSM::PSM() : ServiceFramework{"psm"} { + // clang-format off + static const FunctionInfo functions[] = { + {0, nullptr, "GetBatteryChargePercentage"}, + {1, nullptr, "GetChargerType"}, + {2, nullptr, "EnableBatteryCharging"}, + {3, nullptr, "DisableBatteryCharging"}, + {4, nullptr, "IsBatteryChargingEnabled"}, + {5, nullptr, "AcquireControllerPowerSupply"}, + {6, nullptr, "ReleaseControllerPowerSupply"}, + {7, nullptr, "OpenSession"}, + {8, nullptr, "EnableEnoughPowerChargeEmulation"}, + {9, nullptr, "DisableEnoughPowerChargeEmulation"}, + {10, nullptr, "EnableFastBatteryCharging"}, + {11, nullptr, "DisableFastBatteryCharging"}, + {12, nullptr, "GetBatteryVoltageState"}, + {13, nullptr, "GetRawBatteryChargePercentage"}, + {14, nullptr, "IsEnoughPowerSupplied"}, + {15, nullptr, "GetBatteryAgePercentage"}, + {16, nullptr, "GetBatteryChargeInfoEvent"}, + {17, nullptr, "GetBatteryChargeInfoFields"}, + }; + // clang-format on + + RegisterHandlers(functions); +} + +PSM::~PSM() = default; + +void InstallInterfaces(SM::ServiceManager& sm) { + std::make_shared()->InstallAsService(sm); +} + +} // namespace Service::PSM diff --git a/src/core/hle/service/ptm/psm.h b/src/core/hle/service/ptm/psm.h new file mode 100644 index 000000000..21955aa22 --- /dev/null +++ b/src/core/hle/service/ptm/psm.h @@ -0,0 +1,22 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once +#include "core/hle/service/service.h" + +namespace Service::SM { +class ServiceManager; +} + +namespace Service::PSM { + +class PSM final : public ServiceFramework { +public: + explicit PSM(); + ~PSM() override; +}; + +void InstallInterfaces(SM::ServiceManager& sm); + +} // namespace Service::PSM -- cgit v1.2.3