mirror of
https://github.com/yuzu-emu/yuzu-mainline
synced 2024-11-25 15:48:55 +00:00
ns: rewrite IVulnerabilityManagerInterface
This commit is contained in:
parent
2eded86b4b
commit
626f2e65b1
4 changed files with 57 additions and 25 deletions
|
@ -769,6 +769,8 @@ add_library(core STATIC
|
||||||
hle/service/ns/read_only_application_control_data_interface.h
|
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.cpp
|
||||||
hle/service/ns/read_only_application_record_interface.h
|
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.cpp
|
||||||
hle/service/nvdrv/core/container.h
|
hle/service/nvdrv/core/container.h
|
||||||
hle/service/nvdrv/core/heap_mapper.cpp
|
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/platform_service_manager.h"
|
||||||
#include "core/hle/service/ns/read_only_application_control_data_interface.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/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/server_manager.h"
|
||||||
#include "core/hle/service/set/settings_server.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) {
|
void LoopProcess(Core::System& system) {
|
||||||
auto server_manager = std::make_unique<ServerManager>(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:dev", std::make_shared<NS_DEV>(system));
|
||||||
server_manager->RegisterNamedService("ns:su", std::make_shared<NS_SU>(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("pdm:qry", std::make_shared<PDM_QRY>(system));
|
||||||
|
|
||||||
server_manager->RegisterNamedService("pl:s",
|
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
|
Loading…
Reference in a new issue