mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-22 16:30:57 +01:00
ns: rewrite IReadOnlyApplicationRecordInterface
This commit is contained in:
parent
c31ac45332
commit
786fc512e2
5 changed files with 63 additions and 45 deletions
|
@ -765,6 +765,8 @@ add_library(core STATIC
|
|||
hle/service/ns/pdm_qry.h
|
||||
hle/service/ns/platform_service_manager.cpp
|
||||
hle/service/ns/platform_service_manager.h
|
||||
hle/service/ns/read_only_application_record_interface.cpp
|
||||
hle/service/ns/read_only_application_record_interface.h
|
||||
hle/service/nvdrv/core/container.cpp
|
||||
hle/service/nvdrv/core/container.h
|
||||
hle/service/nvdrv/core/heap_mapper.cpp
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include "core/hle/service/ns/ns_results.h"
|
||||
#include "core/hle/service/ns/pdm_qry.h"
|
||||
#include "core/hle/service/ns/platform_service_manager.h"
|
||||
#include "core/hle/service/ns/read_only_application_record_interface.h"
|
||||
#include "core/hle/service/server_manager.h"
|
||||
#include "core/hle/service/set/settings_server.h"
|
||||
|
||||
|
@ -468,40 +469,6 @@ Result IApplicationManagerInterface::ConvertApplicationLanguageToLanguageCode(
|
|||
return ResultSuccess;
|
||||
}
|
||||
|
||||
IReadOnlyApplicationRecordInterface::IReadOnlyApplicationRecordInterface(Core::System& system_)
|
||||
: ServiceFramework{system_, "IReadOnlyApplicationRecordInterface"} {
|
||||
static const FunctionInfo functions[] = {
|
||||
{0, &IReadOnlyApplicationRecordInterface::HasApplicationRecord, "HasApplicationRecord"},
|
||||
{1, nullptr, "NotifyApplicationFailure"},
|
||||
{2, &IReadOnlyApplicationRecordInterface::IsDataCorruptedResult, "IsDataCorruptedResult"},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
RegisterHandlers(functions);
|
||||
}
|
||||
|
||||
IReadOnlyApplicationRecordInterface::~IReadOnlyApplicationRecordInterface() = default;
|
||||
|
||||
void IReadOnlyApplicationRecordInterface::HasApplicationRecord(HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp{ctx};
|
||||
const u64 program_id = rp.PopRaw<u64>();
|
||||
LOG_WARNING(Service_NS, "(STUBBED) called, program_id={:X}", program_id);
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 3};
|
||||
rb.Push(ResultSuccess);
|
||||
rb.Push<u8>(1);
|
||||
}
|
||||
|
||||
void IReadOnlyApplicationRecordInterface::IsDataCorruptedResult(HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp{ctx};
|
||||
const auto result = rp.PopRaw<Result>();
|
||||
LOG_WARNING(Service_NS, "(STUBBED) called, result={:#x}", result.GetInnerValue());
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 3};
|
||||
rb.Push(ResultSuccess);
|
||||
rb.Push<u8>(0);
|
||||
}
|
||||
|
||||
IReadOnlyApplicationControlDataInterface::IReadOnlyApplicationControlDataInterface(
|
||||
Core::System& system_)
|
||||
: ServiceFramework{system_, "IReadOnlyApplicationControlDataInterface"} {
|
||||
|
|
|
@ -32,17 +32,6 @@ private:
|
|||
void ConvertApplicationLanguageToLanguageCode(HLERequestContext& ctx);
|
||||
};
|
||||
|
||||
class IReadOnlyApplicationRecordInterface final
|
||||
: public ServiceFramework<IReadOnlyApplicationRecordInterface> {
|
||||
public:
|
||||
explicit IReadOnlyApplicationRecordInterface(Core::System& system_);
|
||||
~IReadOnlyApplicationRecordInterface() override;
|
||||
|
||||
private:
|
||||
void HasApplicationRecord(HLERequestContext& ctx);
|
||||
void IsDataCorruptedResult(HLERequestContext& ctx);
|
||||
};
|
||||
|
||||
class IReadOnlyApplicationControlDataInterface final
|
||||
: public ServiceFramework<IReadOnlyApplicationControlDataInterface> {
|
||||
public:
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
// 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/read_only_application_record_interface.h"
|
||||
|
||||
namespace Service::NS {
|
||||
|
||||
IReadOnlyApplicationRecordInterface::IReadOnlyApplicationRecordInterface(Core::System& system_)
|
||||
: ServiceFramework{system_, "IReadOnlyApplicationRecordInterface"} {
|
||||
static const FunctionInfo functions[] = {
|
||||
{0, D<&IReadOnlyApplicationRecordInterface::HasApplicationRecord>, "HasApplicationRecord"},
|
||||
{1, nullptr, "NotifyApplicationFailure"},
|
||||
{2, D<&IReadOnlyApplicationRecordInterface::IsDataCorruptedResult>,
|
||||
"IsDataCorruptedResult"},
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
RegisterHandlers(functions);
|
||||
}
|
||||
|
||||
IReadOnlyApplicationRecordInterface::~IReadOnlyApplicationRecordInterface() = default;
|
||||
|
||||
Result IReadOnlyApplicationRecordInterface::HasApplicationRecord(
|
||||
Out<bool> out_has_application_record, u64 program_id) {
|
||||
LOG_WARNING(Service_NS, "(STUBBED) called, program_id={:016X}", program_id);
|
||||
*out_has_application_record = true;
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result IReadOnlyApplicationRecordInterface::IsDataCorruptedResult(
|
||||
Out<bool> out_is_data_corrupted_result, Result result) {
|
||||
LOG_WARNING(Service_NS, "(STUBBED) called, result={:#x}", result.GetInnerValue());
|
||||
*out_is_data_corrupted_result = false;
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
} // namespace Service::NS
|
|
@ -0,0 +1,22 @@
|
|||
// 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 IReadOnlyApplicationRecordInterface final
|
||||
: public ServiceFramework<IReadOnlyApplicationRecordInterface> {
|
||||
public:
|
||||
explicit IReadOnlyApplicationRecordInterface(Core::System& system_);
|
||||
~IReadOnlyApplicationRecordInterface() override;
|
||||
|
||||
private:
|
||||
Result HasApplicationRecord(Out<bool> out_has_application_record, u64 program_id);
|
||||
Result IsDataCorruptedResult(Out<bool> out_is_data_corrupted_result, Result result);
|
||||
};
|
||||
|
||||
} // namespace Service::NS
|
Loading…
Reference in a new issue