From 5049ca5d8c667ed973ad3ed83d82369243b2a16b Mon Sep 17 00:00:00 2001 From: David <25727384+ogniK5377@users.noreply.github.com> Date: Fri, 24 Aug 2018 08:31:45 +1000 Subject: Added GetBootMode (#1107) * Added GetBootMode Used by homebrew * Added enum for GetBootMode --- src/core/hle/service/pm/pm.cpp | 13 ++++++++++++- src/core/hle/service/pm/pm.h | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'src/core/hle/service/pm') 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 { 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(static_cast(SystemBootMode::Normal)); // Normal boot mode + + LOG_DEBUG(Service_PM, "called"); + } }; class DebugMonitor final : public ServiceFramework { 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); -- cgit v1.2.3