Browse Source
service: Add bpc and pcv services
service: Add bpc and pcv services
Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew.nce_cpp
8 changed files with 183 additions and 0 deletions
-
2src/common/logging/backend.cpp
-
2src/common/logging/log.h
-
4src/core/CMakeLists.txt
-
57src/core/hle/service/bpc/bpc.cpp
-
15src/core/hle/service/bpc/bpc.h
-
84src/core/hle/service/pcv/pcv.cpp
-
15src/core/hle/service/pcv/pcv.h
-
4src/core/hle/service/service.cpp
@ -0,0 +1,57 @@ |
|||||
|
// Copyright 2018 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include <memory>
|
||||
|
|
||||
|
#include "core/hle/service/bpc/bpc.h"
|
||||
|
#include "core/hle/service/service.h"
|
||||
|
#include "core/hle/service/sm/sm.h"
|
||||
|
|
||||
|
namespace Service::BPC { |
||||
|
|
||||
|
class BPC final : public ServiceFramework<BPC> { |
||||
|
public: |
||||
|
explicit BPC() : ServiceFramework{"bpc"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "ShutdownSystem"}, |
||||
|
{1, nullptr, "RebootSystem"}, |
||||
|
{2, nullptr, "GetWakeupReason"}, |
||||
|
{3, nullptr, "GetShutdownReason"}, |
||||
|
{4, nullptr, "GetAcOk"}, |
||||
|
{5, nullptr, "GetBoardPowerControlEvent"}, |
||||
|
{6, nullptr, "GetSleepButtonState"}, |
||||
|
{7, nullptr, "GetPowerEvent"}, |
||||
|
{8, nullptr, "Unknown1"}, |
||||
|
{9, nullptr, "Unknown2"}, |
||||
|
{10, nullptr, "Unknown3"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
class BPC_R final : public ServiceFramework<BPC_R> { |
||||
|
public: |
||||
|
explicit BPC_R() : ServiceFramework{"bpc:r"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "GetExternalRtcValue"}, |
||||
|
{1, nullptr, "SetExternalRtcValue"}, |
||||
|
{2, nullptr, "ReadExternalRtcResetFlag"}, |
||||
|
{3, nullptr, "ClearExternalRtcResetFlag"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
void InstallInterfaces(SM::ServiceManager& sm) { |
||||
|
std::make_shared<BPC>()->InstallAsService(sm); |
||||
|
std::make_shared<BPC_R>()->InstallAsService(sm); |
||||
|
} |
||||
|
|
||||
|
} // namespace Service::BPC
|
||||
@ -0,0 +1,15 @@ |
|||||
|
// Copyright 2018 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
namespace Service::SM { |
||||
|
class ServiceManager; |
||||
|
} |
||||
|
|
||||
|
namespace Service::BPC { |
||||
|
|
||||
|
void InstallInterfaces(SM::ServiceManager& sm); |
||||
|
|
||||
|
} // namespace Service::BPC |
||||
@ -0,0 +1,84 @@ |
|||||
|
// Copyright 2018 yuzu emulator team
|
||||
|
// Licensed under GPLv2 or any later version
|
||||
|
// Refer to the license.txt file included.
|
||||
|
|
||||
|
#include <memory>
|
||||
|
|
||||
|
#include "core/hle/service/pcv/pcv.h"
|
||||
|
#include "core/hle/service/service.h"
|
||||
|
#include "core/hle/service/sm/sm.h"
|
||||
|
|
||||
|
namespace Service::PCV { |
||||
|
|
||||
|
class PCV final : public ServiceFramework<PCV> { |
||||
|
public: |
||||
|
explicit PCV() : ServiceFramework{"pcv"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "SetPowerEnabled"}, |
||||
|
{1, nullptr, "SetClockEnabled"}, |
||||
|
{2, nullptr, "SetClockRate"}, |
||||
|
{3, nullptr, "GetClockRate"}, |
||||
|
{4, nullptr, "GetState"}, |
||||
|
{5, nullptr, "GetPossibleClockRates"}, |
||||
|
{6, nullptr, "SetMinVClockRate"}, |
||||
|
{7, nullptr, "SetReset"}, |
||||
|
{8, nullptr, "SetVoltageEnabled"}, |
||||
|
{9, nullptr, "GetVoltageEnabled"}, |
||||
|
{10, nullptr, "GetVoltageRange"}, |
||||
|
{11, nullptr, "SetVoltageValue"}, |
||||
|
{12, nullptr, "GetVoltageValue"}, |
||||
|
{13, nullptr, "GetTemperatureThresholds"}, |
||||
|
{14, nullptr, "SetTemperature"}, |
||||
|
{15, nullptr, "Initialize"}, |
||||
|
{16, nullptr, "IsInitialized"}, |
||||
|
{17, nullptr, "Finalize"}, |
||||
|
{18, nullptr, "PowerOn"}, |
||||
|
{19, nullptr, "PowerOff"}, |
||||
|
{20, nullptr, "ChangeVoltage"}, |
||||
|
{21, nullptr, "GetPowerClockInfoEvent"}, |
||||
|
{22, nullptr, "GetOscillatorClock"}, |
||||
|
{23, nullptr, "GetDvfsTable"}, |
||||
|
{24, nullptr, "GetModuleStateTable"}, |
||||
|
{25, nullptr, "GetPowerDomainStateTable"}, |
||||
|
{26, nullptr, "GetFuseInfo"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
class PCV_ARB final : public ServiceFramework<PCV_ARB> { |
||||
|
public: |
||||
|
explicit PCV_ARB() : ServiceFramework{"pcv:arb"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "ReleaseControl"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
class PCV_IMM final : public ServiceFramework<PCV_IMM> { |
||||
|
public: |
||||
|
explicit PCV_IMM() : ServiceFramework{"pcv:imm"} { |
||||
|
// clang-format off
|
||||
|
static const FunctionInfo functions[] = { |
||||
|
{0, nullptr, "SetClockRate"}, |
||||
|
}; |
||||
|
// clang-format on
|
||||
|
|
||||
|
RegisterHandlers(functions); |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
void InstallInterfaces(SM::ServiceManager& sm) { |
||||
|
std::make_shared<PCV>()->InstallAsService(sm); |
||||
|
std::make_shared<PCV_ARB>()->InstallAsService(sm); |
||||
|
std::make_shared<PCV_IMM>()->InstallAsService(sm); |
||||
|
} |
||||
|
|
||||
|
} // namespace Service::PCV
|
||||
@ -0,0 +1,15 @@ |
|||||
|
// Copyright 2018 yuzu emulator team |
||||
|
// Licensed under GPLv2 or any later version |
||||
|
// Refer to the license.txt file included. |
||||
|
|
||||
|
#pragma once |
||||
|
|
||||
|
namespace Service::SM { |
||||
|
class ServiceManager; |
||||
|
} |
||||
|
|
||||
|
namespace Service::PCV { |
||||
|
|
||||
|
void InstallInterfaces(SM::ServiceManager& sm); |
||||
|
|
||||
|
} // namespace Service::PCV |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue