diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/pm/pm.cpp | 13 | ||||
-rw-r--r-- | src/core/hle/service/pm/pm.h | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/src/core/hle/service/pm/pm.cpp b/src/core/hle/service/pm/pm.cpp index e20a25689..6ec35ca60 100644 --- a/src/core/hle/service/pm/pm.cpp +++ b/src/core/hle/service/pm/pm.cpp @@ -2,6 +2,8 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/pm/pm.h" #include "core/hle/service/service.h" namespace Service::PM { @@ -10,11 +12,20 @@ class BootMode final : public ServiceFramework<BootMode> { public: explicit BootMode() : ServiceFramework{"pm:bm"} { static const FunctionInfo functions[] = { - {0, nullptr, "GetBootMode"}, + {0, &BootMode::GetBootMode, "GetBootMode"}, {1, nullptr, "SetMaintenanceBoot"}, }; RegisterHandlers(functions); } + +private: + void GetBootMode(Kernel::HLERequestContext& ctx) { + IPC::ResponseBuilder rb{ctx, 3}; + rb.Push(RESULT_SUCCESS); + rb.Push<u32>(static_cast<u32>(SystemBootMode::Normal)); // Normal boot mode + + LOG_DEBUG(Service_PM, "called"); + } }; class DebugMonitor final : public ServiceFramework<DebugMonitor> { diff --git a/src/core/hle/service/pm/pm.h b/src/core/hle/service/pm/pm.h index 9fc19fed6..370f2ed72 100644 --- a/src/core/hle/service/pm/pm.h +++ b/src/core/hle/service/pm/pm.h @@ -9,7 +9,7 @@ class ServiceManager; } namespace Service::PM { - +enum class SystemBootMode : u32 { Normal = 0, Maintenance = 1 }; /// Registers all PM services with the specified service manager. void InstallInterfaces(SM::ServiceManager& service_manager); |