Browse Source
Merge pull request #2065 from lioncash/pm
service/pm: Implement SetMaintenanceBoot
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
19 additions and
3 deletions
-
src/core/hle/service/pm/pm.cpp
-
src/core/hle/service/pm/pm.h
|
|
|
@ -13,7 +13,7 @@ public: |
|
|
|
explicit BootMode() : ServiceFramework{"pm:bm"} { |
|
|
|
static const FunctionInfo functions[] = { |
|
|
|
{0, &BootMode::GetBootMode, "GetBootMode"}, |
|
|
|
{1, nullptr, "SetMaintenanceBoot"}, |
|
|
|
{1, &BootMode::SetMaintenanceBoot, "SetMaintenanceBoot"}, |
|
|
|
}; |
|
|
|
RegisterHandlers(functions); |
|
|
|
} |
|
|
|
@ -24,8 +24,19 @@ private: |
|
|
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 3}; |
|
|
|
rb.Push(RESULT_SUCCESS); |
|
|
|
rb.Push<u32>(static_cast<u32>(SystemBootMode::Normal)); // Normal boot mode
|
|
|
|
rb.PushEnum(boot_mode); |
|
|
|
} |
|
|
|
|
|
|
|
void SetMaintenanceBoot(Kernel::HLERequestContext& ctx) { |
|
|
|
LOG_DEBUG(Service_PM, "called"); |
|
|
|
|
|
|
|
boot_mode = SystemBootMode::Maintenance; |
|
|
|
|
|
|
|
IPC::ResponseBuilder rb{ctx, 2}; |
|
|
|
rb.Push(RESULT_SUCCESS); |
|
|
|
} |
|
|
|
|
|
|
|
SystemBootMode boot_mode = SystemBootMode::Normal; |
|
|
|
}; |
|
|
|
|
|
|
|
class DebugMonitor final : public ServiceFramework<DebugMonitor> { |
|
|
|
|
|
|
|
@ -9,7 +9,12 @@ class ServiceManager; |
|
|
|
} |
|
|
|
|
|
|
|
namespace Service::PM { |
|
|
|
enum class SystemBootMode : u32 { Normal = 0, Maintenance = 1 }; |
|
|
|
|
|
|
|
enum class SystemBootMode { |
|
|
|
Normal, |
|
|
|
Maintenance, |
|
|
|
}; |
|
|
|
|
|
|
|
/// Registers all PM services with the specified service manager. |
|
|
|
void InstallInterfaces(SM::ServiceManager& service_manager); |
|
|
|
|
|
|
|
|