ns: rewrite IVulnerabilityManagerInterface
This commit is contained in:
		| @@ -769,6 +769,8 @@ add_library(core STATIC | ||||
|     hle/service/ns/read_only_application_control_data_interface.h | ||||
|     hle/service/ns/read_only_application_record_interface.cpp | ||||
|     hle/service/ns/read_only_application_record_interface.h | ||||
|     hle/service/ns/vulnerability_manager_interface.cpp | ||||
|     hle/service/ns/vulnerability_manager_interface.h | ||||
|     hle/service/nvdrv/core/container.cpp | ||||
|     hle/service/nvdrv/core/container.h | ||||
|     hle/service/nvdrv/core/heap_mapper.cpp | ||||
|   | ||||
| @@ -26,6 +26,7 @@ | ||||
| #include "core/hle/service/ns/platform_service_manager.h" | ||||
| #include "core/hle/service/ns/read_only_application_control_data_interface.h" | ||||
| #include "core/hle/service/ns/read_only_application_record_interface.h" | ||||
| #include "core/hle/service/ns/vulnerability_manager_interface.h" | ||||
| #include "core/hle/service/server_manager.h" | ||||
| #include "core/hle/service/set/settings_server.h" | ||||
|  | ||||
| @@ -601,30 +602,6 @@ private: | ||||
|     } | ||||
| }; | ||||
|  | ||||
| class NS_VM final : public ServiceFramework<NS_VM> { | ||||
| public: | ||||
|     explicit NS_VM(Core::System& system_) : ServiceFramework{system_, "ns:vm"} { | ||||
|         // clang-format off | ||||
|         static const FunctionInfo functions[] = { | ||||
|             {1200, &NS_VM::NeedsUpdateVulnerability, "NeedsUpdateVulnerability"}, | ||||
|             {1201, nullptr, "UpdateSafeSystemVersionForDebug"}, | ||||
|             {1202, nullptr, "GetSafeSystemVersion"}, | ||||
|         }; | ||||
|         // clang-format on | ||||
|  | ||||
|         RegisterHandlers(functions); | ||||
|     } | ||||
|  | ||||
| private: | ||||
|     void NeedsUpdateVulnerability(HLERequestContext& ctx) { | ||||
|         LOG_WARNING(Service_NS, "(STUBBED) called"); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(ResultSuccess); | ||||
|         rb.Push(false); | ||||
|     } | ||||
| }; | ||||
|  | ||||
| void LoopProcess(Core::System& system) { | ||||
|     auto server_manager = std::make_unique<ServerManager>(system); | ||||
|  | ||||
| @@ -637,7 +614,8 @@ void LoopProcess(Core::System& system) { | ||||
|  | ||||
|     server_manager->RegisterNamedService("ns:dev", std::make_shared<NS_DEV>(system)); | ||||
|     server_manager->RegisterNamedService("ns:su", std::make_shared<NS_SU>(system)); | ||||
|     server_manager->RegisterNamedService("ns:vm", std::make_shared<NS_VM>(system)); | ||||
|     server_manager->RegisterNamedService("ns:vm", | ||||
|                                          std::make_shared<IVulnerabilityManagerInterface>(system)); | ||||
|     server_manager->RegisterNamedService("pdm:qry", std::make_shared<PDM_QRY>(system)); | ||||
|  | ||||
|     server_manager->RegisterNamedService("pl:s", | ||||
|   | ||||
							
								
								
									
										31
									
								
								src/core/hle/service/ns/vulnerability_manager_interface.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/core/hle/service/ns/vulnerability_manager_interface.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #include "core/hle/service/cmif_serialization.h" | ||||
| #include "core/hle/service/ns/vulnerability_manager_interface.h" | ||||
|  | ||||
| namespace Service::NS { | ||||
|  | ||||
| IVulnerabilityManagerInterface::IVulnerabilityManagerInterface(Core::System& system_) | ||||
|     : ServiceFramework{system_, "ns:vm"} { | ||||
|     // clang-format off | ||||
|     static const FunctionInfo functions[] = { | ||||
|         {1200, D<&IVulnerabilityManagerInterface::NeedsUpdateVulnerability>, "NeedsUpdateVulnerability"}, | ||||
|         {1201, nullptr, "UpdateSafeSystemVersionForDebug"}, | ||||
|         {1202, nullptr, "GetSafeSystemVersion"}, | ||||
|     }; | ||||
|     // clang-format on | ||||
|  | ||||
|     RegisterHandlers(functions); | ||||
| } | ||||
|  | ||||
| IVulnerabilityManagerInterface::~IVulnerabilityManagerInterface() = default; | ||||
|  | ||||
| Result IVulnerabilityManagerInterface::NeedsUpdateVulnerability( | ||||
|     Out<bool> out_needs_update_vulnerability) { | ||||
|     LOG_WARNING(Service_NS, "(STUBBED) called"); | ||||
|     *out_needs_update_vulnerability = false; | ||||
|     R_SUCCEED(); | ||||
| } | ||||
|  | ||||
| } // namespace Service::NS | ||||
							
								
								
									
										21
									
								
								src/core/hle/service/ns/vulnerability_manager_interface.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								src/core/hle/service/ns/vulnerability_manager_interface.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project | ||||
| // SPDX-License-Identifier: GPL-2.0-or-later | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include "core/hle/service/cmif_types.h" | ||||
| #include "core/hle/service/service.h" | ||||
|  | ||||
| namespace Service::NS { | ||||
|  | ||||
| class IVulnerabilityManagerInterface final | ||||
|     : public ServiceFramework<IVulnerabilityManagerInterface> { | ||||
| public: | ||||
|     explicit IVulnerabilityManagerInterface(Core::System& system_); | ||||
|     ~IVulnerabilityManagerInterface() override; | ||||
|  | ||||
| private: | ||||
|     Result NeedsUpdateVulnerability(Out<bool> out_needs_update_vulnerability); | ||||
| }; | ||||
|  | ||||
| } // namespace Service::NS | ||||
		Reference in New Issue
	
	Block a user