mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 02:34:11 +01:00 
			
		
		
		
	psc: move IPmControl, IPmModule, IPmService
This commit is contained in:
		
							parent
							
								
									8bbc209950
								
							
						
					
					
						commit
						6c2d6cff19
					
				| @ -891,6 +891,12 @@ add_library(core STATIC | |||||||
|     hle/service/pm/pm.h |     hle/service/pm/pm.h | ||||||
|     hle/service/prepo/prepo.cpp |     hle/service/prepo/prepo.cpp | ||||||
|     hle/service/prepo/prepo.h |     hle/service/prepo/prepo.h | ||||||
|  |     hle/service/psc/pm_control.cpp | ||||||
|  |     hle/service/psc/pm_control.h | ||||||
|  |     hle/service/psc/pm_module.cpp | ||||||
|  |     hle/service/psc/pm_module.h | ||||||
|  |     hle/service/psc/pm_service.cpp | ||||||
|  |     hle/service/psc/pm_service.h | ||||||
|     hle/service/psc/psc.cpp |     hle/service/psc/psc.cpp | ||||||
|     hle/service/psc/psc.h |     hle/service/psc/psc.h | ||||||
|     hle/service/psc/time/alarms.cpp |     hle/service/psc/time/alarms.cpp | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								src/core/hle/service/psc/pm_control.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/core/hle/service/psc/pm_control.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/psc/pm_control.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | IPmControl::IPmControl(Core::System& system_) : ServiceFramework{system_, "psc:c"} { | ||||||
|  |     // clang-format off
 | ||||||
|  |     static const FunctionInfo functions[] = { | ||||||
|  |         {0, nullptr, "Initialize"}, | ||||||
|  |         {1, nullptr, "DispatchRequest"}, | ||||||
|  |         {2, nullptr, "GetResult"}, | ||||||
|  |         {3, nullptr, "GetState"}, | ||||||
|  |         {4, nullptr, "Cancel"}, | ||||||
|  |         {5, nullptr, "PrintModuleInformation"}, | ||||||
|  |         {6, nullptr, "GetModuleInformation"}, | ||||||
|  |         {10, nullptr, "AcquireStateLock"}, | ||||||
|  |         {11, nullptr, "HasStateLock"}, | ||||||
|  |     }; | ||||||
|  |     // clang-format on
 | ||||||
|  | 
 | ||||||
|  |     RegisterHandlers(functions); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | IPmControl::~IPmControl() = default; | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
							
								
								
									
										16
									
								
								src/core/hle/service/psc/pm_control.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/psc/pm_control.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/service.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | class IPmControl final : public ServiceFramework<IPmControl> { | ||||||
|  | public: | ||||||
|  |     explicit IPmControl(Core::System& system_); | ||||||
|  |     ~IPmControl() override; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
							
								
								
									
										24
									
								
								src/core/hle/service/psc/pm_module.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/core/hle/service/psc/pm_module.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/psc/pm_module.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | IPmModule::IPmModule(Core::System& system_) : ServiceFramework{system_, "IPmModule"} { | ||||||
|  |     // clang-format off
 | ||||||
|  |         static const FunctionInfo functions[] = { | ||||||
|  |             {0, nullptr, "Initialize"}, | ||||||
|  |             {1, nullptr, "GetRequest"}, | ||||||
|  |             {2, nullptr, "Acknowledge"}, | ||||||
|  |             {3, nullptr, "Finalize"}, | ||||||
|  |             {4, nullptr, "AcknowledgeEx"}, | ||||||
|  |         }; | ||||||
|  |     // clang-format on
 | ||||||
|  | 
 | ||||||
|  |     RegisterHandlers(functions); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | IPmModule::~IPmModule() = default; | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
							
								
								
									
										16
									
								
								src/core/hle/service/psc/pm_module.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/core/hle/service/psc/pm_module.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,16 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/service.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | class IPmModule final : public ServiceFramework<IPmModule> { | ||||||
|  | public: | ||||||
|  |     explicit IPmModule(Core::System& system_); | ||||||
|  |     ~IPmModule() override; | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
							
								
								
									
										30
									
								
								src/core/hle/service/psc/pm_service.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/core/hle/service/psc/pm_service.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/ipc_helpers.h" | ||||||
|  | #include "core/hle/service/psc/pm_module.h" | ||||||
|  | #include "core/hle/service/psc/pm_service.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | IPmService::IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m"} { | ||||||
|  |     // clang-format off
 | ||||||
|  |     static const FunctionInfo functions[] = { | ||||||
|  |         {0, &IPmService::GetPmModule, "GetPmModule"}, | ||||||
|  |     }; | ||||||
|  |     // clang-format on
 | ||||||
|  | 
 | ||||||
|  |     RegisterHandlers(functions); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | IPmService::~IPmService() = default; | ||||||
|  | 
 | ||||||
|  | void IPmService::GetPmModule(HLERequestContext& ctx) { | ||||||
|  |     LOG_DEBUG(Service_PSC, "called"); | ||||||
|  | 
 | ||||||
|  |     IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||||
|  |     rb.Push(ResultSuccess); | ||||||
|  |     rb.PushIpcInterface<IPmModule>(system); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
							
								
								
									
										19
									
								
								src/core/hle/service/psc/pm_service.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								src/core/hle/service/psc/pm_service.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
 | ||||||
|  | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #include "core/hle/service/service.h" | ||||||
|  | 
 | ||||||
|  | namespace Service::PSC { | ||||||
|  | 
 | ||||||
|  | class IPmService final : public ServiceFramework<IPmService> { | ||||||
|  | public: | ||||||
|  |     explicit IPmService(Core::System& system_); | ||||||
|  |     ~IPmService() override; | ||||||
|  | 
 | ||||||
|  | private: | ||||||
|  |     void GetPmModule(HLERequestContext& ctx); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | } // namespace Service::PSC
 | ||||||
| @ -1,11 +1,8 @@ | |||||||
| // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 | ||||||
| // SPDX-License-Identifier: GPL-2.0-or-later
 | // SPDX-License-Identifier: GPL-2.0-or-later
 | ||||||
| 
 | 
 | ||||||
| #include <memory> | #include "core/hle/service/psc/pm_control.h" | ||||||
| 
 | #include "core/hle/service/psc/pm_service.h" | ||||||
| #include "common/logging/log.h" |  | ||||||
| #include "core/core.h" |  | ||||||
| #include "core/hle/service/ipc_helpers.h" |  | ||||||
| #include "core/hle/service/psc/psc.h" | #include "core/hle/service/psc/psc.h" | ||||||
| #include "core/hle/service/psc/time/manager.h" | #include "core/hle/service/psc/time/manager.h" | ||||||
| #include "core/hle/service/psc/time/power_state_service.h" | #include "core/hle/service/psc/time/power_state_service.h" | ||||||
| @ -15,66 +12,6 @@ | |||||||
| 
 | 
 | ||||||
| namespace Service::PSC { | namespace Service::PSC { | ||||||
| 
 | 
 | ||||||
| class IPmControl final : public ServiceFramework<IPmControl> { |  | ||||||
| public: |  | ||||||
|     explicit IPmControl(Core::System& system_) : ServiceFramework{system_, "psc:c"} { |  | ||||||
|         // clang-format off
 |  | ||||||
|         static const FunctionInfo functions[] = { |  | ||||||
|             {0, nullptr, "Initialize"}, |  | ||||||
|             {1, nullptr, "DispatchRequest"}, |  | ||||||
|             {2, nullptr, "GetResult"}, |  | ||||||
|             {3, nullptr, "GetState"}, |  | ||||||
|             {4, nullptr, "Cancel"}, |  | ||||||
|             {5, nullptr, "PrintModuleInformation"}, |  | ||||||
|             {6, nullptr, "GetModuleInformation"}, |  | ||||||
|             {10, nullptr, "AcquireStateLock"}, |  | ||||||
|             {11, nullptr, "HasStateLock"}, |  | ||||||
|         }; |  | ||||||
|         // clang-format on
 |  | ||||||
| 
 |  | ||||||
|         RegisterHandlers(functions); |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class IPmModule final : public ServiceFramework<IPmModule> { |  | ||||||
| public: |  | ||||||
|     explicit IPmModule(Core::System& system_) : ServiceFramework{system_, "IPmModule"} { |  | ||||||
|         // clang-format off
 |  | ||||||
|         static const FunctionInfo functions[] = { |  | ||||||
|             {0, nullptr, "Initialize"}, |  | ||||||
|             {1, nullptr, "GetRequest"}, |  | ||||||
|             {2, nullptr, "Acknowledge"}, |  | ||||||
|             {3, nullptr, "Finalize"}, |  | ||||||
|             {4, nullptr, "AcknowledgeEx"}, |  | ||||||
|         }; |  | ||||||
|         // clang-format on
 |  | ||||||
| 
 |  | ||||||
|         RegisterHandlers(functions); |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| class IPmService final : public ServiceFramework<IPmService> { |  | ||||||
| public: |  | ||||||
|     explicit IPmService(Core::System& system_) : ServiceFramework{system_, "psc:m"} { |  | ||||||
|         // clang-format off
 |  | ||||||
|         static const FunctionInfo functions[] = { |  | ||||||
|             {0, &IPmService::GetPmModule, "GetPmModule"}, |  | ||||||
|         }; |  | ||||||
|         // clang-format on
 |  | ||||||
| 
 |  | ||||||
|         RegisterHandlers(functions); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| private: |  | ||||||
|     void GetPmModule(HLERequestContext& ctx) { |  | ||||||
|         LOG_DEBUG(Service_PSC, "called"); |  | ||||||
| 
 |  | ||||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; |  | ||||||
|         rb.Push(ResultSuccess); |  | ||||||
|         rb.PushIpcInterface<IPmModule>(system); |  | ||||||
|     } |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| void LoopProcess(Core::System& system) { | void LoopProcess(Core::System& system) { | ||||||
|     auto server_manager = std::make_unique<ServerManager>(system); |     auto server_manager = std::make_unique<ServerManager>(system); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,10 +7,6 @@ namespace Core { | |||||||
| class System; | class System; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| namespace Service::SM { |  | ||||||
| class ServiceManager; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| namespace Service::PSC { | namespace Service::PSC { | ||||||
| 
 | 
 | ||||||
| void LoopProcess(Core::System& system); | void LoopProcess(Core::System& system); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user