summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-10-28 14:58:09 -0400
committerGravatar Zach Hilman2018-10-29 13:54:39 -0400
commit2e8177f0c93768e1d1a7d6a830e9c68111c2afd6 (patch)
tree6821f78defeab63dec1093d55d46b17cbfa69bce /src
parentsavedata_factory: Expose accessors for SaveDataSpace (diff)
downloadyuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.tar.gz
yuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.tar.xz
yuzu-2e8177f0c93768e1d1a7d6a830e9c68111c2afd6.zip
fsp_srv: Implement command 61: OpenSaveDataInfoReaderBySaveDataSpaceId
Needed by Checkpoint. Returns an object that can iterate through all savedata on the system.
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp13
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.h1
2 files changed, 13 insertions, 1 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index c1c83a11d..56102a3db 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -452,6 +452,7 @@ private:
452}; 452};
453 453
454FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") { 454FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
455 // clang-format off
455 static const FunctionInfo functions[] = { 456 static const FunctionInfo functions[] = {
456 {0, nullptr, "MountContent"}, 457 {0, nullptr, "MountContent"},
457 {1, &FSP_SRV::Initialize, "Initialize"}, 458 {1, &FSP_SRV::Initialize, "Initialize"},
@@ -485,7 +486,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
485 {58, nullptr, "ReadSaveDataFileSystemExtraData"}, 486 {58, nullptr, "ReadSaveDataFileSystemExtraData"},
486 {59, nullptr, "WriteSaveDataFileSystemExtraData"}, 487 {59, nullptr, "WriteSaveDataFileSystemExtraData"},
487 {60, nullptr, "OpenSaveDataInfoReader"}, 488 {60, nullptr, "OpenSaveDataInfoReader"},
488 {61, nullptr, "OpenSaveDataInfoReaderBySaveDataSpaceId"}, 489 {61, &FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId, "OpenSaveDataInfoReaderBySaveDataSpaceId"},
489 {62, nullptr, "OpenCacheStorageList"}, 490 {62, nullptr, "OpenCacheStorageList"},
490 {64, nullptr, "OpenSaveDataInternalStorageFileSystem"}, 491 {64, nullptr, "OpenSaveDataInternalStorageFileSystem"},
491 {65, nullptr, "UpdateSaveDataMacForDebug"}, 492 {65, nullptr, "UpdateSaveDataMacForDebug"},
@@ -544,6 +545,7 @@ FSP_SRV::FSP_SRV() : ServiceFramework("fsp-srv") {
544 {1009, nullptr, "GetAndClearMemoryReportInfo"}, 545 {1009, nullptr, "GetAndClearMemoryReportInfo"},
545 {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"}, 546 {1100, nullptr, "OverrideSaveDataTransferTokenSignVerificationKey"},
546 }; 547 };
548 // clang-format on
547 RegisterHandlers(functions); 549 RegisterHandlers(functions);
548} 550}
549 551
@@ -618,6 +620,15 @@ void FSP_SRV::OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx) {
618 MountSaveData(ctx); 620 MountSaveData(ctx);
619} 621}
620 622
623void FSP_SRV::OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx) {
624 IPC::RequestParser rp{ctx};
625 const auto space = rp.PopRaw<FileSys::SaveDataSpaceId>();
626
627 IPC::ResponseBuilder rb{ctx, 2, 0, 1};
628 rb.Push(RESULT_SUCCESS);
629 rb.PushIpcInterface<ISaveDataInfoReader>(std::make_shared<ISaveDataInfoReader>(space));
630}
631
621void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) { 632void FSP_SRV::GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx) {
622 LOG_WARNING(Service_FS, "(STUBBED) called"); 633 LOG_WARNING(Service_FS, "(STUBBED) called");
623 634
diff --git a/src/core/hle/service/filesystem/fsp_srv.h b/src/core/hle/service/filesystem/fsp_srv.h
index 4aa0358cb..e7abec0a3 100644
--- a/src/core/hle/service/filesystem/fsp_srv.h
+++ b/src/core/hle/service/filesystem/fsp_srv.h
@@ -25,6 +25,7 @@ private:
25 void CreateSaveData(Kernel::HLERequestContext& ctx); 25 void CreateSaveData(Kernel::HLERequestContext& ctx);
26 void MountSaveData(Kernel::HLERequestContext& ctx); 26 void MountSaveData(Kernel::HLERequestContext& ctx);
27 void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx); 27 void OpenReadOnlySaveDataFileSystem(Kernel::HLERequestContext& ctx);
28 void OpenSaveDataInfoReaderBySaveDataSpaceId(Kernel::HLERequestContext& ctx);
28 void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx); 29 void GetGlobalAccessLogMode(Kernel::HLERequestContext& ctx);
29 void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx); 30 void OpenDataStorageByCurrentProcess(Kernel::HLERequestContext& ctx);
30 void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx); 31 void OpenDataStorageByDataId(Kernel::HLERequestContext& ctx);