Merge pull request #2065 from lioncash/pm
service/pm: Implement SetMaintenanceBoot
This commit is contained in:
		
						commit
						c608d3a979
					
				@ -13,7 +13,7 @@ public:
 | 
				
			|||||||
    explicit BootMode() : ServiceFramework{"pm:bm"} {
 | 
					    explicit BootMode() : ServiceFramework{"pm:bm"} {
 | 
				
			||||||
        static const FunctionInfo functions[] = {
 | 
					        static const FunctionInfo functions[] = {
 | 
				
			||||||
            {0, &BootMode::GetBootMode, "GetBootMode"},
 | 
					            {0, &BootMode::GetBootMode, "GetBootMode"},
 | 
				
			||||||
            {1, nullptr, "SetMaintenanceBoot"},
 | 
					            {1, &BootMode::SetMaintenanceBoot, "SetMaintenanceBoot"},
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        RegisterHandlers(functions);
 | 
					        RegisterHandlers(functions);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -24,8 +24,19 @@ private:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        IPC::ResponseBuilder rb{ctx, 3};
 | 
					        IPC::ResponseBuilder rb{ctx, 3};
 | 
				
			||||||
        rb.Push(RESULT_SUCCESS);
 | 
					        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> {
 | 
					class DebugMonitor final : public ServiceFramework<DebugMonitor> {
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,12 @@ class ServiceManager;
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Service::PM {
 | 
					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.
 | 
					/// Registers all PM services with the specified service manager.
 | 
				
			||||||
void InstallInterfaces(SM::ServiceManager& service_manager);
 | 
					void InstallInterfaces(SM::ServiceManager& service_manager);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user