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