| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- namespace Ryujinx.HLE.HOS.Services.Apm
- {
- abstract class ISystemManager : IpcService
- {
- public ISystemManager(ServiceCtx context) { }
- protected abstract void RequestPerformanceMode(PerformanceMode performanceMode);
- internal abstract void SetCpuBoostMode(CpuBoostMode cpuBoostMode);
- protected abstract PerformanceConfiguration GetCurrentPerformanceConfiguration();
- [CommandHipc(0)]
- // RequestPerformanceMode(nn::apm::PerformanceMode)
- public ResultCode RequestPerformanceMode(ServiceCtx context)
- {
- RequestPerformanceMode((PerformanceMode)context.RequestData.ReadInt32());
- // NOTE: This call seems to overclock the system related to the PerformanceMode, since we emulate it, it's fine to do nothing instead.
- return ResultCode.Success;
- }
- [CommandHipc(6)] // 7.0.0+
- // SetCpuBoostMode(nn::apm::CpuBootMode)
- public ResultCode SetCpuBoostMode(ServiceCtx context)
- {
- SetCpuBoostMode((CpuBoostMode)context.RequestData.ReadUInt32());
- // NOTE: This call seems to overclock the system related to the CpuBoostMode, since we emulate it, it's fine to do nothing instead.
- return ResultCode.Success;
- }
- [CommandHipc(7)] // 7.0.0+
- // GetCurrentPerformanceConfiguration() -> nn::apm::PerformanceConfiguration
- public ResultCode GetCurrentPerformanceConfiguration(ServiceCtx context)
- {
- context.ResponseData.Write((uint)GetCurrentPerformanceConfiguration());
- return ResultCode.Success;
- }
- }
- }
|