|
|
@@ -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> {
|