mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-28 14:26:33 -05:00
fsp_srv: Implement command 61: OpenSaveDataInfoReaderBySaveDataSpaceId
Needed by Checkpoint. Returns an object that can iterate through all savedata on the system.
This commit is contained in:
parent
df264d2ccb
commit
2e8177f0c9
2 changed files with 13 additions and 1 deletions
|
@ -452,6 +452,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
|
FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
|
||||||
|
// clang-format off
|
||||||
static const FunctionInfo functions[] = {
|
static const FunctionInfo functions[] = {
|
||||||
{0, nullptr, "MountContent"},
|
{0, nullptr, "MountContent"},
|
||||||
{1, &FSP_SRV::Initialize, "Initialize"},
|
{1, &FSP_SRV::Initialize, "Initialize"},
|
||||||
|
@ -485,7 +486,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
|
||||||
{58, nullptr, "ReadSaveDataFileSystemExtraData"},
|
{58, nullptr, "ReadSaveDataFileSystemExtraData"},
|
||||||
{59, nullptr, "WriteSaveDataFileSystemExtraData"},
|
{59, nullptr, "WriteSaveDataFileSystemExtraData"},
|
||||||
{60, nullptr, "OpenSaveDataInfoReader"},
|
{60, nullptr, "OpenSaveDataInfoReader"},
|
||||||
{61, nullptr, "OpenSaveDataInfoReaderBySaveDataSpaceId"},
|
{61, &FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId, "OpenSaveDataInfoReaderBySaveDataSpaceId"},
|
||||||
{62, nullptr, "OpenCacheStorageList"},
|
{62, nullptr, "OpenCacheStorageList"},
|
||||||
{64, nullptr, "OpenSaveDataInternalStorageFileSystem"},
|
{64, nullptr, "OpenSaveDataInternalStorageFileSystem"},
|
||||||
{65, nullptr, "UpdateSaveDataMacForDebug"},
|
{65, nullptr, "UpdateSaveDataMacForDebug"},
|
||||||
|
@ -544,6 +545,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
|
||||||
{1009, nullptr, "GetAndClearMemoryReportInfo"},
|
{1009, nullptr, "GetAndClearMemoryReportInfo"},
|
||||||
{1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},
|
{1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -618,6 +620,15 @@ void FSP_SRV::OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx) {
|
||||||
MountSaveData(ctx);
|
MountSaveData(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
const auto space = rp.PopRaw<FileSys::SaveDataSpaceId>();
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.PushIpcInterface<ISaveDataInfoReader>(std::make_shared<ISaveDataInfoReader>(space));
|
||||||
|
}
|
||||||
|
|
||||||
void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
|
void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
|
||||||
LOG_WARNING(Service_FS, "(STUBBED) called");
|
LOG_WARNING(Service_FS, "(STUBBED) called");
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ private:
|
||||||
void CreateSaveData(Kernel::HLERequestContext& ctx);
|
void CreateSaveData(Kernel::HLERequestContext& ctx);
|
||||||
void MountSaveData(Kernel::HLERequestContext& ctx);
|
void MountSaveData(Kernel::HLERequestContext& ctx);
|
||||||
void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx);
|
void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx);
|
||||||
|
void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx);
|
||||||
void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
|
void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
|
||||||
void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
|
void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
|
||||||
void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);
|
void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);
|
||||||
|
|
Loading…
Reference in a new issue